miércoles 12 de mayo de 2010

Backups & Full Source Code Disclosure

Después de no escribir un tiempo y estar de "vacaciones" gracias a un comentario de un colega, Carlos Ganoza, recordé un antiguo "bug" que se combina por configuración del servidor y editores de Texto Plataforma de comercio de materias primas en Honduras.

Bueno... Empezemos...

Mientras Editamos Archivos en programas como GEDIT o el mismisimo OPEN-OFFICE se genera un archivo de backup...

ejemplo Open-Office:


Archivo:
TOK.ODT

Aechivo "backup":
.~lock.tok.odt#

Bueno... si nosotros abrimos el archivo de backup con un editor de textos podríamos apreciar algo como:

Camilo Dedalo White,PC-Dedalo/Camilo Dedalo,PC-Dedalo,12.05.2010 23:16,file:///C:/Users/Camilo%20Dedalo/AppData/Roaming/OpenOffice.org/3;


Es una especie de metadata que le da alguna referencia al sistema...

bueno miren lo que hemos visto en el archivo .odt es informacion importante... en un linux hubiese bastado con hacer un "nano" o el uso de algun editor para poder ver esta información... que como repito es importante... ahora... yo me pregunto... que sería si pusiera un archivo .html en ves de poner un .odt o para hacerlo mas drástico Plataforma comercial profesional.

Un .PHP...

Usando un Editor de PHP del estilo GEDIT cuando hacemos copias de seguridad de archivos ya guardados se le agrega el Sufijo ~

Ejemplo:

Archivo:
TOK.PHP

Archivo "backup":
TOK.PHP~


Nuestro problema ahora recide no si es cualquier archivo PHP sino, el hecho es que si nuestro administrador no sabe configurar bien el Server y en si el APACHE puede ocurrir algo desastroso...

el problema con algunos otros editores inclusive que vienen por default en algunos servidores, dejan vivos los archivos del backup y si no están ocultos o sin permisos para que lo lea cualquier usuario si lo tenemos con un dominio o en un hosting que todos podamos ver (página web) entonces puede ocurrir algo como esto:


en:

http://www.website.com/ <-- c:/website/

si hacemos un ls podemos ver:

Index.php
CMD.php
home
tipo.php
Index.php~
CMD.php~
tipo.php~

¿por que?

porque el editor de textos tiene un mal funcionamiento o nosotros cometimos un error al usarlo o estamos editandolos... en ese momento plataforma de comercio de opciones binarias cuenta demo.


entonces viene el Black Hat y entra a


http://website.com/Index.php y dice... asu que buena página a ver... veamos que pasa si le agrego ~ al archivo...

y como nosotros no sabemos configurar bien los web servers entonces el .php~ existe... que pasará?


nos lo muestra como texto plano...


Index.php~:

include("/template/home.html");
$nombre = $_GET['name'];

bueno ahora estamos viendo el coe de index.php a ver si ya tenemos el code... ya podemos por lo menos ver que jalan una variable nombre... que no está filtrandose... entonces se deduce que por lo menos un xss podremos sacar...


Un Ejemplo real... que va contra mis principios éticos pero quiero que se diviertan... nada de andar defaceando o jugando con el xss:

http://www.ifarhu.gob.pa/verpag.php~

http://www.ifarhu.gob.pa/verpag.php?pag="><script>alert('SeguridadBlanca.Org')</script>

http://www.ifarhu.gob.pa/verpag.php?sec="><script>alert('SeguridadBlanca.Org')</script>


y bueno dense cuenta como hay errores tan pequeños pero tan peligrosos


Podemos ver también mala configuracion en el htaccess... vemos directorios y vemos versión del servidor...

http://www.ifarhu.gob.pa/transparencia/



Espero les haya gustado ;)

martes 13 de abril de 2010

FliSol Perú



Ya he registrado mi correo a la lista de participantes :) espero verlos a todos en FliSol Perú, se realizará en la universidad de San Marcos


click aquí para ver el banner

https://listas.installfest.info/cgi-bin/mailman/listinfo/flisol-peru


el grupo de identi.ca click aquí



espero verlos ahí, este evento promete mucho :), me reconocerán por mi polo/camiseta que diga... Dr.White...


Página Oficial


Nos vemos


Saludos
Dr.White

martes 6 de abril de 2010

OSEH - Open Sec Ethical Hacker - Presentación

Hace unas semanas di una charla para el último grupo de gente que se ha graduado como OSEH, el curso es muy didactico con gente con muchas experiencia, he tenido el agrado de asistir por segunda ves...


Lo que valen no son las diapositivas sino el que habla...





Referencia del blog de Open-Sec click aquí


gr33tz: Jbyte, Sm0kes, Perverths0, Backtracker y mi papá :)


Saludos
Dr.White

domingo 4 de abril de 2010

Remarcando... en Facebook y Twitter somos SeguridadBlanca

Bueno muchachos les quería volver a decir que estamos wn Twitter y Facebook :)


En twitter somos SeguridadBlanca

http://twitter.com/seguridadblanca


y en facebook lo que estoy inaugurando hoy... es la página de facebook de SeguridadBlanca!!!

http://www.facebook.com/pages/SeguridadBlanca/111357815549029



Espero sigan a seguridadblanca en twitter y espero se hagan fan en facebook.



Saludos
Dr.White

Facebook Query Language - Si estás en facebook cuidado

En mi exposición del LimaHack sobre toqué el tema de las redes sociales pero hoy que andaba buscando una pequeña cosilla en facebook encontré un code de un query que te permitía ver fotos de gente que no tenías, despues de un cambio en su query ya no se podía o al menos yo estube tratando de multiples formas y no pude sacar las fotos como decía el tutorial, después de segui provando un rato dije mejor me remito al source code de los query chequearé el wiki de FACEBOOK...


http://wiki.developers.facebook.com/index.php/Main_Page



después de dar unos click por aqui unos click por haya di con el FQL y yo me pregunté que será eso doy click y porfin dije llegué a donde quería...


http://wiki.developers.facebook.com/index.php/FQL



podemos ver un par de ejemplos del query y su funcionamiento pero lo que nos ARMA con una ARMA LETAL y con la cual podemos obtener información importante es esto...


http://developers.facebook.com/tools.php



es una consola de pruebas podemos ejecutar un query para probar el funcionamiento del FQL...


ahora vamos a sacar algo bien interesante...


vamos a buscar a un Juan Sanchez antes de empezar con esto...


?init=quick&q;=juan sanchez

eso es masomenos lo equivalente a poner en el textbox de busqueda de facebook el nombre juan sanchez...


si le dan click derecho al nombre entonces pueden ver su Profile ID que es lo que necesitaremos a continuacion...


http://www.facebook.com/profile.php?id=XXXXXXXXXXXX


en la tool seleccionamos FQL.query

ahora con una syntaxis del FQL vamos a ver que pasaría...


SELECT location, link FROM album WHERE owner=XXXXXXXX


y nuestro response sería...


<?xml version="1.0" encoding="UTF-8"?>

<fql_query_response xmlns="http://api.facebook.com/1.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" list="true">



  <album>



    <location/>



    <link>http://www.facebook.com/album.php?aid=-3&id;=XXXXX</link>



  </album>



  <album>



    <location/>



    <link>http://www.facebook.com/album.php?aid=139786&id;=XXXXXXX</link>



  </album>



</fql_query_response>



(recalco el no es mi amigo en facebook nisiquiera conocido)


Lo que yo he hecho ahora ha sido pedir el album de una persona X que no ha configurado bien la privacidad de su facebook... configurando bien seu facebook pueden prohibir que cualquiera vea sus fotos sin embargo... quiero preveerlos de esto...


si investigan bien esto http://wiki.developers.facebook.com/index.php/FQL_Tables y en general los FQL.QUERY con un poco de imaginacion e ingeniería social le podemos sacar información a cualquier facebook... esto es un arma para ladrones de información, creo que por ese lado falla Facebook en su seguridad...



Saludos
Dr.White

viernes 2 de abril de 2010

Xss por semana santa en Woothemes de wordpress

Después de tanto tiempo sin escribir curiosamente hoy descubrí un Xss que me animó el día y me dió ganas de actualizar el blog ya que no he tenido tiempo de actualizarlo por el colegio...


Bueno el Bug está en una pequeña variable mínima super mínima...


"S="

como estos themes son e pago y no quiero atentar en contra de su "licencia" he decidido no publicar todo el code con error solo la parte que nos interesa...


searchWidget()


esa es la función que nos da esto:




<form method="get" id="searchform" action="<?php bloginfo('url'); ?>">

        <div>

        <input type="text" class="field" name="s" id="s"  value="Search..." onfocus="if (this.value == 'Search...') {this.value = '';}" onblur="if (this.value == '') {this.value = 'Search...';}" />

        <input type="submit" class="submit" name="submit" value="Search" />

        </div>

</form>


y bueno lo que hace posible el que se ejecute:



<h3 class="catheading"><?php _e('Search Results',woothemes); ?> for <?php printf(__('\'%s\''), $s) ?></h3>



bueno bloginfo() tiene un conjunto de registros globales los cuales simplemente usan un motor de busqueda sin siquiera verificar lo que pasa por s= lo unico que nos hace ver el s= es que se hace un GET no hay un query ni nada por el estilo...


ahora usando un ejemplo real sin animos de dañar a nadie...


http://adiirockstar.com/?s=Search...&submit;=Search eso es lo que nos da cuando damos click en el boton de buscar... solo es una busqueda motora no es una query...

ahora solo modificamos en el textbox a una codigo javascript

http://adiirockstar.com/?s=%3Cscript%3Ealert%28%27SeguridadBlanca.Org%27%29%3C/script%3E&submit;=Search


simple... solo uso la funcion alert() y listo lo tenemos...


como lo podríamos reparar? esto es lo mas difícil tenemos que recrearlo... y usar algo como...



<h3 class="catheading"><?php _e('Search Results',woothemes); ?> for <?php printf(htmlentities(__('\'%s\''), $s)) ?></h3>



eso podría ser una solucion agregarle el filtro htmlentities, verifiquen la syntaxis que ahora no tengo un apache cerca ni un host... también pueden buscar otras maneras de bloquearlo pero esa les servirá bien por el momento...




Agradecimientos especiales a Sm0kes de www.malwarelabs.org quien me ayudó facilitandome fragmentos de código para descubrir los errores y que es un compatriota con mucha experiencia en el desarrollo de Software!


Saludos
Dr.White

lunes 15 de febrero de 2010

Técnicas de Infección con Malware y Procedimiento I

Después de un tiempo de inactividad del blog he decidido empezar con un tema que calculo les va a servir a ustedes...


El tema de infecciones es algo que está afectando en la actualidad y pues les quiero mostrar el primer ejemplo, es del cual hablaremos hoy...


Infección Vía MSN, cuantas veces no les ha pasado que alguien le dice algo como:



Hubo un Accidente en la puerta de mi casa mira las fotos


y a continuación nos mandan un archivo .zip o .rar con las supuestas fotos o sino


Mira las fotos de la fiesta :s no te ves tan bien...


y a continuación nos mandan un .zip o un .rar


Ahora les voy a explicar como funcionan estas técnicas... y como yo las usaría masomenos.




Bueno para empezar nosotros debemos saber algo básico... las Apis de MSN para hacer el malware...


Explicación de Apis de MSN click aquí y aquí


Bueno ahora si miren lo que pasa es que normalmente estos malwares no son muy creíbles entonces debemos usar algo que convenza a la gente en especial si son hombres...


un ejemplo:


Mira las fotos que me conseguí de la mamasita de megan fox

y a continuación el envio del RAR o ZIP que contenga esto...


otro punto clave que tenemos que tener claro es que el RAR debe tener siertas cosas claves en la configuración según con que los queremos infectar...


En el caso de que fuese un virus de pharming hay técnicas de como ocultar archivos en los .rar de tal manera que al descomprimir automáticamente se sobreescriba el archivo hosts y otras cosas que es algo de lo que voy a hablar pronto pero por ahora vamos a ver otra cosa que haremos con la infección...


Bueno hemos creado nuestro malware que se reproduce por MSN y ahora solo falta que poner en el .rar bueno miren, hay grupos de ciber delincuentes que se dedícan a la amenaza y extorción de web sites por ejemplo:


Encontramos un RFI en una web subimos una Shell y leugo le decimos al dueño que nos de dinero o la defaceamos, esto lógico causa una malestar en el webmaster y se niega, horas despues, la página cae, algo asi es para lo que se usa este tipo de malware...


Se los conoce como BOTNETS, digamos que es una RED de Computadoras que estan a la disposición de un mismo "master", entonces como funciona esto... el Master le mando a 500 personas su malware, luegos estas 500 se la mandaron a dos cada uno osea dos cayeron por que se ve como el anterior ejemplo, lo de megan fox, ahora asi va creciendo la botnet, una vez que se tiene un número prudente de computadoras zombies se procede a extorcionar a la gente... La siguiente conversación es Real solo sustituyo los nombres para no afectar a nadie...


Extorcionador dice:
* Eres el Admin de XXXXXXXXXXXXX.XXX?

Admin dice:
* Si por?

Extorcionador dice:
* Resulta que necesito dinero y tu me lo vas a dar
* en el caso que te reuses cago tu site

Admin dice:
* de qe me hablas????

Extorcionador dice:
* Puedo sacar tu sitio de internet en cuanto se me de la gana pero si quieres que siga en internet entonces necesito 40€

Admin dice:
* jajaja quisiera ver eso

Extorcionador dice:
* Mira tu sitio ahora mismo -.-

Admin dice:
* como mierda hiciste eso, dejame en pax yo no he hecho nada como para que me cagues mi sitio webon que te pasa

Extorcionador dice:
* no es personal necesito dinero y me lo vas a dar o no

Admin dice:
* no



Después de dos días el Admin le pagó los 40 Euros que le pidió, lo que hacía era usar el ancho de banda de todas sus computadoras zombies para hacerle un ataque de D.d.o.S (Distributed Denial Of Service) a su víctima...



Bajo un procedimiento como este muchos delincuentes hacen de las suyas, pronto pondré medidas que se deben tomar para no sufrir de este tipo de ataques y como evitar ser infectado y formar parte de una BOTNET...



PD: Pido disculpas por no poner nada pero he andado ocupado, pronto comenzaré a poner posts de calidad nuevamente :)


Saludos
Dr.White

lunes 1 de febrero de 2010

Otro Tip para Shells (Safe_Mode y Mod_Security) By Zero Bits

Muchos ya conoceran el tutorial sobre las shells de mi amigo _84kur10_, pueden verlo desde su fuente original desde AQUI.




Solo queria agregar a su excelente tutorial, otro tip.,

"Bypassear safe_mode y Mod_security" para movernos mucho mejor en una shell y asi evitar problema. Dense cuenta que es un mini-tutorial que solo muestra los codes necesarios.



Muchos tienen problemas con las Shells, porque no pueden hacer varias cosas que nos interesan, ya sabemis por que (Safe_Mode y Mod_Security), ¿Como se yo que el servidor los tiene activado?, pueden notar (dependiendo de la shell) arriba de la shell, que puede decir:



Safe_Mode = ON

Mod_Security = ON



Desactivar Mod_Securirty




Buscamos por la shell, el fichero .htaccess y añadimos el siguiente code:



<IfModule mod_security.c>
SecFilterEngine OFF
SecFilterScanPort OFF
SecFilterCheckURLEncoding OFF
SecFilterCheckUnicodeEncoding OFF
</IfModule>


Actualiza y ve xD...



Desactivar Safe_Mode




Ahi varios modos, pero el mas facil es modificar Php.ini:



register_globals = On
engine = On
safe_mode = Off
safe_mode_exec_dir = On
Safe_mode_include_dir = On




Para conocer un poco mas podemos leer:



* Tips (PhpShells) que son y como subirlas by _84kur10_ (Aunque ya lo puse arriba)




* Leer sobre Safe_Mode y Mod_Security en servers.


Autor: Zero Bits


Mail: Zero_Bits@GobiernoFederal.com



PD: En los ultimos tutos no eh dejado mi email pero aqui esta ^^

domingo 31 de enero de 2010

Partial Function Disclosure --> New Term

El PFD consiste en que tras introducir valores malformados podamos obtener errores de los cuales extraer la ruta y parcialmente algunas funciones usadas por la web. Cómo podemos observar el concepto es parecido al del FPD (Full Path Disclosure) y su explotación será casi la misma que el FPD pero la diferencia radica en que a la hora de explotar el bug se mostraran algunas de las funciones que son usadas por la aplicación web como se muestra a continuación en la figura.




Como vemos el bug lo estamos explotando asiendo a la variable query= en un array como se muestra en la imagen (query[]= ) lo cual aparte de mostrarnos la ruta con lo cual vendría a ser un FPD (Full Path Disclosure). Aparte se mostrarían algunas de las funciones que usa la web y la línea de código en la cual están siendo usadas lo cual vendría a ser el PFD (Partial Function Disclosure) que es el tema de este paper.


Algunos tendrán la pregunta diciendo de que sirve poder ver algunas de la funciones usadas en la aplicación web pues bueno todo nos podría ser útil para saber a que tipo de filtros pro ejemplo nos estamos enfrenta y a la vez nos vamos asiendo una idea de cómo esta programa la aplicación web y que tipo de seguridad se esta empleando.


Bueno con esto termino esta explicación de PFD (Partial Function Disclosure)
PFD (Partial Function Disclosure) escrito y Termino inventado por Jordan Alexander Diaz Diaz (jdiaz@aqpgrid.com)


---------------------------------


Bueno he decidido compartir esta entrada para que den su opinion de este tema, mi opinion humilde y personal es:


me es una idea original el buscar nuevos nombres pero es según yo es lo mismo que un FPD, yo no soy un experto asi que les dejo a su análisis...

además si alguien me puede mostrar una web con FPD que no me muestre función me gustaría verla...



Saludos
Dr.White