Poison

Sistema operativo | Dificultad | Fecha de Lanzamiento | Creador |
---|---|---|---|
Linux | Medium | 24 Marzo 2018 | Charix |
Reconocimiento
Lanzamos una traza ICMP a la máquina objetivo para comprobar que tengamos conectividad.
Vemos que responde al envío de nuestro paquete, verificando de esta manera que tenemos conectividad. Por otra parte, confirmamos que estamos frente a una máquina Linux basandonos en el TTL (Time To Live) 63.
Enumeración inicial
Realizamos un escaneo con nmap
para descubrir que puertos TCP se encuentran abiertos en la máquina víctima. Lanzamos una serie de script básicos de enumeración propios de nmap
, para conocer la versión y servicio que esta corriendo bajo los puertos.
nmap -sS -sCV -p- -Pn -n --min-rate 5000 10.10.10.84 -oN scan -vvv
Enumeración de servicios
Si ingresamos a la web que esta corriendo bajo el puerto 80, nos encontramos con lo siguiente:
Por medio de un formulario, podemos ingresar algunos de los nombre de scripts mencionados y ver su contenido.
Por ejemplo, si ingresamos phpinfo.php podemos observar que nos muestra lo siguiente:
Si ingresamos, ini.php podemos ver lo siguiente:
Si ingresamos info.php, vemos lo siguiente:
Y si ingresamos listfiles.php lo siguiente:
Si observamos el contenido de este archivo, podemos ver que se listan todos los scripts php, además de un archivo pwdbackup.txt. El cual, en principio no se hizo mencion alguna en el formulario inicial.
Explotación inicial
Si miramos el contenido de pwdbackup.txt, nos encontramos con lo siguiente:
Copiamos la supuesta contraseña a un archivo de nuestra máquina atacante y lo decodificamos con base64.
Probamos decodificarla y como resultado nos devulve otra cadena en base64.
Por lo que al parecer deberemos aplicar este proceso 13 veces. Para ello, creamos un simple oneliner que realize esto por nosotros.
pass=$(base64 -d pwdbackup.txt); for i in $(seq 1 12); do pass=$(echo "$pass"| base64 -d); done; echo $pass
Genial, logramos decodificar la cadena y encontramos un posible usuario y contraseña.
charix:Charix!2#4%6&8(0
Usuario charix
Nos conectamos como el usuario charix
por SSH.
Leemos el flag de user.txt
Elevación de privilegios
Observamos que en el home del usuario charix existe un archivo secret.zip
. Descargamos este archivo a nuestra máquina.
Intentamos descomprimir el archivo pero nos solicita una passphrase.
Si continuamos enumerando la máquina, podemos observar que internamente esta corriendo el puerto 5901 (VNC). Si investigamos un poco, nos encontramos con que este puerto pertenece a VNC.
https://book.hacktricks.xyz/network-services-pentesting/pentesting-vnc
Por lo que podemos conectarnos a este utilizando conmo contraseña el archivo secret anterior. Para ello, en primer lugar debemos exponer este puerto y lo haremos usando ssh.
ssh charix@10.10.10.84 -L 5901:127.0.0.1:5901
Nos conectamos utilizando la herramienta: vncviewer
.
Leemos el flag de root.txt