parseando el fichero consolidated.db

Estándar

Hola a tod@s!

Como ya conoceréis, Iphone, al igual que otros smartphones, guarda información geográfica sobre los puntos en donde ha estado “el móvil”. Entre toda esta información, también se guarda la información de los puntos de acceso WI-FI que se encuentra en “el camino”, incluyendo su MAC.

Imagen 1.- Fichero Consolidated.db

En Seguridad Apple tienen un artículo bastante interesante sobre las aplicaciones existentes en Windows, las cuales extraen esta información y las pintan en Google Maps.

En el curso de Análisis Forense de dispositivos móviles que estamos impartiendo Juan Luis García Rambla y un servidor, y en donde nos estamos peleando con una serie de dispositivos, incluyendo el Iphone, estamos analizando esta información, junto con otras muchas más.

Uno de los puntos que tenemos que tocar, es la creación de herramientas simples que consigan extraer la información necesaria en alguno de los puntos de recogida de información.

Para ello, hemos preparado algunas demos con Python. Una de ellas, es la creación de dos scripts, los cuales extraerán y pintarán en Google Maps la información del fichero Consolidated.db de un Iphone 4.

El script lo único que hace es extraer los campos latitude y longitude de las tablas CellLocation y WifiLocation.

Imagen 2.- Campos WI-FI

Para ello, hemos utilizado un Wrapper llamado PyMaps, el cual pinta el mapa añadiendo las coordenadas extraídas previamente del fichero.

Los scripts no toman ningún parámetro como entrada, y únicamente tendremos que poner en un directorio creado previamente los siguientes ficheros:

Para el script GetCoords.py, una vez lanzado, éste devolverá un fichero HTML. Una vez abierto el fichero, podremos ver algo parecido a esto:

Imagen 3.- Extracción de coordenadas

En el caso del script GetWifi.py, una vez lanzado, éste devolverá un fichero HTML. Una vez abierto el fichero, podremos ver algo parecido a esto:

Imagen 4.- Extracción de coordenadas Wi-Fi

El código de los scripts….

GetCoords.py

#Horrible Script para extraer las coordenadas del fichero Consolidated.db
#El fichero se encuentra en el directorio private/var/root/Library/Caches/locationd
#Horriblemente codeado por Silverhack
import sys, sqlite3
from PyMaps import Map, PyMap
# Creamos un mapa
NewMap = Map()
NewMap.zoom = 3
connection = sqlite3.connect("consolidated.db")
cursor=connection.cursor()
cursor.execute("SELECT Latitude,Longitude from CellLocation")
for row in cursor:
 print "La latitud es %s, y la longitud es %s" % (str(row[0]),str(row[1]))
 </p>
     # Latitud y longitud
     # Importamos de la BD consolidated a las variables
     # que posteriormente pasaremos al Script PyMaps

 latitud= str(row[0])
 longitud = str(row[1])

  # Insertamos codigo html
 pointhtml = "I see you..."

     # Anyadimos el punto al mapa
 point = (latitud, longitud, pointhtml)

 NewMap.setpoint(point)
 gmap = PyMap(key="clave", maplist=[NewMap])

 mapcode = gmap.pymapjs()
showhtml = gmap.showhtml()
print showhtml
file = open('Coordenadas.html', 'w')
file.writelines(showhtml)
# Cerramos el fichero
file.close()

GetWifi.py


#Horrible Script para extraer las coordenadas WIFI junto con su MAC del fichero Consolidated.db
#El fichero se encuentra en el directorio private/var/root/Library/Caches/locationd
#Horriblemente codeado por Silverhack
import sys, sqlite3
from PyMaps import Map, PyMap
# Creamos un mapa
NewMap = Map()
NewMap.zoom = 3
connection = sqlite3.connect("consolidated.db")
cursor=connection.cursor()
cursor.execute("SELECT MAC, Latitude, Longitude from WifiLocation")
for row in cursor:
 print "La MAC es %s, La latitud es %s, y la longitud es %s" % (str(row[0]),str(row[1]),str(row[2]))
 

     # Latitud y longitud
     # Importamos de la BD consolidated a las variables
     # que posteriormente pasaremos al Script PyMaps

 latitud= str(row[1])
 longitud = str(row[2])

  # Insertamos codigo html
 pointhtml = str(row[0])

     # Anyadimos el punto al mapa
 point = (latitud, longitud, pointhtml)

 NewMap.setpoint(point)
 gmap = PyMap(key="clave", maplist=[NewMap])

 mapcode = gmap.pymapjs()
showhtml = gmap.showhtml()
print showhtml
file = open('WiFi.html', 'w')
file.writelines(showhtml)
# Cerramos el fichero
file.close()

 Para la ejecución de los scripts, tan sólo tendremos que utilizar Python 2.6 y pysqlite.

Saludos!

Volatility Framework Installer

Estándar

Hola a tod@s!!

Hace tiempo que salió al público el estupendo trabajo de muchos investigadores que dio como resultado la herramienta Volafility Framework.

Los que me conocéis, sabéis que yo llevo dando por saco con el tema de la memoria RAM desde hace bastante tiempo. Gracias a Dios, que conforme más tiempo pasa, más información sobre este tema hay.

Yo mismo he dado algún que otro Webcast en Microsoft sobre este mismo tema, he hablado en las FIST, y en algún que otro Asegur@IT.

El Framework está escrito en su totalidad en Python. En su día, para hacer funcionar la herramienta, tanto en Windows como en Linux o MAC, tan sólo hacía falta instalar Python y vualá! Ya teníamos el Framework en funcionamiento.

Hoy día la cosa ha cambiado bastante. Existen multitud de Plugins que hacen de la herramienta una tool muy poderosa para analizar por completo la memoria RAM, pudiendo ahorrar costes en tiempo en un análisis forense corporativo o por proyecto. E incluso por diversión!!

El problema para gente que está empezando en esto, es que a día de hoy existen tantos plugins y dependencias, que instalar la herramienta desde cero, y dotarla de una funcionalidad aceptable, puede conllevar una inversión de tiempo importante.

Esto lo pensó en su día Jamie Levy (aka Gleeda), colaboradora habitual en el desarrollo de Volatility Framework, y desarrolló, entre otros impresionantes plugins, uno con la posibilidad de descargar todos los plugins de un tirón. El script para la versión 1.4 de la herramienta, e instalación bajo Linux, lo tenéis disponible aquí.

Yo he realizado mi particular script (en batch! con dos cojones!! jaja) para la total instalación de Volatility Framework, junto con todas sus dependencias. Entre las “capacidades” del Script de instalación se encuentran los siguientes puntos:

  • Descarga e instalación de Python, MinGW
  • Descarga e instalación de YARA (Gracias Hispasec!!), PYGame, PIL (Python Image Library), Distorm3
  • Descarga e instalación de Volatility Framework 1.3 (Versión estable)
  • Descarga e instalación de Plugins válidos para la versión 1.3
  • Compilación automática e instalación de diversos plugins
  • Procesado de Logs de todo lo que se descarga
  • Procesado de HASH (MD5 y SHA1) de todo lo que se descarga
  • Inclusión de rutas en PATH para dotar de máxima funcionalidad
  • Inclusión de shell de comandos con el botón derecho del ratón para facilitar el análisis (Open cmd Here)

Ahora mismo, el script es totalmente funcional para instalarlo en Windows XP/Vista/7, y, como hoy en el FTSAI nos vamos a “pelear” con la memoria y todos sus componentes, me ha parecido buena idea colgarlo por aquí.

En su día, hablando con Lympex de opensec.es, éste me pasó una versión que desarrolló para Linux, la cual todavía no he puesto en el proyecto, debido a que tiene que actualizarse. Me ha prometido que cuando la tenga funcional la colgará en el proyecto.

El proyecto está alojado en Google, y ahora sí…. No tienes excusa para seguir ampliando conocimientos en materia Forense, porque documentación hay, y facilidades también!!

http://code.google.com/p/volatility-installer/

Esta semana he empezado a realizar el mismo script en PowerShell, debido a que como batch tiene muchas restricciones, he tenido que “tirar” de herramientas de terceros, como 7zip, wget y HashMyFiles para hacerla totalmente funcional. El script es muy sencillo de utilizar y no requiere parámetros. Sólo doble clic, y a jugar….

Nota: Tanto Python, como las dependencias, junto con MinGW, se instalan de manera interactiva con el usuario. Las instalaciones son del entorno Next–>Next, menos MinGW, que necesitaremos marcar las opciones de MAKE, más el compilador. Este paso de “interacción” es necesario, ya que de manera desatendida no se compilan bien algunas bibliotecas en Python bajo Windows.

Doy por supuesto (y por invitado!) que colaboraciones y ayudas, serán muy, pero que muy bien recibidas…..

Update.- Chema, de opensec, ya me ha pasado el script de instalación y está subido al proyecto. Su script soporta la instalación de Volatility Framework en los sistemas Arch, Debian y FreeBSD!

Buen fin de semana a tod@s!!

SYSTEM, causa y efecto III de IV

Estándar

SYSTEM. causa y efecto I de IV

SYSTEM, causa y efecto II de IV

SYSTEM, causa y efecto IV de IV

Hola a tod@s!
Este post está dedicado a observar el funcionamiento de un SID en lo referente a un usuario específico.
Un SID, o identificador de seguridad, es una estructura para identificar inequívocamente a un usuario o un grupo específico.
Desde Windows NT, esta estructura se encuentra definida en la librería WINNT.H.
La estructura de un SID contiene, entre otros, los siguientes elementos:

  • Revisión del SID
  • Un identificador de autoridad que identifica la autoridad de ese SID
  • Un identificador relativo (RID), el cual identifica unívocamente un usuario o grupo, en relación a la autoridad asignada al SID

La combinación del identificador de autoridad, unido a los identificadores de las sub-autoridades, asegura que no haya dos valores SID iguales.
El formato de un SID se forma usando una cadena estandarizada, la cual hace más fácil la identificación de sus componentes. El formato de cadena de un SID es el siguiente:
S-R-I-S[VALORES]
En donde:

Imagen 1.- Relación Valores & Especificación

Aplicando los elementos anteriores, un SID válido sería el siguiente:

S-1-5-32-545

En donde la traducción de este SID sería la siguiente:

 

Imagen 2.- Valores e identificación

Si se quieren obtener los SID validados en el sistema operativo, éstos se pueden extraer de varias formas.
Una forma ágil de obtener los SID del sistema operativo, es utilizando herramientas ya creadas específicamente para este tipo de usos. Las más conocidas con GETSID, del Kit de recursos de NT, y PSGETSID, de la archiconocida SysInternals. La utilización de este tipo de herramientas no conlleva ningún tipo de problemas, y su uso es rápido e intuitivo.

 
 

Imagen 3.- Uso de PsGetSid

Otra vía de acceso a los SID validados en un sistema operativo es por el registro de Windows. Las claves asociadas que guardan información relativa a un SID de usuario son varias, pero las más usuales y prácticas son las siguientes:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList
HKEY_USERS

Imagen.- SID en Registro de Windows

Otra forma rápida, fácil, y para toda la familia, es a través de Scripting. WMI y PowerShell, tienen capacidad para obtener todas las clases asociadas a un SID, y extraer la información de manera ágil. Gracias a que PowerShell tiene acceso rápido a toda la sintaxis de WMI, se puede scriptar todos los comandos de manera sencilla.

 

Imagen.- Extracción de SID a través de PowerShell

 
En el siguiente y último capítulo, veremos cómo se comporta la cuenta SYSTEM, así como el sistema operativo,  a la hora de intentar iniciar una sesión interactiva en el sistema, tal y como se suele utilizar en técnicas de elevación local de privilegios.
Saludos!!
Referencias
PSGETSID
http://technet.microsoft.com/en-us/sysinternals/bb897417
GETSID
http://download.microsoft.com/download/win2000platform/Getsid/1.0/NT5/EN-US/getsid.exe
Win32_SID Class
http://msdn.microsoft.com/en-us/library/aa394450(v=vs.85).aspx
How to Associate a Username with a Security Identifier (SID)
http://support.microsoft.com/kb/154599/en-us
How to deal with localized and renamed user and group names
http://support.microsoft.com/kb/157234/en-us

SYSTEM, causa y efecto. I de IV

Estándar


SYSTEM, causa y efecto II de IV

SYSTEM, causa y efecto III de IV

SYSTEM, causa y efecto IV de IV

Hola a todos!!

En esta serie de 4 capítulos, examinaremos las sutiles diferencias entre un usuario administrador y un usuario de sistema (SYSTEM). Estas diferencias, serán cruciales a la hora de decidir qué tipo de cuenta será necesaria para la explotación de un fallo en el sistema, o decidir si es o no imprescindible el uso de técnicas para ganar una posible elevación de privilegios. También nos ayudarán a conocer el porqué de ciertos comportamientos dispares entre cuentas aparentemente similares.
A nivel de sistema operativo, tanto la cuenta Administrador como la cuenta de sistema, son cuentas con los mismos privilegios. Esta equidad, sólo se manifiesta a nivel de ficheros. A nivel de directorios, la cuenta SYSTEM tendrá, obligatoriamente por diseño del sistema operativo, mayores privilegios que una cuenta de tipo Administrador.
La cuenta SYSTEM, es usada por el sistema operativo para la carga o precarga de elementos cruciales en el inicio del sistema operativo. Servicios y procesos que necesita Windows para el buen funcionamiento del sistema, y para el inicio del mismo. La cuenta, diseñada para ese propósito, es una cuenta interna, y por tal motivo, no podemos administrarla utilizando funciones básicas de administración, como por ejemplo las siguientes:

  • Administración de usuarios
  • Añadir o eliminar de grupos
  • Derechos especiales de usuario

Para demostrar esto, se pueden utilizar dos ejemplos básicos. Uno es a nivel de ficheros, y otro por ejemplo, es a nivel de Registro.
En Windows XP, por defecto la cuenta SYSTEM tiene control total en todos los ficheros y directorios del sistema operativo, y no como la cuenta Administrador, que tiene control total en casi todos los elementos del sistema. Un ejemplo válido es la carpeta SYSTEM VOLUME INFORMATION, ubicada en la raíz del sistema instalado, y que tiene como objetivo el almacenamiento de las copias de seguridad o puntos de restauración. Si se intenta obtener acceso a este directorio a través de una cuenta con privilegios únicamente de administrador, obtendremos un bonito error, ya que a nivel NTFS, no tenemos privilegios.

 
Imagen 1.- Acceso denegado en SYSTEM VOLUME INFORMATION

Otro ejemplo válido lo tenemos a la hora de visualizar elementos del registro de Windows. La cuenta SYSTEM tiene, por diseño del propio sistema operativo, control total sobre ciertas claves de registro, imprescindibles para el buen funcionamiento del mismo. Algunos de estos ejemplos son la clave SAM, en donde se almacenan los datos de los usuarios existentes en el sistema, y la totalidad de los permisos en la clave SECURITY, ubicada en la clave HKLM (HKEY LOCAL MACHINE). En la siguiente imagen, se puede visualizar un ejemplo de este tipo.


Imagen 2.- Elementos de registro visibles a través de la cuenta SYSTEM


A partir de Windows Vista en adelante, en el apartado referente al control de ficheros y directorios, y siempre hablando a nivel NTFS, se añade una nueva entidad con control total en el sistema. Esta entidad, llamada TrustedInstaller, es la encargada de una nueva característica en Windows Server 2008 y Windows Vista/7, llamada Windows Resource Protection.

Imagen 3.- Lista de control de acceso discrecional en Windows 7

En el siguiente post, repasaremos el funcionamiento de ambas cuentas a nivel de sesiones de usuario, evaluando el funcionamiento de las mismas en base a los perfiles que éstas crean.
Saludos!!
Referencias
Funcionamiento de ICACLS
http://technet.microsoft.com/es-es/library/cc753525(WS.10).aspx
Mecanismos reemplazados en Windows Server 2008
http://msdn.microsoft.com/en-us/library/aa382540(v=vs.85).aspx
Cómo es usada la cuenta SYSTEM en Windows
http://support.microsoft.com/kb/120929/en-us

Estafa a las 3. Nicolai Prochenko SE01X02

Estándar

Son las 10 de la mañana, y en la antigua Yugoslavia hace un día frío y lluvioso. Nicolai Prochenko es un individuo que ha estado entrando y saliendo del trullo desde los 19 años. Se había educado en la llamada Universidad de la Vida, pero con un pésimo profesorado. Experto en timos a pequeña escala y en engaños personalizados. La mala educación y un pensamiento sobre el dinero siempre ha estado presente en su educación y en suvida. La llamada del dinero fácil. Un sueño que todos quisiésemos alcanzar. Ganar mucho dinero invirtiendo y trabajando lo menos posible. Fruto de ese sueño, y con la cantidad de 200 Kunas, fruto de su último timo (Una venta de entradas caducadas), se reunió con un personaje de los bajos fondos que tenía un negocio para Nicolai. Algo llamado “fraude bancario”.

Nicolai y su socio, se reunieron en el café Estafinski para dar forma a la “visión”. Nicolai estaba nervioso porque no conocía a su nuevo socio, pero había leído sobre él en algo llamado Internet…. Tras pedir dos Marraskinos, resolvieron presentarse…

Nicolai: Hola amigo, me he enterado de tus hazañas y me gustaría que me ayudases a conseguir mi sueño. Cómo te llamas?

Desconocido: Me llamo Albert Gonzalez y te puedo ayudar con tu sueño. Mínima inversón, máxima repercusión…

Nicolai: Me gusta esa frase. Qué necesito para ponerme a ello?

Albert: Por 150 Kunas, puedo pasarte un CD con un programa. Este programa lo hará todo por tí con sólo unos clics de ratón. Si le dedicas algo de tiempo, dominarás países….

Nicolai: Pero tengo un problema. No entiendo de ordenadores….

Albert: Pero sabes encenderlo no? Coger el ratón?

Nicolai: Sí, esas nociones las tengo….

Albert: Sabes realizar transferencias bancarias?

Nicolai: Tengo a una persona que podría ayudarme a conseguirlo….

Albert: Pues reunes todas las condiciones! Este es un timo bastante fácil. Sólo tienes que montar el programa que te adjunto en el CD, y él se encargará de realizar todas las acciones por ti. Lo único que tienes que hacer es construir una gran mentira, y enviarla por e-mail a todas las personas que puedas. Puedes coger notas mirando estos artículos . De seguro que te ayudarán en tu “visión”….

Nicolai: Albert, aquí tienes tus 150 Kunas.

Albert: Toma tu CD. Vas a ser un hombre rico….

Nicolai: Me voy corriendo al concesionario, que he visto un Mercedes descapotable que me encanta….

Las 13:00 Horas. Un rayo de luz acaricia el rostro de Nicolai. Se fue corriendo a casa ya que tenía trabajo por hacer. Tenía un ordenador que había robado de una tienda de PC’S mediante la técnica del sillanizaje. Es similar a la del coche, pero utilizando una silla. Llegó a casa, se encenció un cigarrillo, y conectó el equipo.

El manual de instrucciones del CD era muy claro, y hablaba de una forma que Nicolai podía entender. Las instrucciones eran claras. La conexión a Internet debía pasar por una serie de Proxys anónimos, y, para entornos de pruebas, realizar la conexión desde una señal que no fuese la propia. Nicolai no entendió esta última parte y conectó su equipo a una Red WIFI que ponía OPEN. Primer paso realizado…

Una vez realizado este paso, tenía que ejecutar algo que ponía SETUP.EXE. Una vez realizado este paso, el CD instaló varias cosas:

  • Un servidor Apache
  • Soporte para PHP
  • MySQL
  • PHPMyAdmin

Todo ello a un clic de ratón. El sueño estaba cada vez más cerca. Ahora llegaba la parte difícil. Instalar lo que le separa de su ansiado Mercedes y sus buenas vacaciones en las Bahamas. El gancho.

El gancho venía en una serie de ficheros con extensión PHP, y no era más que el panel de Administración de un BOT para administrar Malware a través de Internet. La ruta de instalación era clara. Tan sólo tenía que dirigirse al directorio .install y él se encargaría de realizar el resto…

InstallNicolai

Imagen 1.- Instalación Zeus BotNet

Una vez instalada la aplicación, ésta muestra el proceso de la misma, indicando si ha habido algún fallo en la instalación.

Captura

Imagen 2.- Instalación finalizada y completada

El siguiente punto del manual es claro. Ya tienes tu panel de control! Ya puedes soñar con ese Mercedes y con las Bahamas y con las Morenacas!! Entra a tu panel de control siguiendo la ruta indicada a continuación:

http://IP_DEL_MALO/Zeus/Web/in.php

Dibujo

Imagen 3.- Panel de administración Zeus

El panel de Administración estaba vacío, pero su sueño cobraba vida. Una vez realizado este paso, le tocaba configurar el paso siguiente. “La gran mentira”.

La gran mentira consistía en un fichero de configuración que posteriormente se incluiría como base de conocimiento a un Malware específico. El fichero de configuración, y una vez averiguada la dirección IP pública de Nicolai, presentaba el siguiente aspecto:

Config

Imagen 4.- Fichero de configuración Zbot

Una vez configurado el fichero, el manual indicaba que había una aplicación para “montar” la “gran mentira”. La aplicación constaba de un ejecutable, un fichero binario que contenía el código maligno, y un fichero de texto que contenía información sobre bancos y redes sociales. Esta información la utilizará después el Malware para enviar los datos seleccionados (Usuario, Password y firma electrónica) a la base de datos de Nicolai.

SantanderConfig

Imagen 5.- Inyección Web Malware Offline

Una vez modificado estos archivos de configuración, el montaje se hace muy rápido, gracias a la utilidad de montaje incorporada en el CD de Nicolai.

Builder

Imagen 6.- Builder Zbot Malware

Perfecto…. La “gran mentira” estaba montada. Ahora sólo hacía falta leerse los artículos anteriores y mandar correos y SPAM a diestro y siniestro.

Pasados unos meses, Nicolai gozaba de gran popularidad en la Red, y su sueño cobraba vida propia. Era un gran “administrador” y la gente le pedía muchos favores a cambio de dinero. Con el tiempo se dio cuenta de que “la gran mentira” podía “tumbar” a grandes corporaciones, gracias a que con el panel de administración podía crear grupos de trabajo, los cuales podían realizar una tarea en concreto.

zeus-cpanel

Imagn 7.- Panel de Administración Zeus 

La aplicación proporcionada en el CD, era capaz de decodificar los datos enviados por el Malware, y que guardaba celosamente tanto en su base de datos, como en un fichero binario a modo de Backup.

DecoderLogs

Imagen 8.- Decodificación de Logs con Zbot

Las capturas eran claras y decisivas en post de su sueño. Gracias a ellas tenía una gran base de datos con usuarios, passwords y firmas electrónicas. Todo ello junto a las Webs de acceso y direcciones IP y nombres de equipo de sus víctimas. Todo ello bien ordenado en sus correspondientes tablas.

CapturaClave

Imagen 9.- Captura de Claves en archivo Log

Había pasado un año desde que el proyecto “la gran mentira” empezó. Así que, nuestro amigo Nicolai, habiéndose convertido en un gran Administrador de este tipo de redes, se puso manos a la obra con “el plan B”.

El plan lo había planificado con un año de antelación, y era bastante simple. Se había dedicado a capturar durante un año completo usuarios y passwords de diferentes cuentas y sitios de Internet. Gracias a estas capturas, consiguió una base de datos bastante consistente de información. Un año después, Nicolai estaba preparado para dar el gran salto. Se había dedicado todo este tiempo a recopilar información en Internet sobre cada una de sus víctimas. Había cuentas de banco que se correspondían con las cuentas de correo, y éstas, a su vez, con redes sociales. Gracias a los conocimientos adquiridos, creó otra base de datos con ese conocimiento. Esta base de datos conectaba a cada usuario con su red social, correo electrónico, cuentas bancarias y mensajería instantánea. También le dió lugar a crear otra base de datos con los usuarios a los que no llegaba a conseguir gran cantidad de información. Esta base de datos la vendía al mejor postor, vendiendo también, cada cierto tiempo, actualizaciones sobre la misma. La “gran mentira” era todo un éxito.

Nicolai planificó cada detalle de sus actos para llevar a cabo “El plan B”. Gracias al dinero obtenido de ventas anteriores, llegó a contratar varios servidores alojados en países de “moral informática relajada” (Te lo copio Chema ;-)). En cada uno de ellos, instaló una aplicación que había conseguido encargar a un programador amigo suyo. La aplicación tan sólo recibia un fichero de configuración con unos datos específicos, y ésta, a su vez, realizaba todo el trabajo.

Nicolai se había empeñado en realizar una gran compra por Internet, utilizando la base de datos que le había costado un año llenar. El plazo de acción era realizar el trabajo en 24 horas.

Así que una mañana, sobre las 13:35 horas, Nicolai estaba sentado en pijama sobre su equipo, con un cigarrillo en la comisura de los labios, y un vaso con Marraskinos en el otro. Configuró todos los servidores, actualizó todas las víctimas, y pulsó el botón START.

Fin del capítulo II

Saludetes!!

 

 

Estafa a las 3. Dónde está mi inversión? SE01X01

Estándar

Son las 3 de la tarde y el departamento de HelpDesk de la empresa Skynet recibe una llamada. Es el experto en IT Henry DansMerkt.

Henry DansMerkt: Hola buenas tardes. Es el departamento HelpDesk?

Técnico: Si señor Henry. Ha marcado los números correctos y este es el departamento de HelpDesk. Enhorabuena. En qué podemos ayudarle?

Henry DansMerkt: Puessss… La verdad es que no sé si es realmente un problema. El caso es que no encuentro un dinero para una inversión de IT. Este dinero estaba en una cuenta corriente y ahora no está.

Técnico: Señor Henry. Este problema tiene que ver con algún equipo? Verá, es que necesito saber si es un problema del equipo, para poder abrir un ticket de resolución. Los temas bancarios no los lleva el departamento de HelpDesk, así que no sé muy bien cómo ayudarle.

Henry DansMerkt: Verá, es que los números de cuenta los poseo únicamente yo, el departamento contable y el CEO de la empresa. He comunicado con ellos y me comentan que ellos no han realizado ningún tipo de acción sobre la cuenta mencionada. Todo este tipo de inversiones las hacemos siempre Online y nunca ha habido ningún problema. Así que tanto el CEO de la compañía y el jefe del departamento contable me han remitido a ustedes, por si el problema fuese del equipo corporativo.

Técnico: Ok. Vamos a realizar algún tipo de comprobación rutinaria. A qué tipo de banca online se refiere? Puede acceder a la página correctamente?

Henry DansMerkt: Las cuentas personales que utilizamos para este tipo de inversiones están alojadas en dos bancos. Uno es el Banco de Santander y el otro es Banesto. Y sí, acabo de probar a ingresar los datos en las cuentas y puedo acceder correctamente.

Técnico: Puede mandar alguna captura de su acceso a las cuentas?

Henry DansMerkt: Claro que puedo. Se las estoy enviando a través del correo electrónico. Un momento

Pasan unos 4 minutos….. (Tensa espera telefónica)

Henry DansMerkt: Le han llegado ya?

Técnico: Sí que me han llegado. Las estoy revisando

Henry1

Imagen 1.- Banca personal Henry

Henry2

Imagen 2.- Banca personal Henry

Técnico: Un momento por favor, estamos revisando el equipo en busca de Malware y monitorizando las conexiones. Manténgase a la espera por favor.

Henry DansMerkt: Ok

Técnico: Señor Henry. Hemos monitorizado el equipo y no vemos ninguna señal de Malware. Aparte, monitorizamos todo tipo de salida y entrada de datos mediante sistemas perimetrales de seguridad, y llevamos un control exhaustivo tanto de las políticas locales como del control de acceso a los recursos y ficheros de la compañía.

Henry DansMerkt: Ok. Pues muchas gracias. Ya me quedo mucho más tranquilo. Aunque no encuentre el dinero. Preguntaré al departamento contable y al CEO otra vez, no vaya a ser que se hayan olvidado de algo.

Técnico: OK. Pues doy por cerrado el Ticket. Muchas gracias por su llamada señor Henry y que pase un buen día.

Henry DansMerkt: Gracias chaval. Me iré a casa temprano hoy para seguir trabajando desde allí. Adiós!

Técnico: Oiga? Oiga? Señor Henry? Se encuentra ahí?

Henry DansMerkt: Sí sí, me encuentro aquí. Necesita algo?

Técnico: Ehhmmm… Verá, es que tengo su portátil aquí, ya sabe, el que me mandó la semana pasada para instalarle el nuevo sistema operativo de Microsoft. Windows 7. Recuerda?

Henry DansMerkt: Sí, sí, lo sé. Está terminado?

Técnico: No, no está terminado. Estamos incluyéndolo en el dominio y aplicando las políticas de seguridad. Recuerde que NO se debe trabajar con portátiles que no estén configurados por el departamento de IT. Fue idea suya… La pregunta es… DESDE QUÉ PORTÁTIL ESTÁ TRABAJANDO?

Henry DansMerkt: Ahhh, jajaja! Desde el portátil de mi compañero de piso, el cual amablemente me lo ha dejado hasta que me déis el corporativo. Lo tengo aquí ahora mismo.

Técnico: Puede encender el portátil por favor, y mandarme capturas de pantalla del inicio de sesión en la banca online? Es mera curiosidad y un trámite sin importancia….

Henry DansMerkt: Claro que sí, aunque no veo qué problema pudiese haber. Te mando las capturas en unos minutos.

Pasan unos 5 minutos. (Tensísima espera telefónica)

Henry DansMerkt: Te han llegado ya las capturas?

Técnico: Sí, ehhmmm… Espere, las estoy visualizando….

Henry3

Imagen 3.- Imagen Portátil “neocorporativo” del compañero de piso

Henry4

Imagen 4.- Imagen Portátil “neocorporativo” del compañero de piso

Técnico: Un momento por favor… (Sonido de fondo=on) ·$%##@@!!. Manuel! Llama corriendo a Javi de comunicaciones y que empiece a monitorizar tráfico en la red corporativa. Tenemos un ticket de nivel I. Ah! Y por favor, llama a Juanito Walker y a Juan Luigi “El drogata”, y dile que tenemos un caso para ellos. “Drogata???”…. Sí, es que el tio lo esnifa “todo”….(Sonido de fondo=off). Señor DansMerkt, mucho me temo que va a tener que dejar el portátil aquí. Lo necesitamos para cerrar la incidencia.

Henry DansMerkt: La incidencia no estaba cerrada?

Técnico: No, la hemos abierto de nuevo.

Henry DansMerkt: Y cómo trabajo yo ahora desde casa?

Técnico: Veremos si sigue trabajando mañana aquí…..

Henry DansMerkt: Cómo ha dicho?

Técnico: Nada nada…. He dicho que inmediatamente le mandamos un portátil corporativo y nos quedamos con el de su compañero de piso para analizarlo con más profundidad.

Henry DansMerkt: Pero me lo devolverán hoy no? Es que mi compañero lo necesita para el Facebook y el Twitter…

Técnico: Lo intentaremos señor Henry, lo intentaremos….

Fin capítulo I

Saludetes!! 😉

 

Analizando Tráfico de Red III de III

Estándar

Para el análisis forense de tramas de Red, existen herramientas que son capaces de automatizar el proceso de extracción, siendo válidas para extraer “de una tirada” conjuntos de datos que viajan a través de un protocolo.

Una herramienta bastante potente para realizar este tipo de extracciones es Xplico. Esta herramienta, de momento sólo existe para sistemas operativos Linux. Hasta la fecha es la herramienta más interesante, ya que de momento, está realizando una muy buena labor de soporte para muchos protocolos. Para saber más sobre la misma, aconsejo leer el post de Sergio Hernando, que habla sobre ella.

Para Windows, la única herramienta que vale la pena, se llama NetWork Miner. Es una herramienta bastante interesante, ya que, además de la extracción de datos, es capaz de realizar tareas de fingerprinting sobre los paquetes de datos para averiguar, por ejemplo, el sistema operativo que envía o recibe paquetes. Su funcionamiento se basa en las bases de datos que utilizan diversas herramientas de auditoría, como por ejemplo, NMap. Un buen artículo sobre esta herramienta, lo tenemos en la Web SoyForense.

Lamentablemente, y utlizando esta herramienta con un fichero PCAP, en cuyo interior se encontraban datos relativos a conversaciones de Vídeo, audio y datos, transmitidos todos ellos a través de mensajería instantánea con Windows Live Messenger, ésta no ofrece ningún avance positivo.

netWorkMiner

Imagen 1.- Extracción de datos fallida con NetWork Miner

Después de la prueba fallida, lo siguiente es analizar “a pelo” cada paquete de la captura, para encontrar una huella, o pista que nos de esperanza para continuar.

Para ello, decido leerme, sin mucho éxito, parte del documento que tiene Microsoft sobre la implementación de RTP en Streaming de audio o vídeo.

Analizando la captura de datos, me encuentro con un paquete algo especial, con el formato siguiente:

RecipientID

Imagen 2.- RecipientID en Windows Live Messenger

Observando varios foros sobrre desarrollo de aplicaciones para mensajería instantánea, comprendo que este paquete es utilizado por Windows Live Messenger para establecer la conexión. Una vez que la conexión está establecida, envía regularmente un paquete de las mismas características para asegurarse de que la conexión sigue permanente.

Wireshark tiene, como añadido a la herramienta, opciones de traducción de paquetes. Esta capacidad, dota a la herramienta con un decodificador de paquetes. Con este tipo de opciones, podemos escoger un paquete, y decirle a Wireshark que lo decodifique según un protocolo establecido.

Nuevo intento, fallido, de decodificar todo protocolo UDP como si fuese RTP. Resultados cero.

Inspeccionando el tráfico UDP, me encuentro con que existen patrones que se repiten a la hora del envío de paquetes a través de Windows Live Messenger. En cada envío de paquetes, me encuentro con unos mismos valores para distintos paquete. Este tipo de patrón da a pensar que podemos estar ante algún tipo de Payload. Para ello, voy copiando en una tabla, todos los valores repetidos que me voy encontrando. La lista que obtengo es la siguiente:

  • 44
  • 48
  • 66
  • 4A

Buscando y rebuscando en internet, me encuentro con un post en un foro, el cual ya no existe, en el que se retrata este mismo payload. Pero lo más interesante es que un tipo, llamado Ramiro Polla (No es coña…), ya lleva tiempo con esta investigación y ha recreado un un paper y una herramienta que realiza toda esta labor.

Los payloads anteriormente descritos, se refieren a qué tipo de acción va a realizar Windows Live Messenger. Es decir, si va a realizar una conexión, enviar una trama de audio, enviar una trama de vídeo, etc…

Hablando de la herramienta, cabe decir que la mayor característica de la misma, es la capacidad de trabar “offline” con capturas de datos. Una vez que se carga la captura de datos en la herramienta, se procede a la extracción de paquetes de audio y vídeo.

WebCamRecorder

Imagen 3.- Añadido de capturas offline

Una vez que la herramienta ha realizado su trabajo, se puede proceder a exportar los datos, pudiéndose utilizar compresores de audio y vídeo, para que la captura final sea más pequeña.

imagenExtraida

Image 4.- Captura final y posibilidad de extracción de datos

Como nota final, vía Sergio Hernando me entero de que también existe una herramienta similar en Linux, llamada MSN Shadow. Leyendo el Blog del autor de la herramienta, me entero de que si queremos versión para Windows, tendremos que esperar un poco, ya que, según sus palabras:

So, to support my additional work on this project like a version for Windows, capture of file transfers and others improvements, I would like to ask for some donation if you can.
I would not like to stop providing this software in open source format, but I can not work for nothing!

Hasta un nuevo post!!

Saludetes!