martes, 23 de diciembre de 2008

Desarrollo de exploits con Metasploit 3 desde cero - Parte 3

Lo prometido es deuda y +NCR/CRC! ha cumplido su parte ;D La tercera parte de esta serie de tutoriales, ha salido a la luz y la podeis descargar de aquí.

Esta parte, explica como realizar el famoso ataque "SMB Relay Attack" utilizando Metasploit. También denominado "SMB Credential Reflection" por Microsoft.

Analiza detalladamente los paquetes que intervienen en el ataque, y explica el código fuente el exploit proporcionado por Metasploit.

Este tutorial, no solo habla de como desarrollar el exploit para esta vulnerabilidad, sino que explica el funcionamiento de los protocolos de red que intervienen en el mismo. Además muestra de que manera podemos utilizar Metasploit para levantar servicios RPC e interactuar mediante SMB.

Destacar también, que en el anexo se explica el ataque pero realizado contra la autenticación en HTTP, que puede resultar mas familiar y donde es mas fácil de comprender el funcionamiento de la autenticación.

Espero que aprendan mucho y que les guste, porque se de primera mano que +NCR/CRC! se ha esforzado mucho para que podamos disfrutarlo.

Gracias +NCR/CRC!

miércoles, 17 de diciembre de 2008

Desarrollo de un Fuzzer genérico para binarios PE con PyDbg

Hace ya algún tiempo que conozco PAIMEI, que es un framework para ingeniería inversa. Este trae consigo un debugger programable, hecho en Python (PyDbg). Lo que permite poder utilizarlo para lo que nosotros queramos, en nuestros propios scripts. No hay mucha información de uso al respecto y menos en castellano, así que la mejor manera de aprender a utilizarlo, es manchandose las manos uno mismo ;D

Con esta idea y otras que me rondaban ya hace tiempo en la cabeza, he desarrollado a modo de prueba un Fuzzer genérico para binarios PE con PyDbg. Es decir para ejecutables .exe

Este fuzzer, es capaz de invocar todas y cada una de las funciones de un binario ejecutable, con valores críticos para cada uno de los argumentos y registrar todas las combinaciones de argumentos que provocan un ACCESS VIOLATION al ser invocadas.

Este seria el punto de partida para la búsqueda de algún Buffer Overflow, en un cualquier software.

El proyecto y su respectivo tutorial, donde se explica todo el proceso de elaboración, lo podéis descargar de aquí.

Espero que os sea útil.

domingo, 23 de noviembre de 2008

Desarrollo de exploits con Metasploit 3 desde cero - Parte 2

Hace un par de días que termine la segunda parte de la serie de tutoriales que explica como utilizar el framework Metasploit 3, para desarrollar nuestros propios exploit.

Podéis descargarlo aquí.

En esta parte se explica como terminar los exploits propuestos en la parte 1, utilizando las diferentes utilidades que nos proporciona Metasploit, haciéndolo todo lo flexible y potente que nos permite hacer este maravilloso framework. Además se hace una breve introducción sobre ellos:

- Msfpayload: Para introducir en nuestro exploit las diferentes shellcodes para ejecutar código, abrir puertos, descargar fichero remotos, ejecutar un potente shell (Meterpreter)
- Msfencode: Para codificar nuestras shellcodes y hacer nuestros exploit polimórficos y evitar firmas de antivirus e IDS, muy util ;D
- Msfopcode: Una base de datos donde encontrar los necesarios RET, POP/POP/RET, JMP ESP, etc...

En las próximas entregas, se explicaran algunas utilidades mas. Aprovecho para comunicar que en las siguientes entregas, participaran 2 miembros de CrackSLatinoS, +NCR/CRC! y Ulises2k, ellos escribirán sobre como hacer unos exploit MUY INTERESANTES para Metasploit!! Espero que os guste!.

Hasta la próxima entrega!

viernes, 10 de octubre de 2008

¿Quien dijo que programar en Assembler no es coser y cantar?

Hace ya algo de tiempo que no escribía nada, pero cuando hice el blog, pensé en poner cosas interesantes y que resulten útiles para la gente con intereses afines a los mios, así que prefiero no escribir que escribir por escribir.

Ahora al tema que nos ocupa. ¿Quien dijo que programar en ASM (Assembler) es engorroso y muy difícil? Eso sera porque no conoce el IDE RadASM ;D

Para todo el que tenga ganas de programar en ASM como el que programa en Borland C++, Delphi, o incluso diría que en Visual Basic, solo tiene que visitar estos 2 enlaces y en menos de lo que piensa podrá ponerse a ello ;D

Tutorial de Iczelion: http://win32assembly.online.fr/tutorials.html
Los tutoriales del 1 al 35 estan traducidos al castellano. Con esto sabréis toda la teoría y practica sobre como programar para Win32: Ventanas, controles, procesos, multithread, systray, MDI ....

Luego hay otra parte en ingles, sobre VxD, ODBC, PE File Format. Interesantisimos!!

Turotial de ASM-RadASM: http://ricardonarvaja.info/WEB/OTROS/DE%20LA%20LISTA%20MASM32-RADSM/CURSO%20DE%20ASM%20DESDE%20CERO/
Este tutorial de 6 partes, eminentemente practico, muestra la sencillez con la que se puede programar en Assembler gracias al IDE RadASM. Además lo hace con varios vídeos cortos donde explica cada concepto.
Un tutorial muy rápido de leer y que va al grano.

Ahora si que no tenéis excusas para no programar en Assembler porque es engorroso hacer ventanitas, ni hacer condicionales, ni bucles, ni nada de eso ;D

Espero que lo disfruteis!

miércoles, 3 de septiembre de 2008

Si es version beta, por algo será...

Como todo el que haya navegado hoy con Google, habrá visto el enlace a su nuevo navegador, Google Chrome. Eso no es novedad.

Tampoco lo es, ya que hace varias semana que es publico, un bug para Google Chrome Browser 0.2.149.27, que provoca un DoS.

Esto es provocado al ir al siguiente enlace:
evil:%

Al poner esto en la barra de direcciones o al intentar dirigirse a esta dirección (Pincha aquí) la librería chrome.dll provoca una excepción no controlada por el manejador de excepciones. Por eso sale la ventana típica de: Debug | Send Report | Don't Send.

Si le damos a Debug, vemos como salta a una dirección cuyo contenido es INT3. Con razón que cause una excepción. Esto provoca que se lance el debuguer asignado como JIT.

Cuando salta el debuger, vemos esto:
01002FF0 /. PUSH EBP
01002FF1 |. MOV EBP,ESP
01002FF3 |. INT3
01002FF4 |. POP EBP
01002FF5 \. RETN

Esta parado en 01002FF3, como podemos ver luego restaura EBP y sale del CALL de manera correcta, el ret de la pila no es manipulable. Si seguimos vemos que se reinicia de nuevo el Chrome.

Con este pequeño análisis podíamos descartar la posibilidad de ejecutar código, ya que no se aprecia ningún Buffer Overflow, solo que al ser una versión beta, aun les queda por programar el manejador de excepciones para este trozo de código ;D Hale señores de Google, a currar que seguro que la versión estable es bastante buena.

lunes, 18 de agosto de 2008

And the winner is ...

Hace unos meses que empecé con el tema de los concursos en CrackSLatinoS y cerrado el Concurso 6 y sumados los puntos totales, el ganador del regalo que se ofrecía para el que mas puntuara hasta el concurso de Julio, ha sido....redoble tambores.....: Boken

Los concursos constan de 5 o 6 apartados. 1 de exploits y el resto de desproteger crackmes con diferentes empaquetadores comerciales o de prueba, hacer keygens, etc...

Los exploits puntuaban bastante, y me ha valido para puntuar lo suficiente como para resultar ganador ;D

El premio, es el increíble libro:
http://www.amazon.com/Shellcoders-Handbook-Discovering-Exploiting-Security/dp/047008023X
en el que colabora Gerardo Richarte, miembro de CrackSLatinoS y cofundador de CORE Security, donde trabajan algunos miembros de la lista reconvertidos de "crackers" a "exploit writer", ingeniería inversa al fin y al cabo ;D

Mis soluciones a los apartados que hice, sobre los concursos, los podéis leer aquí:
http://boken00.blogspot.com/2008/07/ingenieria-inversa-y-crackslatinos.html
al final del mensaje están los enlaces de mis soluciones.

Espero haberos animado a concursar y formar parte de la lista, para que entre todos podamos aprender mucho mas!!

Saludos.

jueves, 14 de agosto de 2008

Desarrollo de exploits con Metasploit 3 desde cero - Parte 1

Acabo de terminar un tutorial a modo de introducción sobre el desarrollo de exploits en Metasploit 3.

Este se estructura básicamente en 2 puntos:
- Desarrollo básico de exploit Server-side: Los que se explotan enviándose mediante una conexión de red. Tipo servidores Web, ftp, etc...
- Desarrollo básico de exploit Client-side: Los que se explotan creando un fichero que explota el fallo al ser abierto por un programa cliente. Tipo reproductores multimedia, visores de imágenes, etc...

El tutorial lo podéis descargar desde el siguiente enlace, en la pagina web de Ricardo Narvaja:
http://ricardonarvaja.info/WEB/OTROS/EXPLOIT/Desarrollo%20de%20exploits%20con%20Metasploit%203%20desde%20cero%20-%20Parte%201%20-%20Boken.rar


Espero que os guste.

sábado, 9 de agosto de 2008

Windows Vista ha muerto!!

Como todos los años, se celebra en Las Vegas el Black Hat. El evento mas importante en cuanto a seguridad informática a nivel mundial.

Para los investigadores es el momento de mostrar sus descubrimientos y de este modo poder darle la mayor expansión posible a sus trabajos.

Parece ser que este año, para no decepcionar a nadie, han mostrado el descubrimiento de una vulnerabilidad, critica e irreparable con parches, en Windows Vista.

Digo irreparable con parches, porque al parecer las políticas de seguridad de Windwos Vista se basan en las políticas de seguridad de .NET y como esto es código interpretado y ejecutado en el cliente, es posible su manipulación, por lo que deja fuera de juego a cualquier otra medida de seguridad tales como Firewalls, etc...

Podéis leer mas detalles aquí:
http://www.taringa.net/posts/noticias/1444883/Alerta-m%E1xima-si-eres-usuarios-de-Windows-Vista.html

A ver por donde sale ahora Microsoft, porque si ya estaba pensando en otro Sistema Operativo para ordenadores personales, creo que va a ser el momento de acelerar su desarrollo.

Desde Boken's Blog, espero los primeros exploits o PoC sobre este suculento fallo, para poder hacer desde aquí mis primeras pruebas ;D

viernes, 1 de agosto de 2008

Cracking y analizar virus

Después de leer muchos tutoriales de los miembros de CrackSLatinoS, donde se explica como hacer que los programas se ejecuten en su versión completa en lugar de su versión de 30 días, me queda claro lo siguiente:

Al intentar crackear un software te encuentras con 2 tipos:
1.- Sin empaquetar: el programador implementa sus propias técnicas para que se ejecute en versión demo. Hay que identificar el mensaje que nos dice que es una versión demo, e ir hacia atrás hasta identificar el salto condicional que nos identifica como usuarios legítimos o no.
Esto normalmente es relativamente sencillo, según la experiencia, pero también puede ser bastante complicado si el programador sabe lo que hace.

2.- Empaquetados: El programador da por hecho que no sabe mas que los crackers, hace una simple evaluación de si es versión demo o completa, y deja en manos de los crackers convertidos en anti-crackers, para que protejan sus programas, previa compra de sus programas empaquetadores.
Estos empaquetadores, leen el .exe original, lo codifican/encriptan, modifican las import tables, secciones, y demás y crean un .exe, que es el que se distribuye. Este se encarga de recomponer descodificar/desencriptar el .exe original en tiempo de ejecución, para poder lanzarlo y que funcione. Esto "imposibilita" el proceso de ingeniería inversa del .exe original para poder encontrar el salto condicional que convierte la demo en full version. Ya que aunque consigas parchearlo, lo harás sobre la memoria, no sobre el fichero original ya que la versión original esta ecncriptada.

El cracking en si, se basa mas en romper la protección que aporta este empaquetador, estudiando su funcionamiento y programando anti-empaquetador que reconstruye el .exe original, que en modificar el original para que se convierte de demo a full versión.

¿Y que tiene que ver esto con los virus? Sencillo, tu no sabes como hacer un virus pero tienes alguno que funciona bastante bien, famosisimo y es detectado por cualquier antivirus. ¿Que haces? Consigues algún empaquetador que "proteja" tu espécimen y como lo encripta/codifica y los Antivirus funcionan por firmas, no serán detectados por los AVs.

Aquí viene la parte de Analizar Virus. Por lo explicado anteriormente, al que le gusten los virus y quieren saber como funcionan (el caso de un servidor), es de vital importancia saber desempaquetar cualquier ejecutable.

Por ultimo quiero decir que hablo de los programas que te descargas en demo pero que al poner un serial correcto se desbloque a full versión. Obviamente si a la demo le faltan las librerías de la full version y para descargarlas debes de introducir el serial en la pagina web, o dichas librerías están encriptadas, pues no es posible crackear algo que no tienes. Aun así, habría que ver como se le engaña a la web.... jejeje.

Espero haya sido esclarecedor.

miércoles, 30 de julio de 2008

Ingenieria Inversa y CrackSLatinoS

La ingeniería inversa en el mundo de la seguridad informática es de vital importancia, poder llegar de la vulnerabilidad al exploit es algo que marca la diferencia entre los que saben que se puede entrar en los sistemas, a los que entran en los sistemas.

Hay muy buenos sitios web, donde publican exploits totalmente funcionales pero que sabiendo lo justo es imposible hacerlos funcionar, o por lo menos hacer que hagan algo diferente a abrir la calculadora.

Esto y el hecho de que siempre me ha interesado el lenguaje ensamblador, son los motivos por los que decidí aprender a usar el OllyDbg, un depurador muy potente que se usa para depurar los programas en Windows.

Pero si uno se pone a depurar una librería donde supuestamente hay un fallo, sin ninguna experiencia, te puedes volver loco, además de no conseguir NADA.

Esto me llevo a buscar tutoriales sobre el uso de OllyDbg y San Google me mostró la luz: Introducción al cracking con OllyDbg desde cero Si, cracking. El arte de desproteger los programas y/o modificarlos para poder usarlos sin limitaciones.

No es que tuviera especial interés en romper las protecciones de software, pero esto me iba a ayudar a aprender mas ensamblador y a utilizar el preciado OllyDbg.

Ricardo Narvaja, su autor y fundador de la lista CrackSLatinoS, ha elaborado cientos de documentos explicando todo clarito y al detalle. Además propone mensualmente concursos con varios puntos a realizar, donde cada uno según su nivel, puede ir abordando. La única condición para puntuar, es que se debe hacer un tutorial para que quien no lo haya conseguido, aprenda a hacerlo.
Estos concursos llevan años haciéndolos, por lo que hay mas de mil tutoriales con las soluciones o con temas que cada uno ha visto oportuno escribir por su cuenta. Puedes verlo aquí.

Casualidad que tanto Ricardo como otros miembros de la lista, actualmente trabajan como Exploit Writer, y eso ha favorecido que se introdujera un apartado en los concursos mensuales, en los que hay que hacer un exploit para una bug reciente en un software que elige Ricardo.

Ya llevo con este mi cuarto concurso, podéis consultar mis soluciones y las del resto de la lista en los siguientes enlaces:
Concurso 3 (Ejercicios básicos varios sobre Buffer Overflow, ideal para principiantes)
Concurso 4 Desbordamiento de pila en el suite antivirus OfficeScan
Concurso 5 Desbordamiento de pila en el reproductor multimedia VLC
Concurso 6 Desbordamiento de pila en el gestor de descargas DAP al que se le ha agregado una solución alternativa en la que se desactive el DEP para poder ejecutar código.

La participación en la lista es muy alta, no hay duda que se quede sin contestar en menos de 10h.

A todo al que le interese comprender el funcionamiento de los exploits y/o hacer los suyos propios, le recomiendo que se subscriba a la lista, y pruebe con los concursos.

Espero no haberos aburrido y que haya sido de interés.
Saludos.

sábado, 26 de julio de 2008

Bienvenidos

Hola a todos.

Este es mi primer Blog. Aunque hace muchas años que mi amigo Athathel (hecho por él) lleva en este mundo y lo he podido vivir muy de cerca, pero nunca he visto la necesidad de tener uno.

Ultimamente, le estoy viendo la parte practica y es la de plasmar en un sitio todas las cosas que voy aprendiendo y poder compartir con todo a el que le interese, las cosas que gracias a lo que leo, pregunto o veo, aprendo sobre este mundo de la Seguridad Informática.

A mi me sirve de cuaderno de bitácoras donde almacenar todos mis "conocimientos" y al que lo visite le puede servir en momentos puntuales para hacer lo que a mi me ha podido costar mas o menos tiempo.

Ante todo espero que os sea útil
Saludos.