lunes, 11 de febrero de 2008

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 seguidad es Basico ya que no queremos estar en la lista de los Zombies Usados como en el ataque anterior. Estar siempre al dia y en contacto con nuestro administrador es Fundamental.

domingo, 10 de febrero de 2008

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

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 dueño. aquí y en los link presentados esta toda la información necesaria para realizarlo, bueno aparte de sus conocimientos de programacion.

Doy por concluida mi participacion en este tema ya que le he dedicado mucho tiempo en analizar el código, ya me lo se de memoria tongue y se me a hecho infructuoso cumplir mi cometido de realizar un exploit para la función inet_network() vulnerable, sin embargo me queda la satisfacción de haber encontrado una debilidad al código de la función el cual puede representar un pequeño consumo del procesador en cualquier aplicacion que utilice la función mencionada.

Cualquier duda y/o comentario favor de ponerlo en este topic.

Un especial agradecimiento a todos aquellos que me apoyaron en el Topic y por PM Gracias!!

Un saludo a todos.

miércoles, 6 de febrero de 2008

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

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 huh.

Bien segun lo he analizado mientras voy en en el camion, mientras como, y hasta mientras sueño el resultado operativo del codigo sigue siendo el mismo, si no es asi que alguien me lo haga saber y me diga lo ciego que estoy.

Lo unico que noto es que el Procesador se ahorra unas cuantas Instrucciones en caso de que la la Condicion del if sea verdadera, en caso contrareo Todo trabaja Igual. rolleyes o no huh

Bueno hasta el momento hago un recuento de lo que he Conseguido hasta el momento.

Es posible Insertarle un valor Invalido para Obtener un Resultado Valido:

Bueno entre las pruebas que estuve haciendo he visto que la aplicacion que tengo de prueba puede recivir cadenas como las que siguen sin colgarse:

Código:
%./test_network 0xfffff00000011.0xfabcd000000003.0xa.0x90
0x11030a90

pero no nos ganamos nada ya que no ponemos nada en la memoria, las ffff se pierden en el corrimiento de bits hacia la izquierda dentro del microprocesador. sad

Lo cual puede representar un consumo de recursos en el servidor BIND, o el programa que use la funcion inet_network() vulnerale esto solo en caso de que se le envie constantememente cadenas Invalidas como las que mostre obviamente de mayor longitud ya que el Procesador tendria que estar dentro del mismo ciclo mientras le manden estas cadenas.



Un saludo!!

Populares Siempre