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.

lunes, 21 de diciembre de 2009

Analizando Skype



Hola lectores,

El caso que vamos a ver hoy empieza a ser muy común con la crisis que tenemos encima. De todos es sabido que la facturación telefónica de móviles y de teléfonos fijos se revisa en las empresas con mucha exactitud con objeto de reducir gastos.

En este caso una empresa de servicios de soporte telefónico recibe una factura elevada por un empleado y se quiere analizar con objeto de depurar responsabilidades.

Más tarde se detecta una llamada a un número 800 lo que implica que se ha llamado a una linea erótica.
El empleado disponía de la aplicación Skype. Objeto de este post.


Skype es un programa que permite realizar llamadas utilizando Internet como medio. Esta aplicación es gratuita e incluye una característica denominada SkypeOut que permite a los usuarios llamar a teléfonos convencionales, cobrándoseles diversas tarifas según el país de destino. Otra opción que brinda Skype es SkypeIn, gracias al cual te asignan un número de teléfono para que desde un aparato telefónico en cualquier parte del mundo puedan contactar con tu ordenador.

El código y protocolo de Skype es propietario y no se dispone de código fuente. Su éxito reside en comprimir la transmisión de voz sin que afecte a la calidad. El programa ha sido desarrollado en Pascal, usando Delphi y también ha sido portado a Linux utilizando las librerias Qt.

Skype utiliza el algoritmo AES A 256-bit para cifrar la voz, la transferencia de archivos o un mensaje instantáneo. Para la versión de pago se utiliza el algoritmo RSA a 2048-bit y 1536-bit para la negociación a la hora de establecer la conexión. Para ello utilizan una llave asimétrica lo cual permite evitar ataques man-in-the-middle.

Una vez instalado mantiene un histórico con información como llamadas, ficheros transferidos, sesiones de mensajería, etc.

Deciros también que en cuanto a privacidad el perfil publico de una persona se mantiene durante 10 días, después de no haber iniciado sesión este perfil se elimina

Los otros usuarios de Skype pueden ver todo lo que escribes en tu perfil público, salvo el campo de tu dirección de correo electrónico, ya que se cifra antes de enviarla a la red para que nadie pueda verla cuando buscan contactos. No obstante, si ya conocen tu dirección de correo electrónico, pueden buscarte en el directorio.

El siguiente caso esta basado en un hecho real vamos a por ello.


La información de Skype se almacena en 'Document and Settings\usuario\datos de programa\skype'


Figura 1: Ruta de ficheros de Skype

Dentro de la carpeta Skype nos encontramos el fichero 'shared.xml' que contiene parámetros relativos a la configuración del audio, cortafuegos y servidores o supernodos. También dentro de cada perfil esta el fichero 'config.xml' que contiene la mayoría de los parámetros configurables desde la propia aplicación y a decisión del usuario.



En estos parámetros podemos ver estos importantes datos:

Primero la fecha de instalación en formato de fecha juliana, que una vez convertido nos dice que se configuro el perfil el día 25 de Noviembre de este año. Ademas se ve el alias utilizado y los destinatarios de su agenda.
También dentro del perfil nos encontramos con dos ficheros (main y dc) en formato BD-Lite o SQLite, siendo 'main' el más importante en cuanto a la información que debemos de buscar.


Para ver su contenido nos podemos descargar la utilidad SQLlite Admin disponible desde aquí

Podemos ver en formato gráfico como se componen la base de datos en tablas e indices.



Para centrarnos en la investigación voy a omitir algunas tablas importantes, dado que no son relevantes para este ejemplo como la tabla de SMS'S enviados y llamadas de pago (simplemente no se utilizo estos servicios).

EMPEZAMOS

Una vez ejecutado SQLlite Admin podemos ver varias tablas por las que podemos 'navegar' viendo su estructura y sus datos. Previamente a este proceso os recuerdo la necesidad de hacer un hash de los ficheros a análizar para mantener la integridad de los datos como ya comente en anteriores post.

La tabla 'accounts' contiene las cuentas o perfiles dadas de alta en el equipo los campos de interés en este caso son:

Skypename: Nombre del usuario Skype
Fullname: Nombre completo
languages: Idioma
email: Correo
profile_timestamp:Fecha de creación o modificación del perfil
aliases: Alias utilizado
avatar_timestamp: Fecha de creación o modificación del avatar
registration_timestamp: Fecha de registro de la cuenta


Figura 2: Cuentas

Aquí tenemos la base para establecer nuestra línea de tiempo y algo muy importante el 'avatar' dado que muchas veces se utilizan seudonimos para ocultar información.

La tabla 'contacts' contiene los contactos agregados, veamos los campos de interes:

Skypename: Nombre del usuario Skype
Fullname: Nombre completo
Displayname: Nombre mostrado
Mood_text: Mensaje de bienvenida del usuario agregado a los contactos



Figura 3:Contactos

Como vemos la cuenta agregada 'virginia' es de lo más sugerente ;-)

La tabla 'messages' muestra:

Chatname: Contiene el emisor y receptor con un valor númerico que corresponde a una carpeta temporal del disco que crea por cada conversación de chat iniciada
Timestamp: Fechas de inicio de la conversación
autor: Orden en nicks que inician la conversación
body_xml: Contiene el contenido de la conversación
call_guid: Contiene el directorio temporal que se crea en la sesión



Figura 4:Mensajes

Esta información importante dado que contiene lo que se ha dicho entre diversas conversaciones entre fechas

Tabla chats


Name: Identificadores de la sesión
Timestamp: Fechas de inicio de la conversación
Participants: Lo dicho participantes en la conversación por chat
FriendIlname: Contiene mensajes de texto intercambiados
FriendIlname: Contiene mensajes de texto intercambiados
lastchange: Ultimo cambio entre mensajes
dbpath: Contiene el nombre de los ficheros temporales que se crean durante la conversación



Figura 5: Chats

Es muy similar a la anterior de mensajes pero con la diferencia de que obtenemos algo más de información como es el número de telefono a donde se ha realizado alguna llamada.

Para comprobarlo realizamos una busqueda por google y este es el resultado:


Figura 6: Sin comentarios

Como buen análista voy a llamar desde el teléfono del cliente para comprobarlo

Tabla 'Transfers':

Partner_handle y partner_dispname: Contiene el receptor de ficheros
Startime: Tiempo de comienzo del envío de fichero (creo)
Filepath:Ruta y fichero que se adjunto para el envío de este.
Filename:Nombre del fichero
Filesize: Tamaño del fichero enviado


Figura 7: Transferencias

Es curioso que ademas de darnos la ruta y el fichero de origen que es aparentemente un PDF en el campo 'filename' aparezca un EXE. Tiene pinta de troyano. Esta será una evidencia a buscar posteriormente en el disco

CONCLUSIONES

Prácticamente en estos ficheros SQLLite disponemos de una completa información que nos puede ayudar en la búsqueda de información, aunque el fabricante no pone a disposición las especificaciones dado que considera confidencial la arquitectura de la aplicación.

Hemos visto algunas tablas, pero existe mucha más información en otros campos que son relevantes y que por el caso y por tiempo no pueden ser comentadas, quizás mas adelante en futuros post podamos aportar algo más de luz.

jueves, 3 de diciembre de 2009

Jugando con Bitlocker


O como Bitlocker juega conmigo.

Desde hace unos días tengo en mi puesto de trabajo a Windows 7 Enterprise y he decidido mirar por encima a Bitlocker  y sus posibilidades en el entorno forense (que por cierto son bien pocas).

BitLocker es una característica de encriptación completa de disco, incluido en las versiones Ultimate y Enterprise de Windows Vista y Windows 7 así como la de Windows Server 2008. Está diseñado para proteger los datos al proporcionar encriptación para volúmenes enteros. Por defecto se utiliza el algoritmo de encriptación AES en modo CBC con una clave de 128 bits. La última versión de BitLocker, incluido en Windows 7 y Windows Server 2008 R2, añade la habilidad de encriptar las unidades extraíbles.

Tan solo decir que si tenemos que analizar un disco con Bitlocker la tarea es virtualmente imposible y nos delegará a utilizar trucos o chapucillas. Todas las consideraciones son evidentemente con acceso físico al PC

Supongamos que disponemos de una partición de 100MG con cifrado Bitlocker y que deseamos obtener toda la información con objeto de descifrar su contenido para posteriormente analizarlo. Para ello se encuentra desde el panel de control la utilidad 'Bitlocker' que nos informara del estado de forma gráfica




Otra forma de hacerlo es utilizando el comando "manage-bde.exe". Utilizando el parámetro status:

c:\>manage-bde -status

Observaremos que la información que muestra nos indica que el volumen lógico "E" esta cifrado con BitLocker con una clave y una contraseña numérica. Esto nos da pistas de que debe haber un fichero con una contraseña en alguna parte.




NOTA: Se puede configurar Bitlocker para que la contraseña este en un 'pendrive' o tarjeta inteligente.

Si tuvieramos acceso al fichero de contraseña veriamos ocho grupos con seis números en cada grupo, tales como:

"047729-051392-045397-093071-568942-581757-717277-419606".


EMPEZAMOS

Una vez llegado a este punto el analista tiene que decidir cómo obtener este volumen para un posterior análisis.  Hay varias opciones (igual de malas) disponibles en este momento.

A) El analista (con privilegios de administrador) puede utilizar alguna herramienta en modo 'live'  y hacer una imagen de la unidad lógica siempre y cuando el sistema este funcionando ya que al utilizar la API de Windows los datos estarán descifrados. Si se realiza con el equipo apagado con un CD LIVE  el resultado final será una imagen completa del disco duro en su estado encriptado, y como ya os podéis imaginar hay que tirar de crakeadores y descifrados, tarea casi imposible.

B) Otra solución es desactivar BitLocker. Esta operación no descifra los datos, pero por el contrario nos permite reconstruir y almacenar la clave en el disco para que pueda ser descifrado la próxima vez o bien quitar la contraseña .Pero Oh!! problema, tenemos que ser administradores.








C) La mejor
alternativa que veo yo es realizar una copia bit a bit y luego conectarlo a un equipo en el que se ha instalado Windows 7con BitLocker activado. Windows verá el disco como un volumen externo  y pedirá la contraseña de recuperación.  Una vez introducido, Windows 7 montará el volumen y asignará una letra con la unidad descifrada.

D) Otra forma sería la siguiente:
  • Iniciamos con el DVD de Windows 7 y avanzamos hasta el momento en el que la instalación nos muestra el disco
  • En ese momento hacemos Shift+F10 y obtendremos una consola y nos mostrará la unidad  X:\ que es la letra que se le asigna al DVD en tiempo de instalacion.
  • Nos movemos a X:\windows\system32 y ejecutamos:
c:\>manage-bde -unlock D: -RecoveryPassword 047729-051392-045397-093071-568942-581757-717277-419606

D: es la unidad a abrir y los numeros que siguen a –RecoveryPassword es la clave de acceso
  • Una vez realizado, tendremos acceso al disco y podremos acceder a los datos pero aún nos queda desactivar BitLocker para ello ponemos:
c:\>manage-bde -off e:





Una vez desactivado podemos proceder al análisis sin ningún problema, os recuerdo que para realizar este procedimiento deberemos de disponer de la contraseña

COMPLICANDO LAS COSAS

Alternativamente, se puede configurar BitLocker con el TPM y una unidad flash USB, lo que significa que el proceso se puede complicar ya que el disco duro debe estar en la máquina original y el dispositivo flash conectado para que el usuario pueda arrancar el sistema. .Ademas necesitaremos la contraseña de recuperación.

Si la contraseña no se dispone o esta en un pendrive podemos despedirnos del disco duro mientras no la encontremos.

CONCLUSIONES

Nos encontramos con una solución bien acertada y madura que nos proporciona Microsoft para el cifrado de dispositivos. De esta forma podremos garantizar  al igual que otras soluciones como TrueCrypt que ante una pérdida de un pendrive o robo de un portátil nadie accederá a los datos.

Esto plantea un grave problema ante un análisis forense dado que si no disponemos de la clave de cifrado poco podremos hacer. En el caso de una empresa siempre podremos recurir a los administradores y que por medio del agente de recuperación nos podran dar acceso al análisis de los datos.

En el caso de un pedófilo con los suficientes conocimientos cifrará todos los discos extraibles (siempre que tenga la versión de Windows 7 adecuada o TrueCrypt) haciendo imposible su análisis (lógicamente tras requerimiento judicial) y ahí nos encontraremos en la encrucijada ¿podrá obligar un Juez a que un presunto pedófilo, revelé su clave? ¿Torturaremos al presunto hasta que grité la contraseña?

El tiempo lo dirá.

miércoles, 2 de diciembre de 2009

Manifiesto “En defensa de los derechos fundamentales en internet”

Hola lectores,

Como bien dice mi colega Yago Jesús de SecurityByDefault me sumo al manifiesto y suscribo al 100% todo lo que indica el manifiesto.

De todas formas he de decir que acatare las decisiones que las leyes nos indiquen y que estoy en contra de la piratería y de todas sus formas y formatos, pero me niego a que a cambio me convierta en un presunto culpable, tal y como me ocurre cada vez que me compro un 'pendrive' y pago un canon por presunta copia de ficheros de música y/o video, aunque lleve ficheros de mi empresa y no lo utilice para esos menesteres

Nos hemos vuelto locos.

La SGAE presiona a un peluquero por poner la radio en su peluquería (ver noticia)

Ahora dicen que quieren cerrar las web de descargas directas, y yo digo ¿que van a cerrar? ¿Megaupload, Rapidshare?, estos servidores no están en España, ¿acaso las operadoras van a cerrar el acceso a estos sitios?

La próxima... ¿nos cobraran por ver una reproducción de la  Gioconda en un centro comercial?

MANIFIESTO:

1.- Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.

2.- La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial – un organismo dependiente del ministerio de Cultura -, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.

3.- La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.

4.- La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.

5.- Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.

6.- Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.

7.- Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.

8.- Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.

9.- Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.

10.- En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.

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" ...