14 septiembre 2010

Folklorica 1.0 (El retorno de los Titiriteros)

Hace tiempo hablamos de un tipo de troyanos que denominamos 'Titiriteros' porque tenían la habilidad de emplear otros programas como 'Títeres' y de esa forma camuflar conexiones.

En concreto proponíamos el uso de la interface OLE/COM de Internet Explorer para lanzar conexiones al exterior mediante InternetExplorer.Application.1 que permite lanzar peticiones GET / POST y procesar las respuestas.

Esto supone varias ventajas frente a la típica 'shell inversa' orientada a conexión remota:
  • Muchos Firewalls personales validan las conexiones en función de los programas que las generan, si lanzas troyano.exe, y este programa se intenta conectar al exterior, probablemente 'saldrá en la foto', por contra si usas como títere Explorer, la probabilidad de que ese programa esté aceptado como 'valido' es muy muy grande.
  • En muchos escenarios (típicamente corporativos) no existe conexión directa hacia el exterior, se emplean proxys, normalmente con autenticación usuario/contraseña. Si empleamos Explorer para salir al exterior también podremos hacer un bypass a esta protección.
En el anterior post publicamos una pequeña prueba de concepto sobre el tema, en este caso le damos una vuelta mas al asunto y presentamos una herramienta para que te construyas tu propia 'Operación Aurora', su nombre: Folklorica, que haciendo uso de objetos OLé (perdón OLE), exporta al exterior un cmd.exe.

Folklorica funciona con arquitectura Cliente / Servidor:
  • Cliente: Se debe ejecutar en un entorno Windows, ejecuta un Explorer en modo oculto (no aparece la ventana) y envía peticiones al Servidor. Cuando el Servidor le indica que ejecute un comando, lo ejecuta, captura la salida y lo envía en otra petición http
  • Servidor: Se ejecuta en la maquina 'del atacante', simula ser un servidor HTTP para comunicarse con el cliente. Permite ejecutar comandos en el cliente.
Adicionalmente, toda la comunicación entre cliente / servidor está protegida con una capa de cifrado RC4 para que tanto los comandos enviados como las respuestas, no puedan ser interceptadas por sniffers o logs de proxys.


Y descargar la herramienta desde aquí

6 comments :

fossie dijo...

Interesante este tema aunque tengo un par de dudas. En esta ocasión el troyano es un script pyton por lo que en el process explorer también aparecerá Pyton en ejecución y si compilasemos el troyano como un exe este también aparecería en Process Explorer por lo que habría que ocultarlo.

Es cierto que el proxy nos lo saltaríamos pudiendo conectarnos a internet pero habría que camuflar el troyano ya que se podria detectar rápidamente.

reverseskills dijo...

Muy interesante, lo habia visto en algún malware funcionando cuando habia GPO de por medio para solo permitir el uso de iexplorer para acceso HTTP. Como POC no esta mal, sobre todo viendo el codigo esta todo bastante simplificado/funcional y esta bien para poder reutilizarlo en cosas más avanzadas. Es un 1.0 :-) seguro que para la 2.0 encontramos mas cosas como :


- ietroj.exe usando algun packer,etc. No creo que sea buena idea exportar de python a exe o almenos que este tan claro.
- https, creo que es mejor usar https a http/arc4.
- Algo tipo Webdav a la inversa? a lo mejor es más comodo para ciertas cosas.
- Actualizaciones desde servidor? :-P

Sigue así y buen nombre para la app xD

Carlos Prieto Lezaun dijo...

Suponiendo que el usuario haya instalado el "cliente" en su PC corporativo (antivirus falla o utiliza una vulnerabilidad), entiendo que única forma de controlar este ataque es utilizar navegación por listas blancas en el proxy (donde por supuesto no estará la dirección del "servidor").

Esta solución es bastante tediosa de administrar, ¿hay alguna otra?

Jar0b_ dijo...

Yo ya os he dicho alguna vez que este tipo de cosas, me alucinan XD

Lo voy a probar ahora mismo, a ver si es tan transparente como parece.

Evidentemente, animo a que saqueis la 2.0 con todas nuestras aportaciones.

Un saludo !

Yago Jesus dijo...

@fossie Claro, el proceso si se vería, para hacerlo invisible deberías meter un rootkit, no obstante si el troyano lo haces 'ad hoc' y no existe firma para ese .exe, ningún antivirus lo marcaría como 'sospechoso' además, como no hace uso de nada que requiera privilegios de admin, tampoco UAC saltaría.

@reverseskills Interesante aportación, lo de SSL lo pensé pero decidí enfocarlo a algo mas ligero. Para próximas versiones estaba pensando en un in / out de ficheros

@Carlos Yo tengo una forma de detectar este tipo de 'cosas' a ver si saco tiempo y lo añado al Patriot

@Jarob, muchas gracias por los ánimos ! intentare no dejar abandonado el proyecto

fossie dijo...

Interesante este tema aunque tengo un par de dudas. En esta ocasión el troyano es un script pyton por lo que en el process explorer también aparecerá Pyton en ejecución y si compilasemos el troyano como un exe este también aparecería en Process Explorer por lo que habría que ocultarlo.

Es cierto que el proxy nos lo saltaríamos pudiendo conectarnos a internet pero habría que camuflar el troyano ya que se podria detectar rápidamente.