Todo lo que aquí se hable es extensible en general a cualquier
red IRC. No obstante en algunos casos muy particulares me referiré
a la red IRC hispana ("*.irc-hispano.org"). Ni que decir tiene que
la información que se proporciona aquí es con fines educativos;
en ningún caso debe ser usada salvo en circunstancias excepcionalmente
justificadas. Un uso abusivo puede significar una k/g-line totalmente
merecida. Yo no me hago responsable de un posible mal uso de esta info.
Una red IRC se compone de varios servidores corriendo en paralelo y enlazados entre ellos, de forma que se mantegan comunicados (puedan intercambiar mensajes entre ellos). Cuando un usuario se conecta a un servidor determinado, éste (el servidor) lo notifica a los demás servidores que forman parte de la red IRC. Igualmente, cualquier otra acción es notificada a todos los servidores, de forma que éstos actuan como una unidad. De esta forma el usuario se deja ver en todos los servidores aunque físicamente sólo esté conectado a uno. Esto permite tener muchos usuarios repartidos por diferentes servidores pero que virtualmente es como si estuvieran todos en uno sólo.
La estructura de la red IRC es en forma de árbol (es decir, no puede haber bucles, o "caminos cerrados": partiendo de un nodo no se llegue por ningún camino otra vez a dicho nodo) aunque un tanto especial: cada nodo se ve a sí mismo como el nodo raiz de la red. En la "literatura" esto se conoce como "spanning tree". Un ejemplo de red podría ser:
[ Server 15 ] [ Server 13 ] [ Server 14]
/
\ /
/
\ /
[ Server 11 ] ------
[ Server 1 ] [ Server 12]
/ \
/
/ \
/
[ Server 2 ] [ Server
3 ]
/ \
\
/ \
\
[
Server 4 ] [ Server 5 ]
[ Server 6 ]
/ | \
/
/
| \
/
/
| \____
/
/
| \
/
[ Server 7 ] [ Server 8 ] [ Server 9 ] [ Server
10 ]
:
[ etc. ]
:
Cuando se rompe uno de los eslabones (links) que unen
2 servidores el conjunto se divide en 2 subconjuntos, los cuales intentarán
seguir funcionando normalmente aunque de forma aislada. Esto es, cada subconjunto
permanece operativo y mantiene la comunicación entre los servers
pertenecientes a dicho subconjunto. Pero por razones obvias los servidores
de un subconjunto no ven a los del otro y viceversa. Esta situación
se conoce como net-split.
En una sesión normal de IRC esto lo veríamos:
[1:23] *** Case_Zer0 has quit IRC (fuego.irc-hispano.org io.irc-hispano.org)
Esto indica que se han spliteado los dos servidores indicados entre paréntesis y que a consecuencia de ello el usuario Case_Zer0 [ hi Case ;-) ] ha salido "de nuestra red IRC" (lo que está ocurriendo es que se encuentra en el otro subconjunto de servidores: a todos los efectos es que como si se encontrase ya en otra red IRC).
Cuando el enlace caido se recupera (i.e. se reestablece la comunicación entre los servers spliteados) se habla de net-merge. Esto se vería en la sesión anterior como un "join" por parte del usuario que estaba en el servidor spliteado (tanto el quit como el join anteriores son mecanismos del propio IRC, es decir, el usuario anterior no dio ninguna orden de quit ni de join, es transparente a dicho usuario).
Hay programas que detectan y avisan cuando se produce algún net-split o net-merge: son los denominados "link-lookers", y su utilidad es bastante obvia.
Por ejemplo, si el enlace dibujado en rojo (enlace server 2 <-> server 5) cayera, el servidor 5 estaría aislado de la red. Los usuarios de dicho servidor dejarían de ver a todos los demás pertenecientes a servidores distintos, y al contrario. Se dice que el servidor 5 está spliteado. Es fácil reconocer a un servidor en esta situación: si entras en una red a través de un determinado servidor y te encuentras a muy poca gente es muy normal que se deba a que está spliteado de la red.
Otra posibilidad es que el enlace azul (3 <-> 12) cayera. En este caso el servidor 12 se splitea de la red, pero también lo hacen los servidores 13 y 14 indirectamente, por conectarse a través del primero.
Para una información completa del funcionamiento y estructura
de una red IRC, y del protocolo subyacente ("Internet Relay Chat Protocol")
os remito al RFC1459.
- Esperar un split (lo podemos detectar con un link-looker).
- Entrar (conectar) al servidor spliteado.
- /join #canal (donde canal es el canal donde queremos
conseguir op).
- El server creará un nuevo canal y tendrás el
op.
- Esperar a que se deshaga el split.
Si "hay suerte" (leer más abajo), al deshacerse el split conservaremos el op en los restantes servidores (el servidor spliteado se encarga de dar las órdenes correspondientes). Entonces se dice que hemos llevado a cabo un "net-hack". Los usuarios presentes en el canal en el que hemos llevado a cabo la acción verán algo como:
[1:41] *** irc.i3d.es sets mode: +o RoMaNSoFt
(donde el servidor que nos da op es el que antes estaba spliteado).
Esto no siempre funcionará porque hay aspectos que todavía no he comentado. Paso a explicar el procedimiento y comentar algunos puntos negros. Supongo que habréis comprendido el procedimiento; es muy simple: aprovechar que el servidor spliteado no ve a los usuarios de otros servidores y por tanto al canal previamente creado. Esto presupone que no hay usuarios del servidor spliteado en el canal (en este caso no funcionaría) porque en este caso al entrar nosotros por el server spliteado veríamos al canal como ya creado, con los usuarios de nuestro mismo servidor (a los otros los "esconde" el split) y por tanto el server no nos dará el op, como es habitual al entrar en cualquier canal ya existente.
También hay que tener en cuenta que actualmente todos los
servidores tienen protecciones anti-nethack. En este caso, al deshacerse
el split, los restantes servidores te quitarán el op a tí
en vez de ser al contrario (imponer tu op en los restantes servers), protegiendo
al canal PERO ésto lo harán únicamente en caso
de que ya hubiera ops en el canal antes de tu intento de net-hack (aunque
hay veces en que el server se equivoca y mantiene tu op, quitándoselo
a los demás). Es decir, que el net-hack funcionará sólo
para canales donde no haya op ("opless channels"). Por esta razón,
si queremos el op, necesitaremos tirar previamente a los ops (echarlos
del canal, de forma que pierdan su op) para luego llevar a cabo el net-hack.
¿Cómo tirarlos? De esto nos encargaremos más adelante,
sigue leyendo };-)
Para la primera alternativa entra en juego tu "don de la palabra":
trata de hacerte amigo de algún op para que éste te lo pase.
En ese momento ya estás capacitado para quitarle el op a todos los
demás ("mass-deop") y quedarte con el canal. Esto lo hacen
automáticamente muchos scripts ("automatic-deop"): nada más
darte el op el script automáticamente deopea a todos los ops (excepto
a tí, claro).
Cuando un cliente supera el límite preestablecido por el servidor, éste cierra la conexión con el cliente: lo echa del servidor porque no puede soportar tanto caudal de entrada. El servidor lo "explica" así:
[1:59] *** _^TkLaS^_ has quit IRC (Excess Flood)
Un flood, en general, no es otra cosa que mandar mucha información en poco tiempo a alguien para intentar que se sature. Se puede floodear una dirección IP, ..., o lo que ahora nos concierne: un servidor de IRC.
La manera de aprovechar el flood en nuestro favor consiste en mandar muchas peticiones de información a nuestra víctima, de forma que ésta, al contestar, supere el límite del servidor y éste lo eche. Por ejemplo, si le mandamos muchos /ctcp version's seguidos (requiriendo información sobre el programa cliente que está utilizando) la víctima floodeará al servidor cuando conteste porque mandará muchas veces (tantas como peticiones haya habido) el texto de respuesta al servidor (para que del servidor vaya al cliente que peticionó, i.e., al atacante).
En esto del flood juega un papel muy importante el número de peticiones que se reciben en un pequeño intervalo de tiempo. Cuantas más se reciban, más posibilidades hay de que el flood tenga éxito. Por ello no es ninguna tontería mandar peticiones desde varios puntos a la vez, y no desde uno sólo, es decir, varios usuarios (¡que podrían ser una misma persona!) de la red IRC manden peticiones a la víctima todos a la vez en un determinado momento. Si los usuarios (nicks) corresponden a una misma persona (una misma dirección IP) se habla de clones. Por tanto, una posible forma de ataque sería crearnos muchos clones y peticionar a la vez desde todos ellos a la víctima.
Pero los servidores también suelen estar preparados para evitar muchos clones (cada clone ocupa, por decirlo de alguna manera, una "linea" de entrada al servidor, y esto consume recursos del mismo). Suele haber un máximo permitido (en el irc hispano es 2) denegándosele el acceso a la red a un tercer clone, o en caso de que éste lo consiguiese expulsándosele del servidor ("matándolo") (el programa servidor revisa periódicamente las IP's conectadas y detecta cuando hay varios usuarios con una misma dirección IP):
[1:32] *** _^Virus^_ has quit IRC (Killed (Clones!))
¿Cómo provocar un flood con más de 2 clones entonces? La respuesta es simple: en principio no se puede. ¿Entonces? Pues la solución es que varias personas distintas se pongan de acuerdo para atacar a la vez a la víctima. Cada persona podría tener a su vez varios clones. Por ejemplo, si A (atacante) quiere atacar a V (víctima), A se pone de acuerdo con B y C (otras 2 personas atacantes). A su vez supongamos que cada atacante tiene 2 clones: i.1 e i.2 (donde i=A,B,C). Entonces tendremos 6 usuarios (conexiones IRC) distintos atacando a V, que serían A.1, A.2, B.1, B.2, C.1 y C.2. Pero hay un problema: ¿cómo sincronizarse para atacar? ¿Cómo "ponerse de acuerdo" para mandar las peticiones en un determinado momento? Para esto existe lo que se denomina "floodnet" que, como habrá adivinado nuestro ávido lector, es una "red" (asociación) de gente cuyo único objetivo es floodear a alguien. La ventaja que tiene es que la sincronización entre los distintos componentes de la floodnet es automática (lo hacen los scripts) lo cual resuelve el problema anterior. También existe lo que se denomina "botnet" y que es análogo a la floodnet pero usando bots (no confundir con los "de servicio"; estos últimos los ponen los servers de la red irc y no los usuarios) los cuales serán lanzados desde alguna shell Unix (intérprete de comandos en una máquina Unix). Los bots suelen estar prohibidos y cuando se detectan, a lo menos, son expulsados:
[1:32] *** Viernes13 has quit IRC (Killed (You are not welcome to this network!))
Hoy en día tanto los programas clientes de IRC como los
scripts implementan protecciones anti-flood que dificultan enormemente
el éxito de un ataque de tipo flood. Por ejemplo, cuando detectan
varias peticiones seguidas mandan las respuestas espaciadas en el tiempo
(con pausas) y no inmediatamente, con lo cual se evita el flood.
También hay técnicas de flood bastante optimizadas
(por ejemplo, usando una floodnet) aunque en general un ataque flood
no suele ser demasiado eficiente y es más costoso lograr su éxito
que con algunas de las técnicas que se describen a continuación.
El resultado de un nick collide depende del servidor (ircd).
En servidores antiguos (sin protección) el collide se resuelve
matando a los dos usuarios con mismo nick (¡ambos!). En otros más
inteligentes (con protección) el servidor guarda información
acerca de los usuarios y puede saber que usuario tiene el nick con mayor
antigüedad (i.e. quién se lo puso antes), matando únicamente
al usuario con el nick más reciente (protegiendo al usuario más
"veterano").
- Esperar un split.
- Entrar (conectar) al servidor spliteado.
- Ponerse como nick el de la víctima.
- Esperar a que se deshaga el split.
Si todo va bien (el servidor no tiene protección), a la
vuelta del split se detectará el collide y se matarán tanto
al atacante como a la víctima. Lógicamente nuestro usuario
atacante será un clone nuestro, con lo cual no pasa nada si es killeado.
Los pasos serían los siguientes:
- Meter un clone en el servidor lageado.
- Esperar a que la víctima cambie de nick (esto lo detectamos
desde otro servidor no lageado).
- Cambiar rápidamente el nick de nuestro clone y ponerle
el que se acaba de poner la víctima (el nuevo).
- Esperar al lag. ;)
Lo que ocurre es que nuestra orden de cambiar el nick para nuestro
clone llega antes al servidor (lageado) que la orden de cambio de nick
de la víctima debido a que nuestra orden va directamente de nuestro
cliente al servidor lageado mientras que la otra va a través de
la red IRC (donde hemos supuesto que se introduce un lag notable). Esto
hace que el servidor (lageado) tome a nuestro clone como "dueño"
legítimo del nick y mande un kill al otro (la víctima). Esto
ocurriría en caso de servidores protegidos; si es no protegido el
resultado es que ambos mueren, resultado también aceptable, pues
hemos acabado con nuestro objetivo. };-)
Una conexión IRC (cliente-servidor, que es lo que nos interesa) utiliza el protocolo TCP (nivel 4 [transporte] en la torre OSI), el cual se apoya sobre IP (nivel 3 [red]). IP se encarga, entre otras cosas, de hacer el rutado de paquetes ("datagramas IP"), es decir, dado un destino ir enviando los paquetes por el camino apropiado hasta alcanzar el host destino. TCP no ve nada de esto, tan sólo el destino directamente (manda los segmentos TCP directamente al destino), porque IP lo oculta (hace que el rutado sea transparente a TCP). Lógicamente para que un protocolo de nivel superior funcione correctamente, también deberán hacerlo todos los que estén por debajo. En particular, para que nuestra conexión TCP (IRC) se mantenga "viva", IP debe funcionar perfectamente. Y aquí es donde interviene ICMP: se encarga de informar de posibles anomalías que se han producido en el nivel 3 (IP), como por ejemplo, "host unreachable", que significaría que no se ha podido alcanzar el host (el paquete IP ha ido dando saltos ["hops"] de un nodo a otro, hacia el destino, y ha llegado un momento en el que un determinado nodo intermedio no sabía qué hacer con él o ha expirado el tiempo de vida de dicho paquete). En este caso, el paquete que informa del error (ICMP) lo envía el nodo intermedio que se ha dado cuenta del error hacia el "remitente" que lanzó el paquete original (que no se ha podido entregar a su destinatario). Los mensajes ICMP se situan dentro del campo de datos de un datagrama IP y se envían exactamente igual que si fueran datos IP (no son prioritarios). No es objetivo de este escrito tratar más a fondo este tema (para los interesados les aconsejo el libro "Internetworking with TCP/IP, vol I", de Douglas E. Comer, disponible en castellano ya en su tercera edición).
Resumiendo: mediante ICMP informamos de que IP ha fallado, y por tanto, también los niveles superiores como TCP.
Comprendiendo lo anterior ya se puede intuir en qué consiste el ICMP nuke: mandar mensajes ICMP falseados, engañando al destino, haciéndole creer que el otro extremo ha detectado un error y por tanto, provocando un "cierre" de la comunicación. Vamos a explicar un poco mejor ésto.
En una conexión siempre tenemos dos extremos, lo que da dos posibilidades a la hora de engañar, según lo hagamos a uno u otro. En el caso de una conexión IRC, podemos llevar a cabo dos formas de ataque:
* Server nuking (nukear al server): los mensajes ICMP se mandan al servidor IRC, haciéndole creer que se ha producido un error al intentar comunicarse con el cliente. Como respuesta a este mensaje el server cierra la conexión que tenía con dicho cliente. El efecto producido es la "expulsión" del usuario por parte del servidor.
* Client nuking (nukear al cliente): esta vez se envían los ICMP's al cliente; éste cree que el servidor no está disponible y cierra la conexión (el cliente). El servidor no sabe nada en principio, pero detecta el cierre de conexión por parte del cliente, dando el correspondiente error y cerrando también la conexión por su parte.
En teoría las dos fomas de nuking son perfectamente válidas y eficientes, aunque hay que tener ciertas consideraciones en cuenta, como son:
- tanto servidor como cliente pueden tener protección anti-nuke
y puede ser necesario atacar uno porque el otro esté protegido (ver
más adelante).
- si atacas a un cliente, éste puede detectar quién le
está atacando con un simple analizador de paquetes IP o tracer,
y también podría responder con otro ataque de este o cualquier
otro tipo (cuidado con quién te metes ;-)).
- si atacas al servidor, el cliente no tiene manera de saber quién
le ha "atacado" porque los mensajes ICMP no le han llegado a él
sino al servidor (ventaja); pero por otro lado, el servidor sí sabe
quién ha hecho el ataque y puede resultar en una K/G-Line a dicho
usuario por parte del servidor (el usuario podría ser baneado de
toda la red de IRC).
- los inconvenientes de los dos puntos anteriores pueden ser solventados
falseando la dirección origen de los mensajes ICMP que se envían.
Esta técnica se conoce como "spoofing" (ver punto 4).
Hay diversos tipos de error ICMP que se pueden utilizar a la hora de hacer un nuke. En cuanto a la información práctica de cómo utilizar un nuker (programa "nukeador"), debemos tener en cuenta que además de suministrarle el tipo de error que se desea producir, juegan un papel muy importante los puertos, tanto origen como destino, que se elijan.
Una conexión IRC (TCP) queda definida unívocamente por los pares dirección IP origen-puerto origen y dirección IP destino-puerto destino. Estos datos son los que hay que suministrarles al programa nukeador. Puertos típicos del servidor de IRC (será el puerto destino en caso de server nuking o el fuente si se trata de un client nuking) son 6665-9, 4400-6, 7000 y 7777. En realidad cada servidor IRC tiene unos puertos oficialmente reconocidos (que son conocidos públicamente: los podemos leer en el motd ["mensaje del dia"] al entrar en el IRC) y otros que podríamos denominar como privados, y que se usan por ejemplo para las conexiones entre los distintos servidores que forman la red. Un usuario puede estar usando uno de estos puertos "fantasmas" (aunque el servidor también puede limitar el acceso a estos puertos) para esconderse de nukes, puesto que necesitamos conocer este dato para que el nuke sea efectivo.
También necesitamos conocer el puerto del cliente, aunque esto es más difícil porque varía mucho (no son fijos como en el caso anterior) dependiendo del sistema operativo que esté corriendo dicho cliente, los puertos que ya tuviera ocupados antes de establecer la conexión IRC, étc. Lo normal es hacer un barrido de estos puertos empezando por el 1024 (hay puertos que por convenio siempre se asignan a determinadas tareas y no se pueden usar arbitrariamente con lo cual no necesitamos barrerlos) y acabando en 4000, por ejemplo, aunque podría ser necesario aumentar este número.
Es también muy útil utilizar un "port-scan": programa que va probando los distintos puertos de una dirección IP (destino) dada e informa de la respuesta recibida para cada uno de dichos puertos (así podemos saber, por ejemplo, qué puertos de un servidor están dedicados a aceptar conexiones IRC).
A continuación transcribo mensajes típicos de salida de nuestras potenciales víctimas en una sesión típica de IRC:
[1:42] *** aRmiTaGe has quit
IRC (Read error to aRmiTaGe[ig-183.arrakis.es]: Connection reset by peer)
[1:13] *** KoNtRoL has quit
IRC (Read error to KoNtRoL[195.76.99.76]: EOF from client)
[3:17] *** BrOKeNn has quit
IRC (Read error to BrOKeNn[194.224.57.171]: Protocol not available)
[5:25] *** Eli has quit IRC
(Read error to Eli[info760.jet.es]: Network is unreachable)
[5:26] *** Eli has quit IRC
(Read error to Eli[info760.jet.es]: Machine is not on the network)
[4:20] *** vp has quit IRC (Read
error to vp[ia-176.arrakis.es]: Connection refused)
[2:41] *** Estrayk has quit
IRC (Read error to Estrayk[ctv3011.ctv.es]: No route to host)
La protección anti-nuke, a grosso modo, pasa por ignorar
los mensajes ICMP que lleguen, aunque ésto ya está limitando
el propio funcionamiento del protocolo IP, en el sentido de que ICMP es
parte integrante de IP y no se debería inhibir (¿qué
ocurriría si llega un mensaje "de verdad" y es ignorado?). Se puede
llevar a cabo más o menos "finamente": por ejemplo descartar solo
los ICMP's de un tipo y no todos los posibles. Se podría lograr
con un firewall (software o hardware encargado de filtrar los paquetes
provinientes de la red en base a una reglas previamente definidas) convenientemente
configurado.
La forma de protegerse es cerrar los puertos por los que nos puedan atacar (el 139 principalmente) o aplicar algún parche al SO para quitarnos el bug. Otra solución menos recomendable es la que llevan a cabo algunos ISPs (proveedores de Internet), y que consiste en filtrar todos los paquetes dirigidos al puerto 139 (inconveniente: nos están dejando inoperativo ese puerto). Hoy en día es muy popular este bug y normalmente está ampliamente parcheado (aunque siempre habrá algún que otro despistado que no lo tenga instalado }=)).
Como hemos dicho, este ataque no sólo consigue echar a la víctima del server sino que además le deja colgado el ordenador (tendrá que hacer un reboot), lo que lo hace especialmente peligroso. La víctima saldrá del IRC con un mensaje de tipo ping-timeout como:
[19:56] *** Goku has quit IRC
(Ping timeout for Goku[system.tech.arrakis.es])
La manera de usar esto de forma ofensiva consiste en mandar más pings a un usuario de los que su máquina pueda contestar, saturándole su conexión a Internet. Por tanto se debe de hacer desde un enlace más potente que el que pretendemos atacar.
Lo típico es que la víctima esté en su casa y tenga un modem. Por tanto, necesitamos una conexión a inet más rápida que eso. Lo normal es atacar desde una máquina ubicada ya en la red (conectada mediante ATM, FDDI, ...). Por ejemplo, puede valer la cuenta de la Universidad ;-). La forma de hacerlo sería abriéndonos un shell y tecleando:
$ ping -s 32000 <direcc. IP>
(la sintaxis puede variar ligeramente según sistema operativo).
Los paquetes que se envían al hacer ping son típicamente muy pequeños. Con el modificador -s estamos forzando un nuevo tamaño (32000 bytes es aceptable; también podeis probar con 64000).
Pensad: un modem de 28.8 tardará unos 18 segs. en recibir
64 Kbytes (sin considerar compresión), mientras que desde nuestra
shell lo hemos mandado en ¡¡décimas de segundo!! Si
consideramos además que el comando ping manda más de un paquete
(los que queramos) ... ¡boom! Tendréis el modem de vuestra
víctima trabajando a toda pastilla para nada y fastidiándole
todo lo que esté haciendo. En particular, le estropearéis
su conexión al IRC: en el mejor de los casos la víctima tendrá
un lag horroroso y el peor será expulsada del servidor por
"ping time-out".
Un bug de este tipo es viejo conocido de los sistemas UNIX (el ataque se conocía como "ping of death"); pero la novedad es que ahora lo sufren los Windows. Aunque son cosas técnicamente diferentes, la forma de proceder a la hora de atacar es análoga a OOB: solo hay que saber la dirección IP de la víctima y ¡boom!: le dejamos colgado el ordenador.
La solución pasa por parchear el S.O. En particular,
este bug parece que no afecta al Trumpet Winsock así que
si lo usais estareis protegidos.
Se trata de "spoofear" (=falsear) la dirección IP de origen de los paquetes que se mandan a la víctima, de forma que ésta crea que el origen de dichos paquetes es otro (el que nosotros le indiquemos). De esta forma protegemos nuestro anonimato, y en general podemos llevar a cabo cualquier acción que se nos pueda ocurrir y que se derive de una falsa dirección source (origen). Por ejemplo, podemos nukear a alguien, con la dirección fuente de otro, haciendo creer a la víctima (si ésta tiene un analizador de paquetes o algo parecido) que es el otro el que le está atacando }:-).
El spoofing es (o podría ser) una funcionalidad
más del programa de ataque (del nuker, del ping, ...). Como consiste
en manejar IP desde un muy bajo nivel en muchos casos se requieren privilegios
especiales. Por ejemplo, en el caso de máquinas Unix, se necesita
abrir "raw sockets" y ésto requiere de privilegios de superusuario
(root).
Por ahora sólo incluyo la siguiente URL: http://www.7thsphere.com/virus.
Allí podrás encontrar toda clase de utilidades para Windows
y Linux: programas nukeadores, port-scanners, étc...
También me gustaría recordar que el IRC no es un campo de batalla, y que no se debe atacar a la gente así porque así, salvo "en defensa propia" y pocos casos más justificados. O:-) En cualquier caso un ataque nunca está justificado desde el punto de vista de los ircops, así que cuidado con las K/G-lines ;-)
Por último, decir que este artículo es la primera versión y que pudiera contener numerosos errores así como algún que otro "punto negro". Se agradecería toda clase de comentarios y sugerencias para mejorar el documento: bug reports, asuntos que creáis no están bien explicados, temas que faltan y se deberían incluir, ..., y en definitiva todo lo que os gustaría que se incluyese en el documento. También se aceptan O-lines ;-)
Podeis contactar con el autor de este escrito por email: roman@deathsdoor.com. O localizarme en el IRC hispano bajo el nick de RoMaNSoFt.
c'U l8er!!!!!
_______________________________________________________________________________________________
La distribución de este documento es "libre",
con la única condición de informar al autor en caso de subirlo
a algún ftp site o página web. La misma restricción
se aplica a cualquier otra forma de difusión pública (revistas,
news, étc).
###############################################################################################