hacktricks/crypto-and-stego/hash-length-extension-attack.md

5.6 KiB

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks :

WhiteIntel

WhiteIntel est un moteur de recherche alimenté par le dark web qui offre des fonctionnalités gratuites pour vérifier si une entreprise ou ses clients ont été compromis par des logiciels malveillants voleurs.

Le but principal de WhiteIntel est de lutter contre les prises de contrôle de compte et les attaques de ransomware résultant de logiciels malveillants volant des informations.

Vous pouvez consulter leur site Web et essayer leur moteur gratuitement sur :

{% embed url="https://whiteintel.io" %}


Résumé de l'attaque

Imaginez un serveur qui signe des données en ajoutant un secret à des données en clair connues, puis en hachant ces données. Si vous connaissez :

  • La longueur du secret (cela peut également être obtenu par force brute dans une plage de longueurs donnée)
  • Les données en clair
  • L'algorithme (et s'il est vulnérable à cette attaque)
  • Le padding est connu
  • Habituellement, un padding par défaut est utilisé, donc si les 3 autres conditions sont remplies, celui-ci l'est aussi
  • Le padding varie en fonction de la longueur du secret + des données, c'est pourquoi la longueur du secret est nécessaire

Alors, il est possible pour un attaquant d'ajouter des données et de générer une signature valide pour les données précédentes + les données ajoutées.

Comment ?

Essentiellement, les algorithmes vulnérables génèrent les hachages en hachant d'abord un bloc de données, puis, à partir du hash créé précédemment (état), ils ajoutent le bloc de données suivant et le hachent.

Ensuite, imaginez que le secret est "secret" et les données sont "data", le MD5 de "secretdata" est 6036708eba0d11f6ef52ad44e8b74d5b.
Si un attaquant souhaite ajouter la chaîne "append", il peut :

  • Générer un MD5 de 64 "A"
  • Changer l'état du hachage initialisé précédemment en 6036708eba0d11f6ef52ad44e8b74d5b
  • Ajouter la chaîne "append"
  • Terminer le hachage et le hachage résultant sera un valide pour "secret" + "data" + "padding" + "append"

Outil

{% embed url="https://github.com/iagox86/hash_extender" %}

Références

Vous pouvez trouver cette attaque bien expliquée dans https://blog.skullsecurity.org/2012/everything-you-need-to-know-about-hash-length-extension-attacks

WhiteIntel

WhiteIntel est un moteur de recherche alimenté par le dark web qui offre des fonctionnalités gratuites pour vérifier si une entreprise ou ses clients ont été compromis par des logiciels malveillants voleurs.

Le but principal de WhiteIntel est de lutter contre les prises de contrôle de compte et les attaques de ransomware résultant de logiciels malveillants volant des informations.

Vous pouvez consulter leur site Web et essayer leur moteur gratuitement sur :

{% embed url="https://whiteintel.io" %}

Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)!

Autres façons de soutenir HackTricks :