Vulnhub — Kioptrix : Level 4 VM Writeup

Israel Aráoz Severiche
5 min readMay 15, 2019

--

La ultima maquina de la serie Kioptrix, practicar sobre maquinas vulnerables permite recordar y aprender nuevas técnicas y/o herramientas para mejorar las habilidades de un pentester.

Todos los caminos llevan a Roma.

Primero debemos identificar el equipo y la dirección IP asignada por DHCP

netdiscover -i eth0 -r 192.168.32.0/24

Una vez identificado el equipo identificamos los puertos y servicios activos.

nmap -sC -sV -p- -O -oN kioptrixLevel2.nmap 192.168.32.129 --open
  • 22/tcp — ssh:OpenSSH 4.7p1 Debian 8ubuntu1.2 (protocol 2.0)
  • 80/tcp — http:Apache httpd 2.2.8 ((Ubuntu) PHP/5.2.4–2ubuntu5.6 with Suhosin-Patchd)
  • 139/tcp — netbios-ssn:Samba smbd 3.X — 4.X
  • 445/tcp — netbios-ssn:Samba smbd 3.0.28a

Esta vez mi “tinca” iba para el lado de “samba” comenzamos enumerando usuarios y recursos.

nmap y enum4linux son excelentes aliados para cumplir con estas tareas.

nmap --script smb-enum-shares -p445 192.168.32.129

Hasta ahora identificamos 5 usuarios : loneferret,robert,john,nobody y root y algunos recursos compartidos, no intente hacer fuerza bruta sobre SSH con estos usuarios debido a que no es el camino en la mayoría de los casos.

Continué sobre HTTP y wfuzz permitió identificar recursos interesantes.

wfuzz -c -z file,/usr/share/wordlists/wfuzz/general/big.txt -sc 200,301,302 http://192.168.32.129/FUZZ
Recursos identificados

Accedemos al index.php

Formulario de inicio de sesión

Lanzamos la primera piedra (comilla simple) “

Posbile SqlInjeciton

Utilizando este “dificil payload” , accedemos al panel de control

' or '1'='1

Ya con los usuarios identificados anteriormente robert y john obtenemos un par de contraseñas, al principio creí que la contraseña de robert (por la características) estaba codificada, resulta ser la contraseña en texto plano

Robert y su password
john y su password

Ahora volvemos al ssh, utilizando a john como usuario valido iniciamos sesión de manera “exitosa”

Después de ejecutar ciertos comandos, estamos frente a una restricted shell, limitando a la ejecución de comandos básicos, como se observa en la siguiente imagen

Restricted Shell

Intentado identificar el entorno y la características para escapar, utilizando el comando echo y la función system escapamos de la jaula.

Algunos enlaces donde obtuve buena info, para el escape

ps aux | grep root
Servicios iniciados por root

En el proceso de enumeración post-explotación se identifico uno de los servicios identificados, iniciado por el usuario root. Analizando el archivo “checklogin.php”,se obtuvo usuario y password.

Archivos en el directorio www

se hizo un cat al archivo y se obtuvo información muy valiosa ;)

Usuario root y password para el servicio mysql

Accedemos al servicio mysql y volvemos a “enumerar” (enumeration is the key)

mysql version 5.0.51a

haciendo una rápida busque en google encontramos un par de links que nos dio el camino correcto.

Seguimos con la enumeración.

Con la función load_file accedimos a información sensible

utilizando la función sys_exec que ejecutaría todo en el contexto de root, aquí el siguiente PoC

PoC

Como se observa, el archivo fue creado por el usuario root ;), de aqui en adelante ya (mysql + ejecución modo root) lo considere como un trampolín para elevar privilegios

Agregamos al usuario robert al archivo sudoers y boom!

Elevacion de privilegios Root

Como dice el creador, tomando en cuenta el vector para elevar privilegios pueden surgir diferentes vectores de ataques.

Saludos!

--

--

Israel Aráoz Severiche
Israel Aráoz Severiche

Written by Israel Aráoz Severiche

{💀Cybersecurity Engineer​​🐞 } / { 🥋​ Purple Belt Brazilian Jiu Jitsu } / {🌐​https://twitter.com/iara0z}

No responses yet