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, 25 de mayo de 2011

Forensics Mac OSX (plist vs Registry)


Hola lectores,

Este post explora algunos de los lugares clave donde se puede encontrar información en una investigación sobre un Mac OSX

En el mundo que nos toca, los Macintosh se están convirtiendo en 'ordenadores' muy populares, como bien dice un amigo los Mac son divertidos. Por esta razón, es importante que los analistas forenses puedan entender dónde pueden encontrar información similar a la que ya existe en Windows.

Dentro de la estructura de ficheros de OSX nos encontramos con un juego muy interesante de ficheros llamados 'plist'

Archivos plist

En primer lugar, es importante saber lo que es una lista de propiedades (plist) y el tipo de información que se puede almacenar en su interior. Los desarrolladores de Apple describen el plist de la siguiente manera, "Es un conjunto de ficheros que organizan los datos en valores  asociando varios tipos de objetos. Estos objetos contienen una lista de propiedades que permiten a dispositivos y programas funcionar de una manera muy eficiente." No queda muy claro ¿verdad?.

Yo diria que los ficheros 'plist' pueden ser considerados como el "Registro" para OSX.  La información que se almacena en estos archivos es diferente para cada programa en el sistema. Cada uno contiene la configuración para el programa, que llama a la plist. Al igual que en Windows las entradas del Registro, si cambia un valor en el archivo, el programa se ejecutará de manera diferente. 

Los Plists pueden estar en tres formatos diferentes, siendo lo normal que sean en XML. Este formato es más portátil  y se pueden editar de forma manual. Los otros formatos están en binarios y ASCII. El formato binario se siguen utilizando hoy en día, pero rara vez se encuentra un plist con formato ASCII. Los Plists en formato binario se ejecutarán mas rápidamente si contiene una gran cantidad de valores.

Evidentemente, es muy incomodo de leer en este formato 'a pelo', por lo que el sistema operativo incorpora un editor propio para estos ficheros. En la siguiente pantalla tenemos un fichero 'a pelo' con TextEdit y el mismo abierto con la propia utilidad que viene en el sistema operativo



TIPOS DE PLIST

Autorun

En un Mac, la ubicación de esta información está en el fichero com.apple.loginitems.plist. En su mayor parte, cuando alguien instala un programa en una máquina Windows, el programa tiene una configuración predeterminada de inicio en el arranque. Por ejemplo una vez instalado el Messenger, este se iniciará automáticamente en el arranque a menos que le indiquen lo contrario. En Mac si uno quiere tener un inicio de un programa debe indicarle al programa que lo haga.

El fichero com.apple.loginitems.plist se puede encontrar en la siguiente ubicación: /usuario/LibraryPreferences/com.apple.loginitems.plist.

Documentos recientes

En Windows, el registro contiene las entradas de documentos usados ​​más recientemente (MRU). El MRU es una lista de programas recientes y archivos accedidos. Además de la MRU, Windows tiene la entrada UserAssist. Esta entrada contiene información acerca de los programas más utilizado por un usuario. Estas entradas están cifradas con el algoritmo de ROT-13.

En el entorno Mac, estas listas son más limitadas. Se hayan dentro de la carpeta /usuario/Library/Preferences/com.apple.recentitems.plist.  y por defecto, Mac OS X hace un seguimiento de los últimos 10 accesos


En la pantalla anterior se puede apreciar el nombre de los servidores "Windows 7", "Time Capsule" y el documento IRPF1.

Redes inalámbricas

El SSID o identificador de una conexión de red inalambrica se registra en Mac OSX. Esto puede incluir conexiones a los hotspots Wi-Fi  o puntos de acceso similares. En el Registro de Windows, el SSID se almacena en una clave y la configuración, tales como la dirección IP, máscara de subred y otra información sobre una red particular, se almacena en otra clave.

Esto es similar en un Mac. Los dos plist a tener en cuenta se pueden encontrar en las siguientes ubicaciones:

hd/Library/ Preferences/SystemConfiguration/com.apple.airport.prefrences.plist
hd/Library/Preferences/SystemConfiguration/com.apple.network.identification.plist

Mediante el uso de estos archivos a la vez, se puede ver la última fecha en que el ordenador estaba conectado a esa red mirando el com.apple.airport.preferences.plist. Por ejemplo, la siguiente pantalla se puede ver la red WLAN_11 y parte de su contraseña, así como una red abierta de nombre eus-wireless.



Una vez que el analista tiene la fecha y hora puede ir a la plist de identificación de red. Allí se encontrará con más información acerca de la red, incluyendo: servidores DNS, dirección IP, la interfaz utilizada (por cable o inalámbrica), máscara de subred y el router. En la siguiente pantalla podemos apreciar los DNS's


Según los ficheros plist ubicados en la carpeta /hd/Library/Preferences/SystemConfiguration, el analista puede determinar cuando un sospechoso estaba conectado a una red. Se puede utilizar los servidores DNS para averiguar el ISP, así como la lista de redes y timestamp de accesos.

Los dispositivos que se han montado o detectado

En una máquina Windows cuando se inserta un dispositivo el número de serie para el dispositivo (si es USB) está registrado, por lo que es más fácil de probar que un determinado USB se conecta al ordenador del sospechoso. Algunos dispositivos USB no tienen un número de serie por lo que Windows crea una cadena aleatoria en lugar del número de serie.

En el Mac, el plist /usuario/Library/Preferences/com.apple.finder.plist, muestra todos los dispositivos como USB, ISO, CD, DVD o iPod, que están o se han conectado al ordenador.


Cuando un usuario descarga un programa en un Mac, un archivo con extensión DMG se abre con el fin de instalar el programa. Esto es equivalente a un EXE en Windows. En el Mac, estos archivos están montados para que el usuario vea el programa de instalación. También podemos con este 'plist' ver que ficheros DMG que se han montado (o instalado)


Este elemento lo suelo utilizar muy a menudo si el tema tiene que ver con licencias de software fraudulentas o violación de la propiedad intelectual y hablando de esto recuerdo un caso de un acusado que además de ser un amante de la música, guardaba todo tipo de imágenes con pornografía infantil dentro de un IPOD. En el siguiente plist nos detectaría esta información  /usuario/Library/Preferences/com.apple.iPod.plist. Con este archivo, podemos verificar si el iPod se ha conectado a ese equipo.


Historial de Internet

Safari


Safari es el navegador de Internet  que viene nativo en un Mac. En Windows, Internet Explorer  dispone en el registro tres subclaves: principal, TypedURLs y directorio de descarga. En un Mac, Safari cuenta con una configuración similar. Estos archivos se encuentran en /usuario/Library/Caches/Safari.

En la siguiente pantalla y utilizando el programa Juicer se puede ver como ha regenerado la carpeta cache, reconstruyendo en formato de carpetas y añadiendo el fichero INDEX.HTML que contiene todas las imágenes.


Otro gran lugar para buscar evidencias es el historial del navegador. El plist que se encuentra en /usuario/ Library/ Safari/History.plist proporciona todos los detalles.


Otro archivo no menos interesante es el fichero downloads.plist que permite saber que ficheros se han descargado desde Safari

Aplicaciones

Al igual que en el mundo de Windows, cuando un usuario instala un programa, una carpeta, se crea para ese programa. En Windows, la carpeta se crea normalmente en archivos de programa, y ​​contiene los archivos ejecutables y otros importantes como las DLL's o ficheros de parámetros.

En un Mac, el ejecutable se coloca en la carpeta de aplicaciones, y todos los demás archivos importantes que se necesitan para ejecutar el programa se colocan en la carpeta de Aplication support, que se encuentra a su vez en /usuario/Library/

En Windows, en su mayor parte, cuando un usuario desinstala un programa, todos los archivos y carpetas relacionadas con ese programa son posteriormente eliminados. En un Mac, esto no es cierto. Cuando un usuario desinstala o elimina un programa, todo lo que estamos haciendo es eliminar el ejecutable de la carpeta de aplicaciones. La carpeta de Aplication support seguirá conteniendo todos los archivos asociados con ese programa.


Resumiendo lo que hemos visto:

Autorun:/usuario/Library/Preferences/com.apple.loginitems.plist

Documentos recientes:/usuario/Library/Preferences/ com.apple.recentitems.plist

Redes inalámbricas:hd/Library/Preferences/SystemConfiguration/com.apple.airport.prefrences.plist hd/Library/Preferences/SystemConfiguration/com.apple.network.identification.plist

Dispositivos detectados/usuario/Library/Preferences/com.apple.finder.plist
/usuario/Library/Preferences/com.apple.iPod.plist

Historial de internetusuario/Library/Safari/History.plist
usuario/Library/Safari/downloads.plist

Aplicaciones
/usuario/Library/Aplication Support

Conclusiones:

Como comentaba al principio del post, el Mac está creciendo con una gran popularidad y es importante los que nos dedicamos al análisis forense y a la seguridad el estar al día sobre estos temas (Os recomiendo la lectura del blog Seguridad Apple), a buen seguro que nos encontraremos cada vez con más análisis de productos de Apple. (¿quien no tiene un iPad o un iphone en la empresa?)

Se que no he abordado otros ficheros plist, pero por no hacer extenso el post y como en el futuro pondré temas relacionados con Mac OSX a buen seguro que hablaremos de estos ficheros. Tengo un caso muy interesante de una denegación de servicio utilizando como Bots una red de Mac OSX, pero eso será más adelante...

martes, 17 de mayo de 2011

Dónde estará mi carro...(Forensics DropBox)


Hola lectores,

Ante todo pedimos disculpas por el retraso en el blog, la verdad que para mi han sido épocas de grandes cambios y muchos viajes, ante todo en el ámbito profesional, pero una vez todo establecido, continuemos con nuestros 'casos forenses', lo dicho espero que me disculpéis.

Emulando a la famosa canción que indica el título del post "mi carro me lo robaron, estando de romería!
".  Quisiera en esta ocasión hablar de un caso de fuga de información de un empleado que utilizo el servicio de DropBox para subir ficheros propiedad de la empresa y por tanto constituyente de un posible delito de propiedad intelectual y revelación de datos confidenciales.

El caso es el siguiente:

Carlos es una persona dinamica, atrevida, un buen comercial, una persona hecha a sí misma, luchadora, positiva, de voluntad férrea y con un carisma y empatía hacia los clientes casi ilimitados. (¿Conoces a alguien así?, seguro que si). Por supuesto que estas cualidades no aseguran el éxito, pero sí ayudan a conseguir un buen puesto en la pole position y eso fué lo que le paso a Carlos encontro el trabajo de su vida en una empresa con la que competia, pero cometio un pequeño fallo se llevo de la anterior lo que no era suyo.


Este caso ocurre cada vez más a diario en las empresas. Por un lado la falta de legislación interna (procedimientos, normas, gestión de la seguridad) y por otro la falta de controles tecnológicos como seguridad en los puestos y dispositivos: como pendrives, cámaras de fotos y discos externos permiten que los usuarios con cierto acceso a información de la empresa y tras un tiempo consideren que esa información también les pertenece (Craso error!!).

Ya hemos hablado de ello en otras cocasiones y quizas lo más importante de todo es la falta de formación y/o concenciación sobre todo en la parte directiva que todavía o no entiende o no llega a ver la magnitud del problema.

Volviendo al caso, Carlos se despidio en Enero y "casualmente" en Febrero trabaja para la competencia. La Dirección de la empresa ante la sospecha decide realizar un análisis sobre el equipo (portátil) para determinar si ha existido una fuga de información.

Veamos que tiene Carlos.

Hacemos lo habitual, representante de la empresa, representante sindical, apertura de acta, adquisición de disco, huellas, etc, etc..y una vez obtenido se procede a la explotación de los datos.

Tras un análisis superficial nos encontramos en la carpeta de "C:\Users\0200CAR\" una carpeta de nombre "Dropbox". con los siguientes ficheros:


Vamos a análizar que es y como descubrimos una fuga de datos en la máquina de Carlos utilizando  el servicio de DropBox.

Dropbox es un servicio de alojamiento de ficheros en la nube. El servicio permite a los usuarios almacenar y sincronizar archivos en línea y entre ordenadores y compartir archivos y carpetas con otros. El producto dispone de versiones gratuitas y de pago.

Actualmente tiene soporte para historial de revisiones, de forma que los archivos borrados de la carpeta de Dropbox pueden ser recuperados desde cualquiera de los ordenadores donde se disponga la misma cuenta. También existe la funcionalidad de conocer la historia de un archivo en el que se esté trabajando, permitiendo que una persona pueda editar y cargar los archivos sin peligro de que se puedan perder las versiones previas.
Si un archivo en una carpeta Dropbox de un usuario es cambiado, Dropbox solo carga las partes del archivo que son cambiadas cuando se sincroniza. Este acción es una de las que sale reflejada en esta actuación.

Los ficheros de la configuración del equipo de Carlos están en formato SQL LITE y por lo tanto y como en ocasiones anteriores es sencillo de poder analizar la estructura de la base de datos y tablas. Para ello me voy a basar en la información de mi buen amigo Derek Newton al cual conocí personalmente en una de estas quedadas de 'Analistas forenses' en Estados Unidos.
Veamos que contiene:

config.db: 

Contiene la configuración del cliente e incluye muchos campos de los que destaco los siguientes:
  • host_id:  Es el hash de autenticación utilizado por el cliente para autenticar en Dropbox. Este hash se asigna al realizar la instalación inicial y la autenticación y no cambia si este no es revocado desde la interfaz web de Dropbox.
  • correo electrónico: Dirección de correo electrónico titular de la cuenta.
  • dropbox_path: Ruta de acceso
  • recently_changed3: muestra la ruta / nombre de archivo para los últimos cinco ficheros cambiados recientemente . Este es probablemente el único campo realmente útil en el análisis forense.
  •  root_ns: Hace referencia a la ruta de acceso base Dropbox.

filecache.db:

Contiene una serie de tablas, pero el objetivo principal es describir todos los archivos de forma activa en el cuadro de selección.

  • file_journal: Incluye el tamaño de archivo, ruta de acceso (en bytes), mtime (fecha de modificación del archivo, en  formato POSIX), ctime (hora de creación), local_dir (bandera que indica si la entrada es un directorio ), block_ref: ID de archivo de mapas (fj_id) para presentar los hashes (hash_id) que se encuentran en la tabla block_cache.
  • block_cache: Identificador del hash (id).
  • mount_table: Aparece en las carpetas de lista que se comparten con otros usuarios de Dropbox.

host.db:

El fichero se encuentra totalmente vacío.

sigstore.db:

Almacena los valores hash con los que corresponden a los valores que se encuentran en la tabla block_cache en filecache.db.

unlink.db:

Parece ser un archivo binario.


En cuanto a nuestro Análisis forense nos encontramos con las siguientes evidencias centrandome en el fichero 'config.db' y que particularmente he exportado a Excel para su mayor manejo y comprensión del contenido de los campos (y destaco los que me parecen significativos en color rojo)




host_id: 1afd404a46c53dac85bc296bc60e9bdc

Es el identificador de Carlos en la nube de DropBox

email: carlos.pXX(borrado intencionadamente y poco más que decir que es una cuenta de correo en la que claramente identifica que ha utilizado una cuenta personal)

recently_changed3
tlp1 (V34923386:/DATOS_CLIENTES/clientes.xls I00 tp2 a(V34923386:/DATOS_CLIENTES/FORMULARIO_SERVICIOS.doc I00
tp3 a(V34923386:/DATOS_CLIENTES/shareddir.dat Ntp4 a(V34923386:/DATOS_CLIENTES/known2.met
Ntp5 a(V34923386:/DATOS_CLIENTES/known.met Ntp6 a.

Este campo es interesante dado que muestra la ruta y nombre de archivo para los cinco ultimos ficheros que han cambiado recientemente. La mayoría de los archivos que aquí aparecen incluyen los archivos eliminados o borrados de la lista desplegable.  El contenido para este registro se basa en texto y es coherente con el siguiente formato:

El texto comienza con "tp1", termina con "a"., el siguiente tp2 y así sucesivamente
Las entradas están en orden de más reciente a menos reciente y cada entrada es el nombre del archivo / ruta seguida por "I00".

Si el archivo se ha eliminado o borrado de la Dropbox, el "I00" el texto se elimina y una "N" se coloca en delante del texto "TP #"


Por lo tanto en esta entrada tenemos como minimo una lista de ficheros (tras consultarlo con la empresa, nos asegurán que los nombres coinciden con los que ellos disponen actualmente), los ficheros (entre otros) se llaman, clientes.xls y formulario_servicios.docx

También el fichero 'filecache.db' contiene información interesante:




Y ahora vamos a ver que ficheros son los que tiene sincronizados el DropBox o como mínimo los que la empresa ha identificado, para ello vamos a ver la tabla 'file_journal'




En ella vemos los id's: 158, 159 y 160 que contienen la ruta y el nombre de los ficheros. Evidentemente coinciden con los ficheros anteriores.

Para corroborar lo visto falta que nos traigan el móvil de Carlos, al cual en su momento pertinente procederé a realizar un análisis para disponer en el mejor de los casos de dos evidencias, siempre y cuando tenga montado en su dispositivo DropBox.

Conclusiones:

Una vez realizado el análisis del disco duro del portátil, se extrae que Carlos en un periodo entre un mes antes de su marcha a la competencia y dadas la evidencias siguientes se ve que estuvo trabajando con datos confidenciales a los que tenía acceso. Las evidencias (entre otras) mostradas en el informe fueron las siguientes:


  • En el disco duro no existen los ficheros propiedad de la empresa.
  • No existe actividad de inserción de dispositivos externos.
  • Aparecen referencias de accesos directos en documentos recientes.
  • En el fichero de paginación aparecen contenidos de estos ficheros (es decir se abrieron).
  • Se evidencia accesos del histórico de URL' de Firefox s a DropBox.
  • Se encuentra DropBox instalado y funcionando, se verifica la existencia de estos ficheros dentro de la bd.
  • Se recuperan ficheros borrados que coinciden con los que son propiedad de la empresa y se comprueba que la fecha de ultimo acceso es de cinco días antes de su marcha.


Ahora el caso está pendiente de la Justicia.

Quisiera comentar que según Derek y tal y como he leído en los foros de DropBox, parece ser que la autenticidad del usuario de una cuenta de este servicio es vulnerable con tan solo copiar el fichero 'config.db' a otro directorio base de DropBox que pertenezca a otro usuario, pudiendo suplantar y acceder a los datos de este. (Esto no lo he corroborado y se pasa del mero trabajo realizado sobre este portátil). Aunque si alguien ha accedido a tu máquina y es capaz de copiar el fichero de marras, quizás lo que menos te preocupes es que se lleven este fichero, dado que se  han podido llevar TODO.

Hablando de este y otros temas con mi buen amigo Yago Jesús de Security By Default, coincidimos en que sería tan simple como cifrar el contenedor de DropBox, cosa que Yago os explicará en breves en Security By Default. No os lo perdáis.

Referencias:


http://dereknewton.com/2011/04/dropbox-authentication-static-host-ids/
http://www.reversecurity.com/2011/04/video-demonstration-of-dropbox.html
http://forums.dropbox.com/topic.php?id=37231


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