elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
25 Mayo 2012, 17:00  


Tema destacado:


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Bugs y Exploits (Moderador: berz3k)
| | |-+  se puede crear exploits con todo o solo se puede algunas veces? (fuzzing)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: se puede crear exploits con todo o solo se puede algunas veces? (fuzzing)  (Leído 2,284 veces)
Belial & Grimoire


Desconectado Desconectado

Mensajes: 355


Tea_Madhatter


Ver Perfil
se puede crear exploits con todo o solo se puede algunas veces? (fuzzing)
« en: 6 Noviembre 2009, 07:28 »

hola

que otras formas hay para crear crashear un programa, ya vi 3... uno es abrir un programa agregando caracteres para ver si hay algun overflow, otro es abrir un archivo con el programa que quiero crashear y ese archivo llenarlo de caracteres para provocar lo mismo, otro es llenar los campos de texto y ver si con eso se provova un overflow oprimiendo algun boton como "aceptar"

pero que otras formas existen ademas de esas? o existen algunos metodos diferentes al overflow que sirvan para crear exploits?

y quisiera saber, si pueden haber programas con los que no se puedan crear algun exploit o todos lo programas pueden tener un fallo solo hay que investigar bien?, porque quiero hacer pruebas con mas programas, pero esos 3 metodos que existen no me han funcionado...

salu2  ;D
En línea

.                                 
MrPoor

Desconectado Desconectado

Mensajes: 17



Ver Perfil WWW
Re: se puede crear exploits con todo o solo se puede algunas veces? (fuzzing)
« Respuesta #1 en: 6 Noviembre 2009, 10:28 »

Te respondo otra vez:

Aparte de los overflows (buffer, heap, integer, etc) existen lo que se llaman Race conditions, o condiciones de carrera, aunque creo que ya no se dan tanto como antes.

Una race condition es cuando un programa entre la llamada a función privilegiada, y acceso a algún recurso (generalmente un fichero o un socket) tarda un tiempo, que a nuestros ojos es instántaneo, pero para un procesador puede ser visto como a cámara lenta.

Por ejemplo, imagina que hay una máquina empaquetando zapatos. Coge una caja, la abre, introduce los zapatos en la caja, y la cierra.

La condición de carrera sería si hubiera alguien, persona o máquina más rápido que el proceso de introducir los zapatos y cerrar la caja.

Si una persona consigue mediante un gesto rápido ¡zas! quitar los zapatos o sustituirlos por otro, tendríamos una condición de carrera.

En un programa por ejemplo se produciría una condición de carrera si:

1. Se abre un fichero con datos importantes,
2. Se le otorgan permisos  con permisos de administrador.
3. Se escribe el fichero.

Si entre el paso 1 y 2, Otro programa está sobreescribiendo repetidamente (en un bucle) ese fichero y es más rápido que el programa con la condición de carrera un usuario no priviegiado podría escribir en ese fichero antes de que le sean otorgados los permisos adecuados.

Otra race condition más tonta puede ser que los pasos sean o si los pasos fueran 1,3 y 2 (grave error), porque entonces tendría el programa atacante más tiempo todavía.

Si buscan por condición de carrera o race condition verás un montón de problemas de este tipo.

En cuanto a la segunda pregunta, hombre, un programa es un programa, es solo un trozo de código.

Por ejemplo:

#include <stdio.h>
  int main(void) {
    puts ("Hola Mundo");
}

Ahí tienes un programa invulnerable al 100%. ¿Que no hace mucho? no deja de ser un programa.

Lo que tú vienes a decir, más que un programa es una aplicación (Gmail, Oscommerce, Internet Explorer, Office, Firefox, Adobe Acrobat Reader).

Las aplicaciones tienen normalmente muchas formas de recibir datos de un atacante, las 3 que has descrito, más un socket TCP o una tubería, una redirección del shell de comandos (que no deja de ser sino un fichero), argumentos en la línea de comandos, etc.

Cuanto mayor es el programa y más personas participen, más dificil es de mantener y siempre se puede escapar algo por dejadez o ignorancia (un programador nuevo, por ejemplo).

A las aplicaciones, las propias empresas realizan auditorías.

En teoría si es posible que hay aplicaciones con 0 bugs, pero la práctica es diferente.
De todas maneras hay aplicaciones en las que una vez que el programador ha aprendido, las parchea bien y las continúa programando de manera segura.

O sea que siempre puede haber algún fallo que se pueda descubrir, pero técnicamente pueden existir programas perfectos hasta que se descubra algún tipo nuevo de vulnerabilidad no descubierta (piensa la primera vez que se descubrión un heap overflow) por ejemplo...

Espero que te haya aclarado algo.
En línea

Mpoor es de super guay
Belial & Grimoire


Desconectado Desconectado

Mensajes: 355


Tea_Madhatter


Ver Perfil
Re: se puede crear exploits con todo o solo se puede algunas veces? (fuzzing)
« Respuesta #2 en: 7 Noviembre 2009, 04:41 »


jaja, lo siento... me equivoque, las aplicaciones.. XP.. bueno, ya entendi un poco mas, gracias por la explicacion
En línea

.                                 
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Sulley Fuzzing Framework
Bugs y Exploits
pepeluxx 8 2,505 Último mensaje 5 Diciembre 2010, 08:49
por pepeluxx
Consulta: ¿Se puede crear una conexion de red desde VB6?
Programación Visual Basic
thecirujano 5 1,451 Último mensaje 14 Enero 2011, 14:57
por 79137913
visualizador de pdf en php, se puede?
PHP
BEATMASTER 2 1,670 Último mensaje 30 Enero 2011, 16:58
por BEATMASTER
No se puede ser mas estupido x'D
Foro Libre
Nakp 1 505 Último mensaje 21 Abril 2011, 19:20
por Sk9ITk5Z
Y con los .RAR ...¿Se puede?
Ingeniería Inversa
Tinkipinki 2 529 Último mensaje 23 Octubre 2011, 22:12
por Tinkipinki
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines