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
mellon — Outil d'attaque OSDP (et le mot elfique pour ami) | Kitploit
Outils/GitHubGitHub/bishopfox/mellon
Analyse des VulnérabilitésExploitationCryptographieTests d'IntrusionSécurité Matérielle
GitHubbishopfox/mellon

mellon

Outil d'attaque OSDP (et le mot elfique pour ami)

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

Vulnérabilités OSDP exploitées

Outil d'attaque OSDP (et le mot elfique pour ami)

Attaque n°1 : Le chiffrement est optionnel

OSDP prend en charge le chiffrement, mais ne l'exige pas strictement. Ainsi, votre connexion pourrait ne pas être chiffrée du tout. L'attaque n°1 consiste simplement à écouter passivement pour voir si vous pouvez lire les numéros de carte sur le fil.

Attaque n°2 : Attaque par downgrade

Ce n'est pas parce que le contrôleur et le lecteur prennent en charge le chiffrement qu'ils sont configurés pour en exiger l'utilisation. Un attaquant peut modifier le message de réponse de capacité du lecteur (osdp_PDCAP) pour indiquer qu'il ne prend pas en charge le chiffrement. Lorsque cela se produit, certains contrôleurs continuent sans chiffrement.

Attaque n°3 : Attaque par mode d'installation

OSDP possède un « mode d'installation » quasi-officiel qui s'applique à la fois aux lecteurs et aux contrôleurs. Comme son nom l'indique, il est censé être utilisé lors de la première configuration d'un lecteur. Il permet essentiellement aux lecteurs de demander au contrôleur quelle est la clé de chiffrement de base (le SCBK). Si le contrôleur est configuré pour rester en mode d'installation, un attaquant peut se présenter sur le fil et demander le SCBK.

Attaque n°4 : Clés faibles

Le code d'exemple OSDP contient souvent des clés de chiffrement codées en dur. Clairement, elles sont destinées à être des exemples, l'utilisateur devant générer ses propres clés de manière sécurisée. Cependant, cela n'est pas expliqué ni simplifié pour l'utilisateur. Et quiconque a suffisamment d'expérience en sécurité sait que ce qui est par défaut se retrouve souvent en production. Donc, en tant que vecteur d'attaque, lorsque la liaison entre le lecteur et le contrôleur est chiffrée, il vaut la peine d'énumérer quelques clés faibles courantes. Ce sont des clés AES de 128 bits, nous ne pourrons donc pas toutes les énumérer, ni même une partie significative. Mais nous pouvons cibler certains motifs courants que l'on voit lorsque quelqu'un code en dur une clé :

Télécharger l’outil
  • Toutes les valeurs d'un seul octet. [0x04, 0x04, 0x04, 0x04 …]
  • Toutes les valeurs d'octets croissantes de manière monotone. [0x01, 0x02, 0x03, 0x04, …]
  • Toutes les valeurs d'octets décroissantes de manière monotone. [0x0A, 0x09, 0x08, 0x07, …]

Attaque n°5 : Capture du jeu de clés

OSDP n'a pas de mécanisme intégré pour l'échange de clés. Cela signifie qu'un attaquant peut :

  • Insérer un dispositif d'écoute caché sur le fil.
  • Casser / réinitialiser d'usine / désactiver le lecteur.
  • Attendre que quelqu'un de l'informatique vienne remplacer le lecteur.
  • Capturer le message de jeu de clés (osdp_KEYSET) lors de la première configuration du lecteur.
  • Déchiffrer tous les messages futurs.

Mise en place d'un banc d'essai (Linux/MacOS)

Vous trouverez un code de preuve de concept pour chacune de ces attaques dans attack_osdp.py. Consultez la commande --help pour plus de détails sur l'utilisation. Il s'agit d'un script Python destiné à être exécuté à partir d'un ordinateur portable avec des adaptateurs USB<-->RS485 comme ceux-ci. Vous voudrez donc probablement vous en procurer. Ce n'est pas obligatoirement ce modèle. Si vous avez un contrôleur que vous souhaitez tester, tant mieux. Utilisez-le. Sinon, nous avons un contrôleur OSDP intentionnellement vulnérable que vous pouvez utiliser ici : vulnserver.py. Certaines attaques dans attack_osdp.py s'attendent à être un MitM complet entre un lecteur et un contrôleur fonctionnels. Pour les tester, vous pourriez avoir besoin de trois adaptateurs USB<-->RS485, reliés entre eux avec une plaque d'essai.

Problèmes supplémentaires à risque moyen/faible

Ces problèmes ne sont pas exploitables isolément mais représentent néanmoins un affaiblissement du protocole, de l'implémentation ou du système global.

  • Les MAC sont tronqués à 32 bits « pour réduire la surcharge ». Cela est très proche (mais pas tout à fait selon notre calcul) de la plage exploitable en pratique.
  • Les IV (qui sont dérivés des MAC) sont également réduits à 32 bits d'entropie. Cela provoquera une réutilisation des IV, ce qui est un signal d'alarme majeur pour un protocole.
  • Les clés de session ne sont générées qu'avec 48 bits d'entropie à partir du nonce RNG du contrôleur. Cela ne semble toutefois pas possible pour un attaquant observateur de les énumérer hors ligne. (Sauf si nous manquons quelque chose, auquel cas cela deviendrait un problème critique.)
  • Les numéros de séquence ne comportent que 2 bits, ce qui ne garantit pas une fraîcheur suffisante.
  • Le chiffrement en mode CBC est utilisé. GCM serait un mode de chiffrement par blocs plus moderne et approprié pour les protocoles réseau.
  • Les modes SCS 15 et 16 sont essentiellement des « chiffrements nuls » et ne devraient pas exister. Ils ne chiffrent pas les données.
  • L'octet de commande OSDP est toujours non chiffré, même au milieu d'une session de canal sécurisé. C'est un avantage considérable pour les attaquants, rendant les outils d'attaque beaucoup plus faciles à écrire. Cela signifie qu'un attaquant peut toujours voir quel « type » de paquet est envoyé, même s'il est autrement chiffré. Les attaquants peuvent savoir quand les gens badgeent, quand la LED s'allume, etc... Ce ne sont pas des informations qui devraient être en clair.
  • SCBK-D (une clé de chiffrement « par défaut » codée en dur) n'offre aucune sécurité et devrait être supprimé. Il ne sert qu'à obscurcir et à donner un faux sentiment de sécurité.