Mon site gogole !


ou comment que c'est trop bien  google

(on va finir par croire qu'ils ne veulent que notre bonheur)

publicité et liens

ma galerie de photos si mon pc est up, le serveur lancé, etc...


Truecrypt

Une application pour la confidentialité des données qu'elle est bien !... Cependant comme dans tous les systèmes, l'utilisateur parvient à se créer ses problèmes : par exemple si ce dernier n'est pas capable de mémoriser son mot de passe, il perd ses données. Dans ce cas là c'est un boulet et il ne lui reste plus qu'à pleurer la perte de ses données ou se lancer dans le cassage de son propre mot de passe. Connaissant ses propres modes de raisonnement il peut à loisir en explorer les différentes méthodes qu'il utilise pour "construire" un mot de passe. Par exemple, placer toujours une majuscule au début d'un trois des premiers mot ; remplacer des lettres par des ch1ffr3s ; utiliser au moins une fois le caractère espace (qui est un des moins usité dans les mots de passe et donc plus difficilement bruteforcé) ; utiliser toujours en fin un caractère non alphanumérique ; utiliser des suites de mots de phrases connues ou pas ; utiliser toujours une même séquence de chiffres. 

TrueCrypt étant de bon conseil, il préconise un mot de passe de vingt caractère environ de manière à tuer dans l'oeuf toute vélléitude de bruteforcer bêtement un volume encrypté.  L'exploration manuelle des mots de passe est une opération pénible et frustrante mais logique car accessible rapidement au boulet. Une fois que cette méthode a atteint ses limites le boulet réfléchit 5 minutes, recherche sur gogole et finit par trouver Genex : un module perl qui génère les combinaisons (un certain nombre en tous cas) correspondant à une expression régulière. Une fois ces combinaisons générées, il suffit de les tester à la chaine. Truecrypt disposant d'une interface en ligne de commande, il suffit de l'invoquer avec le mot de passe à tester. Plusieurs instances peuvent être lancées en parallèle donc on peut optimiser dans une certaine mesure la recherche.

Avec un peu de chance de temps et un interpréteur (perl en l'occurence), un boulet averti (qui en vaut deux ;-\) peut alors rapidement automatiser le test de mots de passe. Pour se donner un peu de souplesse, le boulet utilise un fichier texte dans lequel il consigne les mots de passe qu'il a déja testé afin d'éviter de les tester plusieurs fois (db_svg.txt)...

use Regexp::Genex qw(:all);

my $cpt=0;
my %db=();

sub load_db_from_file
{
my $nb=0;
print "loading DB...";

  open(F, "db_svg.txt");
  while (<F>) {
    chomp;
    $db{$_}=0;
    $nb++;
  }
  close(F);
  print "$nb records !";
}

sub save_db_to_file
{
  open HANDLE, ">","db_svg.txt"or die "Can't open: $!\n";
  foreach $s (keys %db)
  {
    print HANDLE $s."\n";
  }
  close HANDLE;
}

sub find_in_db
{
$a=shift;
  return (exists $db{$a});
}


sub test_string
{
  $tested_string=shift;
  $ts="start C:\\Progra~1\\TrueCr~1\\truecrypt.exe /v E:\\TC\\myvolume
/ly /a /p \"".$tested_string."\" /e /b /q /s";
  system($ts);
 
  $db{$tested_string}=0;
  if (chdir("y:"))    {    die("Found !");    }
  $cpt++;
  if ($cpt % 200 == 0)
  {
      save_db_to_file();
  }
}

sub test_reg_string
{
  $re=shift;
  @ls = strings(qr/$re/,65000);
  for $s (@ls)
  {
  if (!find_in_db($s))
    {
      print "testing '$s'\n";
      test_string($s);
    }
    else   {    print  '.';  }
  }
}

load_db_from_file();
test_reg_string("(M|m)a(i|1)tre ?(C|c)orb(e|3)au ?(S|s)ur ?(un|1) ?arbr
(e|3) ?perche 3615(&|-)");
save_db_to_file();

La chaine surlignée en jaune contient l'expression servant à générer les mots de passe conformément aux règles citées en exemple précédemment. Avec un peu de chance aux alentours du 175 743 ème test le script s'arrête avec le mot de passe recherché. Parole de boulet !...


Sign in  |  Recent Site Activity  |  Terms  |  Report Abuse  |  Print page  |  Powered by Google Sites