Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
CVE-2026-0073-Android-client-TLS-auth-bypass — translating original python exploit to C | Kitploit
Ferramentas/GitHubGitHub/m00ddy/cve-2026-0073-android-client-tls-auth-bypass
Android SecurityVulnerability AnalysisExploitationPenetration TestingPayload DevelopmentBinary Exploitation
GitHubm00ddy/cve-2026-0073-android-client-tls-auth-bypass

CVE-2026-0073-Android-client-TLS-auth-bypass

translating original python exploit to C

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver Repositório
2há 2 mesesAinda não revisado

CVE‑2026‑0073 é um bug lógico no daemon ADB do Android (adbd) que permite a um atacante contornar a autenticação mútua TLS e abrir um shell remoto em um dispositivo que tenha a depuração sem fio ativada e tenha sido pareado com qualquer computador pelo menos uma vez. A causa raiz é uma única API mal utilizada: o valor de retorno de EVP_PKEY_cmp() do OpenSSL é tratado como um booleano em vez de um resultado de três valores.

Fluxo de autenticação normal com depuração sem fio ADB

quando ativamos a depuração sem fio nas configurações de desenvolvedor do Android, o dispositivo inicia uma instância adbd que escuta em uma porta TCP aleatória. Nota: este recurso foi introduzido a partir do Android 11.

o protocolo tem duas fases:

  1. negociação em texto claro: o host conecta via TCP e troca um handshake CNXN/STLS para concordar em atualizar para TLS.
  2. autenticação mútua TLS 1.3:
    • o servidor adbd exige que o cliente apresente um certificado
    • adbd extrai a chave pública desse certificado
    • em seguida, compara a chave com todas as chaves RSA autorizadas armazenadas em /data/misc/adb/adb_keys. as chaves são colocadas lá durante pareamentos anteriores (o exploit requer que pelo menos uma chave esteja aqui)
    • se as chaves coincidirem, o handshake é bem-sucedido e o host pode enviar comandos shell como o usuário shell a comparação de chaves é feita usando EVP_PKEY_cmp(key1, key2) do OpenSSL, que retorna
  • 1 --> as chaves são iguais
  • 0 --> as chaves não são iguais
  • -1 --> os tipos de chave diferem, ou ocorreu um erro

O bug

no arquivo daemon/auth.cpp a função vulnerável adb_tls_verify_cert() se parece com algo assim:

root@kitploit:~
int cmp = EVP_PKEY_cmp(stored_rsa_key, peer_key);
if (cmp) {     
    authorised = true;
}

já que if(cmp) retorna verdadeiro enquanto cmp for diferente de zero, um valor de retorno -1 de EVP_PKEY_cmp() leva à autorização. isso significa que, como a chave armazenada é RSA, quando o cliente apresenta um certificado EC ou ed25519, a função retorna -1 e o atacante obtém acesso autorizado.

Sequência de ataque

  1. alvo: um dispositivo Android com depuração sem fio ativada e pelo menos uma chave RSA em seu keystore (foi pareado uma vez, por qualquer pessoa).

  2. handshake em texto claro: o atacante conecta à porta TCP do adbd e troca CNXN/STLS.

  3. handshake TLS com certificado EC: o atacante gera uma chave EC P‑256 efêmera e um certificado autoassinado. esta chave é deliberadamente não RSA.

  4. comparação falha: EVP_PKEY_cmp(RSA, EC) retorna -1 → if (cmp) é verdadeiro → adbd marca o transporte como autorizado.

  5. pós‑TLS: O atacante evita enviar um CNXN do host (que redefiniria o transporte) e abre diretamente um fluxo shell: com uma grande janela delayed_ack.

Resultado: Shell remoto como o usuário shell, sem interação do usuário, sem notificação e sem necessidade de possuir qualquer chave privada legítima.

Por que traduzi-lo para C?

O script Python requer um interpretador Python 3 e a biblioteca cryptography instalada na máquina do atacante. Uma implementação em C compila para um binário independente sem dependências externas além do OpenSSL/libssl do sistema, que está presente em praticamente todo sistema Linux por padrão. Isso reduz drasticamente a barreira para implantação. Além disso, um programa em C pode ser compilado de forma cruzada para qualquer arquitetura alvo (x86_64, ARM, MIPS). Isso significa que o exploit poderia ser compilado e executado diretamente em dispositivos embarcados como roteadores, Raspberry Pis, ou até mesmo outro dispositivo Android atuando como atacante, sem necessidade de ambiente Python. E um binário C compilado pode ser removido de símbolos, empacotado (UPX) e é opaco sem um desmontador, o que o torna mais furtivo que um script Python.

Demonstração

executando o exploit: forneça o IP e a PORTA da interface de depuração sem fio e você terá um shell no dispositivo.

root@kitploit:~
docker build -t adb_bypass .
docker run -it --network host adb_bypass <IP> <PORT>

abrindo uma calculadora

root@kitploit:~
am start -n com.sec.android.app.popupcalculator/com.sec.android.app.popupcalculator.Calculator

Nota sobre o uso de LLM

LLM foi usado para traduzir o exploit de Python para C, o exploit original está aqui. a tradução não foi correta 1:1 e enfrentamos muitos problemas, portanto um loop de análise de código e idas e vindas em conversas foi necessário para corrigir bugs na tradução e chegar a um exploit funcional completo.

Baixar ferramenta