Entradas

Mostrando entradas de enero, 2008

Re: BoF en inet_network(), afecta a Servidor DNS: BIND

Imagen
Bien, primero pense que era la variable "val", que sumada al corrimiento de bits que se le hace, podia sobre escribir en la memoria asi que me puse un ejemplo para ver si servia:

Código int main(){
unsignedlong prueba;
long i;
prueba = 0xf;
i = 0;
while(i < 20){
printf("Prueba: %i\n",prueba);
i++;
prueba = (prueba << 4) + 0xf;
}
return0;
}

sin embargo no fue asi, me acorde que el corrimiento de Bits se hace en el microprocesador, y el resultado va a la RAM, (Claro que si la variable es register no es asi). estoy medio perdido.

Por ahi he oido que los BoF del tipo Off-By-One no son explotables, sin embargo tambien he visto ejemplos en casos donde tienes algo de control del entorno (local) y las condiciones del BoF son casi Optimas, digamos pila Bien alineada capacidad de meter el shell y etc.. el xploit si puede ser posible.

Esto solo me interesa por el reto de poder hacer que una aplicacion Ejecute tu codigo por gusto memeramente educativo.

Bueno entre las pruebas q…

Re: BoF en inet_network(), afecta a Servidor DNS: BIND

En la pagina de BIND: BIND Vulnerabilities

Impact:

Applications linked against libbind which call inet_network() with untrusted inputs could lead to a denial-of-service or potentially code execution.

Note that none of the applications shipped with BIND 8 or BIND 9 call inet_network().

Veamos La pagina nos dice nuevamente lo mismo Podemos hacer un DoS al servidor BIND, o podemos ejecutar codigo arbitrareo en el equipo que aloja el servidor.


Ahora

Código: Index: inet_network.c
diff -u inet_network.c:1.5 inet_network.c:1.6
--- inet_network.c:1.5Wed Apr 27 04:56:21 2005
+++ inet_network.cTue Jan 15 04:02:01 2008
@@ -84,9 +84,9 @@
}
if (!digit)
return (INADDR_NONE);
+if (pp >= parts + 4 || val > 0xffU)
+return (INADDR_NONE);
if (*cp == '.') {
-if (pp >= parts + 4 || val > 0xffU)
-return (INADDR_NONE);
*pp++ = val, cp++;
goto again;
}

Viendo las diferencias vemos que la version, 1.5 del archivo vulnerable es casi exactamente lo mismo solo movieron de lugar la siguiente Intruccion:

Código if(pp …

BoF en inet_network(), afecta a Servidor DNS: BIND

Imagen
Bien, recientemente he empesado a ver en la lista de SECURITY ADVISORIES de FreeBSD, la cual normalmente no veia, sin embargo quiero ser un buen adminsitrador del sistema que utilizo. y estar al dia con las actulizaciones . he visto que hay algunos bugs, ya descubiertos con todo y parche. Obviamente anuncian esto cuando ya se tiene el parche , pero bueno el Motivo de este mensaje es el siguente:

Ver si somos o mas bien soy capaz de construir un exploit para dicha Vulnerabilidad, he hecho exploits para programas sencillos, y BoF bien ubicados, pero de ahi en mas no lo he hecho con aplicaciones complejas.

Por si alguien me quiere ayudar... se lo agradecere de antemano.


Bien los link de bug que me intereso son los siguentes:

En la lista de FreeBSD: FreeBSD-SA-08:02.libc.ascEn securityFocus: CVE-2008-0122En la pagina de BIND: BIND Vulnerabilities
Ahora para los que no sepen y quieran enterarse, BIND, es un Servidor DNS muy extendido hoy en dia, con la ayuda de este, ustedes pueden entrar …