Hola a tod@s!
Como ya conoces, 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.
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.
Los scripts no toman ningún parámetro como entrada, y únicamente tendremos que poner en un directorio creado previamente los siguientes ficheros:
GetWifi.py
Para la ejecución de los scripts, tan sólo tendremos que utilizar Python 2.6 y pysqlite.
Saludos!
AGRADECIMIENTOS TOTALES A:
http://windowstips.wordpress.com/
Como ya conoces, 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:
- el Wrapper PyMaps
- Los scripts de extracción
- El fichero consolidated.db
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
01 | #Horrible Script para extraer las coordenadas del fichero Consolidated.db |
02 | #El fichero se encuentra en el directorio private/var/root/Library/Caches/locationd |
03 | #Horriblemente codeado por Silverhack |
04 | import sys, sqlite3 |
05 | from PyMaps import Map , PyMap |
06 | # Creamos un mapa |
07 | NewMap = Map () |
08 | NewMap.zoom = 3 |
09 | connection = sqlite3.connect( "consolidated.db" ) |
10 | cursor = connection.cursor() |
11 | cursor.execute( "SELECT Latitude,Longitude from CellLocation" ) |
12 | for row in cursor: |
13 | print "La latitud es %s, y la longitud es %s" % ( str (row[ 0 ]), str (row[ 1 ])) |
14 | < / p> |
15 | # Latitud y longitud |
16 | # Importamos de la BD consolidated a las variables |
17 | # que posteriormente pasaremos al Script PyMaps |
18 |
19 | latitud = str (row[ 0 ]) |
20 | longitud = str (row[ 1 ]) |
21 |
22 | # Insertamos codigo html |
23 | pointhtml = "I see you..." |
24 |
25 | # Anyadimos el punto al mapa |
26 | point = (latitud, longitud, pointhtml) |
27 |
28 | NewMap.setpoint(point) |
29 | gmap = PyMap(key = "clave" , maplist = [NewMap]) |
30 |
31 | mapcode = gmap.pymapjs() |
32 | showhtml = gmap.showhtml() |
33 | print showhtml |
34 | file = open ( 'Coordenadas.html' , 'w' ) |
35 | file .writelines(showhtml) |
36 | # Cerramos el fichero |
37 | file .close() |
01 | #Horrible Script para extraer las coordenadas WIFI junto con su MAC del fichero Consolidated.db |
02 | #El fichero se encuentra en el directorio private/var/root/Library/Caches/locationd |
03 | #Horriblemente codeado por Silverhack |
04 | import sys, sqlite3 |
05 | from PyMaps import Map , PyMap |
06 | # Creamos un mapa |
07 | NewMap = Map () |
08 | NewMap.zoom = 3 |
09 | connection = sqlite3.connect( "consolidated.db" ) |
10 | cursor = connection.cursor() |
11 | cursor.execute( "SELECT MAC, Latitude, Longitude from WifiLocation" ) |
12 | for row in cursor: |
13 | print "La MAC es %s, La latitud es %s, y la longitud es %s" % ( str (row[ 0 ]), str (row[ 1 ]), str (row[ 2 ])) |
14 | |
15 |
16 | # Latitud y longitud |
17 | # Importamos de la BD consolidated a las variables |
18 | # que posteriormente pasaremos al Script PyMaps |
19 |
20 | latitud = str (row[ 1 ]) |
21 | longitud = str (row[ 2 ]) |
22 |
23 | # Insertamos codigo html |
24 | pointhtml = str (row[ 0 ]) |
25 |
26 | # Anyadimos el punto al mapa |
27 | point = (latitud, longitud, pointhtml) |
28 |
29 | NewMap.setpoint(point) |
30 | gmap = PyMap(key = "clave" , maplist = [NewMap]) |
31 |
32 | mapcode = gmap.pymapjs() |
33 | showhtml = gmap.showhtml() |
34 | print showhtml |
35 | file = open ( 'WiFi.html' , 'w' ) |
36 | file .writelines(showhtml) |
37 | # Cerramos el fichero |
38 | file .close() |
Saludos!
AGRADECIMIENTOS TOTALES A:
http://windowstips.wordpress.com/
No hay comentarios:
Publicar un comentario