Demostración en vídeo de este post:
En el post anterior he mencionado algunas alternativas que pueden ser útiles a la hora de cifrar conexiones reversas entre un atacante y víctima, en esta ocasión, mencionaré tres alternativas adicionales.
Es una herramienta de la que ya se ha hablado en este post en dos ocasiones: aquí y aquí. Por lo tanto no me extenderé demasiado, solamente mencionar que funciona tanto para sistemas Windows y Linux, cifra el tráfico usando Twofish y permite el establecimiento de una clave simétrica compartida.
En el mundo de Metasploit Framework existen algunos payloads que soportan el cifrado extremo a extremo y concretamente, los que permiten utilizar HTTPS por medio de la API WinHTTP son especialmente interesantes ya que permiten aplicar técnicas de “Certificate Pinning” de tal manera que el handler de Metasploit Framework solamente aceptará conexiones dependiendo del hash del certificado TLS/SSL establecido.
Para hacer esto se puede generar un certificado PEM utilizando OpenSSL como se ha visto en el post anterior, pero existe otra opción que es igualmente interesante y consiste en utilizar el módulo “impersonate_ssl” disponible en Metasploit Framework.
Utilizar dicho módulo es muy sencillo ya que el único argumento que recibe es “RHOSTS” en donde se indica el dominio del que se extraerá su certificado y posteriormente se utilizará para generar uno nuevo autofirmado. Este módulo simplemente obtiene la información básica del certificado legitimo del sitio indicado y la utiliza para generar un fichero en formato PEM o DER.
El siguiente paso consiste en utilizar un payload de WinHTTP, por ejemplo windows/x64/meterpreter/reverse_winhttps. Simplemente, hay que tener en cuenta que se debe indicar el certificado autofirmado generado previamente y que es obligatorio verificar la conexión SSL con el stager.
Finalmente, basta con iniciar el handler de Metasploit para recibir la conexión, aunque se debe indicar el mismo payload y las opciones correctas, tal como se puede apreciar en vídeo de YouTube que acompaña éste post.
HoaxShell es un proyecto interesante que ha sido creado recientemente. Permite crear conexiones reversas por medio de powershell, lo que le hace especialmente interesante en entornos Windows. Cuenta con algunas pocas opciones, pero destacan aquellas que permiten establecer una conexión cifrada entre la víctima y el atacante, ya sea utilizando un certificado auto-firmado o uno confiable.
Cuando se ejecuta la herramienta, automáticamente genera el comando que se debe ejecutar en al máquina objetivo y levanta el puerto 8080 (HTTP) o 443 (HTTPS) para recibir conexiones.
Una vez se ejecuta el payload en la máquina víctima, se recibirá una shell con Powershell y como se ha mencionado antes, si se cifra el tráfico por medio de TLS con una clave y un certificado PEM, los paquetes de datos transmitidos entre víctima y atacante estarán cifrados, dificultando de esta manera la detección de la shell.
Otra característica interesante de esta shell es que el Windows Defender de Windows 10 y 11, en la fecha en la que se redacta este post, no detecta la ejecución del payload como una amenaza y el AMSI no realiza ningún tipo de bloqueo, permitiendo su ejecución. Aunque como siempre ocurre con este tipo de utilidades, es simplemente cuestión de tiempo para que empiece a ser detectado.
Si conoces alguna otra alternativa que quieras compartir, te invito a dejar un comentario en este post.
Un saludo y Happy Hack!
Adastra.