Tema destacado: ¡Aprende hacking con práctica! - arZone, el wargame de elhacker.net
Autor
|
Tema: [?] Como descubrir vulnerabilidades (Leído 2,438 veces)
|
Isirius
Ex-Staff
Desconectado
Mensajes: 2.492
|
Hola a todos viendo el desastre que izo microsoft con Inteernet Explorer me he decidido a ponerme a ello a aprender a encontrar vulnerablidad Gracias a mousehack descubri esto:
No es nada habitual que un reputado "cazador de bugs" desvele públicamente sus métodos, pero Tom Ferris -un nombre habitual en la sección de agradecimientos de los boletines de Microsoft- lo ha hecho, no sin antes advertirnos que encontrar bugs en productos Microsoft no es tan difícil como parece: "Es un asunto muy básico. Me sorprende que Microsoft no encuentre estas cosas por sí misma."
Ferris ha explicado a eWEEK [1] la metodología que utiliza, y que consta básicamente de los siguientes pasos:
* Saber dónde mirar: un buen consejo es mirar en las partes del programa donde se validan entradas, sobre todo cuando provienen de un protocolo exterior, como RDP. Tampoco es mala idea mirar los sitios que Microsoft acaba de parchear. "Muchas veces introducen un nuevo fallo donde han parcheado", dice Ferris. * Obtener el código: y puesto que el de Microsoft es propietario no queda más remedio que recurrir a la ingeniería inversa, utilizando depuradores como SoftICE, y desensambladores como IDA Pro para traducir las DLLs -o los ejecutables- a ensamblador. * Encontrar el agujero: a tal fin, Ferris construye algún tipo de script capaz de probar miles de datos intencionadamente malformados contra los puntos del programa que se sospechan débiles. Eventualmente, se logra hacer caer al programa. * Analizar la vulnerabilidad: es decir, comprobar si es o no crítica, si es factible escribir un exploit, etc.
Como no entiendo muchas cosas voy a preguntar lo are por puntos y cuadno me contesten uno si alguien quiere pedire otro En el primer punto Saber dónde mirar: un buen consejo es mirar en las partes del programa donde se validan entradas, sobre todo cuando provienen de un protocolo exterior, como RDP. Tampoco es mala idea mirar los sitios que Microsoft acaba de parchear. "Muchas veces introducen un nuevo fallo donde han parcheado", dice Ferris. Lo que entiendo es eso de sitios parcheados que esta muy bien pero no entiendo eso de donde se validan entradas.
Gracias
|
|
|
|
« Última modificación: 31 Diciembre 2005, 09:08 por Sirdarckcat »
|
En línea
|
|
|
|
sirdarckcat
Troll Buena Onda y
CoAdmin
 
Desconectado
Mensajes: 6.947
Lavando Platos
|
Lo de validan entradas, donde se verifican y se "limpian", por ej. un error seria que con un mensaje%00shellcode se pudiera meter codigo, pero IExplorer desde hace mucho ya lo parcheo. pero ¿en donde se validan entradas? javascript:alert(<mensaje>);
la funcion alert se encarga de validar la entrada, y ver que este bien, por ejemplo si escribes textualmente el ejemplo, saldra error, porque <mensaje> no es nada, ni un objeto ni nada, sinembargo si pones: javascript:alert("<mensaje>"); ya es un mensaje válido. incluso este: javascript:alert(!eval(window["alert"]("Hola Mundo"))); ya que javascript analiza los . como subarrays
uno de los errores mas explotados son aparte de los caracteres magicos como comillas y caracteres nulos (el caso de las comillas se aplican para SQL inyections y otros) son colocar una cadena muy larga, a lo que se llama buffer overflow, que masomenos seria, que el programa espera obtener un maximo de X de longitud, pero recibe mas y al procesarla, parte de esta cadena no es procesada correctamente, y es ejecutada. Lo de muchas veces introducen un fallo donde es parcheado, pues tiene mas que razon, muchos bugs no sirven en versiones sin parche xD. y esque al tratar de corregirlo, sacan algo peor..
Espero haberte resuelto tu duda Saludos.
|
|
|
|
|
En línea
|
|
|
|
Isirius
Ex-Staff
Desconectado
Mensajes: 2.492
|
OK Gracias  Bueno el segundo paso seria aprender ensamblador y encontrar programas que utilizandolos consiga el codigo de ensemblador del programa y despues programar un srcipt que prube cosas pero no entiendo donde las prueba y que prueba. Gracias muchas gracias.
|
|
|
|
|
En línea
|
|
|
|
sirdarckcat
Troll Buena Onda y
CoAdmin
 
Desconectado
Mensajes: 6.947
Lavando Platos
|
Un programa que consigue el codigo en ASM es.. OllyDBG, SoftIce, y pues.. de una u otra forma W32Dasm, pero ese es muy util pero por otras cosas.
Lo que si es que debes aprender ensamblador, te recomiendo que aprendas BASIC (no visual, sino BASIC a secas), asi te sera mas facil entender varias cosas.
Lo que prueba es la entrada de valores en las funciones.
Saludos.
|
|
|
|
|
En línea
|
|
|
|
|
|
|
|