Home

VulnHub

Corrosion

El escaneo con Nmap muestra solo los puertos 22 y 80 abiertos cor nmap.png La web es una página por defecto de apache, pero haciendo Fuzzing recursivamente encontramos la ruta /blog-post/archives cor fuzz.png cor fuzz 2.png En este directorio encontramos un archivo php, lo que nos hace pensar que se está usando este lenguaje. Si comprobamos con alguna herramienta veremos que si cor php.png Utilizaremos este archivo para ver si agregando algún parámetro damos con alguna vulnerabilidad. En este caso usaremos Gobuster para encontrar este parámetro añadiéndolo luego del fichero php y apuntando contra un archivo interno, cayendo en un LFI cor fuzz lfi.png Tenemos una coincidencia con file cor lfi file.png Como tenemos habilitado el SSH es lógico pensar que podemos acceder a los logs del sistema. cor log poisoning.png Intentaremos aplicar un Log Poisoning contra el ssh Haciendo un intento de acceso por ssh, vemos que se registra en los logs cor ssh hacking.png cor ssh log.png Sabiendo esto y que por detrás se ejecuta php, intentaremos subir un código que nos permita ejecutar comandos cor php whoami.png cor www-data.png cor get cmd.png Nos enviaremos una reverse_shell cor bash -i.png cor reverse shell.png Dentro de la ruta /var/backups existe un comprimido que nos vamos a compartir con Netcat cor user backup.png cor netcat.png Para descomprimirlo se necesita una contraseña, por lo que hay que usar el módulo zip2john de John the Ripper cor zip.png Al descomprimir vemos varios archivos pertenecientes al servicio SSH, y entre ellos la contraseña con usuario randy cor pass ssh.png Nos conectamos SSH Para escalar privilegios vemos que se puede usar Sudo -L y que podemos ejecutar un binario como root cor sudo -L.png Para aprovechar esta capacidad, vamos a borrar el actual binario y crear otro con el mismo nombre que nos permita ejecutar lo que deseemos. Para este caso directamente lanzaremos una bash, y como es root quien lo ejecuta, se lanza con máximos privilegios. Borramos dicho archivo y creamos uno de extensión .c de otro nombre

#include<stdio.h>
#include<stdlib.h>
int main(void){
        system("/bin/bash");
        return 0;
}

cor root C.png Lo compilamos con el nombre del binario que se puede ejecutar como root, se ejecuta y seremos root.

gcc root.c -o easysyinfo

cor escalada root.png Las flags están en sus respectivos directorios cor flags.png

← Volver al árbol de writeups