Hola amigos les traigo un poco de info de como usar La programacion NT,es bastante largo pero vale la pena darle una leidita,se aprende mucho... saludos Disculpen amigos por la letra le pongo color y la modifico pero desp no aparece en el post,sepan disculpar igual se puede leer 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. dijo: Amigos como es muy largo decidi hacerlo en varias partes,espero no les moleste y sigan leyendo ...
Info de programacion NT
Datos archivados del Taringa! original
0puntos
102visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
5visitas
0comentarios
Dar puntos: