En este tuto voy a explicar en que consiste este fallo.
Esta vulnerabilidad permite incluir archivos remotos desde otros servidores en paginas que tengan algo asi como:
www.pagina.com/index.php?file=inicio.php
Por ejemplo para buscar en el google este tipo de fallos tendriamos que poner algo asi.
allinurl: index.php?*=*
Pero de esta manera creo que google ya esta filtrando este tipo de
busquedas entonces tendriamos que probar con otra cosa como por ejemplo:
allinurl: index.php?page=historia.php
o
allinurl: index.php?pagina=inicio.php
y probar con lo que se les ocurra .
Ahora veamos si la pagina que elejimos es vulnerable. Le podemos meter
el google por ejemploo ya que sirve para todo jeje, entonces hacemos
esto.
si vemos como la pagina del google se carga dentro de la pagina eso
quiere decir que estamos frente a una posible web vulnerable a rfi.
Tengamos en cuenta que hay que hacer referencia al protocolo http a la
hora de incluir sino no sirve (page=http://www.google.com)
Ya dijimos que esta vulnerabilidad permite incluir archivos remotos
desde otros servidores en paginas y casi todas las vulnerabilidades se
dan por este codigo:
Código:
y se explotaria de esta manera.
Abres el explorador y pones esto.
Pero lo mejor seria incluir un codigo que nos permita ejecutar comandos
en el servidor.
Ahora veremos unos codigos para esto.
exec();
system();
passthru();
Bueno ya tenemos los codigos ahora los guardamos con extencion .gif o .jpg y los subimos a nuestro servidor.
Pero ojo si le ponemos extencion .php se ejecuta nuestro pripio server y no nos serviria porque nosotros necesitamos ejecutarlo
en otro server y no en el nuestro por supuesto.
Bueno ya tenemos los codigos en nuestro server guardados como por
ejemplo exp1.gif, exp2.gif y asi con los 3 codigos ya que alguna de
esta variable (exec();,system();, passthru()
puede estar bloqueada en el server y tendremos que probar con las 3.
O.k Ahora para ejecutar el codigo en el server demos hacerlo de esta manera.
Hay que tener en cuenta que page es un caso cualquiera y que puede variar segun la web.
Tenemos el exploit ejecutado ahora que podemos hacer ?
Lo que podemos hacer es por medio del comando cat ver archivos de
configuracion para sacar informacion, ls para listar directorios, cd
para moverse, y otras cosas con mas comandos.
Por ejemplo:
Pero cuando ejecuto esto no me da nada.
Que pasa?
Y bueno si ejecutaste los 3 codigos y el server no te deja ver los
archivos es porqeu no tenes permisos y por eso no podes ejecutar
archivos.
Para esto tendriamos que utilizar un exploit que nos de permisos, que
no son de root pero podremos ejecutar archivos tranquilamente, como
puede ser el w00t.
w00t:Este exploit aprovecha un bug en el kernel 2.4 y paso a explicar brevemente como ejecutarlo.
1. Iremos a la carpeta /tmp del server victima hay podemos ejecutar exploits desde nobody (cd /tmp).
2. Subiremos el w00t al server por medio de wget, para esto subi el
archivo w00t a tu server y ejecuta lo siguiente, dentro la carpeta tmp
Código:
Esto agarrara el archivo w00t de tu server y lo pasara a la carpeta del orto server en la que estes ,que era (/tmp).
3. ahora le daremos permisos chmod 777 al w00t para poder ejecutarlo.
Seria de esta manera
Código:
Ahora para para ver si hicimos todo bien debemos escribir "id" y
tendremos nuestro id, si nos da otro id que no sea el nobody es porque
funciono ojo que no seremos root sino que tendremos vastantes permisos
como para movernos y sacar buena info.
Si nuestro id nos da nobody tendremos que hacer todo de nuevo y bien.
Luego de esto podriamos ejecutar algun backdoor para poder entrar con una
shell sin tener que hacer todo esto de nuevo la proxima vez. Uno de estos backdoor se llama r0nin.
Esto sera explicado en el proximo capitulo de este tutorial.
Nota:Aqui les dejo una recopilacion de exploits de la
internet para hacer distintas cosas mediante rfi.
1) Cambiar el index en 2 segundos
Código:
2) Otro sencillo ejemplo. Guardar com .gif, .jpg, o .txt y hacer el
remote file inclusion con la variable vulnerable y la url de este
archivo.
Código:
Código:
Código:
Código:
Algunos en perl de Hackzatan.
Funcionan de la misma manera
http://host/cgi-bin/nst.cgi?p=uname -a
Donde:
nst.cgi >> Es el nombre del archivo
p es el comando que esta en el nst.cgi que nos da shell
1
Código:
2
Código:
3
Código:
Eso es todo a practicar.
Phantom Lord.