Log in
Blog HbS
Slider

Nully Cybersecurity CTF (2º parte)

portada

¡Hola a todos! 

En este artículo continuaremos con la máquina de Nully Cybersecurity CTF. Si no sabes por donde vamos revisa la anterior entrada Nully Cybersecurity CTF(1ª parte)

En el anterior artículo hicimos un port forwarding a su servidor de aplicaciones web, por lo que retomaremos la auditoría a partir de dicho punto.  

Teniendo acceso al servidor web ahora se puede realizar un proceso de descubrimiento de la estructura que utiliza la aplicación. Además, según se pudo ver estaba todavía en construcción, por lo que al estar en desarrollo hay más probabilidad de encontrar vulnerabilidades. Para ello podemos utilizar diferentes herramientas de fuzzing, en este caso vamos a usar wfuzz

De esta forma hemos logrado localizar un directorio de la aplicación web, ahora es simplemente curiosear, navegamos mediante nuestro explorador para ver su contenido:

Tenemos varios ficheros, pero el más llamativo es ping.php

Al parecer tenemos una ejecución de ping.php nos retorna una ejecución del comando ping de forma remota, pero lo más llamativo es la presentación tan similar al comando ping de Linux, por lo que es posible que permita una ejecución de comandos remotos, ya que en sí, ping es un comando del sistema, vamos a tratar de concatenar otro comando para ver si conseguimos que se ejecute también:

Al parecer solo basta con codificar en HTML el símbolo & para poder encadenar más comandos a la función ping del código PHP. Por lo que codificando en HTML el payload de Metasploit obtenido a partir de multi/script/web_delivery se consigue el acceso a la segunda máquina.

Bien, una vez logrado el acceso a la máquina, deberemos de proceder a intentar elevar los privilegios actuales del usuario, el actual, es www-data, el daemon del servidor de aplicaciones web.


Para ello buscamos archivos con el bit SUID activo, mediante la instrucción:

​find / -perm 4000 -type f -exec ls -ls {} 2>/dev/null

Y se localiza uno que permite ejecutar python3 con los permisos de usuario de Oscar, por lo que basta con cargar un intérprete de comandos mediante python3 para poder elevar los privilegios a esa cuenta.


Es importante que os aprendáis la manera de ejecutar una shell de diferentes formas, aquí os dejo algunas:

​python -c 'import pty;pty.spawn("/bin/bash")'
echo os.system('/bin/bash')
perl —e 'exec "/bin/sh";'
abrir shell desde vi
:!bash

Mediante nmap también se puede, ¿no sabes cómo? Pincha aquí

Después de este paréntesis, continuamos, ahora es necesario repetir el proceso con esta cuenta para observar si podemos elevar a la cuenta root.

Al probar con el binario se puede ver las semejanzas con el comando date

En el siguiente artículo se verá el proceso utilizado para poder comprobar la seguridad de dicho fichero binario, ya que permitiría escalar privilegios a usuario root si se localiza algún defecto de seguridad en el proceso de creación de su código.


¡Espero que os haya gustado lo que se ha visto hoy! ¡Nos vemos en el próximo artículo!

Entrevista a Ignacio Barnés docente del curso DFIR
Nully Cybersecurity CTF (1ª parte)
Agrega tu email para recibir novedades de seguridad
Estoy de acuerdo con el Términos y Condiciones