Solución al challenge #1 (pre-quals CarGame): "7019 AES Bit-Flipping Attack"
11.Jun.2011
Documentación técnica sobre la primera prueba pre-clasificatoria del "Swiss Cyber Storm 3 CarGame Challenge". Presentada a la Organización, en Noviembre de 2010.
Fue la primera de las pruebas pre-clasificatorias del concurso. Éstas eran pruebas bastante simples, de caracter mensual, que la organización fue liberando en los meses previos al concurso (en total, cinco). Había que superar al menos tres de ellas para poder acceder al concurso en Suiza. Las pruebas debían ser documentadas adecuadamente para ser dadas por buenas pero no teníamos permiso para publicar ninguna solución hasta que el concurso hubiera finalizado.
Solución al reto internacional "SbD Wargame 2011". Publicado en Febrero de 2011.
El pasado 15 de Enero de 2011 se celebró el primer wargame internacional online organizado por SbD y patrocinado por Panda Security. El grupo español "int3pids", del cual formo parte, resultó ganador indiscutible del evento, superando todas las pruebas en tiempo record.
Así pues, entre todos los miembros del equipo (dreyer, kachakil, nullsub, romansoft, uri y whats), redactamos el presente solucionario, que resuelve paso a paso todas y cada una de las pruebas del concurso y que refleja cómo fuimos afrontando y superando los diferentes obstáculos que se nos fueron presentando. El solucionario está en inglés para poder llegar a un público más amplio.
Documento que narra cómo se forjó Rooted CON. Publicado en Mayo de 2010.
La primera edición del Congreso de Seguridad Rooted CON se celebró con éxito durante los días 18, 19 y 20 de Marzo de 2010. Ponentes de lujo, un concurso CTF de calidad y cuidado hasta el más mínimo detalle, una sala de excepción en un lugar privilegiado de la capital... Y lo de mejor de todo, vosotros: los asistentes.
Desde la perspectiva que me brinda el haber sido miembro fundador de Rooted CON y con motivo de mi marcha definitiva de la Organización, he querido rendir un pequeño homenaje a Rooted CON, relatando cómo se concibió el Congreso desde sus orígenes -cuando sólo era una loca idea- hasta la celebración de su primera edición. Contada en primera persona, la Historia de Rooted CON presenta el reto que supone montar un Congreso de Seguridad, para un grupo de personas con apenas experiencia en semejante empresa, qué dudas surgen, cómo solucionarlas, diferentes enfoques, étc.
Documentación técnica sobre el
"Reto Hacking #10". Presentada a la
Organización, en Septiembre de 2009.
Este reto presenta dos novedades: por un lado la inyección SQL "a izquierdas", que no deja de ser más que una curiosidad pero que nunca la había visto hasta el momento; y por otro, la inyección XPath a ciegas, existente desde hace muchísimo tiempo en el plano teórico pero casi inexistente en el práctico. De hecho, sólo existe una herramienta pública que implemente este ataque: Blind XPath Injector (BXPI). Y no es más que una prueba de concepto, con muchas limitaciones y que no servía (al menos por sí sola) para resolver el reto.
La solución que presentamos está escrita por los ganadores del reto: Dani Kachakil y Román Medina. Narra, con todo lujo de detalles y a todo color, los pasos que seguimos para resolver el reto. Veréis que en algunos casos tanto Dani como yo tomamos aproximaciones diferentes, todas ellas perfectamente válidas, lo que hace que la solución presentada sea aún más enriquecedora.
Documentación técnica desarrollada para el concurso de
Panda Security ("Reto Panda"). Presentada a la Organización, en Abril de 2009.
En una nota de prensa publicada el 25/03/09, Panda Security avisaba de la celebración de un concurso de ingeniería inversa que daría comienzo el 1 de abril:
"PandaLabs, el laboratorio de detección y análisis de malware de Panda Security, reta y premia a usuarios expertos en malware y tecnología. Con el concurso el Reto Panda, que comenzará el próximo 1 de abril, premiará a los participantes más rápidos con suculentos premios, como una consola PSP, un iPod Touch o un notebook de Dell, dependiendo del nivel de dificultad. [...] PandaLabs proporcionará a los participantes tres desarrollos de código ensamblado, especialmente diseñados para estas pruebas, que evidentemente no son malware ni pueden causar ningún daño. Cada uno de ellos tiene un nivel de dificultad diferente, y albergan en su interior una contraseña que los participantes tendrán que encontrar."
Pongo a vuestra disposición la solución a la última de las tres pruebas que conformaban el reto (supuestamente la más dificil y que daba acceso al premio gordo del concurso). Advierto que la complejidad es elevada. Imprescindible al menos defenderse en el bello arte del "ASM-fú" ;-).
Codegate 2009 reunirá a los mejores hackers del mundo luchando por conseguir un premio en metálico de $36.000, en una competición por equipos de tipo "CTF". Hace apenas 2 semanas se celebraron las "prequals", es decir, un torneo pre-clasificatorio para seleccionar a los 7 equipos que participarán en la ronda final. Tuve la suerte de poder participar y de ver clasificarse a un equipo español: los "Sexy Pandas".
Las quals fueron durísimas. Hubo 21 pruebas, que se fueron abriendo al público progresivamente. Os presento la solución a una de ellas, en concreto, la #15.
Documentación técnica sobre el
"Reto Hacking #5". Presentada a la
Organización, en Enero de 2008.
Se trata de un reto especialmente difícil y algo rebuscado pero no deja de ser interesante desde un punto de vista técnico. Además, estéticamente llama la atención de los nostálgicos como yo puesto que está ambientado en la mítica aventura gráfica "The secret of Monkey Island".
La gran novedad de este reto era el primer nivel, donde se supone que había que bajarse un fichero XML utilizando la técnica de "Blind Xpath Injection" (actualmente no existe una herramienta pública que lo haga). Afortunadamente, había un fallo de programación (no intencionado) en el reto por lo que todos conseguimos pasar esta primera fase de otra forma (muchísimo más sencilla). El segundo nivel requería bajarse un fichero binario explotando una vulnerabilidad de "Blind SQL Injection". Y el tercero iba sobre esteganografía...
¿Queréis saber como lo resolví? Pues a leer toca... :-)
"Cómo realizar un test de intrusión a una aplicación web"
04.Oct.2007
Presentación correspondiente a la charla impartida en el evento de Microsoft TechNet titulado "Asegúrate de que está seguro", en Getafe (Madrid), el 4 de Octubre de 2007.
Fuí invitado a dar una pequeña conferencia sobre seguridad en aplicaciones web junto con mi colega Alberto Moro ("Mandingo"). Debíamos hablar, de forma conjunta, sobre cómo realizar un test de intrusión en este tipo de aplicativos. Al final, por motivos logisticos-operativos decidimos dividir la presentación en dos partes independientes, de forma que cada una mostrase una perspectiva diferente sobre el tema en cuestión.
Yo elaboré y expuse toda la primera parte, que subtitulé "un enfoque práctico". En ella trato de mostrar los pasos que podría seguir un pen-tester a la hora de atacar una aplicación web. Y para ello nada mejor que utilizar un caso práctico. Pero eso sí, siempre dentro de la legalidad, razón por la cual decidí optar por ilustrar la resolución del "Reto III de El lado del mal", haciendo especial énfasis en la metodología utilizada y mostrando un paso a paso con capturas de pantalla incluídas.
La segunda parte, realizada íntegramente por "Mandingo", me parece muy original: bellamente caótica, casi en plan "brain-storming" y que toca diversas facetas no tan comunes pero que están relacionadas con las auditorías web. En definitiva, una mezcla bastante curiosa y espero que interesante. ¿Os apetece verlas?
Blind LDAP Injection: "Solución al Reto Hacking #4 - El lado del mal"
15.Sep.2007
Documentación técnica sobre el
"Reto Hacking #4". Presentada a la
Organización, en Septiembre de 2007.
La novedad de este reto es la inclusión de un back-end LDAP (basado en ADAM), dando pié a ataques de tipo "inyección LDAP" (o "LDAP injection"). Este tipo de ataque no es nuevo (data, al menos, de 2005); sin embargo, es cierto que se ha escrito muy poco sobre él y no es un ataque demasiado popular. Además, el único documento publicado que habla sobre el tema (de Sacha Faust) es bastante ambiguo y presenta incorrecciones.
Se introduce por primera vez el concepto de "Blind LDAP Injection" ya que la aplicación vulnerable no mostraba errores y el reto obligaba a investigar este nuevo campo. Fruto de esta investigación descubrí dos nuevas técnicas: la reducción del charset (que se puede aplicar a cualquier tipo de ataque de inyección ciega: LDAP, SQL, ...) y un caso especial de inyección LDAP basada en el operador (!), que abre nuevas posibilidades (vectores de ataque), al no estar incluída esta sintaxis en el RFC original (1960).
Documentación técnica sobre el
"III Reto Hacking". Presentada a la
Organización, en Mayo de 2007.
Chema Alonso (junto con sus múltiples colaboradores) organiza
periódicamente pequeños y divertidos concursos (o mejor dicho, "retos con premios
simbólicos") relacionados con la seguridad informática. Ésta es la solución al tercero de ellos.
El objetivo del reto, en este caso, es controlar la cuenta del
"Maligno Bank", es decir, encontrar la forma de acceder a las cuentas bancarias
de este banco ficticio. El juego consta de tres fases y de momento sigue operativo
(a pesar de haber finalizado ya el concurso). Os animo a que lo intentéis antes de leer mi solucionario.
Documentación técnica desarrollada para el
concurso. Presentada a la
Organización, en Diciembre de 2003.
RedIRIS en colaboración con empresas y expertos de seguridad hispanoablantes
propone a los responsables de seguridad de las universidades españolas, centros afiliados a RedIRIS
y usuarios de Internet en general la realización de un análisis forense de un sistema Linux
previamente atacado y comprometido.
El objetivo de este reto de análisis forense es comprobar la capacidad de
análisis de un sistema Unix previamente atacado a la hora de determinar el origen del ataque
y las actuaciones que los atacantes han llevado a cabo en el sistema. En realidad, no se trata
de un sistema corriente sino de un "honeypot", es decir, un sistema trampa cuya intención es
la de atraer a hackers permitiendo así estudiar sus movimientos, herramientas que utilizan y
en definitiva, su "modus operandi".
Como veremos, efectivamente alguien picó. La documentación adjunta redacta
y explica las actuaciones del supuesto "hacker" (en realidad, un "script-kiddie"). Pero lo
más importante es que puede servir de guía o ejemplo para la realización de un análisis
forense cualquiera, dado su marcado carácter didáctico.
"El regreso de los Boinas Negras. Solución al II Reto de Hacking Web – Boinas Negras II"
29.Jul.2005
Artículo publicado en la revista @rroba, nº 74, en Noviembre de 2003.
Ya se empieza a convertir en una tradición. La primera edición de "Boinas
Negras" -hace casi año y medio- causó furor por aquel entonces por ser quizás el
primer reto de autenticación web celebrado en España, además de ser
particularmente divertido. Este año se ha celebrado una nueva edición y, como ya
ocurriera en su primera entrega, también hemos participado y logrado pasar con
éxito todas y cada una de las pruebas. Este artículo narrará detalladamente los
pasos seguidos para alcanzar nuestro propósito, esto es, finalizar con éxito el reto.
Artículo publicado en la revista @rroba, nº 68, en Mayo de 2003.
Ha pasado más de un año desde la celebración de lo que fue un concurso
pionero en España. Con unos meses de retraso, Hack21 se ha presentado de nuevo a la Comunidad
y una vez más, allí hemos estado, participando, cara a cara con otros compañeros y concursantes.
Desde la posición privilegiada que nos ha brindado este hecho, narraremos escrupulosamente
todo lo acontecido durante la celebración del concurso. También contaremos con la opinión
de la otra cara de la moneda: los organizadores del evento.
Artículo publicado en la revista @rroba, nº 61, en Octubre de 2002.
Aunque la Legislación a veces no es demasiado clara al respecto entrar en
computadoras ajenas sin permiso expreso del dueño se considera delito en muchos
países y está penado por la Ley. Realizar actividades relacionadas con el hacking
conlleva sus riesgos. Este artículo presenta una forma divertida y
didáctica de poner a prueba nuestros conocimientos y habilidades más oscuras sin
que esto suponga en ningún momento sobrepasar la frontera de la legalidad.
Se explicará lo que es un "wargame", por qué puede ser útil y
divertido, y referenciaremos algunos en los que el autor ha tenido la oportunidad
de participar. En particular, hablaremos de iZhal,
un divertido wargame que tiene sello español, e incluso entrevistaremos a sus máximos responsables.
Artículo publicado en la revista @rroba, nº 60, en Septiembre de 2002.
La programación shell constituye un importante recurso para todo administrador
de sistemas. Unas simples nociones de bash o cualquier otro lenguaje shell
bastarán para que seamos capaces de escribir útiles programas en unas pocas
líneas de código. Sin embargo, a veces los programadores de guiones shell ("shellscripts")
olvidan o simplemente ignoran las implicaciones que un script defectuoso
o mal diseñado puede tener en la seguridad de una máquina. Ilustraremos paso a
paso el ataque a un servidor que ofrece un servicio de shells gratuitas basándose el
sistema de altas "automatizadas" en uno de estos guiones shell.
Este concurso de hacking ético, pionero en España y sin lugar a dudas el mejor
hasta la fecha, puso a prueba a miles de concursantes de todo el mundo y atrajo especialmente
a personas de la comunidad hispanohablante. Tuve la suerte de poder participar activamente en
el mismo, y conseguí un modesto pero nada despreciable noveno puesto, así como algunos regalos
(el mejor de ellos, sin duda, la cantidad de amigos y compañeros que tuve la oportunidad de
conocer).
El presente artículo fue entregado, no en su versión final, como parte de las pruebas cuyo principal
objetivo era tratar de demostrar que un participante no había hecho trampas y que se merecía algo
más que los agradecimientos por haber participado :-) En realidad, no se requería tanto detalle pero
pensé que era buena idea documentar todo al máximo, para que resultara un documento que pudiera
servir en un futuro como tutorial para personas de diferentes niveles técnicos. Evidentemente, todo no
pudo ser explicado a un nivel elemental, pero sí que se han incluído algunas referencias y
enlaces a material de interés, cuyo conocimiento sería útil para superar alguno de los niveles del
concurso. Para gente con un nivel más avanzado, incluso concursantes que superaron con éxito todas las
pruebas, el interés puede radicar en el contraste de resultados, técnicas y metodologías empleadas.
A la fecha de la publicación de este artículo, la web del concurso se encuentra
todavía operativa, por lo que podría ser un ejercicio bastante didáctico el intentar resolver los distintos niveles
del juego, y acudir a este manual sólo cuando el participante se encuentre estancado. Por la misma
razón, en el documento se han obviado las soluciones finales de algunos niveles. Si utilizas directamente
las contraseñas que aparecen en este escrito con el simple objetivo de "pasar de nivel", no estarás
siendo honesto contigo mismo ni te servirá para aprender nada. Piénsalo dos veces antes de hacerlo.
Consta de dos partes bien diferenciadas. La primera -teórica- describe el estado del arte de la
seguridad en aplicaciones web así como conceptos generales de seguridad informática. Se incluyen
también algunas referencias y breves descripciones de herramientas útiles para la auditoría de
aplicaciones web, además de una guía de administración para la creación de un entorno
seguro bajo Apache, PHP y MySQL. La segunda parte -práctica- consiste en auditar el código de dos
portales web de características similares, depurarlo, proponer mejoras funcionales, y posteriormente
implementarlas. Como parte del desarrollo, se han escrito y experimentado con rutinas de protección genérica
contra "injecting", para PHP.
Documento sobre hacking en IRC. Originalmente publicado en Julio de 1997.
Las redes de Internet Relay Chat o más comunmente conocidas como "IRC" han
proliferado mucho desde aquellos tiempos en los que se comenzaba a probar los primeros parches
anti-nuke en el ircd, o donde era relativamente fácil para un usuario avanzado provocar un
split e incluso sacar provecho del mismo (obtención de ciertos privilegios como el status de
chan-op).
Los tiempos han cambiado. Ahora muchas redes usan enlaces dedicados entre
distintos nodos, esconden información de sus usuarios (como la dirección IP), escanean puertos
para detectar el (ab)uso de proxies y un sinfín de nuevas funcionalidades que buscan mejorar
y hacer del IRC un lugar más tranquilo y seguro.
El presente documento se encuadra en el marco de la primera época del IRC,
aquella más salvaje y peligrosa, pero a la vez más divertida }:-) La mayoría de las técnicas
tratadas ya no son de aplicación y han quedado obsoletas. Si bien otras todavía hoy pueden
resultar útiles, el marcado carácter histórico del documento es motivo suficiente para que
el mismo siga gozando del interés de muchos internautas. De hecho, a lo largo de sus algo más
de cinco años de vida, la aceptación del documento ha sido notable y son muchas las páginas
webs que mantienen una copia local de ésta o alguna de las versiones anteriores del mismo.
Están disponibles tanto la versión online del documento,
que es la original y además incluye acceso al código fuente de algunas herramientas y pruebas
de concepto, así como una copia en formato PDF, que carece de extras.