|
BO ("Back Orifice") y otras gaitas |
|
|
|
Por Jose Manuel Tella Llop, extraído de microsoft.public.es.windows98
Debido a las últimas alarmas que están sucediendo con respecto a programas del estilo de BO (Back Oriffice) con los cuales pueden tomar el control de nuestro PC desde otro remoto, vía Internet (por ejemplo), y ante la alarma que esta surgiendo, voy a escribir un poquito sobre estos temas. Bien, lo de las alarmas que están surgiendo, pues nada, ahora está de moda...., antes eran los virus, los caballos de Troya, los gusanos, y ahora que parece que ya nos fiamos de los antivirus, que todo el mundo tiene su maquina (y un porcentaje alto de su CPU), dedicada a la caza de estas brujas, pues nada, nos tenemos que inventar algo nuevo...., pues a ello, los BO. (un inciso, para los amantes de los antivirus: ¿por que los tenemos activos siempre?. -masoquistas: gastar CPU- Un antivirus solo debe activarse cuando hay peligro, es decir cuando vamos a ejecutar software ajeno. No nos pueden colar un virus por Internet, ni por mail, ni por las news. Únicamente si "ejecutamos" algún programa o editamos con word algún .DOC desde Internet. Por tanto, para que tenerlo activo?? Se debe activar en ese momento y ya está. Y además, dentro de todos los antivirus que hay, se deben escoger los que no dejen -o se puedan deshabilitar- los vigilantes residentes y por supuesto que no te instalen ninguna VxD que se cargaría siempre. Y luego nos quejamos de que nuestro PC no anda, que va lento......) <----- INCISO IMPORTANTE Bien centrando el tema: los BO. Para entender un poco su funcionamiento y como debemos "cazarlos", vamos a ver un poco como funciona el TCP/IP y como tenemos herramientas en Windows para ver "algo" de su funcionamiento. En TCP/IP, todo se basa en la filosófica cliente/servidor. Un "host" (no es nada mas que un ordenador cualquiera, un PC, o uno gigantesco), puede ofrecer servicios a la red. Este es un servidor. Y otro puede solicitar esos servicios (cliente). Lo "normal" (en un PC) es ser siempre cliente, es decir solicitamos servicios de FTP, HTML, news,.... ¿Como se solicitan los servicios o como hablan dos maquinas bajo TCP?. Muy sencillo, se establece un "socket" -un canal de comunicación- ¿y como? pues un socket no es nada mas que una conexión entre una maquina y un puerto con otra maquina y otro puerto. Es decir intervienen 2 maquinas y 2 puertos. En el IP, se definen 65535 (o es 327676, no recuerdo) puertos y desde el 0 al 1023 están reservados para los servicios estándar del TCP (html=80, ftp=21,...etc) y desde el 1024 en adelante están reservados para programas de usuario. Para abrir un socket (canal de comunicacion), una maquina debe solicitar una dirección ajena y un puerto. Si es ese puerto en la otra maquina, hay un programa escuchando (LISTENING), este programa atenderá a nuestras peticiones. Cuando abrimos el navegador y tecleamos una pagina, el funcionamiento sería el siguiente: 1) Nuestro PC para abrir el socket necesita conocer la dirección del destino (el puerto ya lo sabe, ya que por defecto en html es el 80). Esta dirección debe estar en formato xxx.xxx.xxx.xxx (4 números separados por puntos -dirección IP-) 2) Nuestro PC, investiga si conoce el ordenador destino (es decir investiga un nombre, por ejemplo www.microsoft.com). Si no lo conoce debe investigar. 3) Aunque para esta investigación intervienen varios pasos (fichero host, mascaras de subred, etc), vamos a simplificarlo. Nuestro PC se lo pregunta al DNS de nuestro servidor (recordad que ponemos DNS al definir una conexión telefónica, o bien nuestro proveedor nos lo da automáticamente al establecerlo. 4) DNS = Domain Name Solver. Es decir nos va a resolver por nombre de dominio su dirección . Por tanto nos devuelve su dirección IP. 5) Con esto el navegador ya puede abrir un socket desde nuestra dirección , y un puerto "cualquiera" !!! libre de nuestro PC y la dirección del destino y el puerto 80. 6) Es decir lo que hace en ese momento es pedirle a nuestro propio PC un puerto libre, imaginemos que le dá el 2122, y entonces establece un canal de comunicación entre ambas maquinas desde el puerto 2122 en el cula "escuchará" nuestro navegador para esa conexión y el 80 en el destino, que será el que nos pase la información (la pagina web). Bien, esto es extensible para todos los servicios IP (FTP en el 32,..etc). Y para cualquier cosa que queramos hacer. Fijaros que en el ejemplo anterior, en la otra maquina, no hay un navegador, sino que hay un programa, que lo que hace es escuchar "peticiones" en el puerto 80, cuando las recibe, analiza lo que le piden, busca la pagina y nos la envia. Este es un servidor de paginas web. --------------------- Entendido un poco lo anterior, vayamos a nuestro caso. Imaginemos que en una maquina, quiero hacer una determinada cosa. Pues bien, hago un programa servidor que escuche algun puerto de los libres (para no incordiar a la maquina) y dejo este programa residente. Desde otra maquina, intento conectar con esta y con ese puerto. Si me responde, puedo pedir la identificación del programa que me está respondiendo (podría no ser el mio). Y si lo es, le puedo mandar ejecutar cosas que yo haya programado en esa maquina. Solo las que haya programado explicitamente en el servidor, en el programa que escucha. La idea es genial... puedo ejecutar acciones en la otra maquina. Además esto es el pan nuestro de cada dia, cuando me conecto a un servidor FTP, le "ordeno" que me pase un fichero, y el servidor ftp, lo único que tiene programado, es, primero ver quien soy a ver si estoy autorizado y segundo "darme" ese fichero. Pero evidentemente, si el programa que está en el otro lado, es mio, puedo haberlo hecho para que or ejemplo, pegue un format al disco duro o permita borrar un fichero, o ...... reiniciar la maquina...) Pues esto precisamente es lo que han hecho los programadores de los BO. Es decir unos servidores capaces de ejecutar unos cuantos (bastantes) instrucciones que ellos han programado. Y que ademas, evidentemente, se dedica a escuchar en un puerto del PC. Pero ese programa, debe estar ejecutándose en nuestra maquina y que además no nos demos cuenta. Para ello, de alguna manera, nos tienen que "convencer" para ejecutarlo por primera vez (a algún "amigo" nos lo tiene que meter). Se suele hacer, via programas adjuntos a mail, convenciéndonos de que lo ejecutemos, que es algo genial, etc.... Y ahora una vez que nos han convencido, ese programa, se "esconde", cambia de nombre, lo que se le haya ocurrido a quien lo ha hecho, y en el registro se graba en las claves RUN o RUNSERVICES en decir en las que se ejecutan al iniciarse el PC, paras ejecutarse siempre. Algunos de esos programas, además, cada vez que estemos en Internet, intentan anunciarse de alguna manera a alguna dirección IP cada x minutos. **** PRIMER PUNTO DE CONTROL: W98, con "MsConfig" nos muestra TODO lo que se ejecuta en el inicio. Lo que tenemos es que tener CONTROLADO siempre lo que se ejecuta allí. La gente que hace los BO suele tener mala idea, y los camufla o bien con un nombre a blncos, por ejemplo " .exe" o con un nombre que parece una rutina del sistema "msdll.exe" o "windll.dll". Pero lo importante: lo veremos SIEMPRE con el "msconfig". Por tanto debemos controlar siempre lo que tenemos allí. Cuando instalamos w98, lo apuntamos y cada vez que instalemos algo lo controlamos. Si aparece algo "desconocido" inmediatamente preguntar. O alguno de nosotros lo sabemos o ya investigaremos. ---------------------------------- Ya sabemos como se "mete" en nuestro PC. Y ¿que hace?, pues lo que haya pensado al programarlo la persona "padre" del programa, pero normalmente es capaz de hacer cosas en nuestro PC que no nos gustaría. Al final os envío la documentación que viene con uno de los programas BO (cuyo "padre" pertenece al "Culto de la Vacas Muertas".... curioso nombre...) y que lo anuncian, como manejo en "remoto" de otro PC (curiosa propaganda...) ----------------------------------- SEGUNDO PUNTO DE CONTROL: El programa "tiene" que estar escuchando (LINSTENING) en un puerto del TCP/IP, desde que iniciamos el ordenador. Existe un programa de Windows el "netstat". Lo podemos ejecutar con el parametro "-a". Para ello abrimos una ventana MsDOS y tecleamos: netstat -a Lo normal, es que nada mas iniciar nuestro PC (cada PC es un caso, pero estoy suponiendo el mas normalito. PC domestico, sin tarjeta de red, únicamente con módem y sin tener instalado ningún servidor, como PWS, por ejemplo). En este caso, nada mas arrancar nos tiene que dar una lista VACÍA. Si es así, ya no hay peligro. (por ahora, ya que solo por haber publicado esta información, cualquier programador de un BO, puede, sabiendo que vamos a intentar controlarlo de esta manera, modificar sus programas para que mientras no exista una comunicación telefónica, no intenten "adueñarse" de un puerto). Bien en cualquier caso, lo que tenemos que hacer, es justo nada mas iniciar la primera conversación telefónica (y si ICQ arrancado -quien lo tuviese-) mirar con el comando anterior. Apuntar lo que vemos, preguntar si hay dudas, y controlar de vez en cuando (una vez a la semana) que seguimos viendo lo mismo. ------------------------ Y ahora la mala fe: alguien con un programa cliente del BO (ya que conoce su puerto de instalación), se dedica o bien a rastrear direcciones IP hasta que pilla uno, o bien si el BO se ha anunciado a algún sitio, pues entrar ya directamente a nuestro PC. Y ¿que puede hacer?, pues todo lo que le permita hacer el programa servidor. ************************* Y ahora como una nota de humor y algo anecdótico. Todo lo que os he hablado, no os estaba sonando al ICQ. El ICQ es exactamente igual, y además es muy "goloso" para nosotros por el servicio que nos da, pero imaginemos, solo imaginemos, que el programador que lo hizo, le "puso" alguna cosilla mas.... y que cuando quiera, utilizando esas funcionalidades ocultas, puede hacer lo que quiera con nuestro PC... LO ANTERIOR ES BROMA !!!!!. Son elucubraciones únicamente, que nadie se lo tome en serio.........Pero podría ser verdad...., no en este caso, pero si con otras utilidades y "golosinas" que nos regalan por ahí. ************************** CONCLUSIÓN: A vigilar......!!!! Y los errores de seguridad no son por los sistemas operativos, sino por lo que montamos sobre ellos consciente o inconscientemente. Espero que sirva de ayuda............ (nota: envío adjunto el fichero BO.ZIP que "únicamente" tiene el archivo BO.TXT que es la documentación original del autor)
Volver a
Artículos y FAQs
|