Plex
Última actualización
Última actualización
Lo primero de todos es encontrar equipos dentro de mi red.
sudo arp-scan -I eth0 --localnet
Ahora podemos saber cuál es la máquina atacante ya que estamos en VMware y la MAC siempre empieza por 00:0c Por lo tanto sería la 192.168.95.104
Comprobamos que tenemos conectividad.
ping -c1 192.168.95.104
Podemos ver que el ttl es 64 por lo tanto se trata de una máquina Linux, esto no es 100% fiable. Vemos que sí tenemos conectividad.
Ahora que sabemos que tenemos conectividad, podemos escanear los puertos que estan abiertos para poder hacer la intrusión. Utilizamos la herramienta nmap
sudo nmap -p- -sS -sC -sV --min-rate=5000 -n -vvv -Pn 192.168.95.104 -oN allPorts
Este comando lo que hace es buscar todos los puertos abiertos (1-65535) (-p-
, lo hace de manera sigilosa (-sS
), busca la versión de los servicios ( -sV
), de manera rápida(--min-rate=5000
), desactiva la resolución DNS para evitar problemas(-n
), utiliza triple verbose para que tengamos más detalle del escaneo (-vvv
)y omite la detección de host(-Pn
). Lo guarda en el fichero allPorts (-oN allPorts
).
Como podemos ver, el puerto 21 está abierto. Es el puerto de FTP. Pero hay algo raro, y es que si nos fijamos, en el servicio, pone SSH. En este caso parece una especie de multiplexación. Comprobamos que efectivamente está utilizando el servicio SSH, ya que nos pide contraseña.
Como no hay ningún otro puerto abierto, me da a pensar de que utiliza SSLH ya que usa distintos servicios por ese puerto.
Como podemos ver dice que acepta las conexiones de puertos específicos y que las reenvia.
Entonces nosotros podemos hacer un curl -I para que solo nos muestre el HEAD, es decir la cabecera.
Vemos que utiliza Apache2 por este puerto, entonces hacemos un curl de tipo GET para ver lo que responde.
En este punto lo que se me ocurre es hacer fuzzing, para ello podemos utilizar tanto gobuster como wfuzz, en mi caso lo voy a hacer con gobuster.
Entonces ahora que sabemos que hay un fichero llamado robots.txt, pues podemos enviar un curl de tipo GET para ver lo que responde.
Un Json Web Token (JWT) es un mecanismo para poder propagar de forma segura entre dos partes, la identidad de un usuario, privilegios, etc. Esto viene todo codificado en JSON, que se encuentran dentro del payload (cuerpo)
Si le hacemos el mismo curl pero a la ruta que nos devuelve el curl a robots.txt, que parece un JSON Web Token.
Entonces podemos irnos a la página jwt, y pegamos la respuesta.
Ya tenemos el usuario y la password, entonces ya podemos entrar por ssh.
Y ahí estaría la flag del usuario. Ahora vamos a por la de root. Hacemos un sudo -l para ver los comandos que puede ejecuar como sudo.
Vemos que puede ejecutar mutt que es un cliente de correo electrónico, por tanto, ejecutamos mutt con sudo, y con el usuario root.
Se nos va a abrir como una especie de editor de texto, por tanto vamos a probar a poner ! para poder ejecutar comandos ya que en otros editores de texto se hace así. Escribimos /usr/bin/bash
Y funciona, ya somos root
Entonces nos vamos al directorio de root.
Nosotros hemos ejecutado la herramienta mutt con los privilegios del usuario root. Entonces nosotros si ponemos !
en el editor de texto podemos escribir comandos del sistema. Por lo tanto si ejecutamos /usr/bin/bash
, estamos ejecutando una shell de Bash como root, de manera temporal ya que hemos ejecutado el comando mutt como root.
Como se puede ver, también he puesto el parámetro -x para que busque con extensiones. En esto caso ha encontrado el fichero .