Entradas

Mostrando entradas de 2008

Re: Analisis de un Bug: 'imlib2' Library 'load()' CVE-2008-5187

Imagen
Bien estos dias voy a estar algo ocupado con lo del trabajo y eso. Solo veremos una tecnica mas de depuracion. Este nos sirve mas que nada para cuando, el bug se enecunetra en una libreria, tal y como es nuestro caso: Citar %truss -f -d -o prueba.truss ./imlib2_convert ./prueba.xpm ./prueba.png Este comando nos generara un archivo prueba.truss Mas informacion sobre truss: Código: http://fuse4bsd.creo.hu/localcgi/man-cgi.cgi?truss+1 De este lo podemos examinar con: Citar %cat prueba.truss Pero lo que nos interesa es ver que librerias carga: Citar %cat prueba.truss | grep open 27161: 0.000555657 open("/etc/libmap.conf",O_RDONLY,0666) ERR#2 'No such file or directory' 27161: 0.000624940 open("/var/run/ld-elf.so.hints",O_RDONLY,00) = 4 (0x4) 27161: 0.001195124 open("/usr/local/lib/libImlib2.so.5",O_RDONLY,00) = 4 (0x4) 27161: 0.002000254 open("/usr/local/lib/libfreetype.so.9",O_RDONLY,027757765154) = 4 (0x4) 27161: 0.002534400 open("/lib

Analisis de un Bug: 'imlib2' Library 'load()' CVE-2008-5187

Imagen
Bueno toda esta mania surgio de cuando trate de instalar enlightenment sencillamente me decia que habia un bug en alguna dependecia de este, y no me dejaba instalarlo hasta que actualizara o aplicara el parche. Mas Info: FreeBSD: Problema con imlib2-1.4.1.000 (Solucion) CVE-2008-5187 Advisor Original: Código: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=505714 Antecedentes Imlib2 es el succesor de Imlib, Esto no es una nueva version, solo es una bibliotecas totalmente nueva. Imlib2 puede ser completamente instalado aun existiendo Imlib 1.x esto sin ningun problema, ya que efectivamente son diferentes bibliotecas pero con funciones muy similares. Si bien no forma estrictamente parte de la EFL, la biblioteca es utilizada imlib2 por la EFL para el manejo, visualización y manipulación de gráficos a bajo nivel. Es capaz de cargar y manipular archivos de gráficos de muchos formatos, y también es capaz de mostrar en un X Window System. Los desarrolladores cuentan con imlib2 que es muy opt

FreeBSD: Problema con imlib2-1.4.1.000 (Solucion)

Imagen
Bien, instalando enlightenment, me sale el error de la dependia antes mencionada,  imlib2-1.4.1.000, esto desde los ports Citar # cd /usr/ports/graphics/imlib2 # make ===>  imlib2-1.4.1.000,2 has known vulnerabilities: => imlib2 -- XPM processing buffer overflow vulnerability.    Reference: <http://www.FreeBSD.org/ports/portaudit/910486d5-ba4d-11dd-8f23-0019666436c2.html> => Please update your ports tree and try again. *** Error code 1 Stop in /usr/ports/graphics/imlib2. *** Error code 1 Stop in /usr/ports/graphics/imlib2. Version del sistema: Código: # uname -a FreeBSD  7.0-RELEASE FreeBSD 7.0-RELEASE #2: Mon Nov 24 09:02:58 UTC 2008     root@:/usr/src/sys/i386/compile/VGN-N350  i386 Ahora El problema no es que no la pueda instalar, dice que es un problema de seguridad: Citar imlib2 -- XPM processing buffer overflow vulnerability.    Reference: <http://www.FreeBSD.org/ports/portaudit/910486d5-ba4d-11dd-8f23-0019666436c2.html> Si me voy a la pagina de los ports, ve
En Windows Vista el cliente de telnet no está instalado por defecto. Si queremos usarlo tendremos que marcarlo en Inicio -> Panel de Control -> Programas -> Activar o desactivar las características de Windows. Ahi buscamos en la lista Telnet u algun otro cliente que queramos. Esto lo menciono por que se me ha hecho muy dificil poner NC en algunas computadoras por los antivirus. En sistemas Unix/Linux el NC viene generalmente de forma predeterminada.

Torneo de explotacion de servidores

Sabemos que muchos de ustedes querian explotar vulnerabilidades en aplicaciones binarias, como buffer overflows, heap overflows, etc..asi tambien nos han pedido pruebas de vulnerar un servidor. En fin, creemos eso es una buena idea, pero no podemos montar tales pruebas en un servidor nuestro por seguridad, y no lo podemos virtualizar, por rendimiento.. asi que Anon organizara un wargame de este tipo, y le pedi que si podia hacernos el favor de organizarlo para los usuarios de warzone, y dijo que si! entonces.. El dia Sabado 29 de Noviembre del 2008 a media noche, horario GMT (Meridiano de Greenwich/Casablanca), 6:00 pm en la ciudad de mexico (GMT-6), 9:00pm en Buenos Aires (GMT-3), 1:00 am en Madrid (GMT+1), se publicara en warzone una prueba en la cual los usuarios podran obtener la direccion del wargame, junto con sus datos de inicio de sesion. El objetivo sera ir pasando desde 4 niveles, explotando vulnerabilidades en los ejecutables dentro del mismo, permisos, etcetera. Los primero

Ataques a la implementacion de TCP _ Outpost24

Bien, he estado leyendo sobre el tema, sinceramente les comento que no tengo mucho de haberme enterado de este nuevo DoS en la Pila de TCP ya confirmado por Cisco, que al parecer va a afectar a la mayoría de las implementaciones, Windows, Unix, IOS, ... etc. Viendo que hay muchos enlaces sin referenciar, hay que agregar el enlace con la información mas Ordenada que es el de fyodor: http://insecure.org/stf/tcp-dos-attack-explained.html Ahora la ultima noticia sobre esto marca a Cisco el día 17 donde publica un reporte de alerta de Seguridad Nivel 3 "Sockstress Exploit Tool Exposes Vulnerabilities in TCP Stack Implementations of Multiple Vendors" También se puede ver que ya tiene su propio CVE: CVE-2008-4609 Bien, pero lo anterior son noticias que ya estaban publicadas y solo se agregan como referencia de lecturas. Ok, el principal punto de partida es la SockStress que usa Cisco, para dar credibilidad a las múltiples Vulnerabilidades en la Pila TCP, bien como menciono sdc se o

Ataques DDoS un Fastidio

Recientemente he leido demasiadas Noticias sobre DDoS y demas, la verdad yo veo estos ataques como un acto de una persona sin Cerebro que lo unico que sabe hacer es Quitar el servicio con sus Estupidos Zombies. Me importa un Comino que sepa Mucho o Poco. Aqui unos Link sobre lo sucedido: http://www.error500.net/ataques-ddos-error500 http://www.weblogssl.com/2008/02/07-ataque-de-ddos-a-genbeta http://blog.meneame.net/2008/02/08/problemas-de-red/ Ahora la comunidad Hacker preocupada y preguntandose como puede ayudar. http://foro.elhacker.net/index.php/topic,199416.0.html Ahora sobre seguridad Citar: Ya descubrimos bien el tipo de ataque, flood UDP a puertos aleatorios. Hablé con Vicente, procederán a cerrar esos puertos. Bueno, en parte paquetes UDP, lo cual solucionaron bloqueando los puertos inecesarios. Citar: El ataque se hizo desde servidores con Joomla y phpBB, explotaron un bug viejo y conocido que permite incluir ficheros PHP externos. Ok, estar al dia con las Actualizaciones de

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

Imagen
Bien este sera mi ultimo mensaje en este Topic, referente al estudio de este bug, después solo contestare dudas y comentarios. ¿Por que? Por que debido a que la función en C, es muy Rápida/Eficiente debido a su corto código y gran manejo avanzado de C, genera un código en ensamblador muy Óptimo. Debido a esto y lo poco descubierto hasta ahora, el rendimiento de cualquier aplicacion que use inet_network() como BIND en este caso, no se va a ver tan afectado en gran medida, al menos que se use a manera DDoS o teniendo un gran ancho de Banda puede ser posible. Sin embargo escribir un exploit/aplicacion que realize el esto se me hace muy Lamer. Lo ideal seria crear un exploit para obtener acceso al servidor mediante un remote shell o algo parecido, sin embargo como no fue posible encontrar una manera de corromper la pila, tampoco es posible crear el exploit. Ahora que si alguien quiere realizar dicho exploit/aplicacion solo por practica/conocimiento/interés contra un servidor del cual sea

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

Imagen
Bueno volviendo al tema del Estudio de un bug, y posteriormente el la Creacion de un exploit para el mismo. Lamento informarles que no he dado con nada en este bug pero bueno. Si nos consentramos en lo que sabemos, lo unico que cambio en la version vulnerable del codigo es que el siguiente fracmento de Cofigo cambio de lugar: Código if ( pp >= parts + 4 || val > 0xffU ) return ( INADDR_NONE ) ; De adentro del if, a afuera del mismo: Version Vulnerable Código if ( !digit ) return ( INADDR_NONE ) ; if ( *cp == '.' ) { if ( pp >= parts + 4 || val > 0xffU ) return ( INADDR_NONE ) ; *pp++ = val, cp++; goto again; Version NO Vulnerable Código if ( !digit ) return ( INADDR_NONE ) ; if ( pp >= parts + 4 || val > 0xffU ) return ( INADDR_NONE ) ; if ( *cp == '.' ) { *pp++ = val, cp++; goto again; Ok, aqui lo importante es preguntarnos como cambia el funcionamiento del programa Antes y despues . Bien segun lo he analizado mient

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 ( ) { unsigned long prueba; long i; prueba = 0xf; i = 0 ; while ( i < 20 ) { printf ( "Prueba: %i \n " ,prueba ) ; i++; prueba = ( prueba << 4 ) + 0xf; } return 0 ; } 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 mem

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.5 Wed Apr 27 04:56:21 2005 +++ inet_network.c Tue 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

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.asc En securityFocus: CVE-2008-0122 En 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