Hackeando drones com Software Livre

35
Hackeando Drones com Software Livre Eduardo Santos @edusantos33 http://compartilhandotic.blogspot.com.br PotiLivre.org

Transcript of Hackeando drones com Software Livre

Page 1: Hackeando drones com Software Livre

Hackeando Drones com Software Livre

Eduardo Santos@edusantos33

http://compartilhandotic.blogspot.com.brPotiLivre.org

Page 2: Hackeando drones com Software Livre
Page 3: Hackeando drones com Software Livre

Quem sou eu?

●Técnico em Eletrônica●2º colocado na Olimpíada do Conhecimento do Senai – Sistema de Transporte da Informação

●Tecnólogo em Redes de Computadores●Mantenedor e Instrutor de Eletrônica da aeronave A-29 Super Tucano

Page 4: Hackeando drones com Software Livre

Objetivo

● Explicar como funciona um drone (nome genérico para VANT - Veículo Aéreo Não Tripulado), suas principais aplicações no mundo real e da diversão e como o pesquisador Samy Kamkar conseguiu hackear o Parrot AR.Drone usando Javascript, Perl, Linux, aircrack-ng e Raspberry-Pi.

Page 5: Hackeando drones com Software Livre

Agenda

● O que são drones e como funciona?

● O que é o Parrot AR.Drone 2.0 e como funciona?

● Quem é Samy Kamkar e o que ele fez?

● Entenda os Software Livres usados para hackear

● Hackeando o AR. Drone

Page 6: Hackeando drones com Software Livre

O que são drones?

● Drone = Zangão

● UAV (Unmanned Aerial Vehicle), VANT (Veículo Aéreo Não Tripulado) ou ARP (Aeronave Remotamente Pilotada)

● Existem vários modelos, tamanhos e aplicabilidade

Page 7: Hackeando drones com Software Livre

O que são drones?

● Aplicação:

– Combate ao “terrorismo”, diversão, monitoramento, patrulha, foto e filmagem, entrega de encomendas.

Page 8: Hackeando drones com Software Livre

Como funciona um drone?

● GCS – Ground Control Station

Page 9: Hackeando drones com Software Livre

Como funciona um drone?

Page 10: Hackeando drones com Software Livre

O que é o Parrot AR.Drone 2.0 e como funciona?

● Quadricóptero radio controlado via WiFi 802.11b/g/n utilizando tablet ou smartphone (iOS ou Android)

● Autonomia: 12min a 5m/s

● Frabicado pela francesa Parrot,

● Processador: 1GHz 32bit ARM Cortex A8 com 800MHz video

● Linux 2.6.32

● 1GB DDR2 RAM at 200MHz

● Firmware proprietário

Fonte: http://ardrone2.parrot.com/

Page 11: Hackeando drones com Software Livre

O que é o Parrot AR.Drone 2.0 e como funciona?

● Indoor ●Outdoor

Page 12: Hackeando drones com Software Livre

O que é o Parrot AR.Drone 2.0 e como funciona?

●A Parrot publicou um SDK (Software Delopment Kit) – todo em C–Desenvolvedores mobiles

● Novos jogos e aplicações de entretenimento via WiFi

●Utiliza protocolo aberto no cliente–Recebe dados de video e dos sensores

●Para mais informações: https://projects.ardrone.org/projects/show/ardrone-api

Page 13: Hackeando drones com Software Livre

O que é o Parrot AR.Drone 2.0 e como funciona?

Page 14: Hackeando drones com Software Livre

Quem é Samy Kamkar e o que ele fez?

● Pesquisador de segurança e privacidade, hacker e empresário.

● Com 17 anos foi co-fundador da Fonality, hoje é co-fundador da Unleak

● Criou o Samy Worm (2005), malware para o MySpace: “but most of all, Samy is my hero”. Em 20h tinha mais de 1milhão de pessoas infectadas

● Criou o Evercookie (2010), um cookie que "aparentemente, não pode ser excluído", foi publicado na primeira página do New York Times. E em 2013, foi citado em documento revelado por Edward Snowden como método de rastrear usuários na rede Tor, pela NSA.

● SkyJack (2013)

Fonte: https://en.wikipedia.org/wiki/Samy_Kamkar

Page 15: Hackeando drones com Software Livre

Software Livres e Hardware usados para hackear

● Software

– SkyJack

● Aircrack-ng● node-ar-drone● node.js

● Hardware

– Raspberry-Pi

– USB Battery

Page 16: Hackeando drones com Software Livre

Software Livres e Hardware usados para hackear

●Hardware– Alfa AWUS036H wireless adapter (Modo

monitor)

– Edimax EW-7811Un wireless adapter

Page 17: Hackeando drones com Software Livre

SkyjackO que é o Perl?

● Perl é uma linguagem de programação de propósito geral originalmente desenvolvida para manipulação de texto e agora usado para uma grande variedade de tarefas, incluindo a administração do sistema, desenvolvimento web, programação de rede, desenvolvimento de GUI, e muito mais.

● A linguagem pretende ser prática (fácil de usar, eficiente, completa) ao invés de bonita (pequena, elegante, mínima). Suas principais características são que é fácil de usar, suporta tanto processual e programação orientada a objetos (OO), tem poderoso built-in suporte para processamento de texto, e tem uma das mais impressionantes coleções do mundo de módulos de terceiros.

Fonte: http://perldoc.perl.org/perlintro.html#What-is-Perl?

Page 18: Hackeando drones com Software Livre

Skyjack

Page 19: Hackeando drones com Software Livre

Hackeando o AR. Drone● Samy utilizou um Raspberry-Pi embarcado no AR. Drone

2.0 rodando o SkyJack (Perl).

– Aircrack-ng => Modo monitor [1] (placa USB WiFi Alfa)

● procurando pelos OUI dos endereços MAC da Parrot (fonte IEEE) [2]

–90-03-B7 00:12:1C–A0-14-3D 00:26:7E

● Conecta-se a mesmo canal utilizado pelo “alvo” [3]

[1] $airmon-ng start $interface

[2] $airodump --output-format csv -w $tmpfile $interface

[3] $iwconfig, $interface, "channel", $chans

Page 20: Hackeando drones com Software Livre

Hackeando o AR. Drone● ...ainda com o aircrack-ng

–Desautentica o AR. Drone alvo do seu verdadeiro piloto e envia sinais de ARP Request Replay [4]

● Faz o AR.Drone Master conectar-se a mesma rede do drone alvo (Zumbi)

● Captura o IP do “alvo” [6]● Então usa o node.js com o node-ar-drone para controlar os drones zumbis [7]

[4] $aireplay, "-0", "3", "-a", $clients{$cli}, "-c", $cli, $interface)

[5 ]$iwconfig, $interface2, "essid", $chans{$drone}

[6] $dhclient, "-v", $interface2

[7] $nodejs, $controljs

Page 21: Hackeando drones com Software Livre

node.js

● Plataforma construída em tempo de execução do JavaScript do Chrome para operações rápidas e escaláveis na rede.

● Usadas para aplicações de rede em tempo real, em substituição das threads e forks

● Usada para conexões cliente-servidor com sockets

Fonte: http://nodejs.org/

Page 22: Hackeando drones com Software Livre

node-ar-drone

●O protocolo do lado do cliente para controle do Parrot AR. Drone é Open

●Essa é uma implementação desse protocolo e foi criada baseado no SDK do Parrot

Page 23: Hackeando drones com Software Livre

node-ar-drone

Page 24: Hackeando drones com Software Livre

node-ar-drone

Page 25: Hackeando drones com Software Livre

Pergunta 01●Cite pelo menos dois nomes dos SL usados nessa prática?

Page 26: Hackeando drones com Software Livre

Resposta 01–Node-ar-drone

–Skyjack (Perl)

–node.js

–Aircrack-ng● Airmon-ng● Airodump

Page 27: Hackeando drones com Software Livre

Pergunta 02●Qual comando GNU/Linux usado para forçar um host a receber um IP via DHCP?

Page 28: Hackeando drones com Software Livre

Resposta 02●$ dhclient $interface

Page 29: Hackeando drones com Software Livre

Pergunta 03●Qual o nome do “cara” que fez essa façanha usando SL e o Parrot AR. Drone?

Page 30: Hackeando drones com Software Livre

Dica●Começa com S...

:D

Page 31: Hackeando drones com Software Livre

Resposta 03●Samy Kamkar

Page 32: Hackeando drones com Software Livre

Pergunta 04●O que é e como funciona o protocolo ARP?

Page 33: Hackeando drones com Software Livre

Resposta 04●Address Resolution Protocol

Page 34: Hackeando drones com Software Livre

Dúvidas???

Créditos: http://samy.pl/skyjack/

Page 35: Hackeando drones com Software Livre

FIM

“Quando tudo diz que não, Sua voz me encoraja a prosseguir...”