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
ATFuzzer — Grammar-guided evolutionary fuzzer for dynamic analysis of AT command interfaces on Android smartphones via Bluetooth and USB, uncovering DoS, privacy leaks, and protocol downgrade vulnerabilities. | Kitploit
Outils/GitHubGitHub/sysnets/atfuzzer
Sécurité AndroidSécurité BluetoothAnalyse Dynamique (Sandboxing)Analyse des VulnérabilitésFuzzing
GitHubsysnets/atfuzzer

ATFuzzer

Grammar-guided evolutionary fuzzer for dynamic analysis of AT command interfaces on Android smartphones via Bluetooth and USB, uncovering DoS, privacy leaks, and protocol downgrade vulnerabilities.

Voir le dépôt
15840il y a 5 ansVérifié par Kitploit

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

ATFuzzer

"Ouvrir la boîte de Pandore avec ATFuzzer : Analyse dynamique de l'interface AT pour smartphones Android" est accepté à la 35e Conférence annuelle sur les applications en sécurité informatique (ACSAC) 2019. https://syed-rafiul-hussain.github.io/wp-content/uploads/2019/11/atfuzz.pdf

Résumé

Cet article se concentre sur la vérification de l'exactitude et de la robustesse de l'interface de commandes AT exposée par le processeur de bande de base cellulaire via Bluetooth et USB. Le processeur applicatif d'un appareil utilise cette interface pour émettre des commandes de haut niveau (ou commandes AT) vers le processeur de bande de base afin d'effectuer des opérations réseau cellulaires (par exemple, passer un appel téléphonique). Des vulnérabilités dans cette interface peuvent être exploitées par des périphériques Bluetooth malveillants pour lancer diverses attaques, y compris des attaques par déni de service (DoS) et des atteintes à la vie privée. Pour identifier ces vulnérabilités, nous proposons ATFuzzer, qui utilise une approche de fuzzing évolutionnaire guidé par grammaire et qui mute les règles de production de la grammaire des commandes AT plutôt que les commandes AT concrètes. L'évaluation empirique d'ATFuzzer sur 8 smartphones Android de 5 fournisseurs a révélé 4 grammaires de commandes AT invalides via Bluetooth et 13 via USB, avec des conséquences allant du DoS, de la rétrogradation de la version du protocole cellulaire à de graves fuites de confidentialité.

Exécuter ATFuzzer

Prérequis

Python 2.7.15. Veuillez ne pas utiliser Python 3 en raison d'incompatibilités de bibliothèques. Les bibliothèques nécessaires sont spécifiées dans le fichier requirements.txt et peuvent être installées en exécutant la commande :

pip install -r requirements.txt

Remarque : le module pybluez pour Python 2.7 n'est pas compatible avec Windows. Pour installer pybluez sur Windows, il est nécessaire de télécharger une version antérieure. Téléchargez PyBluez‑0.22‑cp27 sur pybluez et installez-le avec la commande :

pip install <fichier pybluez.whl>

Comment exécuter

Pour exécuter ATFuzzer, lancez la commande suivante :

sudo python executeFuzzer.py <liste_de_grammaires> <nom_de_l'appareil> <port (optionnel)>

Alternativement, il est possible d'exécuter ATFuzzer avec plusieurs grammaires choisies aléatoirement avec la commande :

sudo python executeFuzzer.py multi <nom_de_l'appareil> <port (optionnel)>

Le programme demande ensuite de choisir parmi 4 options :

  • 0 - Fuzzer standard (inclut croisement, mutation, évaluation du retour)
  • 1 - Fuzzer sans retour
  • 2 - Fuzzer sans croisement
  • 3 - Fuzzer sans mutation

Ces options permettent à l'utilisateur de choisir le type d'ATFuzzer à exécuter. Ceci est fondamental pour tester et évaluer l'efficacité de notre fuzzer.

Enfin, ATFuzzer demande de spécifier le canal utilisé pour la transmission des commandes AT. Il est possible de sélectionner une option parmi trois :

  • b - Bluetooth
  • u - USB
  • t - Exécution de test (ne nécessite aucun appareil connecté)

Si l'option Bluetooth est sélectionnée, le programme demande l'adresse Bluetooth de l'appareil cible. L'utilisateur peut saisir l'adresse MAC Bluetooth de l'appareil au format spécifique : XX:XX:XX:XX:XX:XX (ex. 1A:2B:3C:4D:5E:6F).

L'exécution de test exécute ATFuzzer avec des paramètres d'évaluation factices et sans soumettre aucune commande à un appareil. Cette option est uniquement à des fins de test, ne l'utilisez donc pas pour fuzzer un véritable smartphone.

Remarque : si vous exécutez ATFuzzer Bluetooth sur Linux, il peut être nécessaire d'exécuter le programme avec sudo, selon la configuration système.

Structure de l'implémentation d'ATFuzzer

Nous fournissons ci-dessous une description de la structure de l'implémentation d'ATFuzzer.

commandGrammar.json : fichier JSON contenant un ensemble de grammaires pour plus de 80 commandes AT. Les grammaires sont définies selon une structure spécifique permettant au programme de les lire efficacement.

executeFuzzer.py : programme principal permettant à l'utilisateur d'exécuter ATFuzzer. Il propose différentes options d'exécution (voir Comment exécuter).

grammarFuzzer.py : implémente le fuzzing proprement dit. Il lit les grammaires des commandes AT soumises par l'utilisateur et effectue la boucle de fuzzing : génération d'entrée - soumission d'entrée - évaluation de grammaire - évolution de grammaire.

multiGrammarFuzzer.py : implémente le fuzzing proprement dit. Il lit les grammaires des commandes AT choisies aléatoirement et effectue la boucle de fuzzing : génération d'entrée - soumission d'entrée - évaluation de grammaire - évolution de grammaire.

grammarModifier.py : implémente les fonctions pour la phase d'évolution. Ces fonctions incluent le croisement de grammaire et la mutation de grammaire.

inputGen.py : génère une instance de commande AT aléatoire à partir d'une grammaire d'entrée.

atCmdInterface.py : implémente les fonctions nécessaires pour interagir avec l'interface AT de l'appareil cible. Il est responsable de l'établissement de la communication avec l'appareil, de la soumission des instances de commande AT, et enfin de la collecte et de l'évaluation des réponses.

afl_fuzzer.py : implémente les fonctions utilisées pour exécuter AFL fuzzer dans le contexte des commandes AT.

utilityFunctions.py : implémente des fonctions de support pour l'exécution du programme principal.

results : répertoire contenant les résultats de chaque exécution d'ATFuzzer.

Démo

https://www.youtube.com/watch?v=qR4Pq5i0IRE

Citation

Si votre recherche trouve un ou plusieurs composants de savior utiles, veuillez citer l'article suivant :

root@kitploit:~

@inproceedings{karim2019opening,
  title={Opening Pandora's box through ATFuzzer: dynamic analysis of AT interface for Android smartphones},
  author={Karim, Imtiaz and Cicala, Fabrizio and Hussain, Syed Rafiul and Chowdhury, Omar and Bertino, Elisa},
  booktitle={Proceedings of the 35th Annual Computer Security Applications Conference},
  pages={529--543},
  year={2019}
} 

Télécharger l’outil