GPS troubleshooting: utilizando o telefone com o SO android como hardware

ALGUMAS aplicações irão usar o gps vinculado ao google, que poderemos ver depois. Entre eles o giskismet e o kismet para filtro de rádio, GSM e wireless (criar antenas se caso não tem uma conexão de ponta USB como um DUNGLE).

Além disso, podemos usar o hardware do celular para snifing em redes de telefonia, a câmera, microfone, auto falante, etc, além de uma antena. Digamos que poderemos improvisar conexões co o celular para utilizarmos seu hardware sem precisarmos comprar um DUNGLE.


Instale o GPSD

apt-get install gpsd

Após instalar o GPSD, instale o Android Debug Bridge (adb) para interconexão entre seu computador e o dispositivo. ALém disso, vc tem acesso shell no celular apenas com essa tool da google.

apt-get install adb

Baixe algum aplicativo para conexão NMEA para seu dispositivo ou crie um. Como não precisamos reinventar a roda, estou usando para testes o share gps

Obs: Se você souber a senha gmail da vítima, poderá instalar aplicativos em seu dispositivo (e todos os outros vinculados) por meio da google play (desde que ela tenha vinculado seu dispositivo logando na google play app) sem a autoridade do dono do dispositivo. Além disso, com acesso a conta é possível rastreá-la no google em realtime. O interessante é que nada é perguntado no dispositivo para ser instalado o app para notificar a vítima. A senha pode ser obtida de várias maneiras. Maliciosamente um app ou backdoor poderá ser instalado sem precisar por a mão no celular obtendo assim o controle total sobre o mesmo.

Existem outros tipos de diretivas de comunicação entre dispositivos suportado pelo gpsd que poderá estar vendo nas especificações da tool. Neste caso o que iremos usar é a Garmin NMEA (opção -D5)

gpsd -h


Entre em configurações no seu dispositivo android e vá na opção desenvolvedor. Clique no modo depuração com USB.


Conecte seu dispositivo na USB e ligue ao computador. Abra o aplicativo SHARE GPS no seu celular e crie uma conexão. A porta por default é 5000.

Basta clicar em ADD, definir o nome da conexão e habilitar: create nmea. Após criar clique em cima da conexão para estar de “idle” para “listening”.

O aplicativo SHARE GPS esta esperando conexão. Digite o comando para listar os devices no seu computador e identificar o seu dispositivo (celular):

listar os devices:

adb devices

Criar porta de coneção entre local (computador) remoto (celular)

adb forward tcp:20175 tcp:50000

Se quiser checar se foram criadas corretamente

adb forward –list

Para testar a conexão telnet use o netcat

nc 127.0.0.1 20175

A resposta deverá acontecer com os dados de retorno em verbose. Se chegar até aqui, esta tudo perfeitamente configurado. Resta apenas ler a saída de forma mais legível. Veremos isso com o gpsd.


vamos configurar a USB em toubleshooting:

Mate o processo gpsd, caso esteja rodando [poderá verificar ps | grep gpsd]

killall gpsd

Apague o arquivo sock default, ou se tentou configurar. Se não apagá-lo as configurações não são renovadas, mesmo trocando valores (cache):

rm /var/run/gpsd.sock

Eu não irei utilizar o BUS para conexão mas sim o tcp criado na interconexão com adb. Eus pesquisei sobre isso e notei que o pessoal teve muita dificuldade procurando a ttyUSB0. Mais abaixo eu mostro como é feito pelo bus. Use o comando para o server em TCP:

gpsd -N -D5 tcp://127.0.0.1:20175

Agora esta tudo em ordem, como você pode ler na mensagem. Esta em espera de conexão com o cliente. Basta abrir outro terminal e digitar:

xgps

Pronto, estamos usando o hardware GPS do telefone com SO android. Utilizamos para intermediar a conexão, para leitura dos dados, um aplicativo SHARE GPS. Por meio dele estabelecemos uma porta de transferencia. Utilizamos a tool gpsd para ler o tráfego e organizá-lo no xgps (cliente).


ttyUSB0

O tty refere-se a um terminal em SO de kernel linux e não necessariamente um protocolo ou arquivo de comunicação. O pessoal esta com dificuldades para encontrar a USB0 com base em tutoriais. Por isso é importante você ter um feedback quanto ‘ao que você esta fazendo’ para não ficar só copiando (LAMMER – scriptkid) mas tendo noção do que você esta fazendo.

Em alguns exemplos, esta é a mediação genérica para dizer que ‘o que deve ser usado aqui é sua comunicação com o device por USB’.

Para entender e saber onde esta seu device. Busque o diretório de arquivos que dão acesso à sua conexão. No linux ele esta em /dev. Como trata-se de conexão via USB, use o comando. No meu caso o BUS esta destacado.

lsusb

Liste a hierarquia de pasta. Como se trata de um BUS será a /dev/bus

ls /dev/*

ls /dev/bus/usb/ID_BUS/ID_DEVICE no meu caso será:

ls /dev/bus/usb/001/028

Se quiser, desconecte e conecte o USB e parta para o mesmo princípio de busca do device. Notará que o valor irá mudar a cada reconexão. Portanto, mesmo que houvesse a ttyUSB0, o nome de identificação será mudado. Por isso usamos o tcp por ser uma constante e não variável.

Busque:

locate ttyUSB0
locate /dev/ttyUSB0


É interessante informar que se quiser nomear alguns devices como um tyyUSB0:

minicom -s


Agora configure o processo com um sock. Mate o processo gpsd, caso esteja rodando [poderá verificar ps | grep gpsd]

killall gpsd

Apague o arquivo sock default, ou se tentou configurar. Se não apagá-lo as configurações não são renovadas, mesmo trocando valores (cache):

rm /var/run/gpsd.sock

O sock que poderemos utilizar é o seu BUS. E ele é trocado a cada reconexão com a USB. Por isso precisamos reconfigurá-lo. Lembre-se que a conexão que estamos usando é NMEA (D5). Verifique a documentação: man gpsd

gpsd -N -D5 -F /var/run/gpsd.sock

gpsd -N -D5 -F /var/run/gpsd.sock /dev/bus/usb/001/029

É 0029 porque reconectei o USB.

Teoricamente existe uma conexão com satélites. Explorando isso talvez possamos ter o controle de algum via tcp.


Vou ver se acerto o mapa com o google e continuo aqui. Eu quero fazer um tracking (realtime) sem ser preciso criar app mas utilizando ferramentas que temos disponíveis, neste caso os dados de retorno do gps. Com o uso do google fica em estilo FBI, rs

 

 

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s