Vulnhub — Kioptrix : Level 4 VM Writeup
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
Accedemos al index.php
Lanzamos la primera piedra (comilla simple) “ ‘ “
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
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
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
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.
se hizo un cat al archivo y se obtuvo información muy valiosa ;)
Accedemos al servicio mysql y volvemos a “enumerar” (enumeration is the key)
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
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!
Como dice el creador, tomando en cuenta el vector para elevar privilegios pueden surgir diferentes vectores de ataques.
Saludos!