- IronPython… OMFG - Marcello Salvati (byt3bl33d3r)
- https://github.com/byt3bl33d3r/Slides/blob/master/IronPython_OMFG_Derbycon_2018.pptx
- https://www.youtube.com/watch?v=NaFiAx737qg
IronPython… OMFG
1- Introducción
byt3bl33d3r, creador del conocido proyecto CrackMapExec, nos presenta SILENTTRINITY, su nuevo agente de post explotación basado en C#/.NET, Python e IronPython.
Para aquellas personas que hayan ido leyendo mis posts anteriores aquí en HackPlayers, ya sabrán por qué razón se está transitando poco a poco a estas herramientas basadas en C#. Para el resto, mencionar que actualmente existen numerosas protecciones contra el uso de PowerShell ofensivo que, poco a poco, están limitando su potencial, como son:
- AMSI
- Module Logging
- ScriptBlock Logging
- Transcription Logging
- Constrained Language Mode
Existen diferentes formas de saltarse las protecciones anteriores, sin embargo, la utilización de .NET a través de C# evita todos estos líos... y de ahí su atractivo.
El caso es que byt3bl33der se ha montado un agente de explotación sublime, ya que aprovecha todas las virtudes de .NET a través de C#, uniéndolo a una ejecución en memoria y una usabilidad al más puro estilo de Empire.
El funcionamiento de la tool se puede visualizar en el gráfico (explicación peste a continuación):
- Ejecutamos el servidor de SILENTRINITY en nuestra Kali y configuramos un listener
- Funcionamiento muy similar a Empire o MSFConsole.
- Creamos un stager con el objetivo de obtener un agente/sesión de la máquina víctima.
- Proceso similar a la creación de un .exe de meterpreter para obtener una sesión o utilización del launcher de Empire para obtener un agente.
- Una vez ejecutado el stager, este solicitará un .zip a nuestro servidor con los recursos necesarios para trabajar.
- Entre ellos, las .dll de IronPython, que serán las que hagan la magia junto a .NET.
- Una vez montado el chiringo, la sesión estará a la espera de Jobs, o dicho de otro modo, a la espera de los módulos de post exploitación que ejecutemos.
- Cuando ejecutemos un módulo (por ejemplo, Mimikatz), se enviará a través de un fichero .py que será ejecutado sin tocar disco y devolverá el resultado a nuestro servidor.
2- Instalación
La herramienta se encuentra en el siguiente repositorio:
- git clone https://github.com/byt3bl33d3r/SILENTTRINITY
- apt-get install python3.7
- apt-get install python3.7-dev
- python3.7 -m pip install -r requirements.txt
- Para poner a funcionar el servidor:
- python3.7 st.py
3- Funcionamiento
Vamos a encontrarnos, como ya adelanté antes, con una sintaxis similar a Empire y/o Metasploit. Lo primero que vamos a hacer es configurarnos un listener:
- Escribimos listeners y nos llevará a la pestaña de los mismos
- Al utilizar el comando list podremos ver los listeners disponibles y los que están actualmente funcionando.
- Por ejemplo, seleccionamos un listener de tipo http --> use http
- Dentro de la pestaña podremos desplegar las opciones --> options
- Asignamos los valores correspondientes con el comando set.
- Por último, lanzamos start para iniciarlo.
A partir de este momento solo nos queda hacer uso de algún stager para poner en funcionamiento nuestro arsenal.
- Siguiendo la misma sintaxis, utilizaremos un stager de tipo msbuild, el cual nos generará un archivo .xml y nos indicará el comando que tendremos que usar en la máquina víctima.
- msbuild.xml
- C:\Windows\Microsoft.NET\Framework64\v4.0.30319\msbuild.exe msbuild.xml
Se pueden apreciar las fases anteriormente descritas en la imagen anterior.
¡Disponemos de una sesión!
Ya solo nos queda enviar Jobs y disfrutar de la magia de SILENTTRINITY.
- Vamos a la pestaña modules y con el comando list podemos ver los diferentes módulos que dispone la herramienta.
- Mimikatz, Shell, execute-assembly, safetykatz, msilshellexec, internalmonologue, powershell, msgbox, excelshellinject.
- Destacar el módulo execute-assembly, que nos permite utilizar, a partir de sus .exe, herramientas escritas en C# como las incluidas en el paquete Ghostpack o el reciente Watson, de RastaMouse.
4- Últimas notas
SILENTRINITY tiene un potencial enorme y estoy convencido de que marcará un antes y un después. Antes de terminar el post, hacer mención a algunos puntos para acabar:
- En el proyecto de github es posible compilar un .exe y una .dll de SILENTTRINITY, imagino que cumplen funciones similares a msbuild en caso de que este no se encuentre en el sistema.
- La herramienta está aún en una fase temprana, por lo que nos esperan numerosos módulos y funcionalidades nuevas en el futuro.
- Todas las pruebas realizadas en este post se han hecho con Windows Defender y Windows 10 completamente actualizados y activos.
@attl4s
Riquísimo o.o
ResponderEliminarHello,
ResponderEliminarGreat post!
I would like to know if there is different way to load msbuild.xml file rather than SMB ? For example, http/s ?