Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: BigBear en 7 Octubre 2011, 15:56 pm



Título: [Perl] Search MD5
Publicado por: BigBear en 7 Octubre 2011, 15:56 pm
Hola a todos

HOy acabo de hacer un crackeador de hash md5 con salto o sin el
En esta version es con ventanas usandos tk


Código
  1. #Search MD5
  2. #Version : Tk
  3. #Author : Doddy Hackman
  4.  
  5.  
  6. use Tk;
  7. use Digest::MD5;
  8. use Tk::FileSelect;
  9. use Tk::ROText;
  10.  
  11. if ($^O eq 'MSWin32') {
  12. use Win32::Console;
  13. Win32::Console::Free();
  14. }
  15.  
  16. my $w = MainWindow->new(-background=>"black");
  17. $w->title("Search MD5");
  18. $w->geometry("500x200+20+20");
  19. $w->resizable(0,0);
  20. $w->Label(-text=>"Search MD5",-background=>"black",-foreground=>"cyan",-font=>"Impact")->pack();
  21. $w->Label(-text=>"Hash",-background=>"black",-foreground=>"green")->place(-x =>40, -y => 55);
  22. my $hash = $w->Entry(-text=>"30d554c3665c8f204622b2003c77d994",-background=>"black",-foreground=>"green")->place(-x =>90, -y => 55);
  23. $w->Label(-text=>"Salt",-background=>"black",-foreground=>"green")->place(-x =>260, -y => 55);
  24. my $salt = $w->Entry(-text=>"X",-background=>"black",-foreground=>"green")->place(-x =>290, -y => 55);
  25. $w->Label(-text=>"Wordlist",-background=>"black",-foreground=>"green")->place(-x =>40, -y => 100);
  26. my $o = $w->Entry(-textvariable=>\$file,-background=>"black",-foreground=>"green")->place(-x =>90, -y => 100);
  27. $w->Button(-text=>"Browse",-background=>"black",-foreground=>"red",-activebackground=>"red",-command=>\&oper)->place(-x =>230, -y => 100);
  28. $w->Button(-text=>"Crack!",-foreground=>"green",-background=>"black",-command=>\&crack,-activebackground=>"green")->place(-x =>180, -y => 160);
  29. $w->Button(-text=>"About",-foreground=>"green",-background=>"black",-command=>\&about,-activebackground=>"green")->place(-x =>240, -y => 160);
  30. $w->Button(-text=>"Exit",-foreground=>"green",-background=>"black",-command=>[$w =>'destroy'],-activebackground=>"green")->place(-x =>300, -y => 160);
  31.  
  32. sub oper{
  33. $w->update;
  34. $browse = $w->FileSelect(-directory => "/");
  35. my $file = $browse->Show;
  36. $o->configure (-text =>$file);
  37. }
  38.  
  39. sub about {
  40. my $venta = MainWindow->new(-background=>"black");
  41. $venta->geometry("300x180+20+20");
  42. $venta->title("About");
  43. $venta->resizable(0,0);
  44. $venta->Label(-text=>"\nSearch MD5\n\n\nProgrammer : Doddy Hackman\n\nContact : lepuke[at]hotmail[com]\n\n",-background=>"black",-foreground=>"yellow")->pack();
  45. $venta->Button(-text=>"Exit",-foreground=>"yellow",-background=>"black",-command => [$venta => 'destroy'],-activebackground=>'yellow')->pack()
  46. }
  47.  
  48. sub crack {
  49. my $hash = $hash->get;
  50. my $salt = $salt->get;
  51. my $wordlist = $o->get;
  52.  
  53. my $console = MainWindow->new(-background=>"black");
  54. $console->title("Status");
  55. $console->resizable(0,0);
  56. $console->geometry("400x320+20+20");
  57. $console->Label(-text=>"Status",-background=>"black",-foreground=>"green",-font=>"Impact")->pack();
  58. my $box = $console->ROText(-background=>"black",-foreground=>"green",-width=> 45,-height=> 15)->place(-x =>40,-y=>50);
  59. $console->Button(-text=>"Exit",-background=>"black",-foreground=>"green",-activebackground=>"green",-command=> [$console => 'destroy'],-width=>"20")->place(-x =>130, -y => 280);
  60. if ($salt eq "X") { $salt = "";}
  61. unless (-f $wordlist) { $box->insert('end',"\n\n[-] Wordlist dont exist!\n\n");next;}
  62. if(length($hash)==32) {
  63. $box->insert('end',"[Hash] : $hash\n[Salt] : $salt\n[Wordlist] : $wordlist\n\n");
  64. open word,$wordlist;
  65. @words = <word>;
  66. close word;
  67. for my $pass(@words) {
  68. chomp $pass;
  69. $console->update;
  70. $box->insert('end',"[+] Trying with $pass\n");
  71. $digest = Digest::MD5->md5_hex($pass.$salt);chomp $digest;
  72. if ($digest == $hash) {print "\a\a";$box->insert('end',"\n[Hash encoded] : $hash\n[Hash decoded] : $pass\n\n");$ok="1";last;}
  73. }} else { $box->insert('end',"\n\n[-] The hash is incorrect\n\n");next;}
  74. unless ($ok eq "1") {$box->insert('end',"\n\n[-] Sorry , hash not cracked\n\n");next;}}
  75.  
  76. MainLoop;
  77.  
  78.