Knife

Knife es una máquina Linux de dificultad fácil que cuenta con una aplicación que se ejecuta en una versión de PHP con puerta trasera. Esta vulnerabilidad se aprovecha para obtener un punto de apoyo en el servidor. Luego se aprovecha una configuración incorrecta de sudo para obtener un shell de root.


Reconnaissance

Realizaremos un reconocimiento con nmap para ver los puertos que están expuestos en la máquina Knife. Este resultado lo almacenaremos en un archivo llamado allPorts.

A través de la herramienta de extractPorts, la utilizaremos para extraer los puertos del archivo que nos generó el primer escaneo a través de Nmap. Esta herramienta nos copiará en la clipboard los puertos encontrados.

Lanzaremos scripts de reconocimiento sobre los puertos encontrados y lo exportaremos en formato oN y oX para posteriormente trabajar con ellos. En el resultado comprobamos que se encuentran abiertos el servicio SSH y una página web de Apache.

Transformaremos el archivo generado targetedXML para transformar el XML en un archivo HTML para posteriormente montar un servidor web y visualizarlo.

Accederemos a http://localhost y verificaremos el resultado en un formato más cómodo para su análisis.

Initial Access

PHP 8.1.0-dev - 'User-Agent' Remote Code Execution [RCE]

Accederemos a http://10.10.10.242 y verificaremos que se trata de un Apache HTTP Server 2.4.41 que utiliza PHP 8.1.0.

Realizamos una enumeración del sitio web en busca de subdominios, directorios, páginas sin éxito.

Probamos de buscar vulnerabilidades sobre la versión de PHP que se encontraba instalada en el sitio web, nos logramos encontrar con el siguiente repositorio.

Nos clonaremos el repositorio de GitHub en nuestra máquina local.

Nos pondremos en escucha para recibir la Reverse Shell.

Ejecutaremos el exploit indicándole la página vulnerable y nuestra dirección y puerto donde estaremos escuchando para recibir la terminal.

Después de lanzar el ataque, logramos acceder al equipo víctima y visualizar la flag de user.txt.

Privilege Escalation

Abusing sudoers privilege (knife)

Revisando si el usuario que disponíamos actualmente tenía algún permiso de sudoers, nos encontramos que podía ejecutar como sudo el binario de knife.

Knife es una herramienta de línea de comandos que proporciona una interfaz entre un repositorio local de Chef y Chef Infra Server. Knife ayuda a los usuarios a administrar:

Revisando en GTFOBins nos encontramos con la siguiente página en dónde nos explican como abusar de este binario en caso de disponer de permisos sudo sobre él.

Realizamos la explotación comosudo sobre el binario knife y verificamos que logramos obtener una bash como usuario root. Por otro lado, logramos también verificar cual es la flag de root.txt.

Última actualización

¿Te fue útil?