Hace unas semanas estuvimos viendo una herramienta llamada OWASP ZSC con la que podíamos hacer la competencia al gran msfvenom de Metasploit. La herramienta de la que hablaremos hoy se llama Zerodoor, con la que se puede generar backdoors de forma sencilla para diferentes plataformas. Es cierto que Zerodoor no tiene el nivel de madurez aún que tienen otras aplicaciones, pero es una nueva forma de automatizar el proceso de creación de backdoors. Además, Zerodoor proporciona la posibilidad de utilizar el listener de forma automática, dentro de la propia aplicación.
Como se dice en el Github del proyecto, Zerodoor es un script desarrollado en Python (muy utilizado para desarrollar tools en el mundo de los pentesters) que permite generar backdoors para las necesidades diarias del pentester en un proyecto de Ethical Hacking. Estos backdoors son generados de forma sencilla, como se verá en este artículo. Una vez que se genera el payload se puede generar un binario para sistemas *nix o Windows, incluso se puede preparar para código Powershell. En este artículo se mostrarán las diferentes opciones que trae la herramienta, la cual, como se ha mencionado, ha implementado posibilidades para Powershell en las últimas versiones. Esto siempre le da un toque de poderío a la herramienta.
Para arrancar la aplicación se puede ejecutar el único script de Python que encontramos en el GitHub desde nuestro Kali Linux, tras hacer el git clone del proyecto. Lo primero que nos aparece es un mensaje de descarga legal y las diferentes opciones que tenemos de base:
Si pulsamos sobre la opción de backdoors, podemos ver cómo se ofrecen tres opciones nuevas: la posibilidad de generar una backdoor en Linux, la posibilidad de generar una backdoor en Windows y la nueva posibilidad de generar instrucciones en Powershell que permitan ejecutar código remoto. De esta última opción hablaremos más tarde.
En la imagen, se puede ver cómo tras insertar la Opción 2 se nos solicita varios datos, como son LHOST y LPORT, es decir, la dirección IP dónde la backdoor devolverá el control de la máquina remota y el puerto al que se tendrá que conectar la conexión inversa.
Una vez confirmados los datos que nos piden, se genera un nuevo fichero, el cual se puede ver en el sistema de archivo llamado winshell.c. En la imagen, se puede ver el código de la backdoor, la cual es muy simple, y puede ser modificada para mejorar sus prestaciones, al menos de cara a la evasión de los antivirus.
Se puede ver, que la backdoor ejecutará un cmd.exe y se conectará a una dirección IP y un puerto. Estos datos fueron configurados previamente en la ejecución del script y en la selección de las diferentes opciones.
PoC: Powerdoor en Zerodoor
La Opción 3 del script de Zerodoor proporciona la posibilidad de utilizar Powershell para ejecutar instrucciones, lo cual es realmente interesante, pensando también en la evasión. La instrucción que por defecto nos proporciona Zerodoor para Powershell es detectado, a día de hoy, por Windows Defender en Windows 10, lo cual es algo a tener en cuenta.
Cuando elegimos la opción de Powershell nos solicitan información sobre LHOST y el nombre del fichero que se buscará en el servidor. En este caso hemos elegido exec.txt como nombre de fichero que será buscado en el servidor y ejecutado.
El fichero exec.txt contiene el código Powershell que ejecutará las diferentes instrucciones. En este caso, y para probar, hemos optado por la instrucción calc.exe. Lógicamente si utilizaremos funciones, instrucciones o scripts más potentes orientados al Pentesting con Powershell, ganaríamos en posibilidades.
Cuando descargamos la instrucción a través del navegador y la pegamos en la Powershell, obtenemos una calculadora. Hemos logrado ejecutar código, a través de la Powershell y el límite lo marcaremos nosotros con todas las posibilidades que tenemos al alcance de la mano con Powershell.
Para finalizar, decir que es una herramienta que debemos tener en la mochila como script útil para generar una backdoor en un momento determinado de un Ethical Hacking. Además, recomendamos el uso de OWASP ZSC o msfvenom, las cuales aportan un mayor número de funcionalidades y posibilidades. También hay que decir que Zerodoor es una herramienta nueva que tiene posibilidades de mejorar.
Figura 1: ZeroDoor: Un script en Python para crear backdoors multiplataforma |
Como se dice en el Github del proyecto, Zerodoor es un script desarrollado en Python (muy utilizado para desarrollar tools en el mundo de los pentesters) que permite generar backdoors para las necesidades diarias del pentester en un proyecto de Ethical Hacking. Estos backdoors son generados de forma sencilla, como se verá en este artículo. Una vez que se genera el payload se puede generar un binario para sistemas *nix o Windows, incluso se puede preparar para código Powershell. En este artículo se mostrarán las diferentes opciones que trae la herramienta, la cual, como se ha mencionado, ha implementado posibilidades para Powershell en las últimas versiones. Esto siempre le da un toque de poderío a la herramienta.
Figura 2: Información de ZeroDoor en GitHub |
Para arrancar la aplicación se puede ejecutar el único script de Python que encontramos en el GitHub desde nuestro Kali Linux, tras hacer el git clone del proyecto. Lo primero que nos aparece es un mensaje de descarga legal y las diferentes opciones que tenemos de base:
• Generar backdoors.
• Configurar listener.Para este primer ejemplo, vamos a optar por la opción backdoors, ya que crearemos una para Windows, tal y como se puede ver en la imagen.
Figura 3: Opciones de ZeroDoor para crear BackDoors o Listeners |
Si pulsamos sobre la opción de backdoors, podemos ver cómo se ofrecen tres opciones nuevas: la posibilidad de generar una backdoor en Linux, la posibilidad de generar una backdoor en Windows y la nueva posibilidad de generar instrucciones en Powershell que permitan ejecutar código remoto. De esta última opción hablaremos más tarde.
En la imagen, se puede ver cómo tras insertar la Opción 2 se nos solicita varios datos, como son LHOST y LPORT, es decir, la dirección IP dónde la backdoor devolverá el control de la máquina remota y el puerto al que se tendrá que conectar la conexión inversa.
Figura 4: Construyendo un backdoor para Windows |
Una vez confirmados los datos que nos piden, se genera un nuevo fichero, el cual se puede ver en el sistema de archivo llamado winshell.c. En la imagen, se puede ver el código de la backdoor, la cual es muy simple, y puede ser modificada para mejorar sus prestaciones, al menos de cara a la evasión de los antivirus.
Figura 5: Fichero winshell.c generado |
Se puede ver, que la backdoor ejecutará un cmd.exe y se conectará a una dirección IP y un puerto. Estos datos fueron configurados previamente en la ejecución del script y en la selección de las diferentes opciones.
PoC: Powerdoor en Zerodoor
La Opción 3 del script de Zerodoor proporciona la posibilidad de utilizar Powershell para ejecutar instrucciones, lo cual es realmente interesante, pensando también en la evasión. La instrucción que por defecto nos proporciona Zerodoor para Powershell es detectado, a día de hoy, por Windows Defender en Windows 10, lo cual es algo a tener en cuenta.
Cuando elegimos la opción de Powershell nos solicitan información sobre LHOST y el nombre del fichero que se buscará en el servidor. En este caso hemos elegido exec.txt como nombre de fichero que será buscado en el servidor y ejecutado.
Figura 6: Backdoor en Powershell |
El fichero exec.txt contiene el código Powershell que ejecutará las diferentes instrucciones. En este caso, y para probar, hemos optado por la instrucción calc.exe. Lógicamente si utilizaremos funciones, instrucciones o scripts más potentes orientados al Pentesting con Powershell, ganaríamos en posibilidades.
Cuando descargamos la instrucción a través del navegador y la pegamos en la Powershell, obtenemos una calculadora. Hemos logrado ejecutar código, a través de la Powershell y el límite lo marcaremos nosotros con todas las posibilidades que tenemos al alcance de la mano con Powershell.
Figura 7: Ejemplo de ejecución de calc.exe con Powerdoor |
Para finalizar, decir que es una herramienta que debemos tener en la mochila como script útil para generar una backdoor en un momento determinado de un Ethical Hacking. Además, recomendamos el uso de OWASP ZSC o msfvenom, las cuales aportan un mayor número de funcionalidades y posibilidades. También hay que decir que Zerodoor es una herramienta nueva que tiene posibilidades de mejorar.
Autor: Pablo González Pérez (@pablogonzalezpe), escritor de los libros "Metasploit para Pentesters", "Ethical Hacking", "Got Root" y “Pentesting con Powershell”, Microsoft MVP en Seguridad y Security Researcher en ElevenPaths
Interesante herramienta. La pondre en practica en mis auditorias. Denuevo gracias chema!
ResponderEliminar