SQLol y XMLmao: Web hacking Testbeds

Recientemente tuve que preparar unas presentaciones sobre XPath Injection (I,II) a modo de formación interna en la empresa, y me puse a buscar entornos en los que se pudieran practicar las técnicas que iba a contar. El caso es que la mayoría de entornos “conocidos”, como WebGoat, DVWA, Multillidae, AltoroMutual… tienen uno o ningún nivel dedicado a XPath Injection. Con la intención de que los alumnos pudieran jugar un poco más, estuve indagando en Google, y encontré XMLmao.

XMLmao

XMLmao es un entorno vulnerable a XPath Injection y XML Injection que permite probar gran variedad de ataques diferentes. Está construido de tal forma que se puede elegir si hay filtro de comillas, de barras (/), de pipes (|), de espacios o de brackets ([). También se puede configurar el punto de inyección: Ruta del nodo, Nombre del nodo, Variable de condición, Valor numérico en la condición, cadena en la condición, Nodo Hijo o query completa. Permite seleccionar si se mostrarán todos los resultados, sólo uno, ninguno, o tan sólo un comportamiento diferente entre resultados y no (para blind injection).

XMLmao

Eso en cuanto a XPath Injection. La sección de XML Injection tiene configuraciones muy similares. Además de todo lo anterior, la aplicación consta de una serie preestablecida de “desafíos” para superar utilizando diferentes técnicas de inyección. Por si alguno se atasca con los desafíos, en la misma carpeta en la que se encuentran los .php que los contienen están también los .txt que explican una posible solución al reto.

El entorno está escrito en PHP, y su instalación es tan sencilla como descargar un .zip (de aquí) y extraerlo en la carpeta del servidor web (/var/www/XMLmao en mi caso). Como la aplicación es deliberadamente vulnerable, no se recomienda su instalación en servidores públicos (o al menos no sin algún tipo de autenticación).

SQLol

Al trastear con el repositorio de SpiderLabs, descubrí otro proyecto de características similares pero orientado a las inyecciones SQL. No es que de este tipo de ataque no haya entornos de prueba (que los hay, y muchos), pero me sigue pareciendo muy interesante que permita al usuario configurar los parámetros de inyección de acuerdo a sus inquietudes en ese momento.

SQLol

Pantalla Principal SQLol

Del mismo modo que XMLmao, permite configurar el nivel de filtrado, qué caracteres están siendo filtrados, si se muestra la consulta, el nivel de verbosidad de los errores y el lugar en el que se encuentra la inyección. Así por ejemplo, puedes probar inyecciones en los siguientes sitios:

Lugares para inyectar

Opciones de Inyección

Por supuesto, también se puede elegir el tipo de consulta en el que se va a inyectar (DELETE, UPDATE, SELECT, INSERT o CUSTOM). Consta de una serie de retos predefinidos con sus respectivas soluciones para aquel que se atasque con alguno. La instalación es similar a la de XMLmao, descargar el .zip (de aquí) y descomprimir en la carpeta del servidor web. Sin embargo, SQLlol requiere una base de datos SQL. Soporta MySQL, Postgres y SQLite, aunque el desarrollador comenta que puede que otras funcionen. Una vez descomprimido el paquete, es necesario modificar el fichero #SQLol_directory/includes/database.config.php para que haga referencia a la base de datos que hayamos instalado. Al finalizar este paso, nos dirigimos a la interfaz web y pulsamos en el botón “RESET”, y listo.

Espero que éstos entornos “menos conocidos” os sirvan para practicar éste tipo de ataques o para replicar de manera más precisa el escenario que os podáis encontrar durante un pentest.

¡Salud!

Tagged with: , , , ,
Publicado en hacking, seguridad, web hacking

Montar las Imágenes de exploit-exercises.com en VMware Fusion

Quería dejar un pequeño apunte para aquellos que estén interesados en probar los retos de exploit-exercises.com. Desde dicha web proporcionan tres máquinas virtuales con diferentes niveles de exploiting para practicar y mejorar las técnicas y conocimientos relativos: Nebula, Protostar y Fusion. El proyecto empezó hace tiempo, pero tanto Protostar como Fusion siguen en estado aplha/beta. Personalmente, preferí esperarme a que los entornos de pruebas fueran más estables para asegurarme de que los problemas que encuentre sean debidos al ejercicio en sí (y/o a mi torpeza) y no a posibles bugs. El primer entorno de pruebas, Nebula, va por la versión 4 y debería ser suficientemente estable, así que decidí bajarlo y echar un rato jugando con las pruebas.

En éste link dan instrucciones para importar las máquinas virtuales de pruebas que proveen en formato OVA (Open Virtualization Format). El problema es que no hay tutorial para VMware Fusion, y no carga OVAs directamente. No es que sea un proceso complicado, pero ahí va:

  1. Descargar OVFTool de la web de VWmare e instalar siguiendo el procedimiento habitual en OS X
  2. Descargar la imagen OVA de la web de exploit-exercises.com
  3. Desde una terminal, ejecutar los siguientes comandos:
ovftool-comandos

Convertir imagen con ovftool --lax origen.ova destino

Si os olvidáis de incluir el flag –lax dará un error relacionado con virtualbox-2.2 (que no nos incumbe) y finalizará. Cuando termine (tarda unos minutos), simplemente id a VMware Fusion, “Archivo->Abrir” y seleccionad la imagen que habéis creado.

WMware-abrir-nebula

Archivo->Abrir

Con esto debería bastar, podéis arrancar la máquina y entrar con usuario y password levelXX. Tenéis más información sobre el funcionamiento y los niveles de Nebula en la página oficial.

¡Salud!

Tagged with: , , , , ,
Publicado en exploiting, hacking, herramientas, virtualización

¿Sueño con ovejas eléctricas?

Sí, me temo que soy un replicante, un androide con forma humanoide, un cascarón de piel sintética sobre cables y circuitería varia. Para aquellos no muy dedicados a la literatura, el título del relato de Philip K. Dick que dio lugar a la película Blade Runner, se titulaba originalmente “Do Androids Dream of Electric Sheep?”

¿Y por qué digo esto? Porque cada vez más, se da la situación de que me ven enfrente de un captcha que no puedo resolver. ¿Y no es el objetivo de los captchas dejar fuera a los autómatas y permitir su resolución a los seres humanos? Mi tasa de acierto debe ser aproximadamente del 66%, fallo un tercio de los captchas al menos (lo sé, lamentable).

En fin, sé que esto no os interesa mucho, pero lo que os voy a decir a continuación seguro que sí: vosotros tampoco sois humanos. ¿Qué? ¿Qué no os lo creéis? Vale, pues decidme cual es la solución a éste captcha de uploaded.to:

Captcha indescifrable

Captcha indescifrable

¡Salud!

Tagged with: , ,
Publicado en General, seguridad

Advanced XPath Injection

Quería actualizar brevemente con la segunda parte de la presentación sobre XPath Injection (en inglés) que he dado en la empresa para los menos avezados en el tema. El título “avanzado” quizá sea decir mucho, pero tiene algunos trucos, incluyendo blind, que no estaban incluídos en la primera presentación por motivos de espacio.

Dicho esto, podéis descargar el PPT de aquí.

¡Salud!

Tagged with: , , ,
Publicado en hacking, web hacking

Oracle Blind SQL Injection en Order By

 Hoy quería comentar un caso curioso que me he encontrado recientemente durante un pentest de una aplicación web. La aplicación en cuestión es muy grande, con muchísimos menús, submenús, cantidad de roles, checkboxes y dropdown menus que muestran diferentes páginas en función de los valores que tengan… Vamos, una cosa incómoda de manejar y con muchos campos donde intentar inyectar basurilla. Y además, no está permitido el uso de herramientas automáticas (requisitos del cliente).

Lo más habitual suele ser que una web sea vulnerable a SQL injection en todos los campos del mismo tipo, o del mismo formulario, existiendo siempre la posibilidad de que un cambio de desarrollador o un parche a posteriori deje un agujero que no estaba previamente. La aplicación de la que os hablo hoy es de este tipo, una aplicación antigua que ha pasado por las manos de varios desarrolladores y sobre la que se han aplicado parches y añadido nuevas funcionalidades con el paso del tiempo. Pues allá que iba yo auditando la susodicha, llevando recorrido ya más de un 75% de la web sin haber sido capaz de encontrar ningún SQLi. Y fue en aquel preciso momento, desvanecida ya toda esperanza, cuando Isildur, Hijo del Rey recurrió a la espada de su padre… cuando me topé con la típica tabla que se puede ordenar clickando en los encabezados de las columnas. Algo muy parecido a esto:

Tabla

Tabla ordenable

Si echamos un vistazo a lo que sucede cuando hacemos click en “1 Year”, lo que nos mostrará Burp nos parecerá bastante sospechoso, y será muy parecido a lo siguiente:

Parámetros en Burp

Llegados a este punto, no queda más remedio que intentar una inyección en esos parámetros, a pesar de que existían otras tablas de la aplicación con aspecto idéntico, e idénticos nombres de parámetros que no eran inyectables. Para llevar a cabo esta tarea hay que tener en cuenta un par de peculiaridades sobre las inyecciones en cláusulas Order By, y en Oracle. A saber:

  • No es necesario el uso de comillas: En la cláusula Order By se colocan directamente los nombres de las columnas de la tabla sin necesidad de comillas, por lo que no hará falta para la inyección cerrar comillas previamente abiertas.
  • No está permitido el uso de UNION: SQL no permite el uso de UNION en la cláusula Order By (tampoco tendría mucho sentido), por lo que no podremos usar ésta técnica para extraer información.
  • Oracle no permite SELECT sin su correspondiente FROM, por lo que para seleccionar consultas se ha de utilizar la tabla dummy llamada dual.
  • Lo mismo da ordenar por una columna por nombre (ORDER BY Year) que por posición (ORDER BY 1).

Esto provoca que muchos programadores piensen que no es posible inyectar en cláusulas ORDER BY, y descuidan la debida validación de la entrada de usuario para estos casos. Como siempre, lo primero que a uno se le ocurre es meter unas comillas, y ver si la aplicación responde con un error maravilloso denotando que es vulnerable (y facilitando la posterior extracción de datos, ya que no podremos usar UNION). Por desgracia (para mí), las comillas simplemente devolvían la tabla ordenada de la misma forma que se muestra en la primera imagen, es decir, sin orden aparente. El mismo resultado se produce si en lugar de “Year”, utilizamos como valor “España” o “Manolito”. Hasta aquí podría parecer que no es vulnerable, y que quizá el JSP de la página haga un “switch” y cree la query a la base de datos sin los valores que estamos manipulando. En ese caso, sería posible que la rama default del switch hiciera la query sin ordenar, algo así:


switch (Sort_by){
case "Year":
query+="ORDER BY Year;";
break;
case "Month":
query+="ORDER BY Month;";
break;
default:
query+=";"
break;
}

Por suerte para nosotros, no es el caso. Lo era en ésta misma aplicación, en tablas anteriores, pero se les olvidó una; y con una basta. La pista la da que si en lugar de SortBy=”Year”, enviamos SortBy=1, la tabla se ordena como esperamos, por lo que o el switch cubre muchos casos, o aquí tenemos algo para jugar.

Si repasamos un poco nuestro escenario, tenemos una inyección ciega en un campo ORDER BY en Oracle. Al ser un caso de blind SQLi, no nos queda más remedio que tratar de construir algún tipo de lógica binaria para diferenciar aciertos de errores en las consultas. Probablemente, lo primero que os venga a la cabeza sea construir una consulta que ordene por la primera columna si el resultado es True, y por la segunda si es False. Como ejemplo, vamos a construir dicha query para obtener el primer caracter del usuario con el que corre la instancia de Oracle. Paso a paso:

Select user from dual -- Obtiene el usuario de la instancia de Oracle, utilizando la dummy table dual.

case WHEN (1=1) THEN 1 ELSE 2 END -- Devuelve 1 si (1=1) es True, y 2 en otro caso.

ascii(substr(user,1,1)) -- Devuelve el valor ascii del primer caracter de "user"

Sort_by=(SELECT case WHEN ascii(substr(user,1,1))=80 then 1 else 2 end from (SELECT user from dual)) -- Obtiene el usuario de la tabla dummy dual. De ese string, saca el primer caracter y lo convierte a ascii. Si ese valor es igual a 80, devuelve 1 (ordenando por la primera columna) y si no, devuelve 2 (ordenando por la segunda).

También se podría haber hecho la query de la siguiente forma (por si a alguien le es más fácil de ver):

(case WHEN ascii(substr(SELECT user FROM dual,1,1))=80 then 1 else 2 end)

Conseguido esto sólo queda iterar por los valores de la tabla ascii para conseguir el nombre completo del usuario, o usar la misma idea para obtener las tablas, bases de datos o contenido de las mismas.

Hay dos conclusiones que extraer de esta pequeña entrada. La primera, que a pesar de que parezca que no se va a encontrar un fallo en una aplicación, hay que seguir probando todos los campos hasta el final, porque puede haber sorpresas. La segunda, que las inyecciones en ORDER BY, no sólo son posibles, sino que son muy efectivas, porque habitualmente no están filtradas por los desarrolladores.

Cualquier cosa, me encantará un comentario.

Salud

Tagged with: , , ,
Publicado en web hacking

Achievement Unlocked: SANS GIAC GPEN

Quería poner una pequeña actualización para comentar que hoy hice el examen del GPEN y que ya estoy oficialmente certificado por GIAC. He estado apurando la fecha hasta el último día (sí, me gusta vivir al límite) porque con el cambio de trabajo y residencia se me complicaron las cosas. El centro estaba un poco en ruinas y hacía algo de frío, pero posiblemente es porque se estaban instalando en la nueva oficina. Además, me quedaba a tres horas en coche (sigh).

Sobre el examen, decir que sigue la tónica de los test de prácticas, pero apenas se repite ninguna pregunta. El nivel de dificultad es similar, aunque hay que sumarle obviamente la presión del examen “real”. El examen es “open book”, lo que quiere decir que puedes llevar los libros, y cualquier otro apunte que creas que puede serte útil. Cabe decir que, a pesar de que se tienen tan sólo 4 horas para responder 150 preguntas, con un buen índice que te permita encontrar rápidamente las preguntas que no tienes claras, sobra tiempo para completarlo sin prisas.


GPEN logo

Dicho esto, obtuve un resultado del 95,33%, más que suficiente para aprobar y sentirme orgulloso del resultado. No habría podido obtener éste resultado tan positivo si no hubiera sido por la excelente labor de Mentor que hicieron Jose Selvi y Rafa Alfaro durante las semanas que duró el curso en Madrid. Los dos dieron unas clases estupendas, se lo curraron muchísimo con el CTF del final y con las explicaciones, además de dar un gran soporte durante el curso.

A tenor del curso, y del contenido de la certificación, estoy muy satisfecho con el temario y creo que es realmente útil para el trabajo diario. El apartado de leyes queda un poco fuera de lugar, pero por lo demás merece la pena, sobretodo si no tienes muchos años de experiencia como pentester. Aún así, creo que incluso la gente con más experiencia podría aprender algún truquillo nuevo. Y aunque no es ni de lejos lo más interesante, debo admitir que la parte sobre la escritura de informes me ha resultado útil.

Por último, darle las gracias a Miguel López, compañero durante el curso, que amablemente me cedió uno de sus tests de prácticas. Si todo va como está previsto, creo que me apuntaré al GXPN en algún momento de 2012. Quería cerrar el post con una promesa: actualizar más a menudo este año 😉

¡Salud!

Tagged with: , , ,
Publicado en General, seguridad

XPath Injection Primer

Edit: He publicado una segunda parte de este tema aquí.

Estos días he preparado una presentación introductoria (en inglés) sobre XPath Injection para dar como formación interna en la empresa, ya que hay gente nueva que no tiene mucha experiencia. No cubre aspectos avanzados pero sí que comienza con una introducción sobre XML y sobre XPath, para después entrar en el tema de XPath Injection. Quizá para la próxima incluya Blind XPath injection y algunos truquillos más, pero por el momento os dejo el powerpoint introductorio que para aquellos que no sepan mucho del tema les vendrá bien.

Para descargarlo podéis pinchar aquí.

¡Salud!

Tagged with: , ,
Publicado en hacking, web hacking

Emprender: Madrid Startup Weekend

Durante el fin de semana he tenido la suerte de participar en el Madrid Startup Weekend que se celebró en el centro Madrid On Rails. El evento estuvo bastante bien. El catering y la WiFi son aspectos a mejorar para futuras ediciones, así como la cobertura para Vodafone en el “zulo” ese donde estábamos metidos, que era bastante pobre. Se presentaron treintaitantos proyectos, de los cuales 9 comenzaron su desarrollo, aunque sólo 8 llegaron a presentarse al jurado final.

La valoración final que hicieron los inversores me produce cierta suspicacia y creo que está condicionada por el hecho de que elegir un ganador no implicaba que ellos tuvieran que poner dinero de su bolsillo en dichos proyectos, ya que sin desprestigiar ninguna idea (que de hecho eran buenas), el modelo de negocio que tenían algunas de ellas era endeble, cuando no inexistente.

El proyecto que presentamos Salva y yo fue JoinJoin, que obtuvo varios premios. Long story short, se trata de una aplicación para mejorar el networking en conferencias y eventos. Puesto que uno de los premios que obtuvimos fue una incubación en Link2Start que comienza el año próximo es probable que continuemos con el desarrollo de la idea, a ver si nos hacemos ricos de una vez.

JoinJoin: Linkedin Meets FourSquare

Pero lo más importante es que extraje algunas conclusiones sobre el emprendimiento que me gustaría dejar aquí plasmadas. Muchas de estas ideas vienen reforzadas por el evento de ASECAM, también para emprendedores, del mes pasado. Algunas pueden sonar a coña, otras pueden ser discutibles. Como ya he dicho son apreciaciones personales y para gustos colores. (El orden es casi tan irrelevante como el contenido)

  1. Una persona no puede considerarse emprendedor si no posee dos de los siguientes dispositivos: IPhone, IPad, Macbook. Sí amigos, en los eventos para emprendedores los dispositivos de Apple crecen como las setas en un rincón húmedo y oscuro. Si vas con Android molas, pero no tanto.
  2. El perfil tecnológico no es el centro del emprendimiento. Es más, es totalmente prescindible. Voy a tratar de explicar este punto, porque seguramente será comprometido. Por lo que he podido ver en ambas ocasiones, son los perfiles de marketing/ADE/negocio los que están mejor preparados para la creación de startups tecnológicas. Un ingeniero informático por lo general no dispone de conocimientos sobre contabilidad, balances, planes de negocio, planes de expansión y márketing, publicidad, ventas… Y amigos, un negocio es ventas. Si no hay ventas, no hay negocio. Un tipo de márketing puede montar un bussines plan medio decente sobre la idea, planificar costes, estrategias de comunicación y expansión, previsiones de financiación, ingresos… Con todo esto, puede obtener una visión más o menos acertada acerca de la viabilidad del proyecto. Una vez que suponen que el negocio es viable es cuando recurrirán al ingeniero, pero en este momento el ingeniero no se incorporará en igualdad de condiciones. No será un socio, si no un asalariado. Por mi experiencia, un ingeniero tiene una idea y se basa en afirmaciones personales y subjetivas sobre su viabilidad. Desde mi punto de vista, tiene muchas más posibilidades de desarrollar algo que no tuvo futuro desde el minuto cero. Es más, aunque de con algo que puede funcionar, probablemente su enfoque técnico no le saque todo el jugo posible a la parte de ventas y presentación, impidiéndole conseguir financiación o llegar al mercado adecuado.
  3. Plan de negocio y mock ups; no desarrolles. Para analizar la viabilidad de un negocio y como primera fase del mismo no hay que comenzar por desarrollar un prototipo (¡error!), si no por hacer un plan de negocio. Lo importante no es tanto el producto si no el mercado al que va dirigido, el por qué te van a pagar por él, quién es el usuario y quién es el cliente, cómo vas a llegar a ese mercado, qué financiación necesitas… La parte del producto estará cubierta con unos diseños en photoshop que muestren un poco el aspecto gráfico del desarrollo en cuestión.
  4. El emprendimiento tecnológico es cosa de hombres. A pesar de que van apareciendo mujeres, la gran mayoría son todavía perfiles masculinos.
  5. El sacrificio extremo mola. Historias de terror, casos que acongojarían a Freddy y Jason circulan entre los emprendedores. Meses con 4 horas de sueño, casas hipotecadas, años trabajando sin sueldo y viviendo a una nómina de la ruina, madres de familia que se van a los States y dejan tirado a su marido y sus hijos… Todo con tal de emprender, de llevar a cabo tu idea. Para sacar algo adelante hay que sacrificarse, pasar horas sin dormir, ganar menos dinero, y quizá renunciar a parte (o toda) tu vida social un tiempo, pero ojo, que no se te vaya de las manos. Primero tú, luego tu idea.

Esto ha sido todo por hoy. Cuando vuelva a sacar algo de tiempo nos leemos por aquí de nuevo.

Tagged with: , , ,
Publicado en Emprender, eventos

Manifiesto por una Red Neutral

Los ciudadanos y las empresas usuarias de Internet adheridas a este texto manifestamos:

1. Que Internet es una Red Neutral por diseño, desde su creación hasta su actual implementación, en la que la información fluye de manera libre, sin discriminación alguna en función de origen, destino, protocolo o contenido.

2. Que las empresas, emprendedores y usuarios de Internet han podido crear servicios y productos en esa Red Neutral sin necesidad de autorizaciones ni acuerdos previos, dando lugar a una barrera de entrada prácticamente inexistente que ha permitido la explosión creativa, de innovación y de servicios que define el estado de la red actual.

3. Que todos los usuarios, emprendedores y empresas de Internet han podido definir y ofrecer sus servicios en condiciones de igualdad llevando el concepto de la libre competencia hasta extremos nunca antes conocidos.

4. Que Internet es el vehículo de libre expresión, libre información y desarrollo social más importante con el que cuentan ciudadanos y empresas. Su naturaleza no debe ser puesta en riesgo bajo ningún concepto.

5. Que para posibilitar esa Red Neutral las operadoras deben transportar paquetes de datos de manera neutral sin erigirse en “aduaneros” del tráfico y sin favorecer o perjudicar a unos contenidos por encima de otros.

6. Que la gestión del tráfico en situaciones puntuales y excepcionales de saturación de las redes debe acometerse de forma transparente, de acuerdo a criterios homogéneos de interés público y no discriminatorios ni comerciales.

7. Que dicha restricción excepcional del tráfico por parte de las operadoras no puede convertirse en una alternativa sostenida a la inversión en redes.

8. Que dicha Red Neutral se ve amenazada por operadoras interesadas en llegar a acuerdos comerciales por los que se privilegie o degrade el contenido según su relación comercial con la operadora.

9. Que algunos operadores del mercado quieren “redefinir” la Red Neutral para manejarla de acuerdo con sus intereses, y esa pretensión debe ser evitada; la definición de las reglas fundamentales del funcionamiento de Internet debe basarse en el interés de quienes la usan, no de quienes la proveen.

10. Que la respuesta ante esta amenaza para la red no puede ser la inacción: no hacer nada equivale a permitir que intereses privados puedan de facto llevar a cabo prácticas que afectan a las libertades fundamentales de los ciudadanos y la capacidad de las empresas para competir en igualdad de condiciones.

11. Que es preciso y urgente instar al Gobierno a proteger de manera clara e inequívoca la Red Neutral, con el fin de proteger el valor de Internet de cara al desarrollo de una economía más productiva, moderna, eficiente y libre de injerencias e intromisiones indebidas. Para ello es preciso que cualquier moción que se apruebe vincule de manera indisoluble la definición de Red Neutral en el contenido de la futura ley que se promueve, y no condicione su aplicación a cuestiones que poco tienen que ver con ésta.

La Red Neutral es un concepto claro y definido en el ámbito académico, donde no suscita debate: los ciudadanos y las empresas tienen derecho a que el tráfico de datos recibido o generado no sea manipulado, tergiversado, impedido, desviado, priorizado o retrasado en función del tipo de contenido, del protocolo o aplicación utilizado, del origen o destino de la comunicación ni de cualquier otra consideración ajena a la de su propia voluntad. Ese tráfico se tratará como una comunicación privada y exclusivamente bajo mandato judicial podrá ser espiado, trazado, archivado o analizado en su contenido, como correspondencia privada que es en realidad.

Europa, y España en particular, se encuentran en medio de una crisis económica tan importante que obligará al cambio radical de su modelo productivo, y a un mejor aprovechamiento de la creatividad de sus ciudadanos. La Red Neutral es crucial a la hora de preservar un ecosistema que favorezca la competencia e innovación para la creación de los innumerables productos y servicios que quedan por inventar y descubrir. La capacidad de trabajar en red, de manera colaborativa, y en mercados conectados, afectará a todos los sectores y todas las empresas de nuestro país, lo que convierte a Internet en un factor clave actual y futuro en nuestro desarrollo económico y social, determinando en gran medida el nivel de competitividad del país. De ahí nuestra profunda preocupación por la preservación de la Red Neutral. Por eso instamos con urgencia al Gobierno español a ser proactivo en el contexto europeo y a legislar de manera clara e inequívoca en ese sentido.

 

 

Tagged with: ,
Publicado en General

Linux Cracking Series (LCS): lincrackme3

cracking

Find the keys

¡Buenas! Este lunes festivo he aprovechado y os traigo la nueva entrega de la LCS (Linux Cracking Series) con lincrackme3. El anterior ha recibido ya varias soluciones en crackmes.de, pero aún dejaré unos días antes de publicar la mía (con el código fuente y las explicaciones). También comentaré las más interesantes de las que se han publicado allí.

Los que no consiguierais solucionar el anterior, no os preocupéis, intentad este, y en unos días trataré de tener la explicación del anterior, que os servirá como base para abordar el nuevo. También podéis preguntarme vuestras dudas directamente.

Lincrackme3 es algo más difícil que lincrackme2, obviamente. Incluye técnicas anti depuración, anti desensamblado y también algún truco para que el análisis del flujo de código no sea tan sencillo. Aún así, creo que no es demasiado complicado, y que está al alcance de casi todo el que le dedique un rato.

Lincrackme 3

El objetivo de este crackme es encontrar las técnicas de anti depuración y anti desensamblado, entenderlas y averiguar cómo sortearlas. Una vez conseguido, tendréis que comprender cómo se comprueban las claves para encontrar varias claves válidas (idealmente, programad un sencillo keygen y me haréis feliz). El .tgz incluye una versión para 32 bits y una versión para 64 bits. La versión de 32 debería funcionar en ambos sistemas, pero por si acaso, he decidido crear las dos.

Objetivo: Obtener las claves válidas (escribir un keygen para sobresaliente). Encontrar las protecciones y sortearlas.
Nivel: 3 (Getting harder) según clasificación de crackmes.de
Plataforma: GNU/Linux 32 y 64 bits
Reglas: Parchear el binario no está permitido, salvo para saltarse alguna protección anti depuración o desensamblado. El objetivo no es imprimir el mensaje de clave correcta, si no obtener las claves válidas. Las herramientas a utilizar, así como la plataforma son completamente libres.

Podéis descargar el crackme aquí y también en mi página de crackmes.de (en cuanto lo aprueben, yo siempre os lo traigo en primicia ;). Como siempre, os animo a que lo intentéis, y si os quedáis atascados en algún punto podéis contactarme en los comentarios (si no da pistas al resto) o bien por email (lo tenéis en About). Prometo ayudaros y daros las pistas necesarias para que disfrutéis del reto 🙂 Eso sí, para que todos puedan disfrutarlo, no pongáis las claves en los comentarios, por favor.

Pasado un tiempo prudencial publicaré mi solución a este reto (código, imágenes…) y comentaré las más interesantes de entre las que reciba, así que ya sabéis, ¡espero vuestras soluciones!

Tagged with: , ,
Publicado en cracking, Linux, Reverse
Archive