Entrevista a Raul Robles Aviles

Entrevista que se llevo a cabo en el BugCON en la ciudad de Mexico

http://estoesmexico.net/videos/Ral_Robles_CEO_Hacking_Mexico-vidwzpjJFA8v6Y.html

 

Android Para Hackers Reales pt. 2

Usaré un celular M860 para este proceso, por lo que usaré el código fuente siguiente (ustedes necesitarán el código fuente del kernel del celular que vayan a usar):

 

https://github.com/playfulgod/kernel-2.6.29-M860

 

(Por cierto, playfulgod tiene buenos repositorios de kernels)

 

Y vamos a usar el siguiente paquete de herramientas:

 

http://www.mediafire.com/?o25hl0x3zjnxxi2

 

Copiamos el archivo “compilakernel.sh” y la carpeta “toolchain-4.6.3” del paquete a la carpeta del código fuente y bajamos la configuración del kernel:

 
# adb pull /proc/config.gz && zcat /proc/config.gz > .config

160 KB/s (13860 bytes in 0.084s)

 

Necesitamos colocar el boot.img (se explicó en este manual como obtenerlo: http://www.hackingmexico.mx/blog/android-para-hackers/) en la misma carpeta del source del kernel y tener instalado abootimg y fastboot.

 

Para instalar fastboot basta con copiarlo a /usr/bin/ y darle permisos de ejecución (chmod a+w /usr/bin/fastboot).

 

Compilamos:

 
Zer0-null:/home/xianur0/originales/kernel-2.6.29-M860 # ./compilarkernel.sh

Ejecutando configuracion del kernel...

HOSTCC  scripts/basic/fixdep

[...]

 

En primera instancia nos abrirá el asistente para configurar el kernel, de entrada no hace falta mover nada, entonces solo nos movemos a exit y le damos enter, pero se pueden hacer cosas interesantes, como agregar soporte para la rtl8187 (en dispositivos con usb host):

 
General setup  --->

[*] Prompt for development and/or incomplete code/drivers

 

Networking --->

[*] Networking support

Wireless --->

<*> Generic IEEE 802.11 Networking Stack (mac80211)

 

Device Drivers --->

[*] Misc Devices --->

<M> EEPROM 93CX6 support

Network device support --->

Wireless LAN --->

[*] Wireless LAN (IEEE 802.11)

<M> Realtek 8187 and 8187B USB support

 

Cryptographic options --->

[*]Cryptographic API

<*>ARC4 cipher algorithm

 

Library routines

---CRC32 functions

De este modo, cargando el módulo con insmod (o cargándolo directamente en el kernel) y portanto aircrack como se explicó en el manual http://www.hackingmexico.mx/blog/portando-cualquier-programa-gnulinux-a-android/

 

Se pueden hacer cosas muy divertidas :P.

 

Preguntará si queremos guardar la configuración y le daremos “Yes” y el proceso de compilar comenzará.

 

Según la versión de gcc del tool-chain y del código fuente puede generar ciertos errores durante la compilación, pero este proceso varía según el dispositivo entonces si tienen alguna duda de como solucionar un determinado error pueden publicar el error como comentario y se asistirá para darle solución.

 

El proceso puede tardar un poco, pero al terminar las ultimas lineas se verían aproximadamente como estas:

 
  Kernel: arch/arm/boot/Image is ready

Building modules, stage 2.

Kernel: arch/arm/boot/zImage is ready

MODPOST 10 modules

Copiando modulos al temporal...

Modificando  boot.img...

Flasheando la imagen...

< waiting for device >

 

Al llegar a este punto es necesario pasar el dispositivo a modo fastboot, para este se necesita apagarlo y presionar la combinación de botones del dispositivo, en muchos casos es volumen abajo + home + encendido, aunque puede variar de un dispositivo a otro, al entrar a fastboot (se reconoce porque el dispositivo se queda en la primera pantalla y no pasa de esta) se conecta por usb el dispositivo (se requiere tenerlo desconectado previamente xD) y el sistema comenzará a cargar el nuevo kernel:

 
sending 'boot' (3504 KB)... OKAY

writing 'boot'... OKAY

Reiniciando el dispositivo...

rebooting...

Subiendo modulos...

Desconecte el dispositivo hasta que este termine de iniciar.

 

Y bueno el script hará el resto.

 

Si todo sale bien, podrás decir que has compilado tu primer kernel para android y ahora te queda... modificar el kernel de tu dispositivo :D.

 

By Xianur0!
 

Foro Estatal Sobre Tecnologias y Delitos Informaticos

PREMIOS
 

10% de Descuento en Diplomado

 

549778_10151628157748814_922048369_n

 

Para obtener el descuento del 10% Solo tienes que ir a nuestra HackShop localizada en Nuevo Leon 192 Colonia Condesa, esquina con Tlaxcala, y pedir 5 Posters, despues pegalos en tu escuela, bibliotecas, etc (con permiso de la institucion) y tomales foto, envianos las fotos a info@hackingmexico.mx y listo!

 
 

Ataques HID (USB) desde dispositivos Android (Kernel Hacking)

Primero que nada, ¿Qué son los dispositivos HID?

HID (Human Interface Device) son básicamente los dispositivos que interactúan  directamente con el usuario, es decir, que son una interfaz entre el usuario y la máquina, por ejemplo un mouse, un teclado, etc.

¿A qué nos referimos exactamente con ataques?

Por ejemplo, si emulamos un mouse, podemos hacer exactamente lo que hace un mouse, mover el puntero, mandar botones (de cada uno de los botones que tiene un mouse). Si emulamos un teclado... obviamente podemos mandar teclas, entre ellas atajos (Ctrl+Supr, Inicio+D, etc) de este modo podemos hacer cualquier cosa que haría un usuario en la computadora, esto sin tocar nosotros directamente la máquina (por ejemplo ejecutar un programa sin necesidad de infectar la máquina, y sin que un antivirus detecte algo sospechoso), estos ataques no duran más de unos segundos (a veces no más de 1 segundo) y se pueden pre-programar, es decir llevar programado el ataque en un dispositivo que simplemente hará falta conectarlo a la máquina (en este caso sería el celular) para que haga todo el trabajo por nosotros.

¿Hacia que plataformas está enfocado esta clase de ataques?

Hacia cualquier cosa que tenga un puerto usb y soporte dispositivos HID, esto no depende del sistema operativo, por lo que puede afectar a windows y a linux por igual (se podría hablar de dispositivos android). Incluso se puede enfocar el ataque a kioskos de auto-servicio y demás dispositivos con un usb descubierto.

Comencemos, para poder realizar estos ataques desde un dispositivo android se necesita parchar el kernel para poder utilizar el usb del celular en crudo (sin pasar por las api's de android) para poder simular cualquier dispositivo que nos de la gana, para esto necesitamos obviamente el código fuente del kernel y las cross-tools correspondientes para compilar el kernel, además de fastboot (o un modo para escribir el kernel), no detallaré este proceso, solo hablaré del código fuente, el proceso de compilar un kernel se habla en “Android Para Hackers Reales pt. 2”.

Usaré un celular M860 para esto, por lo que usaré el código fuente de este dispositivo (ustedes necesitarán el código fuente del kernel del celular que vayan a usar).

El código fuente del USBHacker (esta modificación al kernel) está disponible aquí: http://www.mediafire.com/?clygkt3457odcrb

Parchamos el código fuente:
Zer0-null:/home/xianur0/kernel-2.6.29-M860 # patch < ../parche.patch

can't find file to patch at input line 3

Perhaps you should have used the -p or --strip option?

The text leading up to this was:

--------------------------

|--- drivers/usb/function/msm_hsusb.c   2013-02-22 04:40:41.487025262 -0600

|+++ drivers/usb/function/msm_hsusb.c.back  2013-02-22 04:38:07.597024271 -0600

--------------------------

File to patch: drivers/usb/function/msm_hsusb.c

patching file drivers/usb/function/msm_hsusb.c

Compilamos el kernel como se mostró en el paper pasado (Android Para Hackers Reales pt. 2), compilamos los módulos y arrancar el que nos interese, por ejemplo el mouse:
Zer0-null:/home/xianur0/kernel-2.6.29-M860/xian-modules # make

Make module for target arm

make EXTRA_CFLAGS=-fno-pic -C /home/xianur0/kernel-2.6.29-M860 M=/home/xianur0/kernel-2.6.29-M860/xian-modules ARCH=arm CROSS_COMPILE=/home/xianur0/toolchain-4.6.3/bin/arm-linux-androideabi- modules

/bin/sh: /home/xianur0/kernel-2.6.29-M860/xian-modules/scripts/gcc-version.sh: No existe el fichero o el directorio

make[1]: se ingresa al directorio `/home/xianur0/kernel-2.6.29-M860'

Building modules, stage 2.

MODPOST 2 modules

make[1]: se sale del directorio `/home/xianur0/kernel-2.6.29-M860'

adb push teclado.ko /sdcard/

* daemon not running. starting it now on port 5037 *

* daemon started successfully *

81 KB/s (52093 bytes in 0.622s)

adb push mouse.ko /sdcard/

187 KB/s (51069 bytes in 0.265s)

Disfruta :D!

adb shell

# insmod /sdcard/mouse.ko

 

Nota: modificar el Makefile para colocar la ruta del código fuente del kernel y del toolchain.

Y si todo va bien, el puntero de nuestra máquina comenzará a moverse... de lo contrario bastará con desconectar y volver a conectar el usb.

Para volver a tener adb basta con ejecutar en el celular (desde terminal emulator) el comando: rmmod mouse

El caso del teclado sería algo similar, pero este es un poco más divertido, porque podemos mandar atajos de teclas, y en muchos esos eso nos podría servir para ejecutar programas (Por ejemplo: Windows + R nos serviría para desplegar la ventana de “Ejecutar” y a esa podríamos escribir por ejemplo: “cmd” seguido por un enter y tendríamos ms-dos abierto).

Por el momento no extenderé mucho este paper, debido a que el tema es muy extenso y da para hablar mucho, por lo que continuaremos en otro post.



by xianur0
 

Don Beto, Don Beto! Ya tenemos Tienda Fisica

Para toda la gente del DF y del edo de Mexico, ahora podran adquirir todos los productos del HackShop en persona, para los que no quieren esperar el correo, o quieren ahorrarse el envio pueden visitarnos en la tienda localizada en Innovattia

Aqui podras adquirir las 2 revistas, el DVD, el Wifi Cracker, y todos los gadgets de la HackShop
Nuevo Leon #192, Colonia Condesa, esquina con Tlaxcala, timbre 101, cerca del metrobus Chilpancingo

Y aqui mismo son las instalaciones donde se lleva a cabo el Diplomado Presencial

Visitanos de Lunes a Viernes de 9 am a 6 pm


View Larger Map

la foto (4)

548767_10151621286288814_1040426774_n 535501_10151621286483814_1237642498_n 482612_10151621286758814_1256365838_n 267976_10151621287058814_800464263_n 150768_10151621286388814_224194446_n 75533_10151621286958814_1767755095_n 64562_10151621287233814_1400538140_n 13992_10151621286848814_1220726042_n
 

Articulo destacado en IngeNET

Por segunda vez, uno de mis articulos aparece como destacado en la red de blogs de Ingenieros, IngeNET, aqui esta el enlace

http://bitacora.ingenet.com.mx/2013/02/la-deep-web-lo-verdaderamente-oculto-de-la-red/
 

Revista 2 Disponible

Ya puedes adquirir el numero 2 de la revista por el mismo precio de lanzamiento de $70, se vendera en diferentes puntos de la ciudad, y en las conferencias donde estemos. Tambien puedes ordenarla con envio express de 2 dias habiles con MexPost, tenemos las siguientes promociones

El temario de la Revista 2 es
Metadatos algo mas alla de lo visible
Deteccion y Proteccion de Ataques ARP Spoofing
Ingenieria Social
Hackeando Correos: Realidad o Mito
Penetracion de Servidores Windows
Identity and Access Management
Bypassing de Uploaders
CISCO& Juniper Brute Force
Wardriving con iOS
Crackeando Accunetix
NXT Controller Un Troyano para Divertirse

 

Revista #2 con Envio express 2 dias habiles $170

Paquete Revista 1 y Revista 2 con Envio express 2 dias habiles $230

Super Paquete Revista 1, Revista 2, y DVD con video tutoriales y mas de 50 herramientas de Hacking con Envio Express 2 dias habiles $320

Subscripcion Anual * 6 ejemplares $1000 Envio Express 2 dias habiles incluido, y recibe el DVD Gratis

 

Pago por Oxxo
$total a la tarjeta 4152312197502419

despues tomale una foto al comprobante o scanealo y envia tu direccion y tu nombre a info@hackingmexico.mx

Deposito Bancario

Tambien puedes depositar en Banco
Banco:  BBVA Bancomer

A nombre de:  Raul Robles Aviles

Concepto: revista

No. de Cuenta  0187088957

CLABE 012180001870889575

despues tomale una foto al comprobante o scanealo y envia tu direccion y tu nombre a info@hackingmexico.mx

la foto (2)
 

Buscando talentos

La expansion de HackingMexico continua, te gustaria ser parte del equipo? Buscamos talentos en diferentes areas, por eso dejamos la descripcion del rol para que tu lo propongas, en que eres bueno? cual seria tu trabajo ideal? Tal vez te gusta descubrir bugs, tal vez te gusta dar conferencias, odias el trato directo con la gente y prefieres estar detras de las operaciones? Dinos como te desempeñarias mejor, cuales son tus pasiones, te gusta programar? te gusta el pentesting? Te gustaria usar corbata a diario, o prefieres usar Jeans y playeras?

El trabajo es de medio tiempo, y se puede ajustar a los fines de semana, envianos tu CV a info@hackingmexico.mx y dinos tu experiencia y que rol te gustaria desempeñar
 

Confirmada Ponencia en ExpoSeguridad Mexico

Estare dando una platica en este evento celebrado en la ciudad de Mexico, se perfila como el evento mas grande de Seguridad de America Latina

Programa de Conferencias: 23-25 de abril de 2013

Exposición: 23-25 de abril de 2013
Centro Banamex, Cuidad de México


Acerca de
Expo Seguridad México



  • Más de 480 expositores en piso

  • Más de 30,000 m2 de espacio de exhibición

  • Expositores de más de 16 países diferentes

  • Más de 12,000 visitantes

  • Cobertura del evento por más de 100 medios de comunicación



¿Quién exhibe?



  • Fabricantes de más de 16 países

  • Distribuidores locales e internacionales

  • Proveedores Especializados de Servicios de Seguridad y Fuerzas del Orden

  • Representantes de los Fabricantes

  • Distribuidores e Integradores de Seguridad

  • Proveedores especializados en Seguridad

  • Servicios de Guardias y Protección



http://www.exposeguridadmexico.com/

 

Algunas caricaturas graciosas

Ya se han puesto de moda por las redes sociales, aqui les dejamos algunas caricaturas de HackingMexico

13226_10151582924308814_1895421057_n

 

 

531852_10151580979628814_1181246177_n 539846_10151592050298814_1993722079_n 540614_10151574666958814_1415757115_n 549365_10151592072993814_66050701_n 563598_10151582958068814_1642781977_n 563844_10151583761493814_17030594_n
 

La Lista Negra de Congresos en Mexico

Al estar involucrado en varias organizaciones de congresos, salen a flote los malos manejos, es por eso que vamos a desenmascarar aquellos que por su mal manejo dejan una mala imagen en el pais, nosotros tenemos contacto con todos los ponentes, y se nos hace poco etica la forma en que estos congresos operan.

Se supone que es para difundir el conocimiento, pero nos damos cuenta que por cuestiones personales van llevando a pique la ciencia. apoyamos a todos los conferencistas, talleristas y ponentes, ya que GRACIAS A ELLOS se realizan estos eventos.

1. X25 Ethical Hacker, organizador Rodolfo Hernandez Baz


No pago viaticos a
Raul Robles
Juan Angel Osorio
Helios Mier
Aaron Landa
Oscar Lopez, etc etc

Ademas de no haber enviado diplomas de sus cursos, y no dio diplomas de asistencia a algunas personas, el video explica todo



3.- CONASSOL Organizador Salvador Pereyra


Se nego a pagar los viaticos en su totalidad

Se robo ideas de HackingMexico para vender productos del HackShop

jjp8xl

 

Opinion por parte de Gamaliel de OS UPIITA

33man48

A toda la gente les pedimos evaluen estas situaciones, y saquen sus conclusiones, los congresos deben de valorar a los ponentes, ya que sin ellos no existirian. Repudiamos a la gente que se roba el dinero de las entradas y no paga siquiera los viaticos de los ponentes y ellos tienen que poner de su propia bolsa.

Exigimos un trato justo para los que de buena fe comparten sus investigaciones y avances cientificos.
 

Cancelada la Conferencia en CONNASOL

Debido a que no se querian pagar los viaticos en su totalidad, HackingMexico ha decidido no particpar en el congreso de CONASSOL celebrado en Merida Yucatan. La excusa para no pagar todos los viaticos fue que querian que enviaramos nuestras presentaciones en determinada fecha, lo cual no se iba a realizar por la historia que se habia dado que el organizador del congreso copiaba ideas, como ocurrio con el wiFI Cracker, que al otro dia de que nosotros lo anunciamos a la venta, el tambien quizo venderlo en su pagina

jjp8xl

 

Y asi con que confianza le enviariamos el material? Si nos ROBO la idea, quien dice que no nos ROBARIA las ponencias?

Exhortamos a la gente y ponentes a no asistir al congreso
 

Promocion DVD + Revista!!

1448z11

 

Por tiempo limitado puedes obtener La Revista Impresa + el DVD que contiene Video Tutoriales paso a paso, y mas de 50 herramientas de Hacking con envio incluido express 2 dias habiles por Mexpost, por tan solo $250 pesos a cualquier parte de la Republica Mexicana

 

Pago por Oxxo
$250 pesos a la tarjeta 4152312197502419

despues tomale una foto al comprobante o scanealo y envia tu direccion y tu nombre a info@hackingmexico.mx

Deposito Bancario

Tambien puedes depositar en Banco
Banco:  BBVA Bancomer

A nombre de:  Raul Robles Aviles

Concepto: Diplomado

No. de Cuenta  0187088957

CLABE 012180001870889575

Monto: $250

despues tomale una foto al comprobante o scanealo y envia tu direccion y tu nombre a info@hackingmexico.mx
 

Jugando con el GPS del celular (Android) con Python

La mayoría de los celulares actuales integran GPS, siendo este poco utilizado/aprovechado para los usuarios que desconocen todas las ventajas que podría tener el utilizar esta característica de sus celulares.

Primero que nada...

¿Cómo leer los datos del GPS?

Existe algo llamado NMEA:

“NMEA 0183 (o NMEA de forma abreviada) es una especificación combinada eléctrica y de datos entre aparatos electrónicos marinos y, también, más generalmente, receptores GPS.” Wikipedia

Me vino a la mente que “nmea” es por el león de Heracles, pero no lo puedo confirmar :P

En otras palabras, se pueden leer todos los datos del GPS en formato CVS (valor separado por coma), vamos a ver algunas cosas rápidas del estándar NMEA:

Satélites utilizados:
 $GPGSA,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11>,<12>,<13>,<14>,<15>,<16>,<17><Checksum><CR><LF>

Siendo el 1 es la forma en la que está trabajando el GPS del celular:

Posibles valores:
M: Manual (Forzar a trabajar en 3D/2D)

A: Automático

El 2 es el modo 2:
1=No fijo, 2=2D, 3=3D

 

Del 3 al 14 ID's de satélites usados (valor numérico).
15 Position dilution of precision (PDOP)

16 Horizontal dilution of precision (HDOP)

17 Vertical dilution of precision (VDOP)

En fin, no tiene caso hacer una copia de los RFC que existen sobre este protocolo, por lo que vamos directamente al grano:

Para poder acceder a los datos del GPS en la PC (me parece más bonito y útil usar el GPS en la PC que en el celular) vamos a utilizar una herramienta llamada ShareGPS (que pueden encontrar en el Play Store) y adb (que viene en el SDK de android) o “adb lite” (google).

Iniciamos ShareGPS en el celular y en la configuración marcamos: “Use USB”

Ahora en adb vamos a redireccionar el puerto (sí, se puede redireccionar puertos del celular a la pc):
 Zer0-null:/home/xianur0 # adb forward tcp:50000 tcp:50000

Con esto el puerto 50000 del celular queda en el 50000 de nuestra máquina, probemos:
Zer0-null:/home/xianur0 # nc -vvv localhost 50000

nc: connect to localhost port 50000 (tcp) failed: Connection refused

Connection to localhost 50000 port [tcp/mrt] succeeded!

$GPGSV,4,1,16,01,,,,03,45,070,,04,,,,05,,,*4E

$GPGSV,4,2,16,06,27,054,,07,35,320,,08,13,293,,10,18,291,*7A

$GPGSV,4,3,16,11,11,151,,13,73,350,,16,20,036,,19,46,108,*7F

$GPGSV,4,4,16,20,13,185,,23,69,132,,28,12,233,,30,,,*44

[…]

Esos datos raros que pueden ser ahí es directamente los datos NMEA, ahora la cosa es bastante fácil, podemos conectarnos con python al puerto 50000 de localhost (también se podría a través de una red wifi, pero me gusta más esta forma).
 import socket,string

# -*- coding: utf-8 -*-

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect(('localhost', 50000))

 

while 1:

linea = s.recv(250)

print linea

 

Con esto haremos exactamente lo mismo que netcat, pero vamos un por más allá, recuerdan que dije que está en formato CVS todo?
            datos=string.split(linea,',')

 

Con esto ya tenemos cada valor de la linea en datos, ahora podemos analizarlo:
            try:

result = {

'$GPRMC': GPRMC ,

'$GPGSV': GPGSV

}[datos[0]](datos[1:])

except KeyError:

pass

 

Para los que no estén familiarizados con python, este no tiene swich como tal, entonces esta es mi versión de este.

Lo que hacemos con esto es llamar a cada una de esas funciones (GPRMC,GPGSV,GPGSA) cada vez que una linea tenga por ejemplo “$GPRMC” que llamaría a la función GPRMC , pasandole como argumento todos los elementos de datos excepto el primero (no tiene caso mandarle “$GPRMC ” por ejemplo xD)

Vamos a parsear el primero (GPRMC nos indica el estado de la conexión los satélites y los datos obtenidos de este):
def GPRMC (datos):

if datos[1] != 'V':

print "[-] Conectado con satelites!"

print "[-] Hora actual: "+datos[0][0:2]+":"+datos[0][2:4]+":"+datos[0][4:6]+" con "+datos[0][7:]+" milisegundos"

print "[-] Coordenadas actuales: ("+datos[2]+","+datos[4]+")"

print "[-] Latitud Hemisferio: "+datos[3]

print "[-] Longitud Hemisferio: "+datos[5]

print "[-] Velocidad actual: "+datos[6]+" nudos"

azimut=int(datos[7])

rumbo=''

if(azimut==0):

rumbo='Norte'

elif(azimut<90 and azimut > 0):

rumbo='Noreste'

elif(azimut==90):

rumbo='Este'

if(azimut>90 and azimut < 180):

rumbo='Sureste'

if(azimut==180):

rumbo='Sur'

if(azimut>180 and azimut<360):

rumbo='Suroeste'

if(azumit==360):

rumbo='Oeste'

print "[-] Rumbo: "+rumbo+" ("+datos[7]+" grados)"

print "[-] Fecha UTC: "+datos[8]

 

Azimut es una forma de medir la dirección hacia la cual vamos (rumbo) en grados:

0° sería el norte, 90 el Este, 180 el Sur y 360 el Oeste.

Nota de interés: La fecha UTC la genera el receptor GPS en base a la de los satélites que está utilizando.

Ahora va  GPGSV que nos da información sobre los satélites visibles
def GPGSV (datos):

print datos

print "\n[!] Información de satélites visibles: "

print "[-] Total Número de mensajes: "+datos[0]

print "[-] Número de mensaje: "+datos[1]

print "[-] Satélites visibles: "+datos[2]

c=0

for a in range(3):

print "[-] Satélite número: "+datos[3+c]

print "\t[-] Grados de elevación: "+datos[3+c+1]

print "\t[-] Asimut: "+datos[3+c+2]

print "\t[-] SNR: "+datos[3+c+3]+" dB-Hz"

c=c+4

 

Nota de interés:  SNR es la relación señal/ruido y en base a esta se puede calcular la calidad de enlace con el satélite.

Código completo.


 

import socket,string

# -*- coding: utf-8 -*-

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

s.connect(('localhost', 50000))

 

def GPRMC (datos):

if datos[1] != 'V':

print "[!] Conectado con satelites!"

print "[-] Hora actual: "+datos[0][0:2]+":"+datos[0][2:4]+":"+datos[0][4:6]+" con "+datos[0][7:]+" milisegundos"

print "[-] Coordenadas actuales: ("+datos[2]+","+datos[4]+")"

print "[-] Latitud Hemisferio: "+datos[3]

print "[-] Longitud Hemisferio: "+datos[5]

print "[-] Velocidad actual: "+datos[6]+" nudos"

azimut=int(datos[7])

rumbo=''

if(azimut==0):

rumbo='Norte'

elif(azimut<90 and azimut > 0):

rumbo='Noreste'

elif(azimut==90):

rumbo='Este'

if(azimut>90 and azimut < 180):

rumbo='Sureste'

if(azimut==180):

rumbo='Sur'

if(azimut>180 and azimut<360):

rumbo='Suroeste'

if(azimut==360):

rumbo='Oeste'

print "[-] Rumbo: "+rumbo+" ("+datos[7]+" grados)"

print "[-] Fecha UTC: "+datos[8]

 

def GPGSV (datos):

print datos

print "\n[!] Información de satélites visibles: "

print "[-] Total Número de mensajes: "+datos[0]

print "[-] Número de mensaje: "+datos[1]

print "[-] Satélites visibles: "+datos[2]

c=0

for a in range(3):

print "[-] Satélite número: "+datos[3+c]

print "\t[-] Grados de elevación: "+datos[3+c+1]

print "\t[-] Asimut: "+datos[3+c+2]

print "\t[-] SNR: "+datos[3+c+3]+" dB-Hz"

c=c+4

 

 

while 1:

linea = s.recv(250)

if linea == '':

raise RuntimeError("socket connection broken")

datos=string.split(linea,',')

try:

result = {

'$GPRMC': GPRMC,

'$GPGSV': GPGSV

}[datos[0]](datos[1:])

except KeyError:

pass

By Xianur0