[HACK] [Fwd: [admins] Nota de prensa IRC-Hispano] pipes y pings en IRcap

Krom krom at navarhack.org
Thu Mar 29 01:48:07 CEST 2001


Pkño estudio sobre bugs de pipes en IRcap 6.999 (y versiones recientes anteriores =)

En la segunda línea del archivo ctcps.mrc aparece un evento ctcp ping, con un timer y un identificador $1-: agujero al canto.
Esta línea solo se ejecuta si tenemos activada la opcion de Simular lag (en la ficha Protecc. dentro de las opciones del script) que
viene desactivada por defecto.
Lo que hace es capturar los eventos ctcp ping (un ping es una señal que se envía de un usuario a otro para ver lo que tarda en
volver). Los pings son muy habituales y pueden despertar aún menos sospechas que los aways. Lo que hace esta línea es capturar el
texto del ping, esperar un tiempo definido en segundos, y contestar de la forma habitual:

ctcp 1!:PING: if %simulag < 1 { set %simulag 1 } | .timer 1 %simulag .ctcpreply $nick $1- | echo 12 -se $timestamp 2PING de6 $nick
10[retrasando respuesta %simulag segs] | meflod | halt

Lo que nos interesa es ese primer timer. El exploit es practicamente igual que el del away, pero algo más complejo de construir,
porque si mandamos un /ctcp victima ping hola, el mIRC no enviará hola como parámetro, sino un número (el tiempo en segundos
transcurrido desde el 1 de enero de 1970, no me pregunteis por qué xD). Para conseguir que mande un texto con el ping hay que enviar
un mensaje raw. Los raw son mensajes directos al servidor y no son evaluados por mIRC. El exploit sería:

raw privmsg victima : $+ $chr(01) $+ ping 0 $chr(124) echo -se Tu script es vulnerable $+ $chr(01)

Los caracteres 01 delimitan mensajes ctcp. El caracter 124 es el pipe, así que los comandos maliciosos irian despues de este.
Los identificadores $+ $chr(01) del final no son obligatorios, pero así se mantiene el formato del ctcp.
El IRcap de la víctima mostrará un aviso del ping. Transcurrido el tiempo prefijado responderá al atacante de la forma habitual, y
ejecutará el resto de comandos.

Hasta aquí el exploit. No puedo decir que no haya más, pero en un primer vistazo solo he encontrado este. Además en su web GSi habla
de un solo bug.
La solucion de GSi para el IRcap: cambiar el identificador $1- por $1-2, con lo que solo toma el ping y el primer número. Si hay un
texto de exploit no lo ejecutará.
La solución de Tempest para el bug de away en el x-cript: eliminar el timer, asi como cualquier pipe que venga en el texto de away
(no hacia falta macho)

En cuanto a la polémica con los ircops, opino que todo se habria evitado parcheando el código de todos los servidores para que
impidan el caracter 124 en el texto de away (por no decir en cualquier tipo de texto) Sé que no es fácil. Solo era una sugerencia =)
Tambien opino cosas sobre la nefasta administración del hispano y sobre la poca honestidad de otros implicados en esto, pero paso de
discutir con una ventana de texto. Vengo aquí a aprender y divertirme  :P


{Krom}
krom at navarhack.org
http://www.navarhack.org






More information about the hacking mailing list