Foro de elhacker.net

Seguridad Informática => Nivel Web => Mensaje iniciado por: waizen en 21 Junio 2009, 14:49 pm



Título: Intentando predecir sesiones.... ayuda!!
Publicado por: waizen en 21 Junio 2009, 14:49 pm
La idea es que partiendo de una sesión de un usuario sin permisos consigamos acceder a la cuenta de otro usuario.

La cookie se llama "sid", tiene este estilo:

x:0c836edf5dc44b7bde1b42503aa3ad50:1245585214

Vista así me di cuenta de que tenia este formato:

[user id]:[md5 hash]:[time]



[user id] es el nuero de usuario, este valor lo puedo averiguar

[time] es la fecha de cuando se abrió la sesión, lo averiguaríamos a fuerza bruta ya que sabríamos a que hora se conecta el usuario con un margen de error de unos 10 minutos si estamos atentos

[md5 hash] es el valor que mas problemas me da, por ello he abierto varias sesiones para mirar haber si encontraba algún patrón claro:


Código:
xxxx:ab2ae9cc1b3f618251ac44996e032fd7:1245585204

como veréis nunca se repite, por lo que pensé que utilizaría alguna función como mt_rand o microtime para que sea "aleatorio"

así que probé haber si unicamente utilizaba la función microtime:
  
Código:
<?php
for ($i = 1; $i <= 999999; $i++)
{

$var = md5((0.000001*$i).'00 1245585180');

if($var == 'ba37aae00d337e0da86f379be6ef9e9c') echo 'aaaaaaaaaaaa';


}

?>

no conseguí nada..........
haber si alguien me ayuda a crackear algun hash md5 de esos :DDDDD


Título: Re: Intentando predecir sesiones.... ayuda!!
Publicado por: Saberuneko en 22 Junio 2009, 12:44 pm
http://www.md5decrypter.com/

Espero que te sirva... ;)


Título: Re: Intentando predecir sesiones.... ayuda!!
Publicado por: Azielito en 22 Junio 2009, 18:20 pm
Código:
[quote author=md5decrypter.com]Md5 Hash: f15f539ea45048d37778670ab22100ea
A decryption for this hash wasn't found in our database

=\

Prueba aca
http://milw0rm.com/cracker/insert.php


Título: Re: Intentando predecir sesiones.... ayuda!!
Publicado por: WHK en 25 Junio 2009, 11:09 am
No se si yo no entendí bién o los demás no entendieron  :P

Tu quieres algo como esto:
https://foro.elhacker.net/nivel_web/reset_admin_password_117_smf_teoria-t241014.0.html

Lo que tienes es el id del usuario que en este caso puedes saber y un tercer valor que es el tiempo del login que puede ser crackeado pero tienes un hash en medio que no puedes descifrar y lo mas probable es que sea la combinación del user mas el pass como por ejemplo md5(user:pass).
Si quieres intentar crackear el hash o sea intentar obtener un hash válido y no tener uno ya en mano como los demás pensaban debes saber exactamente cual es el tercer valor porque te explico...

2:xxxxxxx:5

Supongamos que tengo el user con id "2", el hash es "xxxxxxx" y el tiempo es "5", entonces para poder crackear el login necesito esto:
2:$hash:5
Donde $hash sería cada posibilidad tratando de atinarle a fuerza bruta pero que pasa si el time no es 5 y es 100? y si el time está entre 1111111111 y 199999999 ? ya tendrías 999999999 posibilidades de intentar crackear un solo hash, y como debes crackear por fuerza bruta entonces vas a tener que procesar una cantidad de pruebas igual al número de palabras en tu diccionario multiplicado por 999999999 xDDDDDD mientra mas grande sea el diccionario mas te demoras y mientra mas corto sea menos posibilidades tienes de encontrar la contraseña.

Si te entendí mal y ya tienes un hash en tu poder no necesitas crackearlo, solamente inyecta la cookie a tu navegador y ya, refrescas y ya estás dentro como ese usuario. javascript:document.cookie="id:hash:tiempo";


Título: Re: Intentando predecir sesiones.... ayuda!!
Publicado por: waizen en 29 Junio 2009, 10:41 am
si es eso WHK  la cosa es que el hash del medio parece aleatorio con el mismo tiempo:

Citar
64706589:6315c517bafd53063cc6e31ff3f687d1:1245585205
64706589:5dbe586aef5b2c04afdc15c1d1bd3542:1245585205
64706589:68cd0732a49a126c272c9def70f598a6:1245585205
64706589:e469497c662017910ae4e218dbb0bd80:1245585205
64706589:21cd3021a805b3bb36e0a4050daac5cc:1245585205

por lo que supongo que usará algo como microtime()+time()+userid para sacar el hash algo así:

md5(time().microtime().$uid); o sino
md5(time().mt_rand().$uid); o parecidos

ahora estoy intentando haber si saco algo a fuerza bruta pero esta medio difícil  :P




lo de las posibilidades lo tengo controlado :D porque acertaré a que hora se conecta con un margen de error de 30 segundos o algo así, asi que posibilidades habrá bastantes pero con suerte se podría conseguir :D


Título: Re: Intentando predecir sesiones.... ayuda!!
Publicado por: yeikos en 14 Julio 2009, 17:48 pm
Citar
64706589:6315c517bafd53063cc6e31ff3f687d1:1245585205

Esa cookie si no me equivoco es de tuenti...

Siendo el primer parámetro el número identificador del usuario, el segundo parámetro es el identificador de sesión (sid), no es ningún hash, y el último parámetro no tiene importancia, es para saber si el usuario sigue activo en la página Web o no.

El sid es una cadena alfanumerica pseudo-aleatoria de 32 caracteres...

Utiliza los siguientes caracteres como base:

Código:
abcdefghijklmnopqrstuvwxyz0123456789

Puesto que su longitud es fija y el número de caracteres totales es de 36, el número de posibilidades es 36^32, o lo que es lo mismo... 6,3340286662973277706162286946812e+49.

El sid, como bien he dicho es psudo aleatorio, ¿qué quiero decir con pseudo? pues que prácticamente es aleatorio, pero teoricamente no, ya que para generar una serie de números aleatorios, es necesario pasarle al susodicho algoritmo un número, llamemosle X, para que a partir de ese número, pueda generar los demás números pseudo-aleatorios.

¿Y de dónde sacamos X? He ahí el dilema, funciones como time y microtime, son predecibles, ya que el tiempo es lineal, y yo se que hora será dentro de 30 minutos, por lo tanto, ya deja de ser aleatorio. Por lo tanto, para que el algoritmo fuera perfecto, X debería ser aleatorio, así que seguimos en las mismas.

Actualmente los sid generados son pseudoaleatorios y X puede ser los bytes de memoria utilizados por un programa, el tiempo que tardo en ejecutarse una serie de operaciones, etc... Vamos, que por muy pseudoaleatorios que sean esos números, va a ser muy dificil dar con ellos.

Existen nuevos métodos para la generación de números aleatorios, como puede ser la velocidad y la dirección del viento. Pero esos métodos ya son llevados al extremo y tan solo son usados por físicos en sus experimentos.

¿A dónde quiero llegar con esto? A ninguna parte, ya que computacionalmente es imposible optar por la fuerza bruta, pero a veces es necesario entender lo que expliqué para comprender otras cosas.






Título: Re: Intentando predecir sesiones.... ayuda!!
Publicado por: waizen en 14 Julio 2009, 18:52 pm
Citar
64706589:6315c517bafd53063cc6e31ff3f687d1:1245585205

Esa cookie si no me equivoco es de tuenti...

Siendo el primer parámetro el número identificador del usuario, el segundo parámetro es el identificador de sesión (sid), no es ningún hash, y el último parámetro no tiene importancia, es para saber si el usuario sigue activo en la página Web o no.

El sid es una cadena alfanumerica pseudo-aleatoria de 32 caracteres...

Utiliza los siguientes caracteres como base:

Código:
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789

Puesto que su longitud es fija y el número de caracteres totales es de 62, el número de posibilidades es 62^32, o lo que es lo mismo... 2,2726578844967513453552415636275e+57.

El sid, como bien he dicho es psudo aleatorio, ¿qué quiero decir con pseudo? pues que prácticamente es aleatorio, pero teoricamente no, ya que para generar una serie de números aleatorios, es necesario pasarle al susodicho algoritmo un número, llamemosle X, para que a partir de ese número, pueda generar los demás números pseudo-aleatorios.

¿Y de dónde sacamos X? He ahí el dilema, funciones como time y microtime, son predecibles, ya que el tiempo es lineal, y yo se que hora será dentro de 30 minutos, por lo tanto, ya deja de ser aleatorio. Por lo tanto, para que el algoritmo fuera perfecto, X debería ser aleatorio, así que seguimos en las mismas.

Actualmente los sid generados son pseudoaleatorios y X puede ser los bytes de memoria utilizados por un programa, el tiempo que tardo en ejecutarse una serie de operaciones, etc... Vamos, que por muy pseudoaleatorios que sean esos números, va a ser muy dificil dar con ellos.

Existen nuevos métodos para la generación de números aleatorios, como puede ser la velocidad y la dirección del viento. Pero esos métodos ya son llevados al extremo y tan solo son usados por físicos en sus experimentos.

¿A dónde quiero llegar con esto? A ninguna parte, ya que computacionalmente es imposible optar por la fuerza bruta, pero a veces es necesario entender lo que expliqué para comprender otras cosas.






gracias por contestar  ;D

respecto a las posibilidades de acertar elhash serian con estos caracteres: abcdefghijklmnopqrstuvwxyz0123456789 ya que no usa mayúsculas la sid. Así que las posibilidades se quedarían en:
36^32 = 6,3340286662973277706162286946812e+49


demasiadas  :rolleyes: :rolleyes: :rolleyes:

se podría bajar bastante ese numero de probabilidades de acertar pero no lo suficiente así que dejo el caso xD


Título: Re: Intentando predecir sesiones.... ayuda!!
Publicado por: yeikos en 14 Julio 2009, 22:31 pm
Así es, se me pasó ese detalle, de todas maneras, la cantidad de posibilidades sigue siendo descomunal xd.

(*) Modifiqué mi primer mensaje para evitar confusiones.

PD: No cites los últimos mensajes o mensajes enteros pls, gracias :)


Título: Re: Intentando predecir sesiones.... ayuda!!
Publicado por: sirdarckcat en 15 Julio 2009, 15:01 pm
si es un sid no pueden hacer simplemente session fixation? logueas al usuario con tu sesion, y lo mandas a la pagina de inicio de sesion otra ves (o le haces logout si eso no destruye la sesion).


Título: Re: Intentando predecir sesiones.... ayuda!!
Publicado por: yeikos en 15 Julio 2009, 15:56 pm
nah, en tuenti siempre se genera un sid nuevo en cada identificacón


Título: Re: Intentando predecir sesiones.... ayuda!!
Publicado por: sirdarckcat en 15 Julio 2009, 16:45 pm
puedes iniciar sesion si ya estas logueado?


Título: Re: Intentando predecir sesiones.... ayuda!!
Publicado por: yeikos en 16 Julio 2009, 02:57 am
no, en vez de iniciar una nueva sesión, utiliza ya que la se abrió.

De todas maneras el problema es que no se puede alterar el valor de SID via GET/POST para así poder predefinirlo nosotros.


Título: Re: Intentando predecir sesiones.... ayuda!!
Publicado por: sirdarckcat en 16 Julio 2009, 09:43 am
Citar
no, en vez de iniciar una nueva sesión, utiliza ya que la se abrió.

De todas maneras el problema es que no se puede alterar el valor de SID via GET/POST para así poder predefinirlo nosotros.
Si puedes averiguar el sesid de una sesion "actual" tuya, puede que se pueda

1 cierra la sesion al usuario (destruye su sesion)
2 inicia la sesion al usuario con tu cuenta (si se protege con CSRF no vas a poder =/)
2.5 obten el id de esa sesion (en google y live.com se puede xD tendras que investigar en la web de tu victima)
3 obliga al usuario a iniciar sesion (sin destruir la sesion existente)
4 reusa la sesion del punto #2 y estas con su sesion

Saludos!!


Título: Re: Intentando predecir sesiones.... ayuda!!
Publicado por: yeikos en 17 Julio 2009, 04:08 am
Citar
2 inicia la sesion al usuario con tu cuenta

Ahí está el problema, no se exactamente como lo harias tu, pero por lo que he comprobado no es posible.

PD: Tuenti era y sigue siendo propenso a ataques XSS :-\.


Título: Re: Intentando predecir sesiones.... ayuda!!
Publicado por: sirdarckcat en 17 Julio 2009, 06:26 am
<form method=post action=tuenti.com/login><input name=user value=yeikos><input name=pass value=secreto><script>document.forms[0].submit()</script>


Título: Re: Intentando predecir sesiones.... ayuda!!
Publicado por: yeikos en 17 Julio 2009, 16:24 pm
Vale, ya se por donde vas, pero el problema es el que te comenté, que una vez se ha iniciado una sesión, no se podrá crear otra sesion hasta que la primera sesión no haya experiado o haya sido eliminada.

PD: No se envien un mensaje a si mismo en el tuenti, no os hará gracia... xd


Título: Re: Intentando predecir sesiones.... ayuda!!
Publicado por: Constantinoplero en 6 Diciembre 2009, 23:38 pm
¿Wireshark serviría para crackear MD5, no?

P.D.: Creo que no es demasiado tarde para publicar en este tema.