articles
réactions
Jeff - 03.03.2008 | 3 réactions | #link | rss
Alors voilà, tout le monde dit qu'un des buts du h4x0r est d'arriver à extraire la SAM sur une machine Windows. Moi je dis "oué. Et ensuite?"

  • Tout d'abord, pour ceux qui viennent de sortir de leur caverne ou d'être décongelés par De Funès, la SAM se dump facilement -avec les droits adéquats- à l'aide de différents outils tels que Ophcrack, Pwdump ou FGdump. Notez que ce dernier est le plus abouti et qu'il essaye également d'extraire les données MScash ou cachedump, c'est-à-dire les hashes stockés temporairement sur la machine pour permettre à l'utilisateur de se connecter même si le domaine Windows n'est pas accessible (comme la majorité des itinérants de l'informatique).

    De base (je vais pas ré-écrire le manuel, hein... Allez voir ce lien), on récupère les 2 fichiers 127.0.0.1.pwdump et 127.0.0.1.cachedump, qui contiennent des hiéroglyphes tels que ci-dessous (tronqués pour que ca rentre):

    Administrator:500:E7B7DD8FAAD3B422B51404EE:EF3D83ACCFDABC63
    ASPNET:1004:0FBE2605119446A1066F301:B1D1A7BFDE90DA77CBD3DF4
    Guest:501:NO PASSWORD*************:NO PASSWORD***********:::

  • Chaque ligne contient 2 hashes, le premier correspond au format LM (lan manager) et le second au format NT LM qui est une version plus sécurisée du premier.

    Le format LM est foncièrement mauvais pour plusieurs raisons, parmi lesquelles le manque de Salt (graine additionnelle pour complexifier le craquage; elle évite par exemple que 2 mots de passe identiques ne donnent les mêmes hashés), le traitement par blocks de 7 caractères (un mot de passe de 9 caractères, c'est en fait un de 7 et un de 2) , que des majuscules, etc. Il n'est d'ailleurs plus utilisé sous Windows Vista. Il suffit pour cela de dumper la SAM et de voir que les champs LM sont vides.

    En attendant, il apparaît que la majorité des systèmes présentent ce mode de compatibilité par défaut. Et qu'il est donc très intéressant de savoir l'attaquer.

  • Les premiers réflexes consistent à attaquer les hashés directement: John-the-ripper s'impose même si d'autres outils existent. Ce logiciel supporte même le format "mscash" cité plus haut grâce à un patch ad-hoc. Il est conseillé de tester les modes dans l'ordre: --single, --wordlist puis --incremental.

  • Alors, si tous les mots de passe (ou aucun) n'ont pas été retrouvés, il est temps d'envisager une méthode plus moderne. Celle-ci fait appel aux fameuses Rainbow Tables. Ces tables sont une implémentation du principe de Time-memory trade-off en cryptographie. D'un point de vue général, aucun algorithme n'est absolument sécurisé; sa robustesse se mesure en terme de complexité (par exemple de factorisation modulaire en ce qui concerne RSA). Cette complexité est directement mesurable par des moyens pratiques et des statistiques: puissance de calcul, quantité de mémoire disponible pour les données, algorithmes de factorisation, accélération hardware, etc.

    Il se trouve que la technique des Rainbow Tables permet d'influer sur le ratio puissance de calcul (temps) / mémoire: en pré-calculant des données utiles au préalable et une fois pour toutes, il est possible de diminuer le temps de calcul lors de l'attaque. Plus les données pré-calculées seront importantes, plus l'attaque sera rapide (et efficace), et ce tant que les temps de chargement des tables en mémoire restent négligeables bien entendu. Ces tables sont en réalité composées de chaînes plus ou moins longues alternant fonctions de hachage et fonctions de réduction. Si le hashé attaqué est découvert dans une de ces chaînes, le mot de passe correspondant est alors retrouvé immédiatement.

    Les rainbow tables sont aujourd'hui utilisées et supportées dans de nombreux logiciels: Ophcrack2, Cain, RainbowCrack, etc.

    La prochaine phase de l'attaque consiste donc à utiliser des Rainbow Tables pour retrouver les mots de passe de la SAM. Il est nécessaire pour cela d'avoir des Rainbow Tables adéquates: du fait de la méthode utilisée, un jeu de tables n'est valide que pour un seul algorithme. Il est cependant possible d'en télécharger gratuitement via le peer-to-peer ou d'en acheter.

    Ensuite il suffit de préparer les tables (les ordonner) si cela n'a pas été fait, puis de lancer l'attaque. Notez que la génération des tables est bien entendu possible, si vous avez du temps et un gros disque dur.


  • Pour finir, des techniques hybrides sont apparues pour optimiser l'efficacité des tables sans pour autant en générer des Tera-octets. Ces tables hybrides semblent allier la technique des Rainbow Tables à l'efficacité des attaques par dictionnaire pour optimiser l'espace des mots de passe testés.

  • Notez enfin que tous les algorithmes ou méthodes basés sur des techniques de hachage peuvent être attaqués par ce biais. On trouvera par exemple des tables utiles au cassage de clés WPA.

Jeff - 16.02.2008 | 0 réactions | #link | rss
Alors voilà, comme c'est un sujet récurrent et à priori intéressant pour beaucoup de personnes (sans parler de leurs motivations), j'ai continué mes bidouilles après cet article.

On m'a judicieusement rappelé ce lien, que je n'étais pas allé voir depuis longtemps. Il s'agit des projets de Hak5, en l'occurrence les clés USB destinées à récupérer les mots de passe Windows.



Le projet propose plusieurs solutions, notez que plusieurs liens ne sont plus actifs (au moment où j'y suis allé). Ensuite, j'ai écarté les solutions se basant sur les clés U3, je n'avais pas envie de flasher ou débugger les outils proposés. Notez là aussi que ces procédés sont totalement réalisables, même si quelques effets de bord existent (images corrompues ou mal mises à jour) et qu'il est nécessaire de bien tester le processus avant de vouloir l'utiliser en live.

Alors, parmi les solutions restantes, je citerai "Gandalf's technique" et la "DLSS's update (v2)".
  • La première copie des fichiers sur le disque dur, les décompresse et les exécute avant de copier les résultats sur la clé et de tout effacer. Je n'ai pas eu des résultats brillants, juste quelques infos générales quand le script ne plantait pas (le répertoire temporaire sur le disque peut être accédé directement avec %temp%, cela permet de suivre l'état d'avancement du processus).

  • La deuxième semble beaucoup plus prometteuse. D'une part elle est assez discrète et rapide, d'autre part je n'ai pas eu d'effet de bord (du genre "Lsass.exe a rencontré une erreur et votre PC va rebooter dans 60 secondes"). En clair, soit cela marche et l'on récupère les hashes et autres mots de passe enregistrés, soit cela ne marche pas mais aucune erreur n'est générée (à part dans le fichier de résultats). Le tout présenté sobrement et efficacement pour s'y retrouver facilement.


Dans les 2 cas, bien placer les fichiers à la racine de la clé, sinon les scripts s'emmêlent les pinceaux et aucun résultat n'est loggé.

A suivre...
FutureBlogs - v.0.8.6beta - Ce site est hébergé par http://monblog.ch