martes, junio 18, 2013

Herramientas para análisis forense de dispositivos GPS.

En un post anterior trate sobre el análisis forense de un dispositivo GPS de una marca concreta un TomTom, en este post tratare sobre varias herramientas para realizar un análisis forense de dispositivos GPS de varios fabricantes. Aunque muchas de las consideraciones previas escritas en ese post anterior se puede aplicar perfectamente.

Estas herramientas permiten la extracción de datos de diferentes GPS y su interpretación. Se trata de las siguientes:


EasyGPS.

Es una herramienta para la transferencia de waypoints y rutas entre un ordenador y un dispositivo GPS. Permite realizar copias de seguridad y organizar los datos del GPS e imprimir o cargar nuevos waypoints en los dispositivos.  La mejor baza de EasyGPS es que trabaja con cientos de receptores GPS, incluyendo todos los modelos de: Rino, Garmin, nüvi, eTrex, Colorado, Dakota, GPSMAP, Edge, Montana, Oregon, Magellan, eXplorist, Meridian SporTra, Lowrance iFinder, Endura, HDS, LCX y LMS.

Más información y descarga de EasyGPS:
www.easygps.com

  
GPS Utility.

Es una herramienta fácil de usar que proporciona una gestión y manipulación de la información GPS. Puede ser utilizado para transferir datos de un receptor GPS y almacenar los datos en archivos de texto de varios formatos.

El programa convierte entre diferentes datos de mapas y muchos formatos de coordenadas (Lat / Long, UTM / UPS, etc.) La información puede ser filtrada de diversas maneras y puntos ordenados según los criterios especificados. Permite realizar estadísticas de la ruta y pueden ser transferidos a otros programas de análisis (por ejemplo, hojas de cálculo).

GPS Utility apoya muchos tipos de formatos de archivo para importación / exportación. Esto hace que sea fácil de transferir datos desde y hacia otros GPS y aplicaciones CAD / CAM. Toda la información se guarda en un solo archivo que le permite seleccionar subconjuntos particulares para cargar al GPS o para generar o copiar a otros ficheros.

GPS Utility soporta los siguientes dispositivos GPS:

  • Soporta algunos modelo de Garmin pero el iQue (PDA GPS) y los siguientes productos viejos Garmin no son compatibles: GPS150, GNC300, GPS155, GNC250, GNC250XL y GNC300XL. El Garmin Geko 101 no tiene una conexión de PC.
  • Productos Magellan entre otros: Meridian, Sportrak, 315/320, 330, 410, 2000XL, 3000XL, NAV6000 y Explorist. El 5000DLX sólo se admite a través de la interfaz NMEA.
  • Receptores de MLR para waypoints y descarga de rutas.
  • Furuno (GP30/35, GP31/36, 32/37, 1650, 1850 y Navnet Series) para  waypoints y descarga de rutas.
  • Simrad Shipmate (CP32, RS5700) para  waypoints y descarga de rutas.
  • Silva / Brunton para  waypoints y descarga de rutas.
  • Northstar (941, 951, 952 Series, y 6000i series) para  waypoints y descarga de rutas.
  • Receptores Raytheon (NAV398, RN300, plotter) para  waypoints y descarga de rutas.
  • Standard Horizon para  waypoints y descarga de rutas.
  • Lowrance / Eagle para  waypoints y descarga de rutas.
  • Otros receptores (tal vez con algunas limitaciones) mediante la interfaz NMEA.

GPS Utility funciona en Win95, Win98, Win NT, WinME, Win2000 y WinXP. Existe una versión freeware que tiene una capacidad limitada (número de waypoints / puntos de ruta) o registrarse y obtener la versión shareware que puede manejar más waypoints / trackpoints.

Más información y descarga de GPS Utility:
www.gpsu.co.uk


Proyecto de Hash de GPS.

Se trata de un proyecto comunitario que establece la creación de una biblioteca de conjuntos de hash autenticados que se crean fuentes de confianza utilizando técnicas forenses. La idea detrás de esta iniciativa es dar a los forenses un conjunto hash de los archivos del sistema operativo, como mapas de base, iconos, archivos de voz, etc. que se instaló originalmente, cuando se fabricó el dispositivo GPS. Esto permitirá a los examinadores identificar rápidamente cuáles contienen datos únicos, tales como la información del dispositivo y datos específicos del usuario, como direcciones, números de teléfono y Tracklogs.

Los conjuntos de hash se pueden crear para cualquier dispositivo que se puede asociar físicamente. En la mayoría de los casos, estos dispositivos GPS son dispositivos de almacenamiento masivo USB. Los conjuntos de hash se crean a partir de imágenes de un dispositivo antes de que se haya configurado por el usuario, recién salido de fabrica, usando programas de  imagen como FTK Imager o EnCase.
Los hash disponibles son de los siguientes modelos:

Garmin:
Garmin Nuvi 200, Garmin Nuvi 205, Garmin Nuvi 285WT y Garmin Nuvi 850.

Magellan:
Magellan eXplorist 210, Magellan eXplorist 210 y Magellan Mastro 4370.

TomTom:
TomTom One 140-S, TomTom Go 700 (Western Europe), TomTom Go 720 y TomTom Go 730.

Navigon:
Navigon 2100 Max.

Más información y descarga:
http://www.gpsforensics.org/projects/hashsets/index.html


Análisis forense de dispositivos GPS TomTom.
http://vtroger.blogspot.com.es/2008/10/anlisis-forense-de-dispositivos-gps.html

lunes, mayo 27, 2013

Seguridad en protocolos de routing: IGRP y EIGRP.

IGRP.

IGRP (Interior Gateway Routing Protocol) IGRP es un protocolo propietario de Cisco basado en la tecnología Vector-Distancia diseñado para ser escalable. Actualmente no se soporta en sistema operativo de CISCO (IOS).

Las principales características de IGRP:

  • Envía actualizaciones de enrutamiento periódicas (cada 90 segundos).
  • Difunde la tabla de enrutamiento completa periódicamente.
  • Utiliza la distancia como parte de su métrica (en este caso, un compuesto de ancho de banda y retardos).
  • IGRP utiliza el algoritmo Vector-Distancia Bellman-Ford para determinar la mejor ruta hacia un destino particular.

Otras características de IGRP son:

  • Soporta Sólo enrutamiento IP.
  • Las rutas IGRP tiene una distancia administrativa de 100.
  • IGRP, por defecto, admite un máximo de 100 saltos. Este valor puede ser ajustado a un máximo de 255 saltos.
  • Utiliza el ancho de banda y retardos  de la línea, de forma predeterminada, para calcular su distancia métrica. La  confiabilidad, la carga de la red  y MTU son atributos opcionales que pueden ser utilizados para calcular la métrica de distancia. IGRP requiere la inclusión de un Sistema Autónomo (AS) en su configuración. Sólo los routers que estén en el mismo AS enviarán actualizaciones entre sí.

El ataque:

Usando una herramienta que pertenece a IRPAS (una suite de herramientas de seguridad de routing para Linux) llamada IGRP para la inyección de rutas. El propósito es definir una tabla de enrutamiento con todos los parámetros a mano sin tener el sistema que realmente ejecuta cualquier tipo de enrutamiento dinámico y enviar esta información al sistema víctima. IGRP es un protocolo basado en emisión de ruta, el comportamiento predeterminado es enviar estos mensajes a la dirección de difusión IP (255.255.255.255). Si se desea inyectar una ruta a un sistema remoto hay  que controlar la actualización y en consecuencia asegurarse de enviar el paquete con la dirección de la fuente correcta para que el sistema de la víctima acepte la actualización.

Antes de usar la herramienta, hay que diseñar la tabla de enrutamiento que se desea inyectar en el direccionado de destino. Debe contener los datos que su ruta se la preferida una para la víctima. El formato es:

 destino:retardo:ancho de banda:mtu:Confiabilidad:Carga:cuenta de saltos


Donde destino es la red (192.168.1.0), retardo es en ms/10, ancho de banda en Mbit por segundo, MTU es la unidad máxima de transferencia (1500 para Ethernet), la fiabilidad y la carga se dan en tanto por ciento (255 = 100%, 1 = 0%) y el numero de saltos.
Se ignoran las líneas vacías y las líneas que comienzan con #.

Ejemplo:

 # Archivo de rutas para igrp.c
 #
 # FX
 # Phenoelit (http://www.phenoelit.de/)
 #
 # Formato
 # Destino: retraso: ancho de banda: mtu: Confiabilidad: Carga: hopCount
 #
 # Ejemplos
 192.168.1.0:500:1:1500:255:1:0


Uso:

./igrp -i (interface) -f (routes.file) -a (autonomous system)

Opciones:

 -V detallado
 -F  archivo, que contiene las rutas
 (Tanto como quieras)
 -a El proceso que se está ejecutando IGR, utilice ASS para averiguarlo o especificar un rango de usar con un START-b STOP para enviar cambios a todos como de principio a STOP (Le recomiendo usar ASS para esto!).
 -S  IP fuente tal vez usted necesita esta
 -D IP destinatino.
 

Si se desea que las rutas sean persistentes se ejecuta el programa dentro de un bucle cada 25-30 segundos, para mantener a la victima dentro de esas rutas.

Más información y descarga de la herramienta IRPAS:
http://www.phenoelit.org/irpas/


Este protocolo está obsoleto por lo que el mejor consejo para asegurarlo es no usarlo y utilizar otro más actual.
 


EIGRP.


EIGRP es una versión mejorada de IGRP. La misma tecnología de vector-distancia que se encuentra en IGRP también se utiliza en EIGRP, y la información de distancia subyacente se mantiene sin cambios. Las propiedades de convergencia y la eficiencia de funcionamiento de este protocolo han mejorado significativamente. Esto permite una arquitectura mejorada mientras que conserva la inversión existente en IGRP.

La tecnología de convergencia se basa en la investigación llevada a cabo en SRI International. El Algoritmo de actualización por difusión (DUAL) es el algoritmo usado para obtener la libertad de bucle en cada instante a través de un cálculo de ruta. Esto permite que todos los enrutadores que participen en un cambio de topología para sincronizar al mismo tiempo. Los routers que no son afectados por los cambios de topología no están involucrados en el recálculo.

EIGRP se ha extendido a ser un protocolo de capa de red independiente, permitiendo de este modo DUAL para apoyar a otros conjuntos de protocolos. EIGRP tiene cuatro componentes básicos:


  • Descubrimiento / Recuperación.
  • Protocolo de transporte confiable.
  • Máquina de estados finitos DUAL .
  • Modulos de protocolo dependientes.

Descubrimiento / recuperación es el proceso que los routers utilizan para aprender dinámicamente de otros routers en sus redes conectadas directamente. Los routers también deben descubrir cuando sus vecinos se convierten en inaccesibles o inoperantes. Este proceso se logra con pocos gastos enviando periódicamente pequeños paquetes hello. Siempre y cuando se reciben paquetes de saludo, un router puede determinar que un vecino está vivo y funcionando. Una vez determinado esto, los routers vecinos pueden intercambiar información de enrutamiento.

El transporte confiable es responsable de garantía, entrega ordenada de paquetes EIGRP a todos los vecinos. Es compatible con la transmisión de paquetes de multidifusión mezclados o unicast. Algunos paquetes EIGRP deben ser transmitidos de forma fiable y otros no lo necesitan. Por eficiencia, se proporciona fiabilidad sólo cuando sea necesario. Por ejemplo, en una red de acceso múltiple que tiene funciones de multidifusión, tales como Ethernet, no es necesario enviar hellos fiable a todos los vecinos de forma individual. Así EIGRP, envía un multicast hello con una indicación en el paquete de información a los receptores de que el paquete no tiene que ser reconocido. Otros tipos de paquetes, tales como actualizaciones, requieren el reconocimiento y esto se indica en el paquete. El transporte fiable tiene una disposición para enviar paquetes de multidifusión rápidamente cuando hay paquetes no reconocidos pendientes. Esto ayuda a asegurar que el tiempo de convergencia sigue siendo baja en presencia de diferentes enlaces de alta velocidad.



La máquina de estados finitos DUAL encarna el proceso de decisión para todos los cálculos de ruta. Realiza un seguimiento de todas las rutas anunciadas por todos los vecinos. La información de la distancia, conocida como una métrica, se utiliza por DUAL para seleccionar caminos libres bucle eficientes. DUAL selecciona las rutas para ser insertados en una tabla de enrutamiento basado en sucesores factibles. Un sucesor es un router vecino utilizado para el reenvío de paquetes que tiene una ruta de menor coste a un destino que no está garantizado para ser parte de un bucle de enrutamiento. Cuando no hay sucesores factibles, pero hay vecinos que anuncian el destino, debe ocurrir un recálculo. Este es el proceso en el que se determina un nuevo sucesor. La cantidad de tiempo que se necesita para volver a calcular la ruta afecta el tiempo de convergencia. A pesar de que el nuevo cálculo no es intensivo del procesador, es ventajoso para evitar volver a calcular si no es necesario. Cuando se produce un cambio de topología, DUAL pondrá a prueba para los sucesores factibles. Si hay sucesores factibles, utilizará los que encuentre con el fin de evitar cualquier recálculo innecesaria. Sucesores factibles se definen con más detalle más adelante en este documento.

Los módulos de protocolo dependientes son responsables de la capa de red, los requisitos específicos del protocolo. Por ejemplo, el módulo IP-EIGRP es responsable de enviar y recibir paquetes EIGRP que están encapsulados en IP. IP-EIGRP es responsable de analizar e informar a los paquetes EIGRP DUAL de la nueva información recibida. IP-EIGRP DUAL pide para tomar decisiones de enrutamiento y los resultados de los cuales se almacenan en la tabla de enrutamiento IP. IP-EIGRP es responsable de la redistribución de las rutas aprendidas de otros protocolos de enrutamiento IP.

El ataque:

Se trata de un generador de paquetes EIGRP  y sniffer desarrollado para probar la seguridad y calidad de funcionamiento global de este protocolo de enrutamiento de Cisco. Usar esta herramienta requiere un buen nivel de conocimiento de las operaciones de EIGRP, la estructura de paquetes y tipos, así como la capa 3 de la topología de la red auditada.
 

Ejecución:
 

eigrp.pl [--sniff] [ --iface=interface ] [--timeout=i]

Opciones:


- sniff, sniffar paquetes EIGRP.
- iface, interfaz de red de escucha.
- iflist, todas las interfaces de red disponibles.
- source, dirección IP de origen. 
- dest, paquetes IP de destino. Por defecto IP multicast - 224.0.0.10.
- timeout=n pcap timeout  (500 por defecto).
- hello, Enviar EIGRP HELLO.
- update, actualización de ruta.
- query, enviar consulta. 
- external, ruta externa.
- internal, ruta interna.
- Ipgoodbye = s reenvió de mensaje adiós.
- File2ip = s, Enviar olfateó eigrp los datos de un archivo.
- payback, el paquete de actualización, cambie [Retardo] y enviarlo de vuelta (PoC).
- op = n, EIGRP opcode no. para disparar, capturar una pkt definido.
- Sn = n, EIGRP número de secuencia para disparar.
- auth, los datos de autenticación para el ataque de respuesta (copiar hex pasado de aspiración).
- opcode, opcode personalizado para paquetes hello fuzzing.
- flags=n, banderas EIGRP (0,1 ó 2).
- version=n, EIGRP versión [8 bits entero] De fábrica = 2.
- As = n, número de sistema autónomo, Default = 1.
- K1 = n, métricas K1 defecto 1.
- K2 = n,  métricas K2 defecto 0.
- K3 = n,  métricas K3 defecto 1.
- K4 = n, métricas K4 defecto 0.
- K5 = n, métricas K4 defecto 0.
- Mtu = n, MTU.
- nms = n, añadir NMS (Próximo mensaje multicast) al paquete de saludo.
- eigrpv = s versión EIGRP.
- Ios = s IOS versión.
- hopCount = n, cuenta de saltos.
- reliability=n, confiabilidad.
- load = n, carga.
- delay =n, retardo.
- sequence=n , secuencia (secuencia de 32 bits) predeterminado = 0.
- ACK = n, reconocer (32bit secuencia) Por defecto = 0
- nextHop = s próximo salto.
- bandwidth=n, ancho de banda.
- routedest =s, destino de ruta.
- origrouter = s, enrutadores originarios.
- origas = n, numero de originarios del sistema autónomo.
- arbitatag = n, etiqueta arbitraria.
- metric=n, protocolo de métrica.
- extproto = n protocolo externo
            ID IGRP (1)
            EIGRP (2)
            Ruta estática (3)
            RIP (4)
            HOLA (5)
            OSPF (6)
            IS_IS (7)
            EGP (8)
            BGP (9)
            IDRP (10)
            LINK conectado (11)

- hold=n, Tiempo de espera en segundos.
- hellotime = n, Escribir reintentos de tiempo de espera de envio HELLO. Por defecto = 5 seg
- hellodos = s subred IP. Ataque de denegación de servicios enviando argumento HELLO EIGRP a rango IP.
- retries=n, Packet enviar reintentos predeterminado = 1;
 

Ejemplos de uso:

./eigrp.pl --sniff --iface eth0
./eigrp.pl --ipgoodbye 192.168.66.202 --source 192.168.7.8
./eigrp.pl --file2ip update.dat --source 192.168.7.8
./eigrp.pl --update --external --as 65534 --source 192.168.7.8
./eigrp.pl --hello --auth 00020010000000020000000000000000000000000efe07403446c77a9697fe5753f79e52 --source 192.168.77.8 --nms 1
./eigrp.pl --help This message

Más información y descarga de esta herramienta:
http://www.hackingciscoexposed.com/tools/eigrp-tools.tar.gz
 

EIGRP puede ser vulnerable a ataques de man-in-the-middle, route-starvation/spoofing y DoS, ataques debido a la falta de autenticación por defecto. La mejor forma de asegurar este protocolo es aplicar las opciones de autentificación.

martes, mayo 21, 2013

Este blog en Twitter.

Este blog desde hoy tendrá su sitio en Twitter donde se publicarán todas las entradas recientes y algún que otro comentario de un servidor. También quiero adelantar que tras una época de pocas publicaciones, intentare darle un poco más de vida a este blog, que últimamente, tengo algo abandonado.



Aquí os lo dejo:
https://twitter.com/gurudelainf