CTF Raven 1


Continuando con la saga de vulnhub.com hoy os presento de la serie raven la máquina virtual raven1 con la que pasar un buen rato de pentesting y aprendiendo sobre seguridad y vulnerabilidades.

Una vez descargada, puesta en servicio en nuestro entorno de virtualización, ( yo normalmente empleo virtualbox ), nos ponemos en marcha.

Fase de recolección de información.


Iniciemos netdiscover -r 192.168.1.0/24 para iniciar el escaneo de equipos en nuestro rango de red.

netdiscover.




Detectada la máquina virtual en la ip 192.168.1.79, procedamos ahora al escaneo de puertos y servicios en marcha en nuestra máquina víctima.




Se detectan los puertos 22, 80 y 111. Procedamos ahora a realizar un escaneo con la herramienta nikto.

nikto.




Detectamos varias cosas interesantes que pueden ayudarnos en nuestra fase de recopilación de información, carpeta img, manual, images, icons/README, una carpeta wordpress que puede pertenecer a una instalación de wordpress ... Iniciemos la fase de investigación sobre el puerto 80 y para eso abrimos el navegador y procedemos a revisar la posible web y las páginas que contiene así como su código fuente por si hay algo oculto que podamos utilizar.

Navegación Web.




Detectamos claramente la versión de Apache que confirma lo detectado por nmap, en las diferentes carpetas descubiertas podemos ver algunos de los recursos utilizados en la web.




Navegando por las diferentes carpetas descubiertas podemos ver instalado phpmailer conjuntamente con su versión y algunos archivos que pueden ser interesantes.



En la siguiente imagen podemos ver que en el código fuente de la página encontramos nuestra primera flag.



wpscan.

Iniciemos ahora un escaneo con wpscan una vez verificado en la fase anterior que puede estar corriendo un wordpress.




El escaneo de wpscan enumera dos usuarios, michael y steven que seguro vamos a necesitar para avanzar en nuestra misión.

hydra.

Con los usuarios obtenidos intentemos un ataque de fuerza bruta con una lista de contraseñas y sobre el servicio ssh detectado en el escaneo con nmap. Para ello vamos a utilizar el archivo rockyou.txt de nuestra máquina atacante kali linux y el archivo userswp.txt que contiene la lista de los dos usuarios enumerados con wpscan.




Como podemos ver hydra detecta que el password para el usuario michael es michael, no hubiese sido necesario este paso si hubiera probado lo más sencillo del mundo.

Fase de explotación.

En esta fase vamos a tratar de entrar en la máquina víctima con lo que de momento hemos conseguido en la fase de recopilación de información. Tenemos las credenciales de acceso al servicio ssh del usuario michael así que vamos allá.

Acceso al servicio ssh.




Las credenciales son correctas y ya tenemos acceso a la máquina raven1. Ahora seguiremos recopilando información para ampliar los conocimientos de la máquina y para ello podemos revisar los diferentes directorios a los que tenemos acceso así como archivos que puedan sernos útiles para conseguir nuestra misión. No es muy difícil acceder a la flag2.



En la carpeta /var/www encontramos nuestra flag2.txt.

Con el comando find podemos ver a que archivos tenemos acceso. Esto es importante ya que en ocasiones podemos encontrarnos que tenemos algún permiso no controlado o acceso a algún servicio o programa que nos permite escalar privilegios o explotar algún tipo de servicio o recurso.



En la carpeta /var/mail/ podemos husmear por el tráfico de correo del usuario michael. Herramientas como linux enumerator son siempre muy útiles en entornos linux que nos pueden facilitar la labor de descubrir información sensible que nos ayude en el momento de escalada de privilegios.

Para todos aquellos que no tienen claro como transferir archivos desde nuestra máquina atacante a la máquina víctima os comento: primero levantar apache en nuestra máquina atacante, service apache2 start, copiar los archivos que queremos transferir a la carpeta /var/www/html y finalmente desde la máquina víctima con wget ip_atancante/archivo podemos transferir los archivos a la máquina víctima. Hay mucha info para esto y es muy común en los ctfs de máquinas vulnerables.


Como podemos apreciar en la anterior imagen tenemos permisos de lectura y escritura del archivo wp-config.php




Ahora disponemos de toda la información de acceso a la base de datos mysql del wordpress. Si ejecutamos el comando netstat podemos confirmar que efectivamente mysql esta activo en el puerto 3306 puerto por defecto de mysql.

netstat.




Accedemos al servicio de mysql que está en ejecución con las credenciales descubiertas en el archivo wp-config.php.

mysql.




Con help podemos acceder a la ayuda de mysql. Con show databases; use nombre_database; show tables; use nombre_tabla; y select * from nombre_tabla; podremos ir analizando la información que contienen las diferentes bases de datos así como la de wordpress. Darle un vistazo a la tabla de posts y users.



Info descubierta en los posts de wordpress, flag3 y flag4.



Usuarios de wordpress.




Nos guardamos los hashes de los usuarios encontrados en la tabla de users de la base de datos de wordpress en un archivo hash.txt para intentar crackearlas. Podemos verificar con hash-identifier el tipo de hash almacenado en la base de datos. Nos muestra claramente que posiblemente corresponda al tipo MD5(Wordpress).

hash-identifier.




Utilizando john hash.txt ejecutamos de la forma más simple posible intentando crackear los passwords. Podemos hacerlo más complejo utilizando diccionarios pero en este caso no fue necesario y tras un breve rato, john fue capaz de encontrar un password pink84 correspondiente al usuario steven.

john.




Ahora, podemos tratar de acceder con estas nuevas credenciales del usuario steven al servicio ssh siempre y cuando sean las mismas, no tiene por que ser así, pero ¿ quién no emplea la misma password para otros servicios ?.

Acceso al sevicio ssh.




Conseguimos el acceso con el usuario steven. Después de husmear un poco por el sistema sorprendentemente al realizar un sudo -l nos muestra que nuestro usuario tiene privilegios de root para ejecutar python. Utilicemos esto para intentar escalar privilegios.


Ejecutamos el interprete de python y mediante la librería os obtenemos una shell que nos permite escalar privilegios como root.

Ahora tenemos el control total, podemos ver la flag4.txt que previamente habíamos tenido ocasión de descubrir en la tabla de posts de Wordpress.



Game Over !!!

Thanks to: William McCann

Etiquetas