Koadic no es una herramienta reciente, de hecho ya lleva cerca de 5 años en continuo desarrollo y aunque no alcanza el reconocimiento y aceptación de otras similares como Metasploit Framework, sin duda merece la pena conocerla en detalle y tenerla en cuenta para operaciones de post-explotación sobre sistemas Windows. Se trata de una herramienta similar a Empire o el payload de Meterpreter, pero tal como se describe en el sitio web oficial de Gitub (https://github.com/zerosum0x0/koadic) su enfoque es distinto ya que utiliza JScript/VBScript para las operaciones que se llevan a cabo entre atacante y víctima. Otra característica que llama la atención es que todo se ejecuta en memoria y funciona en versiones tan antiguas como Windows 2000 hasta versiones modernas de Windows 10. Como muchas otras herramientas de este tipo, su uso resulta común y familiar, solamente es necesario entender los términos y qué hace cada componente:
- Zombies. Representa cada uno de los objetivos comprometidos (víctimas). Similar a lo que viene a ser una sesión en Metasploit Framework, un zombie en Pupy/BeEF o un agente en Empire.
- Stagers. Representa los módulos que se ejecutarán en la herramienta para la distribución de payloads y el establecimiento de conexiones con los zombies. Todos los stagers disponibles a la fecha de redactar esta entrada se encargan de levantar un servidor en la máquina comprometida y esperan a que la víctima se conecte, descargue y ejecute el payload correspondiente.
- Implants. Se trata de aquellas instrucciones que se ejecutan en los zombies y las que realmente permiten la ejecución de un proceso de post-explotación en condiciones sobre el objetivo. Nuevamente, esto es equivalente a lo que se encuentra en Metasploit Framework con los módulos de “post” o los meterpreter scripts (ya deprecados), así como en Empire con los stages.
La instalación de la herramienta tampoco supone ninguna dificultad, se encuentra escrita para Python3 y tiene el fichero “requirements.txt” debidamente configurado para poder ejecutar “PIP3” e instalar todas las dependencias necesarias. Una vez instalado, se pueden ver los comandos disponibles.
El primer paso consiste en iniciar un listener por medio de alguno de los stagers disponibles en la herramienta.
Como se puede apreciar, cuando la víctima intenta acceder al sitio web generado por Koadic se obtiene un nuevo zombie en la terminal de Koadic, sin embargo hay que tener en cuenta que esto dependerá en gran medida del stager utilizado y si la víctima accede al enlace con un cliente compatible a dicho stager. Por otro lado, con una versión actualizada de Windows 10 el AMSI funciona correctamente y detecta el payload como una amenaza lo que impide su correcta ejecución, no obstante las pruebas realizadas indican que funciona correctamente en Windows 8.1 y anteriores incluyendo Windows Server.
Una vez conseguido un zombie, se puede interactuar con él utilizando el comando “zombies” o alguno de los implantes disponibles. El comando “zombies <ID>” permite ver información básica del zombie con el que se ha establecido una conexión.
Por otro lado, si lo que se busca es ejecutar comandos contra el objetivo utilizando una shell, la instrucción “cmdshell <ID>” permite hacerlo.
El uso de los “implantes” es una característica interesante en la herramienta, ya que facilitan el proceso de post-explotación sobre el sistema comprometido. Como se ha mencionado anteriormente en este texto, es muy similar a lo que puede verse en los módulos “post” disponibles en Metasploit Framework, aunque evidentemente MSF es bastante más completo y robusto, pero aún así es interesante ver cómo funcionan los implantes de Koadic.
Como se puede ver en la imagen anterior, todos los implantes siguen una estructura de directorios fácil de entender y se pueden apreciar que cada implante listado es “auto-explicativo” con simplemente leer el nombre. El uso de cualquier implante es muy similar a como se hace en otras herramientas similares como Pupy o Metasploit Framework, basta simplemente con ejecutar el comando “use” e indicar el implante, establecer las opciones que requiere para ejecutarse y posteriormente lanzarlo con un comando como “execute” o “run”.
Es una herramienta sencilla y que se puede explorar fácilmente en poco tiempo ya que como se ha dicho antes, es muy similar a otras herramientas del mismo corte. Como siempre, es importante que el “arsenal” de herramientas que se utilizan para pentesting o hacking sea lo más amplio posible y no quedarse con una única solución o alternativa. La variedad y conocer otras opciones en ocasiones puede ser decisivo en una auditoría. Dicho esto, espero que os animéis a probar Koadic si no lo habéis hecho ya.
Un saludo y Happy Hack!
Adastra.