miércoles, 27 de febrero de 2013

SEH Based Exploits para lizer-sissy.exe


Con esta entrada pretendo continuar con el aprendizaje, pasito a pasito del arte de explotar las vulnerabilidades que nos brindan algunas aplicaciones Windows.

En este caso, se trata de practicar una técnica denominada "SEH Based Exploits", es decir, explotar aplicaciones en donde se puede sobrescribir el puntero de algún SE Handler.

Para ello, usaremos un ejecutable del cual disponemos del código fuente y que fue publicado hace años en la lista de CrackSLatinoS.

La solución propuesta, muestra como explotar la vulnerabilidad sobre Windows XP con SP3 y con DEP deshabilitado.

Los ficheros adjuntos son:
Cualquier crítica constructiva, será bien recibida.

Hasta el próximo exploit!!!

domingo, 17 de febrero de 2013

Entrevista a Josué Rojas Silva a.k.a. NOX


Como ya prometí hace algún tiempo, volvemos a la carga con otra entrevista de excepción.

En esta ocasión se trata de una persona joven, entusiasta y todo un profesional con lo que hace.

Se trata de Josué Rojas Silva a.k.a. Nox. Un peruano que ha irrumpido con fuerza en la scene RCE. Es una de esas personas con las que en apenas unos minutos de conversación te das cuenta de que brilla con luz propia.

Es poseedor de un blog dedicado al arte de la Ingeniería Inversa, en donde podremos leer entradas de gran calidad.

Algunos de los logros más importantes que ha conseguido en los últimos años han sido:

  • Ser por dos años consecutivos ponente en una de las conferencias de seguridad más relevantes en su país, LimaHack. Exponiendo temas tan interesantes como RootKits y GameHacking.
  • Ganó una entrada para un curso de RCE impartido por ESET en la EkoParty en Argentina, resolviendo un desafío propuesto por ellos mismos.
  • Tiene publicados la solución de alrededor de 25 retos propuestos por la lista CrackLatinoS.


A título personal he de decir que para mí es un referente. Valoro mucho toda la ayuda que me presta desinteresadamente, día a día. Sin duda es una gran persona.

Por lo tanto, sin más preámbulos damos paso a la entrevista de este joven maestro. Que la disfrutéis.

Cuéntanos algo de Josué Silva y como llegó a convertirse en Nox:
Pues es una gran historia pero trataré de resumirlo para que no duerman encima del teclado. Todo comenzó cuando era aun un niño que pasaba a la adolescencia, tenía amigos que se dedicaban a la improvisación y grafitis, el hip-hop era su estilo de vida, como tal todos tenían que tener un “Nick” o sobrenombre, y por supuesto tenía que ser original, pues eso, se me ocurrió Nox y me gustó, no había nadie conocido con ese “Nick” y me lo quedé (aunque mi hermano menor dice que lo saqué de una película, yo la verdad no recuerdo esa versión).

¿Puedes contarnos en qué proyectos andas metido últimamente?
Tengo en mente muchos proyectos que ya se irán enterando seguramente en la lista (DBI, Android, ARM, etc) y en mi blog, pero hay uno en particular que mencionaré. Hoy por hoy he podido tocar temas de bastante nivel técnico pero no es porque yo tenga el nivel, es porque he dado saltos gigantes para ir subiendo los peldaños, la consecuencia de esos saltos es que he dejado vacíos inmensos que en muchas ocasiones me cobran factura, esos vacíos son de conocimiento, y aunque mis ansias pudieron ser saciadas tocando los temas que me apetecía, es más he podido tocar otras arquitecturas (ARM), cada vez surgen más y más, esto con los vacíos que tengo se me está haciendo demasiado difícil. Por eso el gran proyecto que tengo y que seguro me ayudará a poder tocar los temas de un nivel técnico aún superior es empezar desde 0, así es, como lo lees, eso conllevará a que deje de participar en los concursos por un largo tiempo así como de escribir, pero quiero que al volver, lo que escriba sea de gran calidad y ayudar a otros con lo que pueda plasmar en un texto (no confundir con que me voy de la lista). 
A través del tiempo me he dado cuenta lo que tengo que hacer, y es empezar con un conocimiento exacto del formato PE, para eso seguiré el consejo de un grande de la lista, Guan de Dio que me lo dio hace mucho, hacer un parser para tal formato, de esa manera podré afianzar el conocimiento del formato PE, lo segundo es malformaciones de dicho formato, si he de tener un conocimiento exacto, podré malformar el formato estándar y aun así ejecutarlo con normalidad (existen escritos de lo que hablo ya presentados en la blackhat por ejemplo), luego toca estudiar el Formato de un binario en .NET para eso yo recibí ya hace algún tiempo una pequeña instrucción de uno de los maestros en .Net, Trompetin. Y continuar con el consejo de otro grande en todas sus letras, Shaddy, que me aconsejó a hacer un debugger, sin duda todo esto llenará mis vacíos que tengo de conocimiento. Luego de todo esto podré hacer proyectos como un packer que lo presentaré para mi tesis, mudarme a otras arquitecturas, y sin duda lo que más anhelo tocar el kernel de WinBugs, así como de otros OS’s.

Algunos dicen que eres tímido, sin embargo como comentaba al inicio, has sido ponente por dos ocasiones en LimaHack. ¿En qué quedamos, tímido o emprendedor?:
Si me conocieras personalmente seguramente esta duda quedaría saldada, no soy una persona que hable con fluidez, es más desde hace algún tiempo tartamudeo (no siempre fue así), pero (porque siempre hay uno) cuando hablo de lo que me gusta eso desaparece, de la persona que tartamudea a un hablador elocuente, hasta he podido hablar tan rápido (es que el tiempo apremiaba, faltaban pocos minutos para que terminara mi ponencia y necesitaba explicar un último punto) que parecía narrador de radio :P.

Eres uno de los pocos privilegiados que ha tenido la suerte de conocer y compartir  buenos momentos con la elite de CLS (Ricardo Narvaja, Fly!, Marciano, Nahuel, Tena, Solid, Ulises, …). Cuéntanos ¿Cómo viviste la experiencia? y ¿Es cierto que te hicieron una visita guiada por los bosques de Palermo?
Me es muy grato haber conocido a los de CracksLatinoS Argentina, los grandes de grandes, Ricardo, maestro y bonachón sin duda alguna, Fly, hablador como el mismo, tiene buenas historias, es tan maestro el hombre que se tumba empresas con tan solo, Pasta, todo un rockstar (él me entiende xD), Nahuel, no conversé mucho con él, pero la dupla que hace con Marciano es de temer }:), Tena, todo un misterio, nos pasamos todo un día hablando sobre como reversear una aplicación (él lo recuerda :P), Solid, vamos hombre no hay palabras para explicar la gran persona que es, Ulises, mi compatriota, tan solo al verlo podrás darte cuenta de su sencillez, ¡Ztoker!, no podría olvidarme de él, lo conocí en el training de ESET, es tranquilo, pacífico, hasta que hablas de minas con él, le cambia todo el semblante xD.
No me hicieron ninguna visita guiada a Palermo :(, lo primero que Marciano me dijo al conocerlo fue “Nox, ¿te animas para un tour por Palermo?”, pero al final nada de nada :P, así que ese rumor es falso no fui a Palermo, aunque yo sé quienes fueron por el after-party, dos personas de la lista, y cuando lean esto (espero), sabrán que me refiero a ellos }:).

¿Con que miembro de CLS te llevas mejor?, ¿Por qué razón?:
Tengo muchos amigos en CracksLatinoS, pero sin duda es con Apo con quién me llevo mejor. La razón es sencilla, los dos tenemos los mismos intereses respecto al conocimiento, cuando investigamos algo, no nos quedamos con un conocimiento superficial, si no que profundizamos, los dos tenemos esa misma característica.

¿Admiras a alguien en especial? Y en tal caso ¿Por qué motivo?:
Buff, admiro a un montón de personas, de lista hay varias, tenemos a Shaddy que es mayor que yo por 3 años, y sin duda sabe mil veces más que yo, Eddy, a quién no le da miedo los packers, asOlOt, que tan solo leerlo te quedas con la boca abierta, Guan de Dio, Fly, Solid, Ricardo, Marciano, Juan José, Nahuel, son otros a quién admiro.
La razón es obvia, grandes personas, un conocimiento envidiable, genios, y la mejor característica de ellos, ayudar sin pedir nada a cambio.

No es un secreto que este año has enviado call for papers a la Rooted y aunque desafortunadamente no has sido seleccionado me gustaría saber si lo seguirás intentando:
Si, como bien saben fue con un mi amigo Apo, y si, lo seguiremos intentando el próximo año, con un mejor tema que el anterior.

¿Tienes en mente mandar c4p a otros eventos de renombre? Y en tal caso ¿Nos puedes adelantar a dónde?
Emp, eso es topsecret xD, si tengo pensado enviar pero mientras que no sea concretice al 100% no mencionaré nada al respecto o:).

Tres cosas que te gustaría lograr este año:
Mejorar mis bases en RE.
Ir a una conferencia con alto nivel técnico en RE y ser ponente.

Sueles usar la frase: "El pasado no importa, lo que importa es, ¿Qué voy a hacer ahora?" ¿Te arrepientes de algo Nox?:
Esa me la enseño un amigo peruano, Hackspy, ¿si me arrepiento de algo?, pues hombre, he hecho cosas equivocadas en mi vida, pero si algo de mi pasado hubiera cambiado, yo no estaría aquí, y tú no me estarías haciendo la entrevista. Lo que has hecho, hecho está, y ahora, ¿qué voy hacer de aquí en adelante?

Voy a intentar hacer una equivocada taxonomía del RCE y quiero que nos cuente lo que sientes por cada una de las clasificaciones:
  • UnpackingGanarle a un grupo de ingenieros.
  • ExploitingSolo lo diré en una palabra: apasionante.
  • CrackingRama del RE, mis primeros pasos.
  • MalwareHoy, mi medio de vida es analizar malware.
  • CryptoUn tema pendiente, acojonante y deslumbrante a la vez.

¿Qué libro[s] nos recomendarías? Y ¿Por qué?
¿Técnicos o no? Uno lectura que recomiendo es, Al pie del acantilado de Julio Ramón Ribeyro, cuando lo leí me enamoré. Si hablamos de libros técnicos, tenemos Windows Internals y Advanced Windows Debugging, para conocer internamente a Windows, también The IDA Pro Book 2nd Edition, que ayudará a manejarnos en el entorno del magnifico desensamblador IDA.

   ¿Qué les dirías a las personas que empiezan en la Ingeniería Inversa y sienten frustración al no poder avanzar?:
Creo que es un sentimiento normal el sentir frustración, yo lo sentí varias veces porque pensaba que no se veía un avance, a pesar de eso no me rendí, y tenía metas, hay que trabajar a base de metas, porque si no las hay, la frustración nos puede ganar. Recuerdo que tenía la meta de desempacar Themida, y he podido hacerlo con las versiones para mortales. Ahora tengo otras metas, pero tengo que decir lo que dicen todos, leer, practicar, muchas ganas, si no las hay no podrán seguir,  y metas, deben tener algo que alimente sus ganas de seguir, y las metas lo hacen.
Como un plus, me gustaría mencionarles que cuando empecé no tenía una computadora personal, gastaba mis propinas en ir al cyber para poder hacer lo que más me gusta, programaba, hacía cheats, reverseaba. Cuando comencé los estudios superiores mi familia no tenía el dinero para poder comprarme una computadora, no es hasta el último ciclo en que mi padre pudo comprarme una laptop y porque fue una oferta que le hizo un amigo suyo, cada persona tiene diferentes dificultades, pero eso no es excusa para dejar de aprender lo que realmente nos interesa.

Ya estamos acabando Nox ;) pero antes me gustaría nos dijeras, ¿Cómo te ves dentro de 10 años?:
Me gustaría trabajar como Exploit Writer, pero en mi país trabajar de lo que nos gusta es difícil, trabajo analizando malware porque una empresa abrió esa área hace no mucho tiempo y estoy solo yo. Luego conozco dos empresas más que también tienen esa área (o al menos eso se supone), pero como ven son muy pocas, otra es el salario, trabajar de RE no es muy común, y no son muchas las  personas que se dedican a eso, así que debería ser un salario modesto, sin embargo, con respecto de otros países, yo no llego ni a la mitad de los que ganan mis conocidos trabajando de RE, y si eres una persona casada (felizmente yo no lo soy) no pudieras mantener a una familia. Aquí hay un mercado que explotar pero sin empresarios que lo hagan no veo mucho futuro para los que desean vivir como RE.
Respondiendo a tu pregunta directamente, si no hay cambios en el mercado para los que trabajan de RE, me veo en otro país, trabajando de lo que me gusta.

¿Qué se te viene a la cabeza al escuchar la palabra “wanaco”?
Jajajaja, esa frase era muy usada en el cyber que iba, xD, y en realidad es bastante fuerte, normalmente cuando jugábamos Dota y alguien erraba le decían “guano” (por el excremento), y luego lo cambiaron a “guanaco” para que no suene tan fuerte, sería lo mismo que decir la mala-palabra “mierda”.

¿A quién te gustaría que le hiciéramos la próxima entrevista?:
Huy, pues a asOlOt, el tío es un genio, pero no se sabe mucho de él en la lista, solo aparece cuando hay retos de criptografía o de máquinas virtuales de instrucciones. 

Para finalizar. ¿Algo más que quieras añadir?
Gracias L0ngin0s (que largo es tu Nick, ya encontraré la manera de darle un diminutivo) por el tiempo que tomaste en hacerme la entrevista, sé que los tiempos en estos días escasea. Tengo dos cosas por decir, ¡Ema (Emadicius)!, ¿dónde te has metido tío?, él es un gran reverser Peruano, de los antiguos de CLS, y ahora no se sabe nada de él, no responde mis mails y tampoco aparece en la lista. Y para todos tus lectores. ¡Feliz Cracking!

Pues esto es todo Josué. Muchas gracias por darte a conocer un poco más y de corazón espero que se cumplan todos tus deseos.

¡Hasta la próxima entrevista!

lunes, 4 de febrero de 2013

Solución al reto UnPackMe BamBam




Solución al reto UnPackMe BamBam 0.04 perteneciente al 1er concurso del 2013 de la lista CrackSLatinoS.

Se trata de un Unpack muy sencillo, ideal para aquellos que quieran ir adentrándose en el arte del Unpack de binarios.

Los fichero adjuntos son:

Hasta el próximo UnPackMe

Solución al reto MazeJumps v1.0 Written by Promix17


Solución al reto perteneciente al 1er concurso del 2013 propuesto en la lista de CrackSLatinos.

El creador del binario intenta dificultar la trazabilidad del código mediante la ofuscación de éste con código basura (junk code). El objetivo es claro, acabar con la paciencia del reverser.

Como veremos, no es un método demasiado eficiente, ya que con paciencia conseguiremos descubrir las instrucciones válidas. Sin embargo este reto, puede servir para obtener una buena colección de bloques de código inservible, por si alguna vez necesitásemos emplearlo nosotros como otra alternativa en la defensa de nuestros binarios.

Los fichero adjuntos son:
Hasta el próximo reto!!!