Write-up: Máquina Apex (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.73
Comprobamos si tenemos conexión con la Máquina Victima, para ello ejecutamos el siguiente comando:

$ ping -c 1 10.0.2.73


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.73 -sVC


Como podemos comprobar la Máquina Victima tiene abiertos los puertos 22, 79 80.

Comprobamos que es lo que corre por el puerto 80.


A continuación, realizamos con la herramienta gobuster un fuzzing web, para ello ejecutamos el siguiente comando:

$ gobuster dir -u http://10.0.2.73 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-big.txt


Encontramos el directorio backup.

Accedemos a el.



Está protegido por un auth_basic.

A continuación, nos descargamos la imagen y realizamos una busqueda inversa con Google Lens.


Encontramos un posible nombre de usuario llamado horus.

Enumeramos este posible usuario a traves del servicio finger (79), para ello ejecutamos el siguiente comando:

$ finger horus@10.0.2.73


Obtenemos información de dicho usuario junto con la contraseña H0Ru$$3rv3.

Volvemos al servicio web e intentamos acceder con las credenciales obtenidas horus:H0Ru$$3rv3.


Conseguimos acceder con las credenciales obtenidas y encuentramos el archivo database.db, nos lo descargamos, y comprobamos de que tipo de fichero se trata, para ello ejecutamos el siguiente comando:

$ file database.db


Vemos que se trata de una Base de Datos tipo sqlite3, lo abrimos con el motor de Base de Datos sqlite3, para ello ejecutamos el siguiente comando:

$ sqlite3 database.db

Enumeramos las tablas, y obtenemos los datos almacenados en ella.


Obtenemos las credenciales de varios usuarios, por lo tanto nos creamos un diccionario con dichos nombres y otro diccionario con las credenciales, para ello ejecutamos los siguientes comandos:

$ nano users.txt


$ nano pass.txt


A continuación, con la herramienta hydra realizamos un ataque a ssh para comprobar si algunos de los usuarios junto con su contraseña es válido para conectarnos a la Máquina Víctima via ssh, para ello ejecutamos el siguiente comando:

$ hydra -L user.txt -P pass.txt ssh://10.0.2.73 -T 64


Obtenemos las credenciales seth:xqRu08ZA3BihR4lKdJVYcP1x6HjZUf.

Nos conectamos por ssh, para ello ejecutamos el siguiente comando:

$ ssh seth@10.0.2.73


Introducimos la contraseña obtenida anteriormente.

¡¡¡Somos seth!!!

Enumeramos los permisos sudo, para ello ejecutamos el siguiente comando:

$ sudo -l


Al intentar enumerar los permisos sudo nos da el anterior error, por lo tanto, buscamos el binario sudo, para ello ejecutamos el siguiente comando:

$ find / -type f -name sudo -executable 2>/dev/null

Localizamos el binario sudo ubicado en la ruta /usr/sbin, por lo tanto, ahora si que podemos hacer uso de sudo, para ello ejecutamos el siguiente comando:

$ /usr/sbin/sudo -l


Nos encontramos con el binario nmcli que lo podemos ejecutar como el usuario root, siendo está una herramienta de línea de comandos para interactuar con NetworkManager, un servicio que gestiona las conexiones de red en sistemas Linux.

Listamos las redes inalámbricas almacenadas en el sistema, para ello ejecutamos el siguiente comando:

$ /usr/sbin/sudo -u root nmcli connection show


Encontramos una red WIFI llamada MikroTik_AP.

Buscamos información sobre esta red wifi, para ello ejecutamos los siguientes comandos:

$ find / -name MikroTik_AP 2>/dev/null
$ ls -la /etc/NetworkManager/system-connections/MikroTik_AP


Esta red fue creada por el usuario root y otros usuarios no disponen de ningun permiso.

Al poder ejecutar el binaro nmcli como root con sudo leemos el password de la red MikroTik_AP filtrando la salida para mostrar solo el valor de la clave precompartida, para ello ejecutamos el siguiente comando:

$ /usr/sbin/sudo -u root nmcli -s -g 802-11-wireless-security.psk connection show MikroTik_AP


Obtenemos la contraseña WIFI_p@$$w0rd_is_$up3r_$3cur3.

Nos cambiamos al usuario root, para ello ejecutamos el siguiente comando:

$ su root

Introducimos la contraseña obtenida anteriormente.


¡¡¡Ya somos root!!!

Ya podemos leer las flags de user y root.