Tutorial Symfonos2 VulnHub

El problema CTF o Check the Flag está publicado en vulunhub.com. VulunHub es una plataforma que proporciona aplicaciones/máquinas vulnerables para obtener experiencia práctica en el campo de la seguridad de la información. Symfonos 2 es una máquina en vulunhub. Para descargar visite: https://www.vulnhub.com/entry/symfonos-2,331/    

A continuación se muestran los pasos para el tutorial de Vulunhub Symfonos 2:

El primer paso que tenemos que hacer es llevar a cabo una recopilación de inteligencia. Eso incluye hosts Footprinting, servidores, etc. 

Fase de descubrimiento:

Comencemos escaneando la red e identificando la dirección IP del host dentro de la misma red.

Ingrese el siguiente comando para el mismo:

netdiscover -i eth0 -r 10.0.2.0/16 
escaneo e identificación de hosts

Enumerar el host dentro de la red

Entonces parece que 10.0.2.25 es nuestra IP de destino. El siguiente paso es escanear el objetivo con la herramienta Nmap para verificar si hay puertos abiertos y sondear los servicios en ejecución en la máquina virtual.

Fase de escaneo:

Comenzará con un escaneo rápido de Nmap para buscar puertos abiertos.

Ingrese el siguiente comando para el mismo:

nmap -sV -sC -p- target_IP_address
escaneo nmap para puertos abiertos

Enumeración de puertos 

Visite la hoja de trucos de Nmap para obtener más información sobre nmap.

Fase de reconocimiento

1. Reconocimiento web 

 ¡Buena combinación de servicios interesantes encontrados durante el escaneo de Nmap! Primero visitemos el puerto 80, la página predeterminada de la máquina víctima.

 Ingrese el siguiente comando para el mismo:

curl  [website address]

curl a url

Como puede ver, aquí no se encuentra nada sospechoso más que un archivo de imagen. Investigo la imagen a través del comando STRINGS pero nuevamente fallé.

2. Reconocimiento de PYMES 

Enum4linux es una herramienta que se utiliza para enumerar recursos compartidos SMB en sistemas Windows y Linux . Es básicamente un contenedor de las herramientas del paquete Samba y facilita la extracción rápida de información del objetivo perteneciente a SMB.

Ingrese el siguiente comando para el mismo:

enum4linux -a [target_IP_address]

enu4linux to enumerate SMB

¡Se siente como Deja Vu! Hay un recurso compartido anónimo que tiene acceso de solo lectura. Es hora de ver qué hay dentro.

Pero primero, si desea obtener más información sobre los conmutadores de enum4linux, visite https://www.hackingarticles.in/a-little-guide-to-smb-enumeration/

Ingrese el siguiente comando para el mismo:

smbclient  //[target_IP_address]/anonymous

smbclient listing

Tenemos un directorio de copias de seguridad para explorarlo. (Inicialmente, solo veremos el archivo de copias de seguridad)

smbclient listing

Tenemos un archivo .txt, copiémoslo en nuestro directorio de trabajo a través de get [file_name] .

Nota: – El comando ‘get ‘ se usa para obtener datos de los hosts remotos en nuestro directorio de trabajo actual.

Además, durante el reconocimiento de SMB  también obtuvimos dos usuarios locales

reconocimiento smb

Usuario local enumerado

Explorar el archivo log.txt revela algunos puntos interesantes que puedo determinar a partir de este archivo:

  • Hay una copia de seguridad del archivo /etc/shadow en /var/backups/shadow.bak , por lo que este puede ser un objetivo futuro
  • El recurso compartido SMB anónimo apunta a /home/aeolus/share , por lo que aeolus es un nombre de usuario válido

Reconocimiento  FTP

Nota:- Hay dos formas de encontrar la contraseña para el usuario aeolus. Vamos a ver los dos.

Por SAMBA Compartir

1. Primero acceda al servicio FTP a través de

FTP [target_IP_address] 

2. Luego simplemente copie el archivo /etc/shadow y /var/backups/shadow.bak en aeolus sharepoint.

ftp en una ip

Explotación FTP  

3. Ahora, vuelva a conectarse a smbclient anónimo para ver si obtuvimos los archivos o no.

smbclient and sambashare

Aquí, obtendrá la contraseña como » sergioteamo» .

por HYDRA 

1. Podemos recuperar la contraseña a través de hydra, también una herramienta integrada de kali para extraer las contraseñas en diferentes puertos.

Ingrese el siguiente comando para el mismo:

hydra -f -l [user_name] -P [password_file_path] [service_name]://[target_IP_address] -o [output_file]
hidra

Contraseña descubierta

¡ Obtenga más información sobre los interruptores hydra aquí!

Reconocimiento SSH 

Ahora, tenemos un usuario aeolus y una contraseña sergioteamo . Intentemos iniciar sesión ssh a través del usuario aeolus.

reconocimiento SSH

Inicio de sesión SSH

Ahora probé varios comandos para ver si el usuario aeolus tiene algún permiso o no, pero no obtuve nada. El usuario aeolus no puede ejecutar el comando Sudo y no hay archivos que tengan el bit SUID . Entonces, tenemos que probar algo más para escalar nuestros privilegios.

Nota: Al buscar en la web, encontré un archivo de script .sh que se usa para enumerar la información del sistema operativo. ¡ Copia el código de aquí! en [nombre_archivo.sh] . Ahora, ejecute el archivo con el permiso chmod +x [file_name.sh] para evitar cualquier problema en los hosts remotos.

Admitiremos que hay mucha producción aquí. Pero hay algunas cosas que son interesantes:

  • La versión del núcleo (4.9.0-9)
  • Los otros usuarios en el sistema (Cronos)

Pero lo que más me llamó la atención son los otros puertos que están escuchando. Puedo ver que MySQL se está ejecutando en el puerto 3306 y que algo se está ejecutando en el puerto 8080 . También hay una configuración de apache que estaba en la salida de LinEnum.sh , así que voy a verificar eso primero.

Visite la ruta cd /etc/apache2/sites-enabled, y encontramos otro sitio que está habilitado como librenms.conf en el puerto 8080.

Salga de la sesión de inicio de sesión ssh actual e intente conectarse a través de la conexión VNC a través de SSH. Deberá ejecutar este comando en la terminal de su máquina Linux o UNIX:

ssh  -L  8080:localhost:8080 aeolus@10.0.2.25.

¡ Obtenga más información sobre el inicio de sesión de VNC a través de SSH aquí! .

sh iniciar sesión sobre vnc

Inicio de sesión SSH sobre VNC 

Ahora, acceda al puerto 8080 en Firefox a través de http://localhost:8080 y encontramos la página de inicio de sesión de LibreNMS. Intentemos iniciar sesión con el nombre de usuario aeolus y la contraseña sergioteamo .

         

Explotación con Metasploit

1. Lo primero que me viene a la mente es buscar en Google si hay un exploit disponible para LibreNMS y obtuve dos de ellos. También podemos hacer lo mismo en Metasploit que muestra el mismo resultado. 

enumeración gexploit

Explotación de enumeración

En verdad , hablando, he usado ambos exploits, pero de alguna manera collect_cmd_inject no funciona. Entonces, continué con addhost. 

2. Configure las opciones como se muestra en el archivo de imagen a continuación y ejecute el comando de explotación para obtener la sesión deseada.

run exploit

3. Ahora para interactuar con la sesión actual

session -i [session_id]

sudo mysql -e ‘\! /bin/sh’ 

ejecutando exploit

Explotación en ejecución

Encontrar la bandera

1. Para obtener el shell interactivo, use el script python

python -c 'import pty; pty.spawn ("/bin/bash")' .

Una cosa a tener en cuenta es que nos conectamos a los hosts remotos a través del usuario Cronus, que es el usuario add-host. Ahora, verifique el permiso que el usuario de Cronus puede hacer como Sudo. 

finding the flag

2. Como se indicó, el usuario puede ejecutar /usr/bin/mysql como si fuera sudo, pero estamos aumentando los privilegios. Por lo tanto, tenemos que usar un script de shell que se puede usar para salir de entornos restringidos al generar un shell de sistema interactivo.

Introduce el siguiente comando en la terminal

sudo mysql -e '\! /bin/sh' 
obtener acceso

Obtener acceso

3.  Muévase al directorio raíz y use ls y allí está la prueba de pirateo.

getting access

Publicación traducida automáticamente

Artículo escrito por ShubhamSingh86 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *