-[ 0x05 ]--------------------------------------------------------------------

-[ La Biblia del Hacker de NT ]----------------------------------------------

-[ by Tahum ]---------------------------------------------------------SET-24-

 

 

 

La biblia del hacker de NT

Version del documento: 1.2

 

 

* By Tahum, Tahum@phreaker.net

* Primera version: 15/12/00

* Ultima actualizacion: 17/1/01

 

 

 

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 archivos\foo.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.

 

 

 

[ 5 - Introduccion a NetBIOS ]

----------------------------

 

NetBIOS es una Interfaz de programacion de aplicaciones (o API) que los

programas en una red local lo pueden utilizar. NetBIOS proporciona a los

programas un conjunto uniforme de comandos para solicitar los servicios de

bajo nivel necesarios para administrar nombres, dirigir sesiones y enviar

datagramas entre los nodos de una red.

Normalmente es usado en redes locales peque~as, de 200 maquinas cliente

para abajo.

Este puede ser usado en casi todos los sistemas operativos de red, y

pudiendo ser transportado sobre bastantes protocolos de red.

 

 

 

[ 5.1 - Historia de NetBIOS ]

---------------------------

 

NetBIOS son las siglas de Network Basic Input/Output System, y se

desarrollo por IBM y Systek, los cuales lo crearon con el fin de poder

subministrar a los programas de una interfaz que pudiera acceder a los

recursos de las redes locales.

En poco tiempo NetBIOS se asento como un estandar para acceder a todo

tipo de redes, gracias entre otras cosas a que era tan solo una interfaz

entre las aplicaciones y la tarjeta ethernet, con lo cual era independiente

del hardware que se usara.

Mas tarde salio a la luz Netbeui, un protocolo de red de Microsoft, que

es NetBIOS pero bastante mejorado, a~adiendo una capa de transporte no

estandarizada en NetBIOS.

 

 

[ 5.2 - Conceptos sobre NetBIOS ]

--------------------------------

 

Antes de seguir veremos algo mas sobre NetBIOS que nos ayudara a

entenderlo mas.

Primero veamos los nombres NetBIOS:

 

 

Nombres NetBIOS

---------------

 

Los llamados Nombres NetBIOS se usan para identificar los distintos

recursos en la red. Gracias a estos nombres los equipos pueden comunicarse

utilizando datagramas de NetBIOS y establecer sesiones entre ellos.

Estos nombres deben tener una longitud maxima de 16 caracteres

alfanumericos, cuyo primer caracter no puede ser '*'.

Para que un equipo se quiera registrar en la red, debe mandar un mensaje

broadcast en el que indique su nombre NetBIOS para poder ser identificado

por los otros equipos. Aqui pueden suceder dos cosas, una que el nombre no

este usado, por lo cual el equipo se registraria satisfactoriamente; la otra

que el nombre por el que se identifica ya esta siendo usado, por lo que el

intento de registro termina, teniendo que identificarse el equipo por otro

nombre.

Hay dos tipos de nombres, los nombres unicos (unique) y los de grupos

(group). Los nombres unicos como su nombre indica se llevan individualmente

por un equipo, el cual le representa _solo a el_. Los nombres de grupo

representan a un grupo por lo que se pueden repetir y puede repetirse varias

veces en la red.

Estos nombres pueden tener una longitud de 16 caracteres, sin embargo

son 15 caracteres los que identifican a nuestro equipo, y el caracter numero

16 es usado por los servicios de red de Microsoft como un sufijo para poder

identificar el tipo de servicio que ofrece.

Cada nodo de NetBIOS mantiene una tabla con informacion de todos los

nombres que se estan usando en el nodo.

A continuacion una aproximacion de lo que seria una tabla de NetBIOS, que

muestra los sufijos que se utilizan en NT:

 

 

Nombre Sufijo Tipo Servicio

----------------------------------------------------------------------

 

<nombre_del_ordenador> 00 U Workstation Service

<nombre_del_ordenador> 01 U Messenger Service

<\\_MSBROWSE_> 01 G Master Browser

<nombre_del_ordenador> 03 U Messenger Service

<nombre_del_ordenador> 06 U RAS Server Service

<nombre_del_ordenador> 1F U NetDDE Service

<nombre_del_ordenador> 20 U File Server Service

<nombre_del_ordenador> 21 U RAS Client Service

<nombre_del_ordenador> 22 U Exchange Interchange

<nombre_del_ordenador> 23 U Exchange Store

<nombre_del_ordenador> 24 U Exchange Directory

<nombre_del_ordenador> 30 U Modem Sharing Server Service

<nombre_del_ordenador> 31 U Modem Sharing Client Service

<nombre_del_ordenador> 43 U SMS Client Remote Control

<nombre_del_ordenador> 44 U SMS Admin Remote Control Tool

<nombre_del_ordenador> 45 U SMS Client Remote Chat

<nombre_del_ordenador> 46 U SMS Client Remote Transfer

<nombre_del_ordenador> 4C U DEC Pathworks TCPIP Service

<nombre_del_ordenador> 52 U DEC Pathworks TCPIP Service

<nombre_del_ordenador> 87 U Exchange MTA

<nombre_del_ordenador> 6A U Exchange IMC

<nombre_del_ordenador> BE U Network Monitor Agent

<nombre_del_ordenador> BF U Network Monitor Apps

<nombre_del_usuario> 03 U Messenger Service

<dominio> 00 G Domain Name

<dominio> 1B U Domain Master Browser

<dominio> 1C G Domain Controllers

<dominio> 1D U Master Browser

<dominio> 1E G Browser Service Elections

<INetServicios> 1C G Internet Information Server

<ISnombre_de_ordenador> 00 U Internet Information Server

 

 

He aqui la tipica tabla de nombres NetBIOS, de la cual paso a explicar

cada elemento:

 

El apartado "nombre" supongo que queda claro, el nombre del/los equipo/s

en cuestion, no tiene mas.

El apartado sufijo si necesita mayor explicacion. Estos sufijos

(expresados en hexadecimal) representan diversos servicios, veamos que

representa que:

 

 

---- --- -- - Tipo Unique ---- --- -- -

<00> Nombre del servicio de la estacion de trabajo, es el nombre que se

refiere al nombre NetBIOS.

<03> Nombre del servicio de mensajeria. Se usa cuando enviamos o

recibimos mensajes.

<06> Servicio de servidor RAS.

<1B> Nombre del dominio principal. Este identifica al primer controlador

de dominio.

<1F> Servicio NetDDE.

<20> Cliente RAS.

<BE> Monitor de agente de red.

<BF> Utilidad de monitor de red.

 

 

---- --- -- - Tipo Group ---- --- -- -

 

<1C> Nombre del grupo de dominio. Este contiene la lista de direcciones

de los equipos que estan registrados en el dominio.

<1D> Nombre del Master Browser.

<1E> Nombre de un grupo normal.

<20> Nombre de un grupo de Internet, con fines administrativos. Supongo

que mas de una vez habreis buscado grupos de este tipo :->.