pre { background:#eeeeee; border:1px solid #A6B0BF; font-size:120%; line-height:100%; overflow:auto; padding:10px; color:#000000 } pre:hover { border:1px solid #efefef; } code { font-size:120%; text-align:left; margin:0;padding:0; color: #000000;} .clear { clear:both; overflow:hidden; }

Bienvenido al blog

Bienvenidos al blog de seguridad en sistemas

domingo, 7 de octubre de 2012

Última actualización OsX y FileVault

Muchos de vosotros direis que última última no, tiene posiblemente un par de semanas, pero es que la última vez que intente actualizar el Os X el sistema no se recuperó y tuve que tirar de Time Machine para restablecer el entorno.

Hoy por fin me he decidido a actualizar, en ella se describe que se trata de un pequeño parche de seguriad para corregir algunos errores, un pequeño parche de unos 1.3 GB...

Bueno dejando esto de lado, cuando he actualizado el entorno me ha solicitado reiniciar el equipo, cosa que he hecho, y como siempre, al arrancar el sistema me ha solicitado la contraseña para acceder al sistema de ficheros puesto que lo tengo cifrado con FileVault, que es el sistema propietario de Apple para cifrar dispositivos.

Lo gracioso ha sido cuando he visto que no me reconocia la contraseña de descifrado del sistema de ficheros, una y otra vez, una y otra vez sin suerte. Como no tienes la posibilidad de ver lo que estas tecleando puesto que en todo momento se muestran "*", cosa que desde el punto de vista de la seguridad es perfecto, pero no estaría de mas poder seleccionar una opción que te permitiera ver lo que estas escribiendo.

Al poco he caido en la cuenta, ¿a que estos hijos de fruta me han puesto el teclado en inglés despúes de actualizar? y efectivamente he probado escribiendo los simbolos no alfanumericos de las contraseñas como si de un teclado americano se tratara y he entrado en el sistema como un campeón.

Pues nada ya lo sabeis por si alguno le pasa, que paseis un buen día ;)

Continuar...

viernes, 5 de octubre de 2012

Saltarse un WAF mediante Parameter Pollution

Buenos días a todos, al menos en Boston. Hace un par de días leí en twitter una noticia que apuntaba a una entrada del blog de Daniel Regalado (Danux Mitnick) titulado "Bypassing WAF via HTTP Parameter Pollution". 

La entrada está francamente bien y trata sobre como saltarse en ciertos casos los filtros de un Web Application Firewall o WAF, es decir, un filtro que previene de ciertos ataques Web como SQL-I, XSS, XSRF, etc. 

Daniel emplea para evadir el filtro envenenamiento de parametros o en inglés Parameter Pollution, donde en este caso, trata de saltarse los filtros del WAF cuando este analiza distintos valores para una misma variable de entrada. Un WAF mal programado podría procesar de forma distinta de como es interpretado por el lenguaje de programación empleado para la Web. Se puede ver como un fragmentation overlapping pero en capa de aplicación en vez de capa de red.

Para entenderlo de forma sencilla, si tenemos una variable que es "texto" podemos enviar una petición a la página web auditada introduciendo dos variables "texto" con distinto valor, como se puede ver en la siguiente petición Get:
http://www.paginafictica.com/index.php?texto=hola&texto=adios
El WAF podría tratar el valor del primer texto (hola), el valor del segundo texto (adios), ambos por separado (hola y adios) o el valor resultante de la suma de ambas variables (holaadios). En caso de la entrada de Daniel el se encuentra que el WAF solo procesa el valor del primer texto sin analizar el valor del segundo texto "adios".

Una vez se conoce el funcionamiento del WAF, y por tanto si realmente realiza las cuatro comprobaciones o solo algunas, sabremos si es posible o no saltarse las restricciones e inyectar el parametro deseado. 

Llegado a este punto será necesario saber como funciona la tecnología empleada para el desarrollo de la página. Daniel hace una tabla indicando el funcionamiento de cada una de las tecnologías, la cual la podeis ver en su entrada indicada al principio, pero el resumen básico sería el siguiente:
  • PHP: se queda solo con el valor de la última variable (última ocurrencia).
  • ASP y .NET: se queda con el valor de la suma de todas las variables (todas las ocurrencias).
  • JSP: se queda solo con el valor de la primera variable (primera ocurrencia).
  • Python y Perl: se crea un array.
Por lo que si sabemos que en el ejemplo de Daniel el WAF solo analiza la primera ocurrencia, si la web emplea PHP, ASP o .Net lo único que tendremos que hacer es realizar una solicitud escribiendo dos veces la misma variable y introduciendo el vector de ataque en la segunda ocurrencia. Por descontado habrá que tener cuidado si usamos "ASP" o ".Net" de que el valor de la primera ocurrencia no afecte al funcionamiento del vector de ataque:
http://www.paginafictica.com/index.php?texto=hola&texto=XSS
La verdad que me ha parecido una buena entrada, sencilla, útil y muy bien explicada por parte de Daniel. Recomiendo seguir a esta persona en Twitter y a su blog.

¡Un saludo!

PD: ya tengo asignado a un tutor para el Gold GCIA... y que tutor... ¡un crack!


Continuar...

jueves, 4 de octubre de 2012

¡Gold GCIA aceptado!

Después de un largo fin de semana en Toronto (Canada) visitando a la familia y 2 días sin Internet en casa por fin pude mandar mi correo a SANS preguntando sobre el Gold... contestar, lo que es contestar no me han contestado, pero me ha llegado el correo de confirmación como que han aceptado la propuesta.

Ahora tengo seis meses por delante para desarrollar y redactar la herramienta, que por temas de confidencialidad no puedo hacer pública todavía. Es mi primer Gold por lo que estoy bastante ilusionado al respecto, ya veremos como sale.

Lo que si que me gustaría es solicitar trocitos pequeños de registros o logs de distintos servicios como pueda ser el IIS, WebSphere, Domino, JBoss, etc. Podeis sustituir las IPs por otras ficticias, no es problema, solo me interesa la estructura del log, con un par de entradas me sobra. Toda ayuda será agradecida.

Siento que la entrada sea corta pero mañana me toca levantarme a las 6 am que tengo 5 horas de inglés ¡Woo Hoo!

PD: os dejo una foto de recuerdo del fin de semana en Canada (venga a por los metadatos xDDDD)



Continuar...

domingo, 23 de septiembre de 2012

Auditoría Web - Parte 1

Hoy hace tres semanas justas desde que aterrice en Boston, ya más o menos me conozco la ciudad o al menos los puntos más importantes. Por fin me he podido acomodar y empezar con la rutina de trabajo, aunque todo sea dicho, justo esta semana me marcho 4 días a Toronto (Canada) y me cambio de habitación a una con un escritorio (desk), un colchón limpio (mattress) y con luz natural para poder estudiar en condiciones, sin tener que irme a la biblioteca pública que está a una hora y media de mi casa.


Por la parte de inglés me ha tocado el nivel esperado, era lógico mi gramática no es buena y no estudie lo que debería para hacer el examen, estoy en Intermediate (PET), es decir el 5º nivel de 9 que hay. Tengo por delante el High, Upper, Advanced y Proficiency. Para antes de navidad me he marcado el objetivo de entrar en el "Upper" que es un nivel entre First avanzado e introducción al Advanced. Respecto a entenderme con la gente bueno… lo de siempre… los profesores me entienden, los compañeros de casa me entienden, las americanos acostumbrados a los españoles me entienden pero los americanos nativos les cuesta un poco entenderme, aunque es curioso que en el banco o en las tiendas me entiendan a la primera :P

En lo que concierne al SANS MSISE ya tengo listo la base de mi primer GOLD que corresponderá al GCIA, estoy esperando la respuesta de SANS para que me lo validen y empezar a escribir puesto que la base del programa ya la hice la semana pasada. Jose Luis Chica, @spankito para los amigos, pudo probar la herramienta y creo que le gusto bastante, es una idea sencilla pero bastante útil.

Respecto al blog voy a aprovechar que por fin tengo algo de tiempo libre para cogerme el libro que compre junto a mi compañero Raúl Rodriguez hace cosa de un año: "The Web Application Hacker's Handbook" en su segunda revisión. Está enfocado a auditoría web y por lo que he podido ver en cuento a nivel técnico es de lo mejorcito que he leído, con un precio más que bueno, aunque si puedo ponerle un pero en mi opinión le falta especificar los pasos adecuados para una auditoria web.

Los auditores Web conoce un montón de distintos posibles vectores pero algunos, entre los que me incluyo, desconocemos adecudamente por donde empezar, ya se sabe, la típica comilla o símbolo de mayor / menor que se suele usar en un formulario de entrada sin ni siquiera comprobar ni la tecnología que emplea la Web. Hay que organizarse, indicar los pasos a realizar y autorealimentarse con los datos obtenidos antes de empezar a explotar distintos vectores de ataque.

Hablando claro estos son los pasos, de cabeza y por tanto puedo haberme dejado alguno, que suelo emplear yo y que creo que estaría bien que el libro hubiera comentado de forma más ordenada y extensa:
  1. Information gathering en Internet.
  2. Arquitectura que tienes en frente (IIS, Apache, Jboss, WebSphere, etc), ¿tiene balanceadores?, ¿WAF?, ¿IPS?, etc
  3. ¿Qué tecnología emplea: servlets, .NET, PHP? ¿Usa un framework? ¿que versión? ¿es vulnerable?
  4. Crawling de lo accesible mediante links usando un proxy para después montarse tu mapita de la Web ya sea en digital o en un folio.
  5. Mediante diccionario y crawlers buscas recursos existentes pero no accesibles desde un enlace de la Web. Comparas con lo obtenido en el punto 4.
  6. Jugar con los dominios, ¿existe más dominios de la web? ¿qué ocurre si pones solo la IP?
  7. Si tiene protocolo cifrado… ¿los algoritmos empleados son adecuados? ¿se puede renegociar empleando algoritmos débiles? ¿el certificado es correcto?
  8. Solicitamos un usuario legítimo y valoramos: como se gestiona la autenticación, como se gestiona la sesión, como se gestiona el cierre de sesión y si los recursos accesibles como usuario autenticado son accesibles de alguna forma sin estar autenticado.
  9. Aquí es cuando suelo usar herramientas automatizadas que me puedan aportar más información a la auditoría, como por ejemplo nikto, w3af, nessus, skipfish, etc.
  10. Ya teniendo un mapa completo de todo, tanto parte pública como privada, accesible desde enlaces y no accesibles es cuando me marco en el mapa los distintos posibles puntos de entrada indicando los posibles vectores de ataque en dicho recurso: XSS, XSRF, LFI, SQL-I, ejecución de comandos, path transversal, etc… algunos incluso solo se pueden aplicar dependiendo de la tecnología. Y es en este punto donde creo que entra en juego el libro.
Para acompañar al libro me he montado un entorno de pruebas con una backtrack 5 y un entorno vulnerable "OWASP Broken Web Applications Project". No tenia conocimientos de este proyecto, si de las distintas aplicaciones vulnerables que lo componen, pero no que existiera un live con todas. Lo leí en una entrada de SBD y me pareció muy interesante de usar durante las próximas entradas del blog.

Un saludo :-)

Continuar...

domingo, 26 de agosto de 2012

SANS MSISE y a Boston

Tal como comente en la anterior entrada hacia mucho tiempo que no escribía nada, un inicio de año donde no he podido apenas invertir tiempo en el blog debido a la carga de trabajo, exámenes y los preparatorios para un cambio de rumbo. Espero que en adelante pueda disponer de más tiempo para el blog. Esta entrada va ser muy distinta a las técnicas que suelo publicar en el blog, más bien es una opinión personal y decisión que he tomado dada la actual situación.

En Agosto dejé mi actual puesto de trabajo como técnico de seguridad para embarcarme en una nueva etapa, en unos días marcho a Boston (EEUU) para afianzar mi inglés y poder realizar los últimos requisitos para obtener el SANS MSISE (Master of Science Degree in Information Security Engineering).

Durante mi estancia en Boston realizaré un curso anual intensivo de inglés (24 lecciones por semana durante 9 meses) más un curso bimensual intensivo de 30 lecciones semanales preparatorio para el TOEFEL. En total son unas 1200 horas de inglés académicas con el objetivo de obtener un nivel C1, ojalá lo consiga :)

En las horas restantes que me deje el inglés quiero realizar una serie de "papers" que me permitan obtener el grado de GOLD en unas certificaciones de GIAC. Los GOLD se pueden realizar una vez se haya superado un certificado SANS/GIAC y deben tratar sobre la temática relacionada con el certificado obtenido. Son los típicos documentos técnicos en inglés de entre 50 y 100 hojas que se publican en SANS por gente externa a la empresa. En caso del MSISE te piden 5 GOLDs en temas tan distintos como análisis forense, gestión de proyectos, detección de intrusos, gestión de incidentes y bastionado.

Tanto el aprendizaje del inglés como la realización de los Gold tiene como objetivo la preparación del SANS GSE. Esto es posiblemente lo más difícil del MSISE debido al nivel práctico exigido. Ya tengo una lista en cola de libros, retos / CTF y papera pendientes de leer a lo largo de este año. Iré escribiendo en el blog aquellos puntos que me hayan parecido más interesantes.

Lógicamente tener X certificaciones o tal Master no implica que uno sea mejor o peor, pero a mí personalmente me ha permitido aprender, entender y comprender cosas que sin ellos no creo que hubiera podido. Cada persona es un mundo, pero al menos desde mi punto de vista, apostar por la educación e invertir en ella no es nunca una mala decisión. Dejando de lado que estoy de acuerdo que el precio de los cursos son demasiado caros para lo que realmente son, pero por desgracia, no tienen competencia en el rol de seguridad que a mi me interesaba.

Es por esto que tengo bien claro que la obtención del MSISE no implicaría ser un "fucking master", simplemente tendré una base sólida de conocimientos. Sobre esa base deberé construir, y dependiendo de lo que construya, me podrá salir una chabola o un castillo, ya se sabe "la seguridad no es una meta sino un proceso…" aaaahhhh ¿quien eres tú y que haces con mis manos? Fuuuu puto demonio consultor vaporware :P Bueno creo que queda claro lo que quería decir, el objetivo es tener una buena base para empezar a trabajar sobre ella y creo que el MSISE me la proporcionará.

Por si alguien estuviera interesado en cursar el MSISE los requisitos, en su rama de especialidad en análisis forense y gestión de incidentes, son los siguientes:

- GSEC o CISSP (seguridad básica). Es necesario GOLD.
- GCPM o PPM (gestión de proyectos). Es necesario GOLD.
- GCIA (detección de intrusos). Es necesario GOLD.
- GCIH (gestión de incidentes). Es necesario GOLD.
- GCFE (forense en windows).
- GCFA (forense avanzado, APT y demás). Es necesario GOLD.
- GREM (reversing de malware).
- Tres asignaturas que refuerzan la parte de gestión.
- SANS GSE
- Tesina o proyecto de fin de master, esto no es un simple proyecto, sino que son varios, bastante largo la verdad.

Resumiendo: 7 SANS/GIAC, 5 GOLD, 3 asignaturas, el GSE, proyecto comunitario y la tesina de fin de master.

Si se procede de un país de habla no inglesa es necesario el TOEFEL. Los certificados deben haber sido obtenidos con una nota de 8 o más sobre 10 y disponer de al menos 3 años de experiencia en el ámbito de la seguridad. 

Es importante entender que está enfocado a la defensa y no al ataque, por tanto no es válido para gente que busque un rol de pentester. En mi caso para suplir esta carencia curse los certificados de auditoría de redes (GPEN) y de auditoría Web (GWAPT) pero se quedan muy lejos de los conocimientos básicos necesarios para un buen pentester

La próxima entrada ya será técnica y desde Boston :)

Pd: editar una entrada con el Ipad #eshacker ... Cosa más mala no he visto xD

Continuar...

sábado, 25 de agosto de 2012

Informe Software Explotation

Bueno… ya ni me acordaba de como se escribía en el blog :) Antes de nada decir que la explicación de está parada prolongada de varios meses se dará mañana en una entrada específica para dicho propósito, hoy solo escribo para agradecer públicamente a Borja Merino (@BorjaMerino) la oportunidad que me brindo en la redacción del informe de Software Explotation presentado a traves de Inteco-CERT.

Hace unos meses una persona, a la que le estoy muy agradecido, me puso en contacto con Borja porque tenia pensado realizar un informe de Software Explotation y buscaba colaboradores. A mi sinceramente me pareció una idea cojonuda: gente que de forma desinteresada se juntaba para compartir sus conocimientos y hacerlos públicos.

Pero pese a que en un principio pude empezar a colaborar en el proyecto, debido a una serie de problemas ajenos al informe y a Borja (que prefiero dejar pasar), al final prácticamente solo pude ayudar en la corrección evolutiva del documento. Pese a ello, Borja siempre me tuvo en cuenta a lo largo del desarrollo del documento y en los agradecimientos.

Aquí os dejo un enlace al informe por si os interesa leerlo.

Hace unos días tuve la suerte y el placer de conocer a Borja en persona, el tío tiene unos conocimientos que en pocas personas he visto,  eso sí, caro me ha salido conocerle porque me ha convencido para apuntarme al curso de Corelan en Kentucky sobre Software Explotation. Gracias Batman y a ver si nos vemos en el otro lado del charco :P

Mañana la entrada que comento al principio :)

Continuar...