La biblia del hacker de NT
Version del documento: 1.2
* By Elelubng144
* Primera version: 15/12/00
* Ultima actualizacion: 25/3/14
Indice del documento:
Parte I, primeros contactos
---------------------------
- Prologo ....................................................... 0
- Nociones basicas .............................................. 1
- Que es Windows NT? .......................................... 1.1
- Historia de Windows NT ...................................... 1.2
- Modelo de seguridad ......................................... 1.3
- Funcionamiento de una red NT ................................ 1.4
- Dominios .................................................... 1.5
- Grupos y permisos ........................................... 1.6
- Protocolo SMB ............................................... 1.7
- Porque la gente escoge NT? .................................. 1.8
- Sus distintas versiones ..................................... 1.9
- Su futuro ................................................... 1.10
- Arquitectura del sistema ...................................... 2
- Subsistemas protegidos ...................................... 2.1
- El executive ................................................ 2.2
- Llamadas a procedimientos ................................... 2.3
- Diferencias entre NT 4 y W2000 ................................ 3
- Active Directory ............................................ 3.1
- DNS Dinamico ................................................ 3.2
- Estandar Kerberos ........................................... 3.3
- Mejoras en el NTFS .......................................... 3.4
- Resumen ....................................................... 4
Parte II, agujeros del sistema
------------------------------
- Introduccion a NetBIOS ........................................ 5
- Historia de NetBIOS ......................................... 5.1
- Conceptos sobre NetBIOS ..................................... 5.2
- Comandos NET ................................................ 5.3
- Vulnerabilidades de NetBIOS ................................. 5.4
- NAT ....................................................... 5.4.1
- IPC$ ...................................................... 5.4.2
- Conclusion sobre NetBIOS .................................... 5.5
- Vulnerabilidades WEB .......................................... 6
- Vulnerabilidades en IIS ..................................... 6.1
- Escapando del arbol de web: Unicode's bug ................. 6.1.1
- IISHACK ................................................... 6.1.2
- Hackeandolo via user anonymous ............................ 6.1.3
- Hackeandolo via IISADMIN .................................. 6.1.4
- Ejecucion de comandos locales MSADC ....................... 6.1.5
- El bug de los .idc y .ida ................................. 6.1.6
- Viendo el codigo de los .asp y de demas ficheros .......... 6.1.7
- El bug del punto en .asp ................................ 6.1.7.1
- El bug del +.htr ........................................ 6.1.7.2
- El bug de Null.htw ...................................... 6.1.7.3
- El bug de ISM.DLL ....................................... 6.1.7.4
- El bug de Showcode y Codebrws ........................... 6.1.7.5
- El bug de webhits.dll y los ficheros .htw. .............. 6.1.7.6
- El bug del ::$DATA ...................................... 6.1.7.7
- El bug de Adsamples ..................................... 6.1.7.8
- El bug de WebDAV ........................................ 6.1.7.9
- Conclusion a IIS .......................................... 6.1.7.10
- Vulnerabilidades de Frontpage ............................... 6.2
- DoS a las extensiones ..................................... 6.2.1
- Otro DoS a las extensiones gracias a Ms-Dos ............... 6.2.2
- Scripting con shtml.dll ................................... 6.2.3
- Otra vez las extensiones .................................. 6.2.4
- Conclusion a Frontpage .................................... 6.2.5
- El registro ................................................... 7
- Estructura del registro ..................................... 7.1
- Vulnerabilidades del registro ............................... 7.2
- Conclusion sobre el registro ................................ 7.3
- Desbordamientos de pila en NT ................................. 8
- Shellcodes .................................................. 8.1
- BOFS ........................................................ 8.2
- SAM ........................................................... 9
- Analisis de las SAM ......................................... 9.1
- Crackeandolas ............................................... 9.2
- Herramientas de control remoto ................................ 10
- Software comercial .......................................... 10.1
- Citrix .................................................... 10.1.2
- ControlIT ................................................. 10.1.3
- Pc Anywhere ............................................... 10.1.4
- Reach OUT ................................................. 10.1.5
- Remotely Anywhere ......................................... 10.1.6
- Timbuktu .................................................. 10.1.7
- VNC ....................................................... 10.1.8
- Troyanos .................................................... 10.2
- Pros y contras ............................................ 10.2.2
- Comparativa ............................................... 10.2.3
- Resumen sobre las herramientas de control remoto ............ 10.2.4
- Rootkits ...................................................... 12
- Resumen ....................................................... 13
Parte III, Hacking fisico de NT
-------------------------------
- Iniciacion .................................................... 14
- Consiguiendo acceso ........................................... 15
- Saltandose la BIOS .......................................... 15.1
- Obteniendo las SAM ............................................ 16
- Asegurando la estancia ........................................ 17
- Borrando las huellas .......................................... 18
- Resumen ....................................................... 19
Parte IV, Hacking remoto de NT
------------------------------
- Enumeracion de fallos ......................................... 20
- Incursion en el sistema ....................................... 21
- Asegurando nuestra estancia ................................... 22
- Borrado de huellas ............................................ 23
- Conclusiones .................................................. 24
Parte V, Apendice y conclusion final
------------------------------------
- Apendice ...................................................... 25
- Webs ........................................................ 25.1
- Listas de correo ............................................ 25.2
- Grupos de noticias .......................................... 25.3
- Demas documentos en la red .................................. 25.4
- Bibliografia ................................................ 25.5
- Herramientas .................................................. 25.6
- Ultimas palabras y conclusion final ........................... 26
-=-
Parte I - Primeros contactos
============================
[ 0 - Prologo ]
-------------
Bienvenido.
He creido necesario el escribir esta guia debido a la falta de una guia
solida de hack en NT en espa~ol que este actualizada. Me he encontrado con
cantidad de textos que explican determinados bugs de NT, o ciertos aspectos
de este en concreto, pero tan solo he visto un par de documentos en los que
se tratara la seguridad de NT globalmente.
Asi pues, un buen dia de agosto del 2000, me decidi a escribir una guia
que cubriera ese hueco; y atropellando mi modestia, diria que se ha logrado.
Si quereis mandarme vuestra opinion del documento, me la podeis mandar a mi
e-mail y tratare de responderla lo mas brevemente posible. Agradeceria que
usaseis PGP para cifrar vuestros mensajes... mi llave PGP la encontrareis al
final del documento.
En fin, no me quisiera hacer demasiado pesado ya en la introduccion...
que aun os queda por leer el resto del documento.
Disfruta.
[ 1 - Nociones basicas ]
----------------------
Para seguir la guia tendremos que tener unas nociones sobre NT que puede
que no tengamos, y que nos seran necesarias para comprender el resto de la
guia.
[ 1.1 - Que es Windows NT? ]
--------------------------
Es el sistema operativo de red desarrollado por Microsoft, como respuesta
al crecimiento en el mercado de redes locales. A diferencia de Windows
3.1, que funciona sobre MS-DOS (y por lo tanto sobre su FAT de 16 bits) y
Windows '95, que utiliza una tabla de asignacion en disco, NT realiza el
seguimiento de archivos con el sistema NTFS (NT file system), sistema que es
el nucleo de los niveles de control de acceso a la informacion del servidor,
y responsable de la estructura de seguridad en NT. Eso no quiere decir que
no pueda usar FAT, como su hermano peque~o Windows 9x o millenium, sin
embargo NT cumple mejor los requisitos de seguridad con NTFS.
Es un SO realmente facil de instalar y configurar, por lo que poner en
marcha un servidor corriendo por NT es cosa de ni~os, por su interfaz
intuitiva y la ayuda incorporada que lleva.
Es un sistema robusto (no se cuelga facilmente como Win9x), seguro (el
modelo de seguridad que veremos mas adelante lo demuestra), y quiza lo unico
en lo que se queda un poco atras es en los recursos que requiere para que
funcione decentemente.
[ 1.2 - Historia de Windows NT ]
------------------------------
En un principio, Microsoft pensaba hacer cambiar a los usuarios de
Windows 3.11 (o Windows para trabajo en grupo) a Windows NT, una decision
muy arriesgada por su parte, por la diferencia de interface que existia
entre ambos sistemas operativos, y demas cambios que harian que el usuario
tenga que estudiar otro sistema operativo completamente nuevo, con el tiempo
que conlleva eso.
Windows NT salio a la luz, y sus ventas eran muy bajas, pasando sin pena
ni gloria ante el mercado de servidores.
Debido a eso Microsoft decidio sacar a la luz lo que seria el boom en los
sistemas operativos para usuarios domesticos: Windows '95. Habia nacido un
sistema operativo que haria historia, por las funciones nuevas que
incorporaba respecto a Win 3.1, por estar mas enfocado a Internet y por su
tremenda facilidad de uso. Seria un trabajo perfecto el de los chicos de
Microsoft sino fuese porque era un sistema muy inestable, se colgaba cuando
se exigia unos recursos medianos a la maquina, al reconocer hardware, etc.
Todo el mundo hablaba de Windows '95, unos decian que era maravilloso,
otros que era una chapuza... opiniones para todos los gustos.
La gente se veia forzada a migrar a Windows '95, pues la mayoria de
aplicaciones, juegos, etc. se encontraban exclusivamente para W95... por lo
que Win 3.1 y Win 3.11 quedaron en el olvido.
Ahora si, la gente no tenia excusa para no aprender a usar Windows NT,
pues su interfaz era identica a la de Windows '95, y se veia de lejos que
era el sistema que se iba dominar el mercado en un futuro cercano...
De esa forma y gracias a una campa~a de marketing arrogante, Microsoft
comenzo a ganar terreno estrepitosamente, y lo sigue ganando.
Hoy por hoy tenemos Windows 2000 Server, Advanced Server, y Datacenter
como sistemas operativos de servidor (los cuales veremos mas adelante), los
sucesores de NT 4, y que por comodidad son llamados muchas veces NT 5.
[ 1.3 - Modelo de seguridad ]
---------------------------
El modelo de seguridad de NT protege cada uno de los objetos de forma
individual, casa uno con sus propios atributos de seguridad. La ACL (access
Control List o Lista de Control de acceso) especifica los usuarios y grupos
que pueden acceder a un determinado objeto y que privilegios tienen sobre
el.
Dicho modelo de seguridad esta formado por 4 componentes:
- Local Security Authority (Autoridad de seguridad local)
- SAM: Security Account Manager (Administrador de seguridad de cuentas)
- SRM: Security Reference Monitor (Monitor de referencia de seguridad)
- UI: User Interface (Interfaz de usuario)
Seguramente no os debe haber quedado muy claro cada componente del modelo
de seguridad asi que vamos a explicar cada uno:
* Local Segurity Authority (Autoridad de seguridad local)
-------------------------------------------------------
Es el componente central de la seguridad en NT. Este se encarga de
controlar la directiva local de seguridad y la autentificacion de los
usuarios, y de generar y registrar los mensajes de auditoria. Tambien se
le suele llamar subsistema de seguridad. Se encarga del trabajo mas
administrativo del sistema de seguridad.
* Seccurity Account Manager (Administrador de seguridad de cuentas)
-----------------------------------------------------------------
Este se encarga del control de las cuentas de grupo y de usuario, ademas
de proporcionar servicios de autentificacion de usuario para la autoridad
de seguridad local.
* Security Reference Monitor (Monitor de referencia de seguridad)
---------------------------------------------------------------
Este se encarga de la validacion de acceso y de la auditoria para la
autoridad de seguridad local. Comprueba las cuentas de usuario mientras
el usuario intenta acceder a los archivos, directorios, etc. y les
permite o deniega las peticiones del usuario. Ademas genera mensajes de
auditoria dependiendo de las decisiones que el usuario tome. Contiene una
copia del codigo de validacion de acceso para asegurar que el Monitor de
referencia protege los recursos de forma uniforme en todo el sistema,
independientemente del tipo de recurso.
Quiza esto ultimo no haya quedado claro, me explico. Cada vez que te
logueas en NT, pasado el proceso de autentificacion, tu nombre de usuario
es relacionado con un numerito. Y asi con todos los usuarios del sistema.
De manera que cuando quieras acceder a un archivo/carpeta/unidad, se crea
un sujeto. El sujeto contiene 2 elementos: Tu numero identificativo, el
objeto al que quieres acceder. El SRM es el encargado de dar el visto
bueno o no a la peticion, para lo cual mirara las ACE (las entradas de
control de acceso), y si figura tu nombre de usuario, puedes acceder, de
lo contrario se te mostrara un mensaje de error. Se vera mejor con un...
Ejemplo de como el usuario Tahum accede a el archivo foo.exe:
C:> call archivosfoo.exe
( Ahora es cuando el SRM mira mi elemento y mira las ACE del objeto que
he llamado, en este caso foo.exe. )
Sujeto
.----.----------.
| 15 | foo.exe |
`----^----------'
( Como el usuario Tahum tiene derechos de ejecucion en foo.exe, se crea
el sujeto satisfactoriamente. )
Pues como se ve el SRM juega un papel muy importante en la seguridad de
NT. No es de extra~ar que sea el objetivo primordial de varios rootkits.
* User Interface (Interfaz de usuario)
------------------------------------
Es lo que el usuario ve, lo puramente visual. No requiere una mayor
explicacion.
Bueno, vistos ya los componentes del modelo de seguridad pasamos a tratar
otros aspectos referentes a la seguridad en NT.
NT admite niveles de acceso para cada grupo, de manera que el grupo
"Gente humilde" solo tuviera acceso de lectura a la carpeta "Dinero", el
grupo "Causas nobles" no tuviera ningun privilegio sobre esa carpeta y el
grupo "Iglesia" tuviera todos los derechos sobre ella.
Si este recurso fuera un recurso compartido _administrativo_ mostraria un
$ al final del nombre del objeto, por ejemplo dinero$.
Una cosa buena que tiene WinNT es que si por ejemplo el usuario "Cura"
crea un archivo llamado "Cuenta de ahorros en suiza", y se le olvida definir
sus atributos de seguridad, solo el sera el unico que pueda acceder al
archivo, anulando cualquier privilegio sobre los demas grupos y usuarios
(exceptuando los administradores), por lo que solo el podra acceder a ese
archivo.
Windows NT es ampliable, de manera que los programas pueden a~adir nuevos
modelos de seguridad con caracteristicas de seguridad nuevas, lo que ayudara
a mejorar la seguridad sin tener que reescribir de nuevo el modelo de
seguridad.
[ 1.4 - Funcionamiento de una red NT ]
------------------------------------
En una red NT puede haber varios servidores cumpliendo cada uno funciones
distintas. Eso no significa que tenga de haber 3 servidores en una red para
que la red funciona, como veremos a continuacion.
Las funciones que pueden desempe~ar los servidores con NT Server (o W2000
Server) son las siguientes:
PDC: Son las siglas de Primary Domain Controller, o lo que es lo mismo
controlador primario del dominio. Este es el servidor que mantien el
dominio, el mas importante por decirlo de alguna manera.
En este servidor se mantienen las bases de datos de los usuarios de
la red.
Solo puede haber un PDC en la red.
BCD: Siglas de Backup Domain Controller, o controlador de respaldo de
dominio. Este es el servidor que hara la funcion de PDC en caso de
que el PCD se encontrara no operativo. Asimismo tambien se encarga
de autentificar a los usuarios junto al PCD, para mayor seguridad.
En un dominio es muy normal encontrarse con varios BDC.
Member Server: Este servidor no tiene una funcion especial, el uso que se
le de depende de nosotros; y no interviene el el
funcionamiento del dominio.
Para que todo quede claro metere un peque~o ejemplo de una red NT
marcando las funciones de cada miembro de la red.
.---------. .---------. .---------. ||
.-------. | .-------. | .----------. |===================::
| | | | | | | | |
| PDC | | | BDC | | | MEMBER | |
| | | | | | | SERVER | |
| | | | | | | | |
| o |----' | o |----' | o |----'
| | | | | |
`-------'=======`-------' `----------'
|| ||
|| Peticion1 ||
|| ||
|| ||
|| ||
|| ||
`:====. .==========================:'
.-------.
| | Explicacion de lo aqui mostrado.
.-----------. |
| | o | Como se ve los servidores de la red ofrecen distintos
| Cliente | | tipos de servicios al cliente. Aqui podemos ver como
| |----' el cliente hace una peticion al PDC, en este caso de
| | autentificacion. El PDC comprueba que el usuario este
| | en la ACE (Entrada de Control de Acceso) y que su
`-----------' contrase~a es correcta. Para eso se vale tambien del
BDC, para cerciorarse de que los datos son correctos.
Luego se le deja pasar y hace una peticion al member
server, el cual hace de proxy y dirige los paquetes
a su destino.
[ 1.5 - Dominios ]
----------------
Hasta ahora se ha nombrado el termino "dominio" en las descripciones ya
vistas, pero el concepto de dominio es mas amplio, y merece una explicacion
mas extensa.
Un dominio se podria definir como un conjunto de ordenadores que
comparten entre si unas caracteristicas comunes en lo referente a accesos.
Un usuario registrado en un dominio con un login y un pass puede acceder a
todos los servidores de dicho dominio utilizando el mismo l/p.
Cabe decir que en un dominio hay servidores y clientes o estaciones de
trabajo por norma general.
Cuando el administrador del dominio da de alta a un nuevo usuario, lo
hace sobre el controlador primario del dominio (PDC). Los datos de este
nuevo usuario (login, pass, comentarios, especificaciones de la
contrase~a...) se agregan a un archivo llamado SAM, que lo tiene cualquier
servidor NT, y que seria el equivalente al archivo passwd en u*x, con
algunas diferencias que veremos mas adelante.
Como antes dije el BDC actua de respaldo por si el PDC dejara de estar
operable, por lo que el PDC le tiene que mandar una copia del SAM de manera
periodica. Esto automatiza en gran parte la tarea del administrador.
El proceso de replicar el archivo SAM desde el PDC a todos los BDC de la
red de denomina replicacion.
Ahora empieza lo interesante, el como se relacionan los dominios. A la
hora de administrar una red NT es necesaria la relacion de confianza entre
distintos servidores, o servidor - cliente, para realizar una tarea
administrativa mas sencilla y eficiente.
Es importante saber asignar correctamente los permisos entre dominios.
[ 1.6 - Grupos y permisos ]
-------------------------
En NT el concepto de grupo y usuario es el mismo que en otros sistemas,
sin embargo existen variantes que veremos a continuacion:
- Usuarios locales: Estos usuarios tienen acceso a las maquinas en las que
fueron creados. Estos fueron creados en el
administrador de usuarios.
- Usuarios del dominio: Estos usuarios tienen acceso al dominio y a los
recursos que en el se comparten. Estos fueron
creados por el administrador de usuarios de
Dominio.
- Grupos locales: Estos grupos estan formados por usuarios de un mismo
dominio, y solo pueden ser vistos desde ese dominio.
- Grupos globales: Como los anteriores con la diferencia de que pueden ser
vistos desde todos los dominios en los que tenga una
relacion de confianza. Lo unico que cambia es que a este
grupo lo podran ver desde otros dominios.
Veamos ahora los grupos que se instalan por defecto en NT:
Administradores: Los dioses del sistema, lo pueden hacer todo, al igual
que el root en u*x.
Invitados: Pues estos en principio estan restringidos a un directorio, y
con unos privilegios muy escasos (aunque recuerdo una
universidad con permisos de escritura para los invitados... ver
para creer).
Operadores de copia: Estos pueden sobreescribir restricciones de seguridad
con el unico proposito de hacer copias de seguridad o
restaurar ficheros.
Reduplicadores: Estos solo tienen privilegios para copiar ficheros, para
hacer copias de seguridad.
Usuarios: Los usuarios comunes con privilegios restringidos. Pueden
utilizar el sistema y guardar archivos, pero no pueden instalar
programas o hacer cambios potencialmente peligrosos para el
sistema de archivos y la configuracion.
Usuarios avanzados: Usuarios del sistema con altos privilegios. Estos
tienen mas privilegios que los usuarios, ya que ademas
pueden instalar programas y modificar el equipo. Sin
embargo no pueden leer archivos que sean de otros
usuarios.
Estos son los grupos que se instalan por defecto en NT5, en NT4 hay mas
grupos como los operadores de impresion pero veo innecesario explicarlos ya
que aparte de que no necesiten explicacion (operador de impresion por
ejemplo no necesita comentarse) se encuentran en muy pocos sistemas...
[ 1.7 - Protocolo SMB ]
---------------------
He querido darle la importancia que se merece a este protocolo, llamado
Server Message Block (en espa~ol Bloque de mensaje de Servidor), por vagueria
llamado SMB, el cual es interesante porque permite que los usuarios accedan
a los recursos compartidos, al registro, y a otros servicios del sistema de
forma _remota_.
Los usuarios que se comunican con el servidor mediante el protocolo SMB
pueden acceder a cualquier servicio al que pueda acceder un usuario que se
comunique con NetBIOS.
Se pueden establecer permisos SMB en archivos, directorios compartidos,
llaves del registro, e incluso impresoras.
En el nivel de sesion SMB, NT controla el acceso mediante nombres de
usuario y contrase~as (la cuenta invitado no tiene contrase~a).
[ 1.8 - Porque la gente escoge NT? ]
----------------------------------
Basicamente por 3 motivos. Uno es la sencillez con la que se usa y
administra NT... sin embargo y pese lo sencillo que es es muy frecuente
encontrar un NT mal configurado.
Otra es que tiene servicio tecnico, por lo que en caso de que surja algun
imprevisto no tienen mas que llamar al servicio tecnico de la casa Microsoft
para solucionar el problema. Esto ofrece una gran tranquilidad a algunos
administradores de NT que asi se ahorran el tener que leer esos manuales que
venian con el programa...
Esto da que pensar acerca de la preparacion profesional de algunos admins
de NT.
[ 1.9 - Sus distintas versiones ]
-------------------------------
Ahora veamos las distintas versiones de W2K y su equivalente a sus
antiguas versiones en NT.
Windows 2000 Professional equivale a Windows NT 4 Workstation. Es la
version destinada al usuario que desea trabajar con la robustez que NT
ofrece pero no necesita cumplir funciones de servidor.
Windows 2000 Server es el equivalente a Windows NT 4 Server. Es la
version para servidores de redes peque~as/medianas. Basicamente es como la
version anterior pero com mas herramientas administrativas y unas capas de
maquillaje al entorno. Osea que cambiando unas pocas llaves del registro y
metiendole las herramientas administrativas de W2K Server haces de la
version Professional una version Server.
Windows 2000 Advanced server equivaldria a Windows NT 4 Enterprise
Server, con algunas diferencias mas o menos significativas pero es la
version con la que se corresponderia. Esta es la version para redes
considerablemente grandes.
Windows 2000 Datacenter no se corresponderia con ninguna version anterior
de NT, y es la mas bestia de toda la gama de W2K, ya que esta preparada para
servidores con unas caracteristicas que quitan el sentido a cualquiera (solo
decir que soporta 32 microprocesadores y 16 gb de memoria).
[ 1.10 - Su futuro ]
------------------
El futuro que le espera a NT no puede ser mas alentador. Dia a dia NT
gana terreno en el mercado de sistemas operativos de red. Incluso esta
amenazando seriamente el mercado de LiNUX en el terreno de servidores, pese
a que estos dominen actualmente el mercado.
[ 2 - Arquitectura del sistema ]
------------------------------
Vistas ya las nociones basicas, pasamos a estudiar la arquitectura del
sistema de nt; algo que no es tan basico, pero tened en cuenta de que lo que
un programador puede hacer para NT con esta informacion tampoco es nada
basico.
Si de momento no pretendeis programar bajo WinNT, no necesitareis
entender esta parte.
Cabe destacar que gran parte de la informacion que he metido en esta
seccion esta basada en dos libros en concreto y una web, la web de proyecto
enete.
[ 2.1 - Subsistemas protegidos ]
------------------------------
Los subsistemas protegidos son una serie de procesos servidores que se
ejecutan en modo NO privilegiado (como los procesos de usuario), los cuales
poseen algunas caracteristicas que los diferencian de estos.
Primero veamos que significan esos palabros tan raros como "procesos
servidores", "modo no privilegiado", y demas tecnicismos.
Esto no es nada del otro mundo, pero para entenderlo veamos algunos
aspectos de NT que son necesarios para entender la explicacion. Espero no
irme por las ramas...
La arquitectura de NT distingue de dos tipos de nucleo... uno llamado
'Executive' (o administrativo) y otro llamado 'subsistema protegido'. A los
modulos de kernel executive se les llama modulos ejecutados en modo
privilegiado. Se dice privilegiado por las funciones que puede cumplir. Y a
los modulos ejecutados en modo no privilegiado se les llama subsistemas
protegidos. Espero haya quedado clara la definicion de modo no privilegiado
y modo privilegiado... si es asi prosigamos.
Definamos ahora "procesos servidores". Hemos de saber que NT entiende a
los programas como clientes del SO, clientes que el propio SO debe de
servir. Para esto NT viene equipado con varias entidades servidoras.
Y por ultimo repasemos el conpecto de subsistemas protegidos con otras
palabras para que no queden dudas. Son una seria de procesos servidores
ejecutados en modo no privilegiado.
Estos se inician al arrancar NT, y puede haber dos tipos: los integrales
y los de entorno.
Pues por muy pesado que se haga esto tengo que seguir con las
definiciones. Un subsistema integral es aquel servidor que ejecuta una
funcion muy importante en el SO, como por ejemplo el que gestiona el tema de
la seguridad. Lo de integral pensad que es por aquello de que es esencial
para el SO.
Los subsistemas de entorno son los que dan respaldo a los programas
provinentes de sistemas operativos diferentes, adaptandolos para que puedan
ser ejecutados en NT. Nos encontramos 3 de este tipo:
-[ S u b s i s t e m a s d e e n t o r n o ]-
* Win32
-----
Este es el principal, es el que proporciona la interfaz para los
programas especificamente programados para NT. Sin embargo sus funciones
van mas alla, pues no solo se encarga de los programas exclusivamente
para NT, sino tambien interpreta los fabricados para otros sistemas
operativos de la misma casa, como las hechas para DOS, Win9x e incluso
Win 3.11 e inferiores. Para ello crearia un nuevo subsistema protegido
para cada una de ellas. En caso de que el programa que tenga que
interpretar sea de Dos o Windows 3.11 o inferior, asi el subsistema
creado se llamaria VDM, siglas de Virtual DOS Machine, o maquina virtual
DOS. Este no es mas que un _simulador_ del DOS, no el DOS en si. Para
Win 3.11 e inferiores las llamadas al API (Application Program Interface,
o programa de aplicacion de interfaz. Esta es la parte del sistema
operativo que provee a las aplicaciones una interfaz de uso comun) de
Win16 son asociadas con las del API Win32, lo que se llama WOW (Windows
On Win32). Este subsistema se encarga de todo lo relacionado con la GUI
(Graphical User Interface, o interfaz de usuario grafica), teniendo el
control de las entradas del usuario y las salidas del programa.
* POSIX
-----
Son las siglas de Portable Operating System Interface for UNIX. Este es
el que da soporte a las aplicaciones Unix (y derivados de esta). Esta
norma se elaboro por la IEEE (Instituto Of Electric And Electronic
Engineers, o en espa~ol Instituto de Ingenieros en electricidad y
electronica) con el fin de lograr la portabilidad de los programas en
distintos entornos Unix. Es un conjunto de 23 normas, las cuales son
identificadas con nombres desde IEEE 1003.0 a IEEE 1003.22, o lo que es
lo mismo POSIX.0 a POSIX.22. De todas estas el subsistema posix de NT tan
solo soporta 1, la POSIX.1, la cual define un conjunto de llamadas al
sistema en el lenguaje C. Este subsistema tambien sirve las llamadas
interactuando con el Executive. Aparte de eso define aspectos del
sistema Unix que ayudan a definirlo mejor, como son las relaciones
jerarquicas entre los procesos padres e hijos.
* OS/2
----
Pues igual pero este da soporte a las aplicaciones del OS/2. Suministra
la interfaz grafica y las llamadas al sistema, cuyas llamadas son
servidas con la ayuda del executive.
-[ S u b s i s t e m a s i n t e g r a l e s ]-
* Proceso de inicio
-----------------
Este proceso (tambien llamado Logon Process), recibe las peticiones de
conexion por parte de los usuarios. No es uno sino dos procesos, y cada
uno se encarga de un tipo distinto de conexion. Uno es el proceso de
inicio local, que es el que gestiona la conexion de usuarios locales
directamente a un ordenador NT, y el otro es el proceso de inicio remoto,
el cual es el encargado de gestionar las conexiones de los usuarios
remotos a procesos servidores de NT. Sino teneis claro lo de procesos
servidores mirar la explicacion dada mas arriba.
* Seguridad
---------
El subsistema de seguridad realiza un papel muy importante, ya que
interacciona con el proceso de inicio y el monitor de referencias de
seguridad, contruyendose el modelo de seguridad de NT. Este subsistema
interactua con el proceso de inicio, atendiendo las peticiones de acceso
al sistema. Dicho subsistema cuanta con dos componentes: la autoridad de
seguridad local y el administrador de cuentas, los cuales vimos mas
arriba.
[ 2.2 - El executive ]
--------------------
Vistos las dos clases de subsistemas protegidos, pasamos a ver el
nucleo ejecutado en modo privilegiado, sin restriccion alguna, el executive.
Definiremos al Executive como un conjunto de programas que se ejecutan
en modo privilegiado. Aqui explicaremos cuales son y para que sirven esos
programas.
Destacar que el executive _NO_ es el nucleo de NT, sino que el nucleo
de NT es uno de los programas componentes de este.
Seguramente a algunos les resultara incomodo ver como me dirijo a un
conglomerado de aplicaciones software (valga la rebuznancia) como programas.
Por comodidad y por que significa lo mismo me dirijo a ellos como programas.
Supongo que eso no molestara a nadie.
Veamos de que se compone el executive mas a fondo:
* Object Manager
--------------
El Object Manager (o administrador de objetos) es el encargado de crear,
gestionar y eliminar todos los objetos del Executive.
* Process Manager
---------------
El administrador de procesos se encarga de crear, gestionar y eliminar
los procesos y subprocesos. De esta manera subministra el tiempo de CPU
adecuado para cada subproceso.
* Virtual Memory Manager
----------------------
En espa~ol administrador de memoria virtual. Gestiona la memoria en el
sistema, determina los bloques de trabajo de cada proceso, entre otros
aspectos relacionados con la politica de gestion de la memoria.
* LPC Facility
------------
En espa~ol facilidad de llamada a procediciento local. Gestiona la
recepcion y el envio de las llamadas a procedimiento local entre las
aplicaciones cliente y los subsistemas protegidos.
* I/O Manager
-----------
El administrador de entrada salida consta de bastantes subcomponentes,
como el administrador del sistema de ficheros, el administrador de caches,
los drivers de dispositivo del sistema y el administrador de caches.
Basicamente su funcion es la de gestionar la comunicacion entre los
distintos drivers de un dispositivo.
Este trabaja en conjunto con otros componentes del Executive, sobre todo
el VMM.
No vamos a explicar en detalle la funcion de todos los subcomponentes,
para ello revisar el apendice donde se os remite a lugares con mucha
informacion sobre este tema.
* El monitor de referencias a seguridad
-------------------------------------
Ya lo hemos explicado anteriormente
* El kernel
---------
He aqui el nucleo, el "alma mater" de NT. Como veis es un componente mas
del executive, y no el executive en si. Esto es porque no se quiso
sobrecargar de funciones.
Se encarga de las funciones mas basicas, como la ejecucion de
subprocesos, el manejo de las interrupciones hardware, entre otras cosas.
* Hal
---
Y aqui tenemos al tan famoso Hal. Sus siglas significan Hardware
Abstraction Layer, que en espa~ol equivale a nivel de abstraccion de
hardware. Es la interfaz existente entre los drivers y NT. Es capaz de
adaptar los drivers a otras arquitecturas de entrada/salida, sin tener que
ser demasiado modificados.
[ 2.3 - Llamadas a procedimientos ]
---------------------------------
Como ya sabeis NT posee una arquitectura de tipo cliente-servidor. Por
eso NT viene equipado con un mecanismo de llamada a procedimiento remoto y
otro para los procedimientos de llamada local.
Voy a intentar explicar cada uno de ellos lo mas brevemente posible,
dando una vision general de lo que son. No me adentrare mas sencillamente
porque el tema se complica lo suyo, y lo que pretendo es dar una idea
general, que os hagais una idea.
Por supuesto si quereis saber mas, podeis pasaros por el apendice, donde
encontrareis referencias a sitios/documentos donde poder documentaros mas.
* Local Procedure Call
--------------------
En espa~ol llamada a procedimiento local. Este tipo de procedimiento es
usado cuando un proceso requiere los servicios de algun subsistema
protegido, normalmente el subsistema Win32.
* Remote Procedure Call
---------------------
Igual que el anterior pero al contrario de este este se efectua
remotamente, accediendo a las funciones de los procesos servidor desde un
proceso cliente de manera transparente para el usuario.
[ 3 - Diferencias entre NT4 y W2000 ]
-----------------------------------
Es hora de ver que diferencias existen entre estas distintas versiones de
NT. Muy pocos administradores que usan NT4 o W2000 server (o cualquiera de
sus variantes orientadas a servidores) no tienen claro que tiene de nuevo
W2000 (a partir de ahora W2K) sobre NT4. Te diran que es mas seguro, que es
mas robusto, Aunque no se sepa bien porque. Pasamos a ver los aspectos
a destacar mas relevantes.
[ 3.1 - Active Directory ]
------------------------
No podia ser de otra manera, que empezando por uno de los cambios mas
destacables, la aparicion del Active Directory.
En la traduccion al espa~ol nos quedaria Directorio Activo, que por
decir, no dice mucho. Es el nuevo servicio de directorios para W2K. Aqui se
almacena la informacion sobre los recursos de la red y ademas provee los
servicios que hacen que la tarea de administracion se simplifique de manera
notable.
Este servicio esta basado en DNS (Domain Name Server) y LDAP (Lightweight
Directory Access Prococol).
De momento solo se ha encontrado un solo bug del Active Directory
(octubre del 2000), por lo que parece que los chicos de MS se han molestado
mas que de costumbre en el tema de la seguridad.
[ 3.2 - DNS Dinamico ]
--------------------
Esta nueva caracteristica logra que a cada maquina se le reconozca no por
su nombre netbios sino por su nombre DNS.
Es decir lo usara para resolver o traducir nombres de ordenadores a
direcciones IP. Tambien lo usa como su servicio de nombres de dominio.
Ventaja? pues que se usa el nombre para los dominios de inet y tus
ordenadores del dominio.
Sin embargo de dinamico poco vemos aqui, y es que aun no he explicado el
meollo de la cuestion. Lo de dinamico viene a la caracteristica de asignar
a los ordenadores clientes con ip's asignadas automaticamente los servicios
DNS. de ahi lo de dinamico.
Para quien se pregunte si se van a suprimir los nombres netbios por esta
nueva caracteristica, que sepa que no. Como ya es costumbre en NT, se
mantienen la compatibilidad con facetas anteriores (lo que hace a NT mas
debil conservando aspectos poco seguros).
[ 3.3 Estandar Kerberos ]
-----------------------
Ya era hora de que implementasen Kerberos, era algo que se pedia desde
hace tiempo, y por fin ya lo tenemos. Los u*x ya gozaban del modulo de
seguridad Kerberos hace tiempo.
En los entornos de red, los programas usan el protocolo NTLM (NT Lan
Manager) para autentificarse, y para proteger sus datos. Ahora esto cambiara
y se usara Kerberos.
El porque de la sustitucion es las mejoras que Kerberos aporta a NTLM,
entre las que se encuentra la autentificacion mutua. Expliquemonos, lo de
mutua viene de que no solo el cliente se tendra que autentificar ante el
servidor sino tambien el servidor ante el cliente. La deshonra para los
servidores, el rebajarse a autentificarse cara un mero cliente

.
Quien quiera entender el funcionamiento de Kerberos que consulte el
apendice.
[ 3.4 Mejoras en el NTFS ]
------------------------
Pues entre las nuevas mejoras al sistema de archivos nativo de NT nos
encontramos con posibilidades como la de a~adir espacio en una particion
NTFS sin tener que reiniciar la maquina. Tambien ofrece soporte para
encriptar los archivos, poder limitar el espacio de disco, etc.
[ 3.5 Demas mejoras ]
-------------------
Aparte de estas mejoras nos encontramos con mas herramientas
administrativas, entre las que destacar el servidor de telnet, de manera que
ya no hay que recurrir a herramientas de terceros para hacer algo tan basico
como administrar el servicio telnet.
Ademas incorpora intellimirror, que es un conjunto de caracteristicas
nativas de W2K para administrar las configuraciones, los cambios de
escritorio, y que nos puede servir incluso para instalar remotamente W2K.
Algo que me ha llamado la atencion es que permite ademas el trabajar con
archivos compartidos, de manera que si te desconectas de una red, al
reconectarte a dicha red no pierdes las preferencias que tenias al estar
conectado.
Tambien soporta las tarjetas inteligentes, tambien llamadas smartcards,
las cuales pueden permitir entre otras cosas realizar el proceso de
autentificacion por otros factores distintos al tipico login/pass, en
principio aportando mas seguridad.
Ademas de esto puedes encontrar que hay mas compatibilidad con los
controladores, con el hardware, se mejora el dfs, etc.
[ 4 - Resumen ]
-------------
Aqui se ha visto algo de la arquitectura de NT, los componentes de su
modelo de seguridad, sus novedades, algo de su funcionamiento en red, entre
otras cosas.
Ahora que ya se han asimilado algunos conceptos esenciales, pasemos a ver
como esta el panorama de la inseguridad de NT.
-=-
Parte II - Agujeros del sistema
===============================
Ahora vamos a profundizar en los agujeros de seguridad mas comunes de NT.
Asimismo repasaremos los conceptos que esten relacionados con estos agujeros
con el fin de comprenderlos mejor.