sábado, 18 de septiembre de 2010

Explotando de forma remota un error 2da parte

Saludos mundo libre
He aqui la segunda parte
2.- parametros requeridos.

Los mismos parámetros que un error formato local se pide aquí:

* El desplazamiento para llegar al comienzo del buffer;
* La dirección de un código shell colocan en un lugar es la memoria del servidor;
* La dirección del buffer vulnerable;
* La dirección del remitente.

El exploit se proporciona como ejemplo en el anexo 2. Las partes siguientes de
este artículo se explica cómo ha sido concebido.

Éstos son algunos de las variables utilizadas en la hazaña:

* Sd: la toma entre el cliente (exploit) y el servidor vulnerable;
* Buf: un búfer de lectura / escritura de algunos datos;
* Read_at: una dirección en el servidor de la pila;
* FMT: cadena de formato se envía al servidor.

2.1- invitado del offset

Este parámetro siempre es necesario para la explotación de este tipo de
de error, y su determinación de obras de la misma forma que con un local
la explotación

telnet bosley 12345
Trying 192.168.1.2...
Connected to bosley.
Escape character is '^]'.
login: raynal
password: secret
AAAA%1$x
AAAAa
AAAA%2$x
AAAA41414141

Aquí, el desplazamiento es 2. Es muy fácil de adivinar automáticamente, y
eso es lo que la función get_offset()tiene como objetivo. Se envía la cadena de "AAAA%$x" al servidor. Si el desplazamiento es
entonces el servidor respuestas con la cadena "AAAA41414141"

#define MAXOFFSET 255

for (i = 1; i
snprintf(fmt, sizeof(fmt), "AAAA%%%d$x", i);
write(sock, fmt, strlen(fmt));
memset(buf, 0, sizeof(buf));
sleep(1);
read(sock, buf, sizeof(buf))
if (!strcmp(buf, "AAAA41414141"))
offset = i;
}

Saludos Mundo Libre.

No hay comentarios:

Publicar un comentario