Classic SAM

0x0ff rocketLa catégorie Classics inaugurée par l’article que vous êtes en train de parcourir, a été créé pour que je puisse assouvir mon irrépressible besoin d’inonder le web d’une énième série d’articles traitant des bases (voir des bases de bases) de la sécurité informatique et du pentest.


Ce n’est cependant pas un simple désir stérile. l’idée principale derrière cette démarche est de dépoussiérer quelques vieux documents que j’ai rédigés il y a un moment et qui moisissent inutilement sur mes disques depuis trop longtemps. La seconde raison est que le travail étant déjà fait, la mise en ligne de ces articles nécessite que peu de travail. Le blog est pour le moment un peu vide de contenu, ces quelques articles reste tout de même un plus pour 0x0ff.info ! :) Puis faut quand même pas abuser, ça reste un savoir qu’il est essentiel d’acquérir. Car doué ou moins doué, le constat est le même : il faut bien débuter quelque part !

On commencera donc par quelques tutoriels sur ces outils que l’on a usé jusqu’à la corde, rappés jusqu’à la doublure intérieure, élimé plus que Colombo a élimié son trench… Ces quelques Tools que l’on a pourtant été tellement fier de maîtriser. Rappelez vous, ayant définitivement abandonné ce rêve un peu con de devenir astronaute (bah oui, faut bosser à l’école, avoir le fric de papa maman qui suit pour payer les grandes écoles, et par dessus ça, posséder une condition physique de sportif professionnel. En gros une vrai bonne grosse idée bien pourrie !), vous avez décidé de donner un tout nouvel éclat à votre personnalité en vous glissant dans l’ombre de l’underground (bouh ça fait peur..). Vous avez alors réalisé l’impacte terrible que ce choix aura sur vos proches. C’est à ce moment crucial de votre existence que vous avez déclamé avec plein d’emphase cette phrase Shakespearienne à votre petite amie Beverly :

Écoute bébé, moi et mes copains du forum JVC on va devenir une team de hackerZ… Ça risque d’être très dangereux tu sais, si tu veux partir je comprendrais…”

Le premier de cette (trop?) longue série est un grand classique du genre : la découverte du mot de passe administrateur d’un Windows XP ! Yippie-Kay-Yee.. D’ailleurs, passons tout de suite aux choses sérieuses.

Les choses sérieuses

Les deux fichiers qui nous intéressent sont les fichiers « SAM » et « system ». Le fichier SAM (Security Account Manager) contient les mots de passe et les comptes locaux cryptés. Le fichier system est une partie de la base de registre, il va nous permettre de récupérer la “bootkey” qui est nécessaire au décryptage du fichier SAM.

 win-sam-1

Bkhive est l’outil (Unix) qui va nous permettre de récupérer cette précieuse clé :

# bkhive system bkhive_file
bkhive 1.1.1 by Objectif Securite
http://www.objectif-securite.ch
original author: ncuomo@studenti.unina.it
Root Key : $$$PROTO.HIV
Default ControlSet: 001
Bootkey: 0e7e3733f6a3731e3e6c9f483de911e9

Cette clé est ensuite utilisé par un second outil « samdump2 » qui va récupérer pour nous les informations nécessaires au cassage des mots de passe.

# samdump2 SAM bkhive_file
samdump2 1.1.1 by Objectif Securite
http://www.objectif-securite.ch
original author: ncuomo@studenti.unina.it
Root Key : SAM
Administrateur:500:b9212bf35a38b108bad3b435b51404ee:e6b7ea95c97be07ec6dd1093c26ab663:::
Invit�:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::

john-logoJohn The Ripper est un logiciel spécialisé dans le cassage de mots de passe hors ligne. Il propose un certain nombre de méthodes pour trouver ces passwords et connait un très grand nombre d’algorithmes de cryptage.

 L’algorithme utilisé pour les mots de passe Windows  dans le fichier SAM est le LM hash ( LAN Manager hash). C’est un algorithme obsolète qui ne permet plus réellement d’assurer la confidentialité des données cryptées. Explication

  • Le mot de passe est séparé en deux blocs de 7 caractères.
  •  Lorsque le mot de passe a une longueur inférieure à 14 caractères, il est complété par des caractères null.
  •  Le cipher DES (Data Encryption Standard) est utilisé pour chiffrer chaque bloc.
  •  Les deux hashs sont concaténés pour former le hash LM.

Une attaque par dictionnaire est souvent plus efficace qu’une attaque par brute-force. Un dictionnaire contient des milliers voir des millions de mots de passe plausible. L’attaque par brute-force teste simplement toutes les possibilités en allongeant de plus en plus la chaine de caractère.

john --wordlist=/pentest/passwords/wordlists/darkc0de.lst sam_password
Loaded 1 password hash (LM DES [128/128 BS SSE2])
guesses: 0  time: 0:00:00:01 100.00% (ETA: Wed Jul 11 06:22:22 2012)  c/s: 567210  trying: ZYGAENA - �F

Dans notre cas, le mot de passe utilisé n’est pas répertorié dans le dictionnaire utilisé. On notera tout de même la vitesse d’exécution : 567210 mots de passe testés en moins d’une seconde avec une vieille machine.

Plutôt que relancer john avec un autre dico, tentons la méthode par force brute :

john --format=lm sam_password
Loaded 1 password hash (LM DES [128/128 BS SSE2])
PASTIX           (Administrateur)
guesses: 1  time: 0:00:00:01 (3)  c/s: 2574K  trying: PASEB1 - PASZ.H

Attention, la clés et le mot de passe de l’article ne correspondent pas, mais on s’en fou pas mal !

Le mot de passe du compte administrateur local de la machine est PASTIX (insensible à la casse). La faiblesse de celui-ci à permis à john de trouver une correspondance en moins d’une seconde.

HOW TO : Annihilate My Data

Avant de vous débarrasser d’un support de données, je ne peux que vous conseiller de détruire complètement les informations qu’il transporte. Pour avoir fait un tour du coté des bennes à ordures d’une zone d’emploi, je peux vous dire que les postes de travail contenant encore leur disque ne sont pas une denrée rare. Et pourtant ils contiennent très certainement un tas de données sensibles, comme ces fameux mots de passe qui comme chacun le sait, ne sont jamais utilisés à un seul endroit ! Donc finalement, comment effacer ces données sensibles ?

  • Vider le disque et le remplir à nouveau avec des fichiers sans valeur plusieurs fois de suites. Réécrire sur les données est une bonne solution, mais apparemment il resterait une empreinte résiduelle des anciennes données qui permettrait (avec du matériel adapté et des techniques avancées) de récupérer les informations effacées .
  • Utiliser des logiciels qui ont pour vocation de réaliser cette destruction de données (Activ@ KillDisk par exemple),
  • Détruire physiquement le disque dur, rapide, fun et efficace.