lunes, 15 de febrero de 2010

Descubriendo troyanos 2/3

El post anterior trata sobre registrar las conexiones que inicia un Windows hacia Internet. Tal operación se realiza con un Linux y una máquina virtual donde "enjaular" a Windows.

Una vez registradas las conexiones en /var/log/kern.log, hay que extraer las IPs remotas y averiguar más información sobre ellas. Como el número de conexiones a una misma IP puede ser muy elevado, conviene eliminar redundancias, obtener la lista de IPs únicas visitadas en un rango de tiempo que indicaremos y obtener más información mediante el servicio whois.

Para ello, he preparado un script en perl conex_report.pl, que hace todo el trabajo y nos saca esa lista junto con alguna información relevante de whois y lo deja en el archivo ubuntu.txt.

Un ejemplo de la ejecución del script:



Y su correspondiente informe de conexiones únicas del archivo ubuntu.txt



En la tercera entrega, veremos cómo hacer lo mismo pero con las conexiones registradas dentro de Windows.

sábado, 13 de febrero de 2010

Descubriendo troyanos 1/3

La mayoría de las veces, es infructuosa la búsqueda de troyanos en un Windows debido a los siguientes factores:
  • Se ocultan con Rootkits
  • Se propagan rápidamente vía web
  • Existe muchísima variedad y cada vez más
  • Muchos son 0-day que antes de ser descubiertos puede pasar mucho tiempo
Esto quiere decir que un Windows infectado por un rootkit que oculte a un troyano es garantía de pertenecer, con suerte, a una botnet y en el peor de los casos, tus datos personales incluyendo contraseñas y números de tarjeta de crédito (si has realizado compras por Internet) estarán en una base de datos lista para ser vendida.

La solución que propongo es enjaular un Windows en una máquina virtual, exponer a Windows como cebo para los troyanos (navegando con IE sin cuidado) y monitorizar las conexiones de red dentro de Windows y fuera de él (mediante el S.O. anfitrión) durante días.

Comparando ambos resultados, las conexiones remotas que estén registradas fuera de Windows y que no estén registradas dentro de Windows son, seguramente conexiones realizadas por rootkits troyanizados.

En esta presentación en PDF muestro cómo realizarlo con el siguiente software:
  • Ubuntu Linux 9.10
  • Virtual Box 3.0.8 para Linux
  • Windows, preferiblemente un XP pelado
  • Internet Explorer 6
  • WinPcap y WireShark