Como se ha comentado en el post anterior, Shad0w cuenta con una arquitectura que puede ser interesante a la hora de implementar campañas de Red Team cuyo objetivo son sistemas basados en Windows. En dicho post se han realizado pruebas sobre sistemas Windows 8.1 y Windows 10 con Windows Defender activo y con todas las actualizaciones aplicadas para determinar si eran capaces de detectar la amenaza o si por el contrario “se la comían”. En este post siguen las pruebas, pero concretamente con otro formato diferente a un ejecutable PE para Windows y además, las mismas pruebas sobre un sistema Windows Server 2019 actualizado para verificar que tan cierto es que está pensado para entornos “maduros” tal como se indica en el sitio web oficial en GitHub y en la web del autor.
A la hora de generar Beacons es posible especificar un formato concreto, como por ejemplo PowerShell. Esto es precisamente lo que se pretende hacer a continuación y posteriormente, se realiza la prueba de transferir y ejecutar el script generado con los componentes habituales que se encuentran en PowerShell (concretamente usando el IEX).
En primer lugar se generan los beacons “static” y “staged” para transferirlos a la víctima tal como se ha visto en el post anterior, pero en este caso se generarán en formato PowerShell y posteriormente se levantará el listener. El primer problema detectado ha sido precisamente que a la fecha de redactar este post los beacons del tipo “staged” no soportan el formato Powershell por lo tanto será necesario crear un beacon estático con los problemas de detección que puede implicar.
Como se puede ver en la imagen anterior, se crea un fichero PS1 con el nombre “beacon-static.ps1” y en la segunda terminal se levanta el servidor HTTPS para recibir la conexión del Beacon en el caso de que se consiga ejecutar correctamente. Aunque los payloads estáticos pueden ser más pesados y “fáciles de detectar”, utilizando el mismo Windows 8.1 recién instalado, con las actualizaciones al día y el Windows Defender y Windows SmartScreen activados, los resultados han sido satisfactorios ya que desde una terminal con PowerShell se ha conseguido descargar y posteriormente ejecutar el beacon, lo que ha dado como resultado una nueva conexión en el C2 levantado con Shad0w, aunque como se puede apreciar en la siguiente imagen, el interprete de PowerShell interrumpe inmediatamente su ejecución debido a una excepción. Aún así, se consigue el objetivo esperado de recibir una conexión.
Bien. Ahora es el momento de hacer lo mismo sobre un sistema Windows 10 con todas las medidas de seguridad habilitadas y se procede a descargar y ejecutar el script PS1 correspondiente al Beacon.
En este caso, como se puede apreciar no ha habido tanta suerte y el sistema ha conseguido detectar la amenaza y bloquearla antes de ejecutarla.
Las últimas pruebas a realizar serán sobre Windows Server 2019, actualizado a la fecha de redactar este post y con las medidas de seguridad que cuenta este sistema. En este caso las pruebas que se harán serán las mismas que se han hecho sobre los sistemas Windows 10 y 8.1
Inicialmente se ha probado con PowerShell y efectivamente, tal como ha ocurrido con Windows 8.1 ha funcionado correctamente. No obstante tras unos instantes la terminal de PowerShell en el sistema Windows deja de responder y sale un mensaje de error, sin embargo se recibe la conexión por parte del beacon que es lo importante. Otro detalle que resulta curioso es que en la consola C2 de Shad0w detecta que la conexión proviene de un sistema Windows Server 2016 cuando en realidad el sistema es un Windows Server 2019, aunque a priori se podría decir que no es algo relevante para las operaciones que se ejecutarán sobre el sistema.
A continuación se realizan las mismas pruebas pero ahora utilizando un ejecutable en formato PE, tal como se ha hecho para los sistemas Windows 8.1 y Windows 10. Inicialmente se ha levantado un servidor web en la máquina del atacante para poder transferir los dos binarios generados en el primer post que corresponden a los beacons “staged” y “static”. Posteriormente se han intentado descargar utilizando el navegador web Internet Explorer 11 que viene por defecto en Windows Server 2019. En ambos casos los ficheros se han descargado sin problema en el sistema aunque aparece una advertencia en el navegador sobre la “autenticidad del editor” la cual como resulta evidente no se puede comprobar. A continuación se han ejecutado y efectivamente, se ha recibido la conexión. En el caso del “staged”, como ha ocurrido en los otros dos sistemas operativos, aparece el “Assertion Error” que se puede ver en la siguiente imagen pero aún así se recibe la conexión en el servidor C2 de Shad0w.
Como se ha mencionado, en ambos casos se recibe la conexión, aunque curiosamente detecta que la víctima es un Windows Server 2016 y en el caso del payload “static” aparecen algunos caracteres ilegibles en el texto que identifica la sesión.
Las pruebas realizadas han demostrado que Shad0w funciona bastante bien sobre un Windows Server 2019, con las restricciones de seguridad habilitadas por defecto.
Personalmente, me ha sorprendido el enfoque de la herramienta, las ideas y técnicas que explica el autor en su blog y que se plasman posteriormente en Shad0w, muy especialmente el siguiente post: https://blog.dylan.codes/defending-your-malware/
Durante las pruebas he intentado utilizar entornos actualizados y con versiones de sistemas operativos recientes, concretamente Windows 8.1, Windows 10 y Windows Server 2019. Hay que tener en cuenta que no he realizado las pruebas con ningún otro AV o solución de seguridad perimetral instalada en el sistema objetivo. Además, las pruebas de momento se han limitado a la transferencia de la muestra maliciosa en la máquina objetivo y su posterior ejecución para comprobar si efectivamente, el ataque es detectado correctamente o no. Los resultados han sido los siguientes.
PS1 | Beacon Staged (Ejecutable PE) |
Beacon static (Ejecutable PE) |
|
Windows 8.1 | NO DETECTADO. Aparece un error en el entorno de PowerShell pero se establece la conexión con el C2. | DETECTADO. Windows Defender identifica el binario como una potencial amenaza y lo pone en cuarentena. | DETECTADO. Windows Defender identifica el binario como una potencial amenaza y lo pone en cuarentena. |
Windows 10 | DETECTADO. Windows Defender identifica el script PowerShell como una potencial amenaza y lo pone en cuarentena. | NO DETECTADO. Aparece una ventana de error pero se establece la conexión con el C2. | DETECTADO. Windows Defender identifica el binario como una potencial amenaza y lo pone en cuarentena. |
Windows Server 2019 | NO DETECTADO. Aparece un error en el entorno de PowerShell pero se establece la conexión con el C2. | NO DETECTADO. Aparece una ventana de error pero se establece la conexión con el C2. Además, detecta incorrectamente la versión del sistema (Windows Server 2016 en lugar de 2019). | NO DETECTADO. Aparecen caracteres ilegibles en la consola del C2. Además, detecta incorrectamente la versión del sistema (Windows Server 2016 en lugar de 2019). |
De los resultados anteriores lo que más llama la atención es que todas las pruebas realizadas contra Windows Server 2019 han sido positivas, es decir, que el sistema no ha podido detectar ningún comportamiento malicioso, tal como se puede ver en la imagen siguiente, el sistema con el que se han realizado las pruebas se encuentra actualizado y las medidas de seguridad están activas.
Al parecer el trabajo que se ha hecho en Shad0w sigue siendo vigente casi un año después y funciona en versiones recientes y actualizadas de Windows. Por último, solo queda mencionar que faltaría realizar pruebas con el beacon instalado para verificar que efectivamente, se puede operar con el sistema comprometido sin problema y con total normalidad o si por el contrario, a la hora de ejecutar instrucciones hay algún problema o la muestra es detectada como maliciosa, algo que suele ocurrir en otras soluciones C2 del mismo corte. Por este motivo, se publicará un post más que extenderán el análisis que se ha realizado hasta este punto sobre Shad0w.
Espero que te resulte interesante y por favor, el Beacon que te ha generado Shad0w NO LO SUBAS A VirusTotal o plataformas similares en internet. Gracias!
Un saludo y Happy Hack!
Adastra.