DFIR - HUNTING

.

KILL CHAIN, DIAMOND, RESILIENCE, DETECT...

Normas, métodos, buenas prácticas.

SONDAS, AMENAZAS, INCIDENTES, ANALISIS

Productos, configuraciones y análisis.

CYBERWARFARE, GOBIERNOS, APT AVANZADO

Los mejores casos en Conexión Inversa.

CIBERGUERRA, MALWARE

Te contamos como se diseñan y como se aplican.

ATAQUES EN RED, INTRUSIONES, MALWARE Y APTs

Todo lo necesario para minimizar el impacto.

miércoles, 28 de enero de 2009

Disk Imaging

Pongamos el caso de que queremos copiar un 'pendrive' y convertirlo a imagen para su posterior análisis y verificación.

Uno de los procedimientos más manuales a la hora de realizar una copia de un dispositivo es utilizar el comando DD y Netcat para su copia en remoto

El comando dd (duplicate disk) es un comando pensado entre otras cosas para transferir datos desde un dispositivo o archivo hacia otro dispositivo u otro archivo

La sintaxis básica del comando es la siguiente:

dd if=origen of=destino

Donde if significa "input file", es decir, lo que queremos copiar y of significa "output file", o sea, el archivo destino (donde se van a copiar los datos); origen y destino pueden ser dispositivos (lectora de CD, diskettera, usb, pendrives etc.), archivos, etc.

El comando Netcat (a menudo referida como la navaja multiusos de los hackers) es una herramienta de red bajo licencia GPL (en la versión de GNU) disponible para sistemas UNIX, Miscrosoft y Apple que permite a través de intérprete de comandos y con una sintaxis muy sencilla abrir puertos TCP/UDP en un host (quedando netcat a la escucha), asociar una shell a un puerto en concreto y forzar conexiones UDP/TCP (útil por ejemplo para realizar rastreos de puertos o realizar transferencias de archivos bit a bit entre dos equipos).

Para el caso que nos trata, voy copiar un dispositivo 'pendrive' de 512 Mg de una maquina con Linux a una máquina con Windows 2003.

Para ello voy a utilizar las herramientas anteriormente citadas.

En la máquina Windows:

Ejecuto el comando Netcat poniendo a la escucha en el puerto 80 para que reciba los datos del pendrive de la máquina Linux. Mientras va recibiendo los datos creara un fichero 'usbimagen.img' en el disco c: que finalizará cuando se aborte la copia en la máquina Linux. Este fichero tendrá el mismo tamaño que el 'pendrive'

c:\>nc -l -p 80 >c:\usbimagen.img

En la Máquina Linux

Ejecuto el comando fdisk -l para ver la ruta que monta el dispositivo pendrive. En mi caso está en /dev/sdb1 y a continuación escribo el siguiente comando:

dd if=/dev/sdb1 | nc 10.2.86.82 80 (donde 10.2.86.82 es la IP Windows destino)

Una vez ha finalizado la copia ya tengo en el c: de Windows el fichero resultante de la imagen del 'pendrive'.



Referencias:

http://netcat.sourceforge.net/
http://joncraton.org/files/nc111nt.zip (netcat para Windows)

lunes, 26 de enero de 2009

Quemar despues de leer

Me hago eco de una noticia que cita el diario 'www.elmundo.es' y la cual transcribo a continuación (por si esta llega a desaparecer) dado el interés que suscita y de la que ya hable en este anterior post sobre la recuperación de 'pendrives' y otros dispositivos con información confidencial.

El texto dice esto:

Compra un MP3 con archivos secretos

" Un neozelandés compró en una tienda de Estados Unidos un MP3 que, sin saberlo, contenía 60 archivos con secretos del Ejército estadounidense, informó el canal de televisión One News de Nueva Zelanda.

"Cuanto más lo miraba, más veía cosas que no debería ver", explicó Chris Ogle, de 29 años, cuando examinó el reproductor que está dispuesto a entregárselo al Departamento de Defensa de EEUU si lo piden.

Entre las cosas que descubrió en el aparato, por el que pagó 18 dólares (13,9 euros) en un comercio de Oklahoma (EEUU), destaca una lista con nombres de militares norteamericanos en Afganistán.

Otro documento ofrece información privada de personal, incluido el número de seguridad social o, si la soldado es mujer, si está embarazada.

Una carpeta contiene el inventario de equipo en campamentos militares y otro detalla los números de teléfonos móviles de personar que estuvieron destinadas en Irak y Afganistán. One News dijo que marcó algunos números de teléfono y que funcionaban.

En los archivos aparece la advertencia de que la divulgación de su contenido está prohibida por la Ley federal, según la información del canal de televisión."

Como dije anteriormente en el post 'la curiosidad mato al gato' cuidado a quien dejais vuestros 'pendrives' , 'mp3' e 'ipod'

viernes, 23 de enero de 2009

LOG=EVIDENCIA+TRAZABILIDAD

En muchas ocasiones las empresas cuando tienen un incidente quieren saber en menos de un minuto respuestas a las siguientes preguntas ¿cuando ocurrió?, ¿quien lo hizo?, ¿por que lo hizo?.

Muchas de ellas no tienen respuesta ni la tendran por no disponer de una buena calidad en los registros de auditoría (y os aseguro que en estos casos la tensión se puede medir con un voltímetro.).

No voy a definir lo que es un log, pero personalmente para mi es una formula que se compone de EVIDENCIA + TRAZABILIDAD.

Evidencia porque representa un hecho o acción que es registrada. Trazabilidad por que permite realizar un seguimiento en el tiempo de las acciones, si a ello le añadimos 'el filtro' de sentido común podremos avanzar de forma significativa en una investigación.

Por lo tanto debemos de pensar que ante un incidente se precisan de 'pruebas' y estas son ni más ni menos que los registros del sistema y/o aplicaciones. Más cuando hay algún requerimiento judicial, ya que el Juez o el perito nos va a requerir de evidencias.

Personalmente me atrevo a dar una recomendación personal, antes de que pongamos herramientas para monitorizar o recolectar logs. No nos dejemos atraer por los 'cantos de sirena' de los productos comerciales o libres, o que nos quieran vender una herramienta con sistema operativo powerpoint (en la que todo funciona) os recomiendo el sentido común.

Sentido común el mejor filtro de un log.

Si compro la herramienta y luego me genera un evento que no se interpretar, ya puedo tirar la herramienta. Por muy buena que esta sea y por muy parametrizada que este siempre necesitará de interpretación y lógica humana. Con esto quiero decir que la persona que recibe la alerta debe de estar preparada para actuar ante el evento o desecharlo si este es un falso positivo.

Aquí, es donde esta el error, pretendemos explotar información a base de herramientas. Craso error. Primero hay que aprender e interpretar los logs de seguridad, observar y definir que eventos necesitamos (esto es lo que más tiempo lleva) y sobre todo discernir entre lo 'bueno' y lo 'malo'. Una vez aprendido es cuando podemos apoyarnos en herramientas para que nos ayuden.

Tipos de eventos a observar.

Distinguimos a dos clases. Aquellos eventos que son registros fijos que se almacenan en ficheros y que no tienen caducidad ninguna y aquellos que son volátiles.

Para aclarar quiero definir el concepto de volatilidad.

Volatilidad

Se define como volátil aquellas evidencias que se mantienen durante un tiempo y que pueden ser objeto de modificaciones o perdidas.

Por ejemplo, los registros del visor de eventos de Windows XP, Vista y 2003, posee un tamaño de 16 Mb de manera predeterminada. En el caso de haber muchas entradas de eventos al registro, estos se sobrescriben y la evidencia desaparece.

Lo mismo ocurre en dispositivos de comunicaciones como Switches y Routers, por lo tanto si se sobreescribe el log ya no tenemos respuestas a las preguntas formuladas al principio de este post.

Una vez sepamos interpretar o decidir ante un evento o alerta, como primer paso antes de comprar la herramienta, es asegurar que disponemos de una política de logs. Es decir analizar que máquinas y servicios deben disponer de logs y que eventos ha de filtrar o recoger (si es posible).

Como segundo paso, recomendaría que estuvieran centralizados (incluidos switches, routers, cortafuegos, antivirus, etc) de esta forma es más sencillo el poner reglas y herramientas que permitan explotar el contenido.

Como tercer paso y esto lo hablaremos en otro post, será mantener la integridad con firma digital.

No obstante como muchos ya habran dado el paso y estarán familiarizados con la interpretación de logs, quiero poner una pequeña lista de herramientas y a la que a buen seguro alguna me dejare.

logs centralizados

Snare - Multiplataforma y destaco que dispone de agentes para Notes, Exchange, apache, ISS, etc..
OSSEC - Recolector multiplataforma con multitud de agentes
syslog-ng - flexíble y escalable. Permite el almacenado seguro de logs centralizados en maquinas remotas (mejorado de syslog).
sdscsyslog - SDSC Syslog es un sustituto moderno y fiable de syslogd.
Lasso - Recolector centralizado de eventos de Windows con soporte para logs de aplicaciones de terceros.
Winlogd - Cliente syslog para Windows que permite al Log de Eventos hablar con syslog.

Análisis de logs y Correlación

logwatch - Sistema configurable para el análisis de logs.
logsurfer - Sistema diseñado para la monitorización de algunos ficheros de logs basados en texto en tiempo real.
logcheck - Simple utilidad diseñada para permitir a los administradores de sistemas, visualizar archivos de logs producidos en hosts bajo su control.
Logias - Consola para la detección de intrusiones en tiempo real para sistemas Windows NT/2K/XP.
LogMonitor - Herramienta basada en LogIDS que presenta la información de una manera más amigable
Logrep- Entorno de seguridad multiplataforma para la recolección, extracción y presentación de información de distintos ficheros de logs.
OSSIM - Herramienta que permite integrar y administrar en un mismo entorno distintas herramientas Open source. (cuadro de Mandos)
swatch - Herramienta para monitorización active de logs en sistemas Unix.

miércoles, 21 de enero de 2009

barackblog.exe

Ya me fastidia.

Todo el día en televisión, radio y prensa escrita. Tenemos presidente para rato.

Hoy el post no va de elecciones si no de troyanos, troyanos que aprovechan la ocasión para infectarnos lo más posible.

En nuestros antivirus hemos detectado la página http://store.worldnewsdot.com (¡¡ cuidado con lo que descargamos de esta página!!)

Resulta ser un sitio web en el que critican al recien presidente Obama, el dominio parece legítimo utilizando la misma presentación que sitio real de Obama, sólo con diferentes contenidos (ver imágen)



En cualquiera de sus Links, el sitio te descarga un archivo llamado "barackblog.exe"

Si tu sistema no está actualizado el troyano intentará a través de un exploit conocido como 'Trojan.Script.Iframer' infectar tu máquina.



Por no complicarme mucho la vida, lo paso directamente a virustotal y este es el resultado:




Es decir de 39 motores antivirus, 15 no lo detectan y ojo, algunos muy famosos y muy conocidos, destaco a Fortinet que lleva como última firma actualizada el 15 de Enero y atentos que no lo detecta. (algunos colegas míos en Zaragoza y Madrid estarán muy contenticos de su Fortinet ;-))

martes, 20 de enero de 2009

Obteniendo información del UserAssist

Hola. Hoy nos encontramos con un caso basado en una incidencia laboral. El gerente de una empresa ha detectado el uso abusivo de sus redes por parte de algunos empleados, por ejemplo el uso del emule, la instalación de juegos en puestos de trabajo y la instalacion de varios Pc's y portátiles con software para apuestas por internet.

Aunque la seguridad actual es muy laxa, el gerente se muestra muy preocupado tanto por la inseguridad como por el absentismo de algunos 'personajes'. Se ha puesto manos a la obra y ha contratado los servicios de una empresa de mantenimiento que le proporcione un Active Directory y poder poner controles.

Hasta aquí nada raro. Muchas pymes empiezan a tomar concienciación sobre seguridad informática y ponen medidas. El problema 'no técnico' lo tiene con la cantidad de horas poco productivas de algunos empleados y está dispuesto a repartir algún finiquito que otro. En aquellos que tiene sospechas claras ha decidido asesorarse legalmente y obtener las evidencias necesarias para presentarlas en caso de requerimiento ante un juez.

Empezamos...

El primer paso salvando los legales y poniendo controles de accesos, directivas y politicas de seguridad, consiste en revisar los logs para determinar el tiempo de uso del PC, realizar un pequeño inventario para saber que puestos tienen software no permitido y especialmente aquellos que tienen 'casino virtual'. Programa que tiene muy preocupado al gerente de la empresa dado que empieza a sospechar de la falta de cuadre de algunas transferencias y gastos en comida con tarjeta de credito (Alguien aposto al caballo ganador :-))


Para aportar alguna prueba coherente he pensado saber cuantas veces el usuario al que pertenece el portatil ejecuta la aplicación del casino virtual

Un metodo a 'simple vista' consiste ver
sobre el lado izquierdo del menu de inicio las aplicaciones que ha ejecutado el usuario, de esta forma podemos deducir que aplicaciones ejecuta, pero sigo sin saber cuantas veces lo ha hecho

Aparte de los muchos otros métodos que puede haber, hoy me centrare en una clave del registro que no esta documentada por Microsoft. Estamos hablando del UserAssist. En un principio el userassist es una clave del registro que contiene una lista de programas que con frecuencia aparecen en el menú de inicio.

Si nos vamos al registro de Windows nos encontramos que la clave siguiente contiene toda la información que buscamos pero con una sorpresa ¡¡ Esta cifrada!!

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\UserAssist


La pregunta es curiosa ¿porque Microsoft cifra el userassist?. ¿Es de vital importancia el proteger esta información?, yo creo que no, es más, parece una broma del programador.

Buscando por Google (no hay nada en Microsoft) existen muchas referencias que indican que la clave
está cifrada con el simple algoritmo ROT13. Este es un sencillo cifrado César utilizado para ocultar un texto sustituyendo cada letra por la letra que está trece posiciones por delante en el alfabeto

Por lo tanto para el análisis forense vamos a desencriptar esta clave y su contenido. Para ello y después de buscar por San Google me encuentro con este Script que me viene como 'anillo al dedo'.

;;Author: Kostic Dejan
;;Date: 07.04.2006

Gui, Add, ListView, vLst w700 h500 altsubmit, Path|Name|Data Loop,HKCU, Software\Microsoft\Windows\
CurrentVersion\Explorer\UserAssist\{5E6AB780-7743-11CF-A12B-00AA004AE837}\count
{
RegRead, rval
LV_Add("","{5E6AB780-7743-
11CF-A12B-00AA004AE837}",a_loopregname,rval)
}
Loop,HKCU, Software\Microsoft\Windows\
CurrentVersion\Explorer\UserAssist\{75048700-EF1F-11D0-9888-006097DEACF9}\count
{
RegRead, rsv
LV_Add("","{75048700-EF1F-
11D0-9888-006097DEACF9}",a_loopregname,rsv)
}
Gui,add,button,gdec,&Decrypt
Gui, Show
LV_ModifyCol(1,"100")
LV_ModifyCol(2,"485")
LV_ModifyCol(3,"100")
return

dec:
SetBatchLines,-1
LV_Delete()
SplashImage,,b1 c1,,Decrypting`nPlease wait...
Loop,HKCU, Software\Microsoft\Windows\
CurrentVersion\Explorer\UserAssist\{5E6AB780-7743-11CF-A12B-00AA004AE837}\count
{
RegRead, rval
d2:=StringMod(a_loopregname,
26-13)
LV_Add("","{5E6AB780-7743-
11CF-A12B-00AA004AE837}",d2,rval)
}
Loop,HKCU, Software\Microsoft\Windows\
CurrentVersion\Explorer\UserAssist\{75048700-EF1F-11D0-9888-006097DEACF9}\count
{
RegRead, rsv
d3:=StringMod(a_loopregname,
26-13)
LV_Add("","{75048700-EF1F-
11D0-9888-006097DEACF9}",d3,rsv)
}
SplashImage,off
return

StringMod(_string, _chars="") ;made by PhiLho, adapted by me
{
Loop Parse, _string
{
char := Asc(A_LoopField)
o := Asc("A") * (Asc("A") <= char && char <= Asc("Z")) + Asc("a") * (Asc("a") <= char && char <= Asc("z")) If (o > 0)
{
char := Mod(char - o + _chars, 26)
char := Chr(char + o)
}
Else
{
char := A_LoopField
}
rStr := rStr char
}
Return rStr
}

GuiClose:
ExitApp


Para ejecutarlo deberemos de instalarnos una herramienta interprete y generadora de scripts llamada 'AutoHotKey' más información aquí. Una vez ejecutado este es el resultado.



Como vemos en la imágen es interesante la desencriptación, pero realmente sigue sin decirme nada, tendré que afinar más la puntería en la búsqueda. En este caso la suerte fué de gran ayuda y tener amigos hasta en el infierno siempre viene bien. Una llamadita por teléfono y me cuentan que existe la herramienta que hace todo por mi.

Estamos hablando de UserAssist de Didier Stevens.

Esta herramienta esta pensada para el análisis forense, cumple su cometido a la perfección, no solo desencripta si no que además cuenta las sesiones, número de veces que se ha ejecutado y fechas de acceso; ideal para lo que estoy buscando.

Una vez descargado el programa desde aquí y ejecutado muestra lo siguiente



Si nos fijamos, en la pantalla tenemos el programa 'Casino' con 17 ejecuciones y la ultima fecha en que se ejecuto.

A continuación hay que revisar los logs del sistema, buscando las fechas de inicio de sesión para cuadrar los días y el usuario que lo ejecuto. Tambien voy a cuadrar la fecha de la instalación del programa 'casino'
con las fechas de descarga del programa 'rebuscando' en los logs del proxy y del router con acceso a internet.

Si todo va bien dispondré de información suficiente para entregar al gerente, en caso contrario habré aprendido a rebuscar en el userassist.

miércoles, 14 de enero de 2009

...y me quejo de la gripe!!

F-Secure ha publicado una lista de 1.500 dominios utilizado por el gusano Downadup (aquí la lista). Muchos de estos dominios si los cargas directamente desde tu navegador intentarán ejecutar algún tipo de software malicioso, asi que andate con cuidado y sobre todo hazlo de forma controlada y aislada

Para la máxima protección de los usuarios de tu empresa es posible que desees considerar la posibilidad de añadir el contenido de esa lista a tu lista negra de tu proxy, cortafuegos u otros elementos de protección.

También leo en su blog que este gusano cuenta en todo el mundo con unos 2,4 millones de ordenadores infectados y que a día de hoy se estima que ha crecido en unas 3.521.230. Es decir más de un millón de infecciones desde ayer


Tambien publica la siguiente tabla de Ip's infectadas:

Number of IPsRegistered country of the IP
38,277China
34,814Brazil
24,526Russia
16,497India
14,767Ukraine
13,115Italy
11,675Argentina
11,117Korea
8,861Romania
6,166Indonesia
5,882Chile
5,531Taiwan
5,162Malaysia
4,392Germany
4,261Philippines
3,958United States
3,719Colombia
3,307Spain
3191Thailand
2,871Kazakhstan
2,828Venezuela
2,685Mexico
2,518Europe (resolved to EU)
2,337France
1,901Bulgaria
1,789United Kingdom
1,655Pakistan
1,636Turkey
1,544Saudi Arabia
1,399Hungary
1,389Iran
1,272Poland
1,259Macedonia
1,193Japan
1,052Portugal
1,029Vietnam

Visto en: http://www.f-secure.com/weblog/

viernes, 9 de enero de 2009

El fontanero su mujer y otras cosas de meter

Pues eso, que de 'meter' se trata hoy.

Tenemos un equipo presumiblemente infectado, del cual hay que analizarlo y del que no sabemos nada, entendamos nada en cuanto a la infección y contraseñas del administrador y usuarios.

El portátil es una máquina con sistema operativo Windows XP del que hemos procedido a clonarlo en formato RAW y al que posteriormente accederemos realizando un montaje con el comando MOUNT de Linux (mount -o loop winxp.img loop). Tras diversos análisis y pruebas con diversas utilidades llegamos a la conclusión de que tiene un 'bicho' en su interior.

Para ver como actúa en tiempo real nos surge un problema (mejor dicho un reto) no podemos iniciar la máquina, ya que desconocemos las contraseñas de los usuarios y administrador.

Aunque existen muchas utilidades como ophcrack, Win recover,etc en formato de arranque por CD's, DVD's y programas para extraer los hash de las cuentas de los usuarios y 'parsearlas' por alguna utilidad (como CAIN) para averiguar la contraseña, hemos decidido 'ir por la vía rápida' ya que utilizar la fuerza bruta no es recomendable si principalmente no disponemos de tiempo.

Una solución que tenemos en nuestro sistema es: CHNTPW disponible desde esta url

CHNTPW es una herramienta famosa por su capacidad para modificar las entradas de la SAM en Windows 2000/XP/Vista, y que permite al usuario de manera efectiva inicializar o poner una contraseña de administrador para recuperar el acceso a un equipo. Esta herramienta junto con un disco de arranque de Linux es excepcionalmente eficaz, y considero que debe de ser parte de un analista o auditor.

En contraste con su uso típico, vamos a hacer uso de la función menos utilizada de edición del registro. En nuestra prueba de concepto, usamos CHNTPW para cargar un archivo de registro y navegar por la estructura. CHNTPW en modo de edición de registro es muy parecida a la línea de comandos estándar de Unix, ls mostrará la lista de los contenidos, y permitirá visualizarlo por la pantalla.

Por lo tanto como disponemos de la máquina montada como sistema de ficheros en NTFS (y gracias a que no está encriptado) nos centraremos en los siguientes ficheros del sistema donde se almacena la seguridad de Windows y de los que ya comente anteriormente su funcionamiento e importancia en este post

WINDOWS\SYSTEM32\CONFIG\SAM
WINDOWS\SYSTEM32\CONFIG\SOFTWARE (HKEY_LOCAL_MACHINE\SOFTWARE)
WINDOWS\SYSTEM32\CONFIG\SYSTEM (HKEY_LOCAL_MACHINE\System)
DOCUMENTS AND SETTINGS\PROFILES\%USERNAME%\NTUSER.DAT (HKEY_CURRENT_USER\{S-1-xxx...})
DOCUMENTS AND SETTINGS\PROFILES\%USERNAME%\NTUSER.MAN (HKEY_CURRENT_USER\{S-1-xxx...}



Si no tenemos montado el disco, también podemos acceder a los archivos anteriores utilizando una de las herramientas forenses como, Sleuthkit, Helix3 o SANS SIFT. Una vez que el archivo del registro se ha extraído o copiado, vamos a utilizar la herramienta.

Esto es el resultado y ejemplo de lo que hemos ido haciendo

Inicialización de contraseña

tstat01@wk16031:~$/.chntpw SAM
chntpw version 0.99.2 040105, (c) Petter N Hagen
openHive(sam) failed: Read-only file system, trying read-only
Hive's name (from header):
ROOT KEY at offset: 0x001020
...output supressed...
* = blank the password (This may work better than setting a new password!)
Enter nothing to leave it unchanged
Please enter new password: *


Selección de usuarios

tstat01@wk16031:~$ /chntpw -l SAM
chntpw version 0.99.2 040105, (c) Petter N Hagen
Hive's name (from header):
ROOT KEY at offset: 0x001020
Page at 0x6000 is not 'hbin', assuming file contains garbage at end
File size 262144 [40000] bytes, containing 5 pages (+ 1 headerpage)
Used for data: 218/16928 blocks/bytes, unused: 4/3392 blocks/bytes.
* SAM policy limits:
Failed logins before lockout is: 0
Minimum password length : 0
Password history count : 0
RID: 01f3, Username: , *BLANK password*
RID: 01f4, Username: , *BLANK password*
RID: 01f5, Username: , *disabled or locked*
RID: 03e8, Username:
RID: 03ea, Username: , *disabled or locked*
Hives that have changed:
# Name
None!


Navegación por la estructura del registro.

tstat01@wk16031:~$ ./chntpw -e NTUSER.DAT
chntpw version 0.99.2 040105, (c) Petter N Hagen
Hive's name (from header): admin.dominio1\ntuser.dat
ROOT KEY at offset: 0x001020
Page at 0x2f3000 is not 'hbin', assuming file contains garbage at end File size 3145728 [300000] bytes, containing 438
pages (+ 1 headerpage) Used for data: 32070/2356192 blocks/bytes, unused: 3517/718176 blocks/bytes.
Simple registry editor. ? for help.

[1020] > ls
ls of node at offset 0x1024
Node has 11 subkeys and 0 values
offs key name
[ 11b8] AppEvents
[ 70a8] Console
[ 7620] Control Panel
[ 13d20] Environment
[ 13e60] Identities
[ 14060] Keyboard Layout
[ 33c00] Network
[ 141a0] Printers
[ 14258] Software
[ 38878] UNICODE Program Groups

[1020] > cd Network

[33c00] \Network> ls
ls of node at offset 0x33c04
Node has 5 subkeys and 0 values
offs key name
[ 9bd00] M
[ 76230] Q
[ b6258] s
[ 81d40] T
[ b6ae0] x

[33c00] \Network> cd x

[9bd00] \Network\x> ls
ls of node at offset 0x9bd04
Node has 0 subkeys and 6 values
offs size type value name [value if type DWORD]
[ 75e4c] 34 REG_SZ RemotePath
[ 9bc2c] 32 REG_SZ UserName
[ a271c] 52 REG_SZ ProviderName
[ 9e61c] 4 REG_DWORD ProviderType 131072 [0x20000]
[ 9e32c] 4 REG_DWORD ConnectionType 1 [0x1]
[ a16ec] 4 REG_DWORD DeferFlags 4 [0x4]

[9bd00] \Network\x> cat RemotePath
Value RemotePath of type REG_SZ, data length 34 [0x22]
\\servidor1\agenda

[9bd00] \Network\x> cat UserName
Value UserName of type REG_SZ, data length 32 [0x20]
servidor1\jdiez

[9bd00] \Network\x> q

Hives that have changed:
# Name
None!


Como veís esta es otra forma de utilizar herramientas de ayuda para el análisis forense

Una vez realizado los pertinentes cambios podemos iniciar la máquina desde un VMware y analizar desde otra perspectiva el Aliens que lleva dentro, pero como esto es de otra película lo dejaremos para otra ocasión

miércoles, 7 de enero de 2009

Notas sobre un Forensic a un Router Cisco

En una auditoría de redes uno de los elementos más importantes y que casi nunca se audita o revisa a fondo son los routers y los switches. No voy a explicar la importancia de estos elementos de red ya que hay información a patadas y todos lo hemos utilizado, amado y sufrido a diario.

Aunque no soy muy conocedor de dispositivos como estos, me atrevo a escribir notas sobre este post, dado que llevamos unos días con un caso particularmente extraño de un router ADSL con anomalías y demás fantasmas, mas cuando ya se viene anunciando la existencia de rootkits sobre routers, tal y como se indica aquí

Para empezar con el análisis lo mejor es obtener por un lado la recopilación de evidencias volátiles y almacenarlas para luego ir comprobando, para ello utilizaremos y obtendremos la información de los siguientes comandos:

Show Commands
show version
show clock detail
show running-config
show startup-config
show reload

show ip route

show ip arp

show users

show logging

show ip interface
show interfaces

show tcp brief all

show ip sockets

show ip nat translations verbose

show ip cache flow
show ip cef
show snmp user
show snmp group

Además revisaremos los losgs de:

Console logging – Solo pantalla
Buffered logging – RAM (fifo)
Terminal logging – los enviados a vty
Syslog – si existiera
AAA accounting – Conexiones y accesos

Si deseamos algo de comodidad podemos utilizar la utilidad 'Router Audit Tool' que se basa en auditar el dipositivo y que tiene las siguientes características:

– Lenguaje PERL
– Multiplataforma (Windows & UNIX)
– Focalizada en auditoría

Aquí un ejemplo:



Por otro lado vamos a realizar un volcado de memoria .
Los volcados de IOS contiene una imagen completa del router y pueden revertirse con el fin de analizar el sistema

También cabe decir que los volcados pueden ser utilizados para extraer el tráfico de la red pudiendo utilizar el formato PCAP en un archivo para su análisis.

Las ultimas versiones del IOS generan dos archivos de 'core dump', el 'memory core' y el 'IO memory core', este contiene información obtenida de una parte de la memoria que es usada para el reenvío de paquetes. Estos dos 'core dumps' se generan cuando el router falla por alguna causa especifica, o también pueden ser generados manualmente como venimos comentando.

En el caso que nos ocupa, este incluye en su IOS un comando para el volcado de memoria:

#write core

El uso de este comando debe de hacerse en modo de ejecución privilegiada. Este comando causa el 'crash' y el contenido se vuelca a disco. Este 'dump' contiene la instalación y configuración la cual puede ser revisada 'forensicamente' hablando.

El volcado se puede salvar utilizando un servidor FTP, TFTP, RCP o a Flash disk y como el análisis no es trivial y depende del tipo de escenario en que nos encontremos, puede ser recomendable utilizar el servicio gratuito que proporciona la empresa Recurity Labs con su producto CIR (Cisco Incident Response)

CIR podemos usarlo para:

  • Extracción de scripts TCL. Las ultimas versiones del IOS permiten utilizar scripts TCL que pueden ser usados para generar puertas traseras.
  • Detectar si la imagen del IOS ha sido modificada.
  • Extracción de trafico de red. CIR puede extraer el trafico de red real que se encuentre guardado en este dump y guardarlo en formato PCAP

Una vez creado el caso (ver aquí) y evaluado con la herramienta. Nos aparece en el informe que genera tras su análisis, los procesos sospechosos los cuales vamos a analizar

Puesta en marcha

Primero: vamos a poner una serie de ACL's para configurar el router como un pseudo sniffer.

Para ello, lo mejor es una lista de control de acceso con una serie de permisos para proporcionar una vista del tráfico. Los contadores en las entradas de la ACL se pueden utilizar para encontrar el protocolo culpable

Extended IP access list 169
permit icmp any any echo (21374 matches)
permit icmp any any echo-reply (2 matches)
permit udp any any eq echo
permit udp any eq echo any
permit tcp any any established (150 matches)
permit tcp any any (15 matches)
permit ip any any (45 matches)

Segundo: Paralelamente y en una máquina Linux en modo promiscuo hemos configurado TCPDUMP para cotejar los resultados

tcpdump -i interface -s 1500 -w capture_file
Tercero: También hemos puesto en marcha un Snort con las siguientes reglas:

var ROUTERS [192.168.0.1,192.18.1.1] # Watch for Phenoelit.de UltimaRatio v1.1 string alert udp any any -> $ROUTERS 161 (msg:"UltimaRatio Exploit Detected"; \ content:"|FD 01 10 DF AB 12 34 CD|"; classtype:attempted-admin; sid:1200005; \ rev:1;) # Monitor failed logins, bad passwords alert tcp any any -> $ROUTERS 23 (msg:"Failed router authorization, invalid \ login"; flow:to_server,established; content:"% Login invalid"; \ classtype:attempted-admin; sid:1200005; rev:1;) alert tcp any any -> $ROUTERS 23 (msg:"Failed router authorization, bad \ passwords"; flow:to_server,established; content:"% Bad passwords"; \ classtype:attempted-admin; sid:1200006; rev:1;)

Continuara...

martes, 6 de enero de 2009

Conexioninversa ahora tambien en Forensic Focus

Hace un tiempo (algo mas de un año) que vengo escribiendo artículos y comentarios de forma mas o menos esporádica en Forensic Focus. Dado la cantidad de aportaciones que he realizado me han propuesto con referenciarme en su web.

Este es mi regalo del Día de Reyes.



Forensic Focus es todo lo relacionado con la materia del análisis forense, es un blog, una pagina web, un foro, un sitio de descargas y como no un sitio de intercambio de conocimientos. Tanto es así que incluso se presentan ofertas de trabajo.

Animo a los lectores de este blog a interesarse sobre forensic focus.

Un saludo a todos y felices Reyes.

Análisis Forense en profundidad 2.0 - Nuevo Curso -

Buenas lectores, De nuevo y de la mano de @securizame llega una nueva entrega del curso "Análisis Forense en profundidad 2.0" ...