Figura 1: ¡Seguimos saltando! Metasploit Port-Forwarding
Como mencioné en el artículo de la semana pasada, en Highon.Coffee podemos encontrar un interesante Cheatsheet, a modo de resumen de estas técnicas, pero es altamente vital que tú lo pruebes e intentes entender cómo está funcionando por debajo todo lo que has montado.
Hoy nos centraremos en dos partes que quedaban por mostrar en el artículo anterior. En este caso, partimos de un escenario en el que hay una máquina comprometida y necesitamos hacer port-forwarding. Para utilizar este forwarding utilizaremos a Meterpreter. El escenario propuesto es el siguiente:
• Máquina Kali Linux.: Seremos nosotros, con una interfaz de red con dirección IP 192.168.0.31.
• Máquina Windows XP: Sí XP, el cual nos vale como pivote. La máquina Windows XP tendrá una interfaz de red en la dirección IP 192.168.0.26 y otra interfaz conectada en la dirección IP 10.0.0.4. Esta máquina está conectada a dos redes, como se puede ver.
• Máquina Windows 7: Esta máquina tendrá configurada una dirección IP 10.0.0.3. Esta máquina tiene conectividad con la máquina Windows XP, pero no con la Kali Linux.
PoC: Usando portfwd desde Meterpreter
Antes de ejemplificar el uso de portfwd desde Meterpreter, vamos a ver un resumen de las opciones del comando portfwd:
• Add. Esta opción permite añadir una nueva regla para hacer forwarding.
• Delete. Esta opción permite eliminar una regla.
• List. Esta opción permite listar las reglas de forwarding que hay configuradas.
• Flush. Esta opción elimina las reglas que haya configuradas.
Como se ve en la imagen, el comando portfwd, aparte de las opciones, tiene argumentos. Estos argumentos son utilizados conjuntamente con las opciones explicadas anteriormente.
Figura 3: Ayuda de port-forwarding en Meterpreter
Utilizando este comando con las opciones que nos interesen podremos reenviar el tráfico a través de la máquina Windows XP, el cuál es el punto de partida en este escenario, para que llegue a la máquina Windows 7. Para ello, por ejemplo, si queremos hacer que nuestro Kali Linux utilice el puerto 3389 local, para que todo el tráfico que llegue a este puerto se reenvíe a través del pivote, en este caso la máquina Windows XP, hacia el puerto 3389 de la máquina Windows 7 o 10.0.0.3 se puede ejecutar el siguiente comando: portfwd add –l [puerto local] –p [puerto remoto] –r [dirección IP remota].
Figura 4: Creación de una ruta de puertos con portfwd
Si ejecutamos un netstat –tulpn en nuestra terminal de Kali Linux podremos ver como el puerto 3389 se encuentra a la escucha en nuestra máquina. Como se puede ver en la imagen, el puerto 3389 se ha abierto y es Ruby quién tiene el puerto mediante el proceso 1723. Es Metasploit quién gestionará ese forwarding.
Figura 5: netstat -tulpn
Si en la auditoría se necesitase pivotar para poder utilizar, por ejemplo, Pass the hash [más sobre esto en el libro de Hacking Windows] sobre la máquina Windows 7 se podría configurar la siguiente regla para poder llegar al FTP portfwd add –l 445 –p 445 –r 10.0.0.3. Además, configuramos una regla extra en el puerto 8888 local, la cual redirige al puerto 4444 de la máquina Windows 7 con el objetivo de que, si se consigue un Meterpreter de tipo bind, éste se encuentre en dicho puerto.
Figura 6: Regla para pivotar
Ahora, configuramos el módulo de psexec que se encuentra en Metasploit. Como datos de interés o a recalcar hay que resaltar que RHOST apunta a 0.0.0.0 y RPORT es 445, qué es dónde tenemos el forward. Tras configurar el módulo con un Meterpreter de tipo bind, se lanza con el usuario y hash adecuado contra la máquina Windows 7. Gracias al forwarding configurado anteriormente, pasará por la máquina Windows XP y el Meterpreter que se ejecuta en dicha máquina lo llevará hacia la máquina Windows 7.
Figura 7: Configurando el exploit pero no se consigue sesión
Como se puede ver en la imagen, no conseguimos sesión y esto es por qué el Meterpreter se ha atado al puerto 4444 de la máquina Windows 7, y el módulo handler que se ejecuta implícitamente con cada módulo de tipo exploit de Metasploit no puede alcanzar la máquina Windows 7, por esta razón se necesita una nueva regla, en este caso la que configuramos en el puerto 8888 hará el forward hacia el puerto 4444 de la máquina Windows 7.
Figura 8: Configuración del handler para recoger la sesión Meterpreter
Configuramos el módulo handler para recoger el Meterpreter que está a la escucha en la máquina Windows 7. Como se puede ver en la imagen, utilizamos el puerto 8888local para lograr la conexión con el puerto 4444 de la máquina Windows 7. El port-forwarding a través del Meterpreter colocado en Windows XP está funcionando correctamente.
Route para amplificar los puertos
Si en vez de utilizar port-forwarding queremos amplificar el camino, podemos utilizar el comando route para indicar a Metasploit como llegar a redes a las que no se pueden llegar sin el pivote o la máquina comprometida, que es la que abre el camino.
Figura 9: Ayuda del comando route
Para añadir una ruta nueva solamente hay que utilizar la instrucción route add [red] [máscara de red] [SID], dónde SID es el identificador de la sesión. Es decir, si quisiéramos enviar peticiones o tráfico a la red 10.0.0.0, en este caso, debería crear la siguiente entrada route add 10.0.0.0 255.0.0.0 [SID]. Para finalizar, vamos a dejaros un video resumen de port-forwarding desde Meterpreter para que veáis el campo que nos permite abarcar.
Figura 10: PoC Metasploit port-forwarding
Cómo se ha podido ver las técnicas de tunelización, de port-forwarding, de enrutamiento asociadas a las vulnerabilidades y exploits nos permiten abarcar una gran parte dentro de la organización a auditar. Sin duda, técnicas que deben conocer los pentesters para su día a día en los proyectos de Ethical Hacking.
No hay comentarios:
Publicar un comentario