Banner 1

Análisis forense en Windows (y II)

En la primera parte, discutimos los preparativos y cómo se debe preparar un entorno informático para realizar un análisis forense eficiente. Ahora nos dentramos en el ámbito de la intrusión y del entendimiento de los pasos del hacker a nivel de redes de sistema. Veremos utilidades y técnicas útiles en este trabajo de investigación.

Como vimos en la primera parte, debemos descubrir la intrusión (aunque aún no los medios utilizados para llevarla a cabo) y comenzar a descubrir las “huellas dactilares” (digitales). También debemos localizar el inicio de la intrusión, para tener una idea global del alcance de ésta.
En este punto de la investigación, tenemos razones para creer que los atacantes están haciendo uso ilícito de la red informática de la víctima para servir contenidos a sus amigos y vecinos. Mientras un servidor de contenidos, posiblemente, no serviría este material, la red de nuestra víctima no está cobrando por el servicio, y los atacantes campan a sus anchas. Una cosa más para preocuparse, la investigación ha determinado información suficiente que indica que los atacantes han conseguido acceso a las cuentas privilegiadas incluyendo la de Administrador.
Nuestros objetivos son bastante simples. Queremos determinar el destrozo realizado por el atacante sobre la red, el método de entrada y quién es físicamente el atacante (si es posible).

Creando un botiquín
Sería realmente útil disponer de personal cualificado en todas las empresas capaces de analizar registros de aplicaciones, acceso de usuarios y, en general, auditar la seguridad de una forma proactiva. Desafortunadamente, la situación real es bastante diferente a esto y muy pocas empresas tienen a su disposición detectores de intrusos (IDS – Intrusión Detection Systems), firewalls monitorizados, autentificación fuerte (las contraseñas son cosa del pasado) y sistemas de auditoria y registro de eventos completos. El problema es aún mayor en entornos grandes, donde debido a la gran cantidad de datos que se procesan, es prácticamente imposible realizar un análisis casi en tiempo real. Por eso, cuando un incidente ocurre, necesitamos de un botiquín y una metodología para investigar el estado de la red y poder tomar decisiones o recomendaciones inteligentes.
Es recomendable usar un ordenador portátil con los sistemas operativos Windows 2000 (y el Kit de Recursos de Windows 2000) y Linux para realizar las pruebas pertinentes incurriendo lo mínimo en la infraestructura de la empresa. También es necesario cargar ambos sistemas con una variedad de utilidades de análisis esenciales.
Estas son sólo algunas de las utilidades disponibles y representan las esenciales para analizar una red, aunque, por supuesto, sus preferencias pueden ser otras.

Comenzando
Antes de considerar en lanzar un Sniffer, necesitamos determinar los datos que estamos buscando en el tráfico de red. En una red conmutada de 100 Mbps no es fácil, en ocasiones, encontrar lo que queremos a la primera. Lo mejor es comenzar a examinar la máquina afectada, preferiblemente una que todavía esté bajo el control del atacante. Si el swicth dispone de la posibilidad de clonar un puerto (mirror ports) es preferible usar esta técnica para conectar el portátil sin intervenir en la red; además, al no haber cortes el atacante no debería sospechar nada. La mayoría de los switch gestionables permiten esta opción. Si el switch es convencional y no dispone del clonado de puertos, entonces la segunda mejor opción es la de incluir un Ethernet tap entre el ordenador y el swicth. Esta opción tiene el inconveniente de cortar la comunicación mientras se instala el tap.

Utilidades de Windows
Para todos los que hayan crecido “esnifando” principalmente en entornos UNIX, hay buenas noticias. La mayoría de las utilidades que se usan en UNIX están disponibles de alguna forma en Windows. Por ejemplo, la utilidad estándar tcpdump usada en muchas distribuciones UNIX ha sido portada con el nombre Windump. Windump hace uso de la librería libpcap (llamada WinPcap) y permite hacer uso de varias interfaces simultáneamente.
Después de descargar e instalar Windump y configurar el puerto clonado en el switch, podemos comenzar a capturar y preprocesar tráfico. Windump permite filtrar tráfico antes de grabarlo en texto, ASCII o hexadecimal. De esta forma, podemos crear filtros que minimicen la cantidad de tráfico recolectado. Por ejemplo, el siguiente comando capturará sólo el tráfico entre la víctima y el objetivo, y lo grabará en un archivo.
C:\> Windump -i1 host victim and target -w output
En realidad, raramente conocemos lo que estamos buscando en una captura inicial, así que la forma más apropiada de conducta es la de monitorizar todo el tráfico. En este caso queremos capturar el paquete completo, incluyendo las cabeceras. Además, ya que la máxima unidad de transferencia (MTU – Maximum Transfer Unit) para Ethernet es de 1500 bytes, estableceremos el tamaño de captura de paquetes a 1500 usando la opción –s. Finalmente, usamos –n para evitar que Windump realice una conversión DNS de las IP encontradas (así evitamos enviar pistas si el servidor DNS también resulta afectado por el ataque).
C:\> Windump -i1 -s1500 -n -w output
Para analizar estos datos, podemos usar Windump para leer la salida (output) y pasarla a través de una serie de filtros, pero es mucho más intuitivo usar una herramienta gráfica para este proceso. Ethereal es uno de los mejores Sniffers Open Source que existen y además incorpora una estupenda interfaz gráfica tanto para UNIX como para Windows.
Ethereal incorpora su propio lenguaje de filtros, que en ocasiones es más potente y fácil de usar que el del propio Windump.

¿Qué buscamos?
Al igual que al estudiar un equipo afectado por un virus, necesitamos tener un plan de actuación para una investigación correcta. Mientras que cada incidente tiene aspectos únicos, hay una serie de técnicas generales que son comunes en prácticamente todos los análisis de red. Estas son:
~ Equipos que más datos envían (Top Talkers).
~ Equipos que más datos reciben (Top Recipients).
~ Protocolos y puertos comunes.
~ Comparación con tráfico conocido.
~ Coordinación con el examen forense.
Los primeros cuatro elementos raramente sorprenderán a nadie, y en el caso de estudio que estamos investigando, sin duda, mostrarán la mayoría de la actividad. Después de todo, si alguna directiva dice que NetBIOS no debería existir en la red privada, es un claro signo de preocupación. Con el siguiente comando realizaremos una captura completa, para después usar Ethereal para analizar el archivo generado:
C:> Windump -i2 host TGT1 -s1500 -w output
Después de capturar datos durante un tiempo (típicamente capturaremos durante una hora), podemos comenzar a analizar el resultado. Después de abrir el archivo generado (output) en Ethereal, construimos un filtro para mirar paquetes SMB (el protocolo que usa Windows para transmitir archivos) y encontrar la lista de sesiones del equipo TGT1. Al inspeccionar el tráfico podemos comprobar una serie de intentos de autentificación de TGT1:
Estas parecen peticiones de autentificación para un recurso compartido de Windows. De hecho, podemos ver conexiones rápidas desde winbox.victim.com a TGT1.victim.com de una manera un tanto sospechosa también, ya que representa un proceso automatizado de intentos de conexión. Para instruir a Ethereal usando sus propios sistemas de decodificación, empleamos el siguiente filtro:
FILTER: (ip.addr eq 192.168.254.2 and ip.addr eq 192.168.254.205) and (tcp.port eq 1095 and tcp.port eq 445)
El resultado es el siguiente:
00000389 00 00 01 48 ff 53 4d 42 73 00 00 00 00 18 07 c8 ...H.SMB s.......
00000399 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ff fe ........ ........
000003A9 01 08 50 00 0c ff 00 48 01 04 11 0a 00 01 00 00 ..P....H ........
000003B9 00 00 00 a6 00 00 00 00 00 d4 00 00 a0 0d 01 4e ........ .......N
000003C9 54 4c 4d 53 53 50 00 03 00 00 00 18 00 18 00 66 TLMSSP.. .......f
000003D9 00 00 00 18 00 18 00 7e 00 00 00 0c 00 0c 00 40 .......~ .......@
000003E9 00 00 00 0e 00 0e 00 4c 00 00 00 0c 00 0c 00 5a .......L .......Z
000003F9 00 00 00 10 00 10 00 96 00 00 00 15 82 88 e0 4c ........ .......W
00000409 00 41 00 50 00 54 00 4f 00 50 00 73 00 62 00 61 .I.N.B.O .X.A.d.m
00000419 00 72 00 69 00 73 00 68 00 4c 00 41 00 50 00 54 .i.n.i.s .t.r.a.t
00000429 00 4f 00 50 00 a0 22 69 06 b4 2d 12 7f 00 00 00 .o.r..”i ..-....
00000439 00 00 00 00 00 00 00 00 00 00 00 00 00 8b e9 d5 ........ ........
00000449 b8 26 a1 f2 01 06 6b 6c e3 62 0d 7f fa 63 15 7f .&....kl .b..c.
00000459 7d d6 64 30 5e d0 ca 7d 5f 30 5f 13 a4 a7 c3 15 }.d0^..} _0_.....
00000469 d1 fb 87 33 8b 00 57 00 69 00 6e 00 64 00 6f 00 ...3..W. i.n.d.o.
00000479 77 00 73 00 20 00 32 00 30 00 30 00 32 00 20 00 w.s. .2. 0.0.2. .
00000489 32 00 36 00 30 00 30 00 20 00 53 00 65 00 72 00 2.6.0.0. .S.e.r.
00000499 76 00 69 00 63 00 65 00 20 00 50 00 61 00 63 00 v.i.c.e. .P.a.c.
000004A9 6b 00 20 00 31 00 00 00 57 00 69 00 6e 00 64 00 k. .1... W.i.n.d.
000004B9 6f 00 77 00 73 00 20 00 32 00 30 00 30 00 32 00 o.w.s. . 2.0.0.2.
000004C9 20 00 35 00 2e 00 31 00 00 00 00 00 .5...1. ....
Cuando Ethereal decodifica el tráfico SMB inserta “.” en los caracteres usados para la comunicación a bajo nivel así como en la posición Unicode no imprimible en nuestro código de teclado (recordamos que Unicode usa dos bytes por carácter). Por eso, veremos “W.I.N.B.O.X.A.d.m.i.n.i.s.t.r.a.to.r.” indicando que el Administrador de winbox está intentado acceder a TGT1.
Ethereal es particularmente útil al conducir análisis de este tipo, ya que es posible ver rápidamente una representación hexadecimal del paquete de datos para buscar alguna anomalía. En cambio, en un escenario del mundo real puede ser bastante difícil llegar a una conclusión como ésta al coexistir cientos de conexiones simultáneas legítimas.
En ocasiones es más útil usar herramientas creadas por hackers para encontrar anómalias más rápidamente que en un análisis manual del tráfico. Una de las mejores es dsniff, una herramienta que captura nombres de usuarios e incluso sus claves para los protocolos siguientes FTP, Telnet, HTTP, POP, NNTP, IMAP, SNMP, LDAP, Rlogin, NFS, SOCKS, X11, IRC, AIM, CVS, ICQ, Napster, Citrix ICA, Symantec pcAnywhere, NAI Sniffer, Microsoft SMB, y Oracle SQL.

Reconociendo intrusiones
Por ahora resulta bastante obvio que el proceso de análisis manual de un registro generado por un sniffer como Windump consume demasiado tiempo. Usando utilidades gráficas como Ethereal, obtendremos una visión más clara sobre lo que ocurre en nuestra red, pero aún así, a veces no resulta trivial averiguar las intrusiones de esta forma.
Por ello, la mejor opción es usar un IDS, y en concreto uno de los mejores, además de Open Source, Snort. Snort posee un motor de paquetes muy potente que usado adecuadamente puede ahorrarnos muchísimo tiempo al analizar un ataque. Además si se le añade un entorno gráfico como ACID (ver enlaces) es posible desarrollar análisis estadísticos automáticamente. Con los siguientes filtros para Snort podemos detectar las conexiones a las unidades C: y D: en el sistema destino.
alert tcp any -> $HOME_NET 139 (msg:”NETBIOS SMB C$access”; flow:to_server,established; content:”\\C$|00 41 3a 00|”;)
alert tcp any -> $HOME_NET 139 (msg:”NETBIOS SMB D$access”; flow:to_server,established; content:”\\D$|00 41 3a 00|”;)
Estas reglas saltarán una alerta si cualquier máquina intenta montar una de las unidades indicadas en la dirección de red dada por la variable HOME_NET. Modificando estas reglas y añadiendo nuevas tendrá una visión más detallada de cómo está de comprometida la red.

Conclusión
Aunque hemos revisado a grosso modo algunas de las herramientas necesarias para llevar a cabo un análisis forense satisfactorio, ya se sabe que la experiencia es la madre de todas las ciencias, por lo que si no experimenta en situaciones hipotéticas no obtendrá la destreza para luego hacerlo en ámbitos reales.



Herramientas Windows Unix
----------------------------------------------------------------------------------------------
Sniffer Windump, Ethereal Tcpdump, Ethereal, dsniff
IDS Software Snort Snort
Análisis Software EtherApe, tcpreplay
Escáneres de puertos Fscan, nmapwin Nmap


No. Time Source Destination Protocol Info
---------------------------------------------------------------------------------------------------------------
27 4.7277 winbox.victim.com TGT1.victim.com SMB TREE CONNECT ANDX REQUEST, NTLMSSP AUTH
35 5.2552 winbox.victim.com TGT1.victim.com SMB TREE CONNECT ANDX REQUEST, NTLMSSP AUTH
42 6.3521 winbox.victim.com TGT1.victim.com SMB TREE CONNECT ANDX REQUEST, NTLMSSP AUTH


[Enlaces sobre seguridad]
-------------------------------------
¦ windump.polito.it ¦ Web oficial del Windump y de la librería WinPcap.
¦ www.datanerds.net/~mike/ ¦ Homepage del Sniffer específico Dsniff.
¦ www.ethereal.com ¦ Ethereal es una utilidad indispensable para ver lo que pasa en nuestra red.
¦ www.snort.org ¦ El poderoso IDS snort puede descargarse de esta web.
¦ www.andrew.cmu.edu/~rdanyliw/snort/snortacid.html ¦ Interfaz gráfica para Snort en Windows.

Fuente:http://www.idg.es/iWorld/articulo.asp?id=146923

No hay comentarios:

Powered by Bad Robot
Helped by Blackubay