The Server From Hell

En esta maquina tendremos que encontrar el puerto correcto donde se tiene un servicio que nos permitirá explotar una vulnerabilidad para luego obtener un archivo id_rsa para iniciar sesión por ssh del cual se desconoce el puerto, para encontrar el puerto correcto realizaremos un script en Python el que automatizara el proceso de validar que en el dicho puerto se ejecutar el servicio OPENSSH

20231217180807.png

Walkthrough


Enumeración

Iniciamos escaneando los puertos abiertos con la herramienta de nmap para luego escanear los servicios y versiones de cada uno de los puertos.

Al realizar el escaneo podemos ver que la mayoría de los puerto están abiertos por lo que analizar cada uno nos llevara un buen tiempo. 20231217181424.png

Puerto 1337

En esta caso vamos a realizar un escaneo del puerto 1337, porque nos brinda una pista de este puerto.

Escaneando podemos ver un mensaje de nos indica escanear los 100 primeros puertosLegend says he's hiding in the first 100 ports

Escaneamos los 100 puertos

El resultado que tendremos será la siguiente

Tenemos un numero que se repite en todos que es 550 y 12345. Por lo que enumeraremos el dichos puertos.

Puerto 12345

Se tiene un servicio NFS en el puerto 12345 que esto permite compartir sistemas de archivos completos entre sistemas, lo que facilita la colaboración y el intercambio de recursos en una red.

Explotación

Showmount

Enumerando con showmount podremos ver los directorios que se pueden realizar la montura en nuestra maquina atacante.

20231218022604.png

Para realizar la montura ejecutaremos los siguientes comandos:

Una vez ejecutados los comandos podremos enumerar el directorio y tendremos un archivo backup.zip que tendremos que copiarnos a nuestro directorio de trabajo.

20231218023108.png
20231218023847.png

Al querer descomprimir observamos que nos pide una contraseña, contraseña que no sabemos. Para encontrar la contraseña tendremos que hacer uso de fuerza bruta, en este caso usaremos zip2john para obtener el hash para luego crackearla con john.

Luego de tener la contraseña podremos descomprimir el .zip proporcionando la contraseña. Al descomprimir el archivo tendremos un archivo id_rsa el cual podremos usar para ingresar por ssh.

20231218023923.png

Antes de autenticarnos por ssh tendremos que descubrir en que puerto esta el servicio de ssh, por lo que realizamos el siguiente script para automatizar el proceso. Agregue unas cositas que no son necesarias pero queda mas guapo

20231221224058.png

Luego de ejecutar el script y probar algunos de los puertos obtendremos que el 3333 es el que tiene el servicio ssh por lo que nos autenticaremos con dicho puerto haciendo uso del archivo id_rsa.

Escalada de privilegios

Usuario: hades

Ingresando por ssh tendremos un una terminal interactiva de ruby

20231221224329.png

Para obtener una shell ejecutaremos exec "/bin/bash" en la consola interactiva de ruby.

Luego de obtener una shell enumeraremos para escalar privilegios como root. Enumerando el sistema encontraremos algo interesante en las capabilities.

Para poder tener mas información de como explotar y entender te invito a leer el el post de linux-privilege-escalation-using-capabilities/arrow-up-right

Para explotar el binario /bin/tar por capabilities haremos uso de tar para comprimir algún archivo privilegiado que en este caso será el /etc/shadow donde se tiene las credenciales de cada usuario del sistema.

Luego descomprimiremos el archivo shadow.tar y obtendremos el archivo /etc/shadow

Al leer el archivo podemos ver que se tiene la credencial encriptada de root

20231221231305.png

Para obtener la credencial en formato texto haremos uso de la herramienta de john para crackearla

Usuario: root

La credencial que obtendremos será root : trustno1 . Luego ingresaremos para escalar nuestros privilegios a root y efectivamente la contraseña es valida.

20231221231426.png

¡VAMOS! Happy Hacking :)

Last updated