RareGaZz nº19:(rgz_0D):27/03/2002 << Back To RareGaZz nº 19
: :.:..:...:....:.....:......:.......:........:.........:..........: : : :::: : : : : RGZ_0D Contrase~as en Windows NT Seguridad y Auditoria Angel Protector : :.:..:...:....:.....:......:.......:........:.........:..........: : : :::: 01. Introduccion 02. Conceptos Generales 03. Debilidades en la Implementacion de Contrase~as 04. Debilidades en la Implementacion de Contrase~as en Windows NT 4.0 a. Que es un Hash? b. Como trabaja NT con valores Hash? c. Tipos basicos de autentificacion en Windows d. El verdadero problema: LANManager 06. Obteniendo datos de la SAM a. Arrancar con un sistema operativo distinto (NTFSDOS) b. Obtener la copia de seguridad de la sam del directorio repair c. Extraer los hashes de la SAM (PWDUMP) d. Obtener hashes por medio de escuchas en la red 07. Infalible: L0phtCrack a. LC3 en Accion b. Mejoras en la version 3.02 08. Windows 2000 09. Contramedidas 10. Conclusiones 11. Tools 12. Links/Referencias 01. Introduccion ~~~~~~~~~~~~~~~~ A menudo sucede que escuchamos algunas frases que por su naturaleza podrian aplicarse a un sin numero de situaciones. Al momento de decidir cual de ellas utilizaria para ilustrar esta nota, inmediatamente vino a mi mente aquella que reza *Hay que volver a las fuentes* Desde los inicios de la humanidad hubo cosas que mantener en secreto. Esta absolutamente comprobado que desde edades remotas la inventiva humana trabajo afanosamente por encontrar formas de comunicarse en forma segura. Mas de una persona se sorprendera al revisar la historia y descubrir lo antiguo del concepto de *contrase~a*. De aquellos primeros dias hasta hoy ha corrido mucha agua bajo el puente y sin embargo, las *contrase~as reutilizables* siguen siendo un eslabon fundamental en la seguridad de sistemas. 02. Conceptos Generales ~~~~~~~~~~~~~~~~~~~~~~~ El concepto de contrase~a reutilizable se encuentra presente en un sin numero de dispositivos y sistemas. Agendas electronicas, telefonos celulares , contestadores telefonicos, alarmas de incendio y por supuesto la mayoria de los sistemas informaticos sumado a un largo etcetera forman parte de este universo. Como suele suceder en estos casos, si bien existen diferencias sustanciales en su implementacion hay algunos conceptos propios de la autentificacion por contrase~as que parecen mantenerse inalterables en los sistemas informaticos, mas alla de la implementacion que cada uno de ellos desarrolle en sus productos. A continuacion mencionaremos dos de los puntos mas importantes: - Conjunto de pares Esto es sencillamente lo que conocemos como el conjunto de USUARIO/CONTRASE~A. Este punto de seguro le resultara conocido puesto que es la forma que habitualmente utilizan los sistemas informaticos para reconocer un usuario legitimo. - Almacenamiento de las credenciales Aqui otro de los puntos en comun entre las diferentes implementaciones. Todas ellas en algun punto necesitan almacenar fisicamente las credenciales contra las cuales se validaran los datos correctos. 03. Debilidades en la Implementacion de contrase~as ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Antes de entrar de lleno al tema al que atiende este articulo, me gustaria mencionar algunos aspectos por los cuales el ataque sistematico a contrase~as sigue siendo con el correr de los tiempos uno de los riesgos mas importantes a tener en cuenta a la hora de asegurar un sistema. A pesar del relativo esfuerzo que los proveedores principales han enfocado en las diferentes implementaciones existe un denominador comun que bajo ningun aspecto debe pasarse por alto a la hora de verificar la seguridad de un sistema: *El Factor Humano*. - Nombres de Usuario Si bien existen unas cuantas buenas herramientas, sean libres o comerciales , utilizadas en la fase de *enumeracion* (Se denomina comunmente de esta forma a una de las instancias iniciales en los ciclos de un ataque a sistemas informaticos) que nos permiten conocer los nombres de usuarios del sistema objetivo, muchas veces siquiera es necesario hacer uso de las mismas para obtener un nombre de usuario valido. La mayoria de las veces bastara con conocer el nombre y apellido de algun empleado o usuario del sistema a atacar (Ver articulo de Ingenieria Social en RareGazz 18) y probar las tipicas combinaciones utilizadas al momento de nombrar usuarios en un sistema. Esto es, si la persona identificada por el atacante como empleado/usuario del sistema objetivo se llama Juan Perez, lo mas habitual sera encontrar que alguna de las siguientes denominaciones es en definitiva la utilizada por el administrador para nombrar sus usuarios: jperez@objetivo.com perezj@objetivo.com juanp@objetivo.com pjuan@objetivo.com Es muy comun encontrar que los administradores no prestan atencion a la hora de seleccionar la metodologia al momento de nombrar a sus usuarios, pero lo cierto es que en entornos de *Seguridad Media* se deberia dedicar un esfuerzo mayor a la hora de resolver este dilema. Despues de todo... acaso obteniendo un nombre de usuario valido... el atacante no tiene el cincuenta por ciento de su trabajo culminado ???? - Contrase~as Y aqui es donde mas interviene tal como mencionara en los parrafos anteriores, *el factor humano*. En principio es sumamente habitual al realizar una auditoria de contrase~as , encontrarse con palabras triviales y absolutamente adivinables. Nombres propios, nombres de mascotas, nombres de astros y otra vez un largo etcetera... hacen de la seleccion de passwords por parte de los usuarios un mero tramite. En el otro extremo tenemos aquellos gerentes o directores a los cuales se suele *asignar* un password con algun grado de complejidad los cuales terminan siendo anotados en un taco, estampados mediante un autodhesivo en el monitor o teclado de su pc personal y por supuesto conocido por su secretaria y colaboradores, perdiendo de esta forma su estatus de *palabra secreta*. Si bien a lo largo de este documento intentare poner de manifiesto unas cuantas vulnerabilidades propias de las implementaciones de user/pass en Windows NT, me parecio sumamente importante mencionar en este apartado aquellas caracteristicas que trascienden lo *particular* de estos sistemas. 04. Debilidades en la Implementacion de Contrase~as en Windows NT 4.0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Quienes hayan seguido de cerca la evolucion de los sistemas operativos de Microsoft habran notado su esfuerzo continuo por mantener la compatibilidad con sus desarrollos anteriores. Si bien este atributo suele ser en principio bienvenido y en muchos casos hasta necesario, lo cierto es que lamentablemente tambien ha sido el causante principal de alguna de las mas terribles vulnerabilidades conocidas hasta la fecha de los sistemas Windows NT. Un claro ejemplo de lo expuesto en el parrafo anterior es el que se da respecto de las formas en que NT maneja los hash de contrase~as en virtud de mantener la compatibilidad con los clientes Windows for Workgroups y Windows 95/98. Para entenderlo un poco mejor les propongo revisar al menos superficialmente algunos de los puntos principales en el proceso de administracion de credenciales en Windows NT: a. Que es una funcion hash? Que es un hash? Recogiendo la definicion publicada por RSA en su website podriamos decir que una funcion hash H, es una transformacion que sucede al tomar un valor de entrada m y retornar un string de extension fija, el cual recibe el nombre de *valor hash* h (Esto es igual que decir h=H(m)) Las funciones hash H son tambien llamadas *de una sola direccion*, esto significa que: dado un valor h, es computacionalmente impracticable el encontrar alguna entrada x tal como H(x)=h. Nota: Para obtener una definicion completa acerca de funciones y valores Hash, puede dirigir su explorador a: http://www.rsasecurity.com/rsalabs/faq/2-1-6.html b. Como trabaja NT con valores hash? Como la mayoria de los sistemas basados en contrase~as los sistemas Windows requieren algun mecanismo para almacenar en forma segura las credenciales que se utilizaran para realizar los chequeos necesarios al momento de autentificar un usuario. Windows NT encripta las contrase~as antes de almacenarlas en lo que se denomina SAM, por *Security Account Manager*. La SAM es en definitiva una base de datos que alberga los nombres de usuarios y contrase~as del sistema local o del *Controlador de Dominio*, en caso que esta sea la funcion asignada al equipo en cuestion, previa codificacion de los datos a almacenar. Este proceso de codificacion no es mas que un proceso de hashing como el que se describiera en parrafos anteriores. De esta forma entonces NT toma el valor de longitud variable ingresado al registrar una contrase~a (El cual segun el ejemplo precedente seria m) y lo procesa mediante su funcion de hash (H) para finalmente almacenar el *valor hash* (h, en su caracter de string de tama~o fijo y generacion Impredecible) de la contrase~a ingresada. En definitiva, como consecuencia de este proceso, cada vez que un usuario inicia una sesion e introduce una contrase~a, NT procede a codificar la contrase~a y compararla con el hash legitimo del usuario almacenado en la SAM. En caso de que estos valores coincidan, NT autentifica al usuario. Nota: NT realiza dos encriptaciones siendo el calculo de valor hash la primera de estas. A los efectos de no complicar la explicacion, tanto esta segunda fase como algunos procesos adicionales incluidos al momento del logon, se han obviado en forma intencional (Ejemplo algoritmo MD4, circuito LSA, token's, etc). Podra obtener una explicacion detallada de este proceso en la Knowledge Database de Microsoft bajo el ID=102716. Como seguramente habran imaginado a estas alturas, el objetivo de manejarse con valores hash apunta principalmente a los siguientes puntos: - Que lo que se transmita por la red sean *valores hash* y no contrase~as. - Que en caso de que se consiga acceder a la SAM lo que se logre solo (?) sea obtener valores hash, no contrase~as. c. Tipos basicos de autentificacion en Windows Inicialmente Microsoft comenzo a incluir conectividad en sus sistemas operativos aproximadamente a partir de su version de Windows for Workgroups. Si bien de aquel momento hasta nuestros dias se ha recorrido mucho camino, la realidad es que aun hoy en dia es mas que frecuente encontrar que muchas empresas que poseen sistemas centrales montados sobre Windows NT o Windows 2000 aun conservan gran cantidad de clientes Windows 95/98 y Workstation. Conforme las tecnologias fueron avanzando, los tipos de autentificacion se fueron resforzando llegando hasta le implementacion Kerberos en Windows 2000. El siguiente cuadro muestra los tipos de autentificacion implementados en los entornos Windows y los clientes soportados: Tipo de Clientes Autentificacion Compatibles ----------------- --------------------- LANMan Todos (95/98/NT/2000) NTLM NT4, 2000 NTLM v2 NT4 Pos SP4, 2000 Kerberos 2000 d. El verdadero problema: LanManager Algun tiempo atras, una debilidad en la vieja hash de LAN Manager fue divulgada y desde aquel momento muchas cosas han cambiado respecto de la mentada seguridad de el esquema de autentificacion en sistemas Windows NT/2000. NT maneja dos versiones encriptadas totalmente independientes una de la otra. Por un lado la version LanMan (Hash LANMan) y por otro la version NT (Hash de NT). El objetivo de este procedimiento, es precisamente mantener la compatibilidad con las versiones de windows que utilizan el sistema LAN Manager al momento de autentificar un usuario (Windows 95/98). De esta forma, ambos hashes de contrase~as se almacenan en la SAM permitiendo utilizar uno u otro de acuerdo al cliente desde el cual se conecte el usuario. Unos de los defectos mas importantes del hash LAN Manager es la division de la contrase~a en dos mitades de siete caracteres. Debido a esto en realidad cualquier contrase~a de, por ejemplo ocho caracteres, sera traducido al momento de su encriptacion, como una contrase~a de siete caracteres y otra de un caracter. Como si esto fuera poco el la funcion hash de LANManager, como primera medida convierte absolutamente todos los caracteres del password en cuestion a mayusculas, degradando aun mas la efectividad final de las contrase~as seleccionadas y por consecuencia del hash almacenado en la SAM. Para clarificar lo mencionado en los parrafos anteriores, le propongo analizar un ejemplo publicado en el libro *Hacking Exposed: Network Security Secrets and Solutions* de Stuart McClure, Joel Scambray, George Kurtz el cual a mi modesto entender ilustra claramente la debilidad comentada: *passfilt es una DLL incluida con el SP2 de Windows NT la cual sera comentada mas adelante en este mismo documento. [...] Supongamos, por ejemplo, una contrase~a de 12 caracteres que cumpla con passfilt*, <<123456Qwerty>>. Cuando esta contrase~a se encripta con el algoritmo LanMan, en primer lugar, todos sus caracteres se convierten a mayusculas <<123456QWERTY>>. A continuacion, se rellena la contrase~a con caracteres nulos (blancos) para convertirla en una palabra de 14 caracteres de longitud <<123456QWERTY__>>. Antes de encriptarla, se divide la cadena de 14 caracteres en dos mitades, dejandola en <<123456Q>> y <<WERTY__>>. Cada cadena se encripta individualmente, y el resultado se concatena. El valor encriptado para <<123456Q>> es 6BF11E04AFAB197F y el valor correspondiente a <<WERTY__>> es 1E9FFDCC75575B15. La informacion concatenada es 6BF11E04AFAB197F1E9FFDCC75575B15. [...] De esta forma una contrase~a que en principio podria ser considerada medianamente segura, teniendo en cuenta que contiene numeros, mayusculas y minusculas, al ser transformada a mayusculas y posteriormente fraccionada en dos palabras se convierte en un blanco sencillo para algunas utilidades de cracking, pues las mismas no solo que se enfrentan a 2 passwords de 7 caracteres (En vez de 1 de 14 caracteres) sino que en caso de lograr adivinar con exito la primer mitad, lo mas probable es que quien este practicando el cracking deduzca el contenido de la mitad restante, como muy probablemente pasaria en el ejemplo <<123456Qwerty>>. NOTA: Podra obtener una explicacion mas detallada acerca de este punto en la siguiente URL: http://www.atstake.com/research/lc3/documentation/doc.html#Technical Details About Network SMB Capture 06. Obteniendo datos de la SAM ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Imagino que llegado este punto habra quedado absolutamente claro la necesidad de obtener o acceder de alguna forma a la base de datos SAM del sistema NT a auditar, a los efectos de poder lanzar sobre ella alguna de las herramientas de cracking convencionales. Antes de continuar, vale la pena recordar que NT guarda los datos de la SAM en un archivo llamado precisamente SAM. Dicho archivo se encuentra en: %systemroot%\system32\config Este archivo no es ni mas ni menos que la representacion fisica de los valores presentados en la llave HKEY_LOCAL_MACHINE\SAM Tanto la mencionada clave como el archivo SAM no se encuentran disponibles para ser revisados o copiados pues el sistema operativo los mantiene bloqueados mientras se encuentra funcionando. Bien, dicho esto mencionaremos tres o cuatro de las formas en las cuales se podra acceder a la SAM de un sistema del tipo Windows NT. a. Arrancar con un sistema operativo distinto (NTFSDOS) Debido a que, tal como acabo de mencionar, el archivo SAM se encuentra bloqueado mientras el sistema operativo esta en uso, se debera bootear con un segundo sistema operativo para lograr el acceso a la carpeta deseada. En quellos casos en los que la particion del sistema objetivo se encuentre bajo NTFS, aun se podra recurrrir a la popular herramienta de Sysinternals *NTFSDOS* (http://www.sysinternals.com/ntw2k/freeware/NTFSDOS.shtml) para lograr el acceso requerido. Este producto accede y monta particiones NTFS como unidades logicas en un entorno MS-DOS. La distribucion de NTFSDOS ofrecida gratuitamente en la web de Sysinternal , esta compuesta por tan solo tres archivos (readme.txt, ntfsdos.exe y ntfshlp.vxd) y pesa alrededor de 39KB y nos permitira copiar la informacion deseada (Tambien existe una version comercial, la cual permite acceso total) Debido a su sencillez (Solo existen seis paramentros de linea de comando) no hare otra cosa que mencionar el procedimiento de utilizacion basico el cual consta de tres pasos: Paso 1 Generar un disco booteable, preferentemente MS-DOS 7.0 (He encontrado que bajo ciertas circunstancias otros sistemas de arranque como MS-DOS 5.0 o MS-DOS 6.22 se vuelven un tanto inestable) Paso 2 Reiniciar el equipo y bootear con el disco recientemente generado. Paso 3 Estando en el nuevo command prompt ya estaremos en condiciones de correr *ntfsdos.exe*. Luego de ejecutar la peque~a aplicacion se nos devolvera un mensaje similar al que se muestra a continuacion: -------------------------------------------------------- A:\>ntfsdos NTFS File System Driver for DOS/Windows V3.02R (Read-Only) Copyright (C) 1996-2001 Bryce Cogswell and Mark Russinovich Sysinternals - www.sysinternals.com Initialized 500 KB of XMS cache. Mounting NTFS partition(0x80:1) as drive: D Mounting NTFS partition(0x80:1) as drive: E Mounting NTFS partition(0x80:1) as drive: F A:\> -------------------------------------------------------- Una vez accedida la carpeta %systemroot%\system32\config solo tendra que utilizar el comando copy que seguramente habra incluido en su disco de arranque junto a los archivos de NTFSDOS, para obtener el archivo SAM. b. Obtener la copia de seguridad de la sam del directorio repair Cada vez que se ejecuta la aplicacion RDISK en un sistema NT se crea una copia de el archivo SAM en el directorio %systemroot%repair. RDISK es una utilidad de los sistemas operativos Windows NT que permite generar un juego de diskettes de recuperacion con informacion vital que suele ser una herramienta importante al momento de recuperar el sistema operativo ante una falla. En caso de que esta utilidad haya sido ejecutada en algun momento, y que el administrador no haya eliminado esta informacion luego de generar los diskettes de recuperacion, tan solo tendra que copiar de la ruta especificada, el archivo SAM._ el cual se encuentra comprimido. c. Extraer los hashes de la SAM (PWDUMP) La idea en este caso es simple. Se trata de volcar los hashes contenidos en la SAM objetivo, a un archivo plano de forma tal que pueda ser interpretado por las herramientas de cracking de contrase~as mas populares. PWDUMP es sin lugar a dudas una de las herramientas mas utilizadas a tal efecto. Al momento de escribir esta nota la version mas avanzada de esta herramienta denominada PWDUMP3 v2.0 se encuentra disponible para su descarga en forma gratuita en la siguiente URL: http://www.polivec.com/pwdump3download.html PWDUMP3 es sumamente sencillo de utilizar. Una vez descargado, tan solo sera necesario descomprimir el download en una carpeta desde la cual se lanzara la herramienta, y ejecutarla pasandole como parametro el equipo objetivo asi como el archivo de destino y el nombre de usuario: ATENCION: Para que esta herramienta funciona se requiere que el usuario que la ejecute tenga permisos de ADMINISTRATOR en la maquina objetivo. Sintaxis: PWDUMP3 machineName [outputFile] [userName] Al ejecutar la herramienta con los parametros requeridos, se nos presentara una pantalla con el siguiente aspecto: -------------------------------------------------------------------------- D:\pwdump3v2>pwdump3 pcobjetivo c:\destino.txt administrator pwdump3 (rev 2) by Phil Staubs, e-business technology, 23 Feb 2001 Copyright 2001 e-business technology, inc. This program is free software based on pwpum2 by Todd Sabin under the GNU General Public License Version 2 (GNU GPL), you can redistribute it and/or modify it under the terms of the GNU GPL, as published by the Free Software Foundation. NO WARRANTY, EXPRESSED OR IMPLIED, IS GRANTED WITH THIS PROGRAM. Pleasee see the COPYING file included with this program (also avaible at www.ebiz-tech.com/pwdump3) and the GNU GPL for further details. Please enter the password >************** <-------- Solicita Password Completed. <-------- Proceso Terminado D:\pwdump3v2>type c:\destino.txt <-------- Consulto Resultado Administrator:500:51365BA539C0B51C7586247B8D2C9F9E:178FE8F0 ( Informacion Guest:501:NO PASSWORD*********************:NO PASSWORD***** recortada por VUSR_NOMUSER:1000:9EA4EE76350A6CBF300EDB7D8C243531:234BF879 el editor ) -------------------------------------------------------------------------- Como se puede observar el contenido muestra claramente la informacion que PWDUMP puede conseguir por nosotros. Una vez obtenidos estos datos, solo habra que importarlos desde la herramienta de cracking/auditoria por nosotros elegida. Tal como se menciona en la documentacion que acompa~a a PWDUMP3, esta herramienta incialmente se conecta al equipo remoto, utilizando el recurso compartido $ADMIN, luego aprovechando la posibilidad de Windows NT/2000 de instalar y desinstalar servicios en forma remota, PWDUMP instala el servicio que acompa~a esta distribucion llamado *pwservice.exe* el cual extrae la informacion de los hash almacenados temporalmente en la registry remota. A partir de alli utiliza una tecnica denominada DLL Injection que le permite correr con altos privilegios bajo el espacio de procesos de otros subsistemas, en este caso LSASS (Local Security Authority Subsystem) con el cual termina obteniendo la informacion necesaria para generar el archivo de output. NOTA: Podra obtener una explicacion mas detallada acerca de este punto revisando la documentacion que acompa~a la herramienta. Recomiendo enfaticamente su lectura pues considero sumamente enriquecedor los procedimientos utilizados por PWDUMP. d. Obtener hashes por medio de escuchas en la red Este es quizas uno de los metodos mas avanzado respecto a la obtencion de hashes, en este escenario, se requiere la instalacion de algun tipo de sniffer encargado de capturar datos en la red (Especificamente paquetes SMB) los cuales contienen los hashes encriptados que puedan servirnos a los efectos de ser procesados por alguna herramienta de cracking de contrase~as. 07. Infalible: L0phtCrack ~~~~~~~~~~~~~~~~~~~~~~~~~ LLegado este punto y luego de haber pasado por la tarea de obtener informacion de la SAM, utilizando a tal efecto alguno de los procedimientos descriptos en los parrafos anteriores, solo nos quedara seleccionar algun programa que nos permita auditar/crackear los hash conteniendo usuario y passwords. Si bien existen un par de buenas herramientas algunas de ellas freeware (Ver articulo de Nihil en Phrack 50) nos olvidaremos de ellas por un momento para conversar acerca de la que a mi entender es la mejor herramienta de auditoria de passwords disponible hoy dia: LC3 ( L0phtCrack Version 3.02 ) LC3 es la evolucion del primer producto desarrollado por la gente del grupo L0pht (L0pht Heavy Industries). Algunos a~os despues, transformados en lo que hoy es la empresa @Stake, aun siguen distribuyendo, en realidad *comercializando* su producto de auditoria de contrase~as. Como la mayoria de los productos de su tipo, LC3 es en escencia, un software que utiliza distintos metodos de comparacion entre el hash del usuario y un dato de entrada previamente convertido segun el algoritmo de encriptacion utilizado en la generacion original de la contrase~a a auditar, hasta hayar la combinacion correcta. Los mas comun es que el mencionado dato de *entrada* provenga de un diccionario de palabras, o sea producto algun tipo de generacion aleatoria. Si ha esto le sumamos la debilidad anteriormente comentada respecto de los Hash LANManager, estaremos en condiciones de afirmar que una vez que se alimenta a LC3 con la informacion correcta todo pasa a ser una cuestion de tiempo antes de lograr el objetivo deseado. a. LC3 en accion Realmente no hay mucho para explicar acerca de la forma de operar con LC3 puesto que gracias a su impecable interfaz grafica, la mayoria de las funciones son absolutamente intuitivas. A modo de ejemplo repasaremos los pasos que se deberan seguir al momento de realizar la auditoria de contrase~as. Paso 1 Inmediatamente despues de haber instalado el software, estaremos en condiciones de iniciar una nueva *session* , lo cual podremos lograr facilmente haciendo click sobre el icono correspodiente o accediendo al menu *File/New Session*. Paso 2 Iniciada una *session* el proximo paso sera tal como nos indica el mismo LC3, utilizar el menu *Import* desde el cual se podra seleccionar el tipo de importacion deseado, entre las siguientes opciones: Import From Local Machine (Requiere derechos de Admin) Import From Remote Registry... (Requiere derechos Admin) Import From SAM File... Import From Sniffer... Import From .LC File Import From PWDUMP File... Paso 3 De acuerdo a la opcion que se haya seleccionado en el paso anterior LC3 comenzara a displayar, en forma inmediata los nombres de usuario encontrados, como asi tambien la informacion correspondiente a los valores LM Hash y NTLM Hash. Paso 4 Finalmente,llegado este punto, nos encontraremos listos para seleccionar las opciones a utilizar en el cracking de contrase~as. Estas podran utilizarse en forma particular o por una combinacion de las mismas. - Dictionary Crack Tal como se expresa en la documentacion de LC3, esta suele ser la via mas rapida para dar con los paswords mas sencillos. Su efectividad se encuentra directamente relacionada con el tama~o y tipo del diccionario a utilizar. Por defecto la version 3.02 de LC3 utiliza un diccionario ingles de 25000 palabras, aunque siempre existe la posibilidad de seleccionar un diccionario diferente. NOTA: Podra encontrar una gran variedad de diccionarios en formato estandar dirigiendo su explorador a la siguiente URL: http://ftp.cerias.purdue.edu/pub/dict/wordlists/ - Dictionary/Brute Hybrid Crack Este particular metodo utiliza el diccionario de datos seleccionado sumado a *n* variaciones que pueden ser dispuestas utilizando el cuadro *Characters to vary (more is slower)* De esta forma se podran encontrar con algo mas de esfuerzo aquellas passwords que complementen las palabras del diccionario con algun juego de *n* caracteres, tal como lo demuestran los ejemplos mencionados por LC3: *Dana99* o *monkeys!*. - Brute Force Crack Este es el metodo de cracking mas abarcativo, durante este proceso se intentan todas las posibilidades respecto del set de caracteres escogido (Letras, letras y numeros, letras numeros y caracteres especiales, etc) Debido a sus caracteristicas, este metodo puede implicar un tiempo considerable de proceso, hasta descubrir passwords como las mostradas por LC3 en sus ejemplos *WeR3pl6s* o *vC5%69+12b* Paso 5 Habiendo completado los pasos anteriores, habremos finalizado la configuracion de las *session* de auditoria , por lo tanto bastara con clickear sobre el icono de play (*Begin Audit*) para que LC3 comienze a realizar su trabajo. Inmediatamente despues de haber lanzado el proceso de auditoria, LC3 comenzara a mostrar la informacion correspondiente a los passwords mas sencillos. Es fascinante ver la velocidad con la que aparecen por ejemplo aquellos passwords que coinciden con el nombre mismo del usuario, o con palabras sencillas incluidas dentro del diccionario. Lo mas probable es que al cabo de algunas horas LC3 haya acabado por mostrar la informacion completa de un centenar de usuarios/passwords con combinaciones sencillas o de mediana complejidad. En aquellos casos en los que LC3 se tope con contrase~as realmente complejas, el cracking podria demorar varios dias. Lo cierto es que... a partir de este momento solo sera una cuestion de tiempo... NOTA: La version 3.02 de LC3 que al momento de escribir este articulo se ecuentra disponible en la web de @STAKE, es una version de Evaluacion y como tal, no solo limita su utilizacion a 15 dias, sino que por otro lado no incluye la funcionalidad de ataques de brute force que si posee la version comercial. b. Mejoras en la version 3.02 Si bien la version 3.02 de esta potente herramienta no deslumbra por sus novedades hay algunas de ellas que vale la pena se~alar. A continuacion le propongo revisar la traduccion de la documentacion de LC3 v3.02 que he realizado respecto de la seccion *Wath's New in LC3*: -------------------------------------------------------------------------- Lo Nuevo en LC3 LC3 agrega numerosas mejoras a las capacidades aclamadas en sus predescesor L0phtCrack: Soporte para Windows 2000 LC3 corre en forma transparente sobre Windows 2000. Puede extraer Hashes no encriptados de contrase~as que utilizen la proteccion SYSKEY. Tambien se provee un sniffer (Tal es el caso de WinPcap) con soporte total para Windows 2000. Soporte para Set de Caracteres Internacionales LC3 soporta la entrada de caracteres internacionales, esto le permite trabajar con sistemas operativos y passwords con Set de Caracteres como: Europo, Cirilico, Griego, Hebreo, Arabigo y otros lenguajes. Crackig Distribuido LC3 brinda al administrador la posibilidad de acelarar los tiempos de auditoria distribuyendo la carga en varias partes que pueden ser ejecutadas en forma simultanea por multiples equipos. Ocultar Contrase~as Crackeadas LC3 brinda a los administradores la opcion de conocer cuando un password haya sido crackeado, sin que necesariamente esto signifique conocer dicho password. Tiempo de Auditoria Los Auditores podran obtener una comparacion cuantitativa de la fortaleza o debilidad de las contrase~as, revisando los informes de LC3 sobre el tiempo requerido para crackear cada contrase~a. Asistente LC3 ofrece un asistente que ayuda a los nuevos auditores de contrase~as a configurar y ejecutar sus primeras auditorias con facilidad y rapidez. Exportacion Con mayor facilidad que en versiones anteriores se pueden manipular los resultados de una revision de contrase~a, exportandolos a un archivo delimitado por tabs. Soporte de Producto Mejorado Los usuarios registrados de LC3 cuentan con soporte via email con un tiempo de respuesta menor a 24 horas. Nuevo Diccionario LC3 incluye un diccionario de 250.000 palabras en ingles. Manipulacion de Contrase~as Importadas Facilmente borre contrase~as encriptadas directamente desde la ventana de LC3, para de esta forma concentrarse unicamente en las passwords que usted desea auditar. -------------------------------------------------------------------------- Seguramente quienes hayan trabajado con versiones anteriores de L0phtCrack , no notaran grandes cambios en LC3, aunque aquellos que como yo utilizen esta herramienta en forma habitual muy probablemente hayan visto con agrado la inclusion o mejora en puntos como el de procesamiento distribuido o la eliminacion de contrase~as desde la misma ventana de auditoria. 08. Windows 2000 ~~~~~~~~~~~~~~~~ Si bien este documento esta especificamente dedicado a Windows NT me gustaria mencionar que a pesar de los esfuerzos de Microsoft y algunas nuevas caracteristicas incorporadas en Windows 2000, en la practica algunas cosas no han cambiado mucho. Alguna de las mayores diferencias sean quizas la inclusion de AD (Activate Directory) en *remplazo* de la SAM, y la inclusion de la autenticacion Kerberos. Ahora bien... volviendo a las fuentes... aquellos administadores que decidan mantener instalaciones Hibridas (Windos NT/Windows 2000) seguramente veran estas mejoras como una utopia. En aquellos casos, en los que no se haya implementado AD, la SAM seguira cumpliendo practicamente la misma funcion de dias pasados, y respecto de la autenticacion Kerberos, asi como sucede entre Windows NT y Windows 95/98, los hashes NT Lan Manager heredados, siguen siendo distribuidos por la red pues Windows 2000, siguiendo la linea de su antecesor, degrada el nivel de autentificacion en caso de que uno de los extremos de la conexion no soporte kerberos. De esta forma, la mayoria de los ataques de contrase~as sobre Windows 2000, siguen siendo en la practica, tan efectivos como en Windows NT. Ahora bien, como contraposicion a lo expuesto en el parrafo anterior podremos hallar al menos un par de caracteristicas distintivas de Windows 2000 respecto al almacenamiento y gestion de contrase~as: En principio, Windows 2000 utiliza la encriptacion SYSKEY como la opcion por defecto, dificultando bastante la tarea de cracking en determinadas circunstancias, pero lo que es aun mejor, a partir de Windows 2000 el largo de las passwords rompe la barrera de los 14 caracteres para brindar la posibilidad al usuario de registrar passwords de hasta 128 caracteres, haciendolas *practicamente* indescifrables (En parte, producto de que el viejo LanMAn hash entendera y almacenara una clave de tama~o superior a 15 caracteres como un valor null, para mas inforamcion sobre este hecho sirvase visitar la siguiente URL: http://www.securityfriday.com/Topics/win2k_passwd.html) 09. Contramedidas ~~~~~~~~~~~~~~~~~ Si bien el panorama no parece ser el mejor, respecto de la posibilidad de asegurar las contrase~as de sus sitemas, existen una serie de herramientas que en conjunto podran colaborar al fin en cuestion. - Elimine la informacion del directorio %systemroot%repair inmediatamente despues de haber generado los discos con RDISK.EXE (ERD) - En lo posible NO utilize sistemas de arranque DUAL (FAT/NTFS) - Asegure el acceso Fisico a sus servidores. - Almacene las copias de seguridad y los discos de *Reparacion de Emergencia* en lugares seguros. - Asegure los directorios de su particion de sistemas con permisos NTFS personalizados. - Dedique tiempo a la correcta parametrizacion de las politicas de cuentas accediendo desde el *User Manager for Domains* */Policies/Accounts*. Los valores usualmente sugeridos son: Maximum Password Age 45 Days Minimum Password Age Allow Changes in 7 Days Minimum Password Length At least 7 Characters Password Uniqueness Remember 3 Passwords Lockout after 3 bad logon attempts Reset Counter after 240 minutes Lockout Duration Forever (until admin unlocks) Forcibily disconnect remote Users from server when Check ON logon hours expire User must log on in Check ON order to change password - No permita contrase~as menores de 7 digitos. - Implemente SYSKEY SYSKEY es una funcionalidad de mejora de encriptacion del SAM, incluida al mercado a partir de la liberacion del SP2 de Windows NT. Su implementacion permite cifrar los datos del SAM con contrase~as criptograficas de 128 bits contra los 40 bits de las de las instalaciones por defecto. La puesta en marcha de SYSKEY es sumamente sencilla pues requiere tan solo de la ejecucion del ejecutable (SYSKEY.EXE) y la seleccion de la casilla de verificacion correspondiente (Encryption Enabled). Concluido este paso se podra decidir si la llave encriptada como consecuencia de la implementacion SYSKEY se almacenara en diskettes o en el disco local. Un punto importante a tener en cuenta es que Windows 2000 implementa Encriptacion SYSKEY por defecto. Mas sobre SYSKEY en: http://support.microsoft.com/directory/article.asp?ID=KB;EN-US ;Q143475& - Implemente PASSFILT.DLL Asi como SYSKEY, PASSFILT.DLL se incluye a partir de la liberacion del SP2 de Windows NT. La utilzacion de PASSFILT.DLL en una instalacion estandart permitira al administrador asegurarse el ingreso por parte de los usuarios, de contrase~as que cumplan ciertos requisitos minimos de seguridad. A partir de la implementacion de PASSFILT.DLL, se establecen los siguientes requisitos: * Claves de al menos seis caracteres de longitud. * La clave seleccionada no puede coincidir con el nombre de usuario o cualquiera de las partes del mismo. * Toda clave debe contener, al menos, tres caracteres de los siguientes: Letras mayusculas Letras minusculas Numeros Metacaracteres NOTA: No implemente PASSFILT hasta no haber leido y comprendido por completo, el articulo publicado en la siguiente URL: http://support.microsoft.com/directory/article.asp?ID=KB;EN-US; Q161990& - Implemente PASSPROP PASSPROP es una utilidad incluida en el NT Resource Kit. Mediante esta herramienta el administrador podra definir un par de requisitos extras respecto a la seguridad de cuentas de dominio (Inicialmente surge como un complemento ideal de PASSFILT.DLL) En primer lugar PASSPROP nos permitira forzar el uso de contrase~as que utilizen una combinacion de mayusculas, minusculas, numeros y simbolos. Por su parte PASSPROP tambien brinda al administrador, la posibilidad de bloquear la cuenta de ADMINISTRATOR (Tal como cualquier usuario normal) permitiendo que esta solo pueda ser desbloqueada a posterior, desde la consola. Para implementar PASSPROP, solo bastara con que el administrador ejecute la herramienta con alguno de los paramentros propios de dicha utilidad: /simple Restaura a la instalacion por default. /complex Fuerza passwords combinados. /adminlockout Permite que la cuenta ADMINISTRATOR sea lockeada. /noadminlockout Restaura a la instalacion por default (ADMINISTRATOR, no puede ser bloqueada) - En ambientes de alta seguridad, y cuando sea posible, implemente sistemas homogeneos, evitando la interaccion entre Windows 95/98 - Windows NT - Windows 2000. - Mantenga una politica activa respecto de auditorias de cuentas. - Eduque a los usuarios, gerentes y directores acerca de la potencialidad de los ataques a contrase~as debiles. - No practique la aplicacion de contrase~as para los usarios ordinarios, que por su extrema complejidad lo lleve a *tomar nota* de su contrase~a para recordarla! - Utilize caracteres especiales y claves largas para los password de administrador. - Renombre la cuenta de administrador por un nombre de usuario convencional y aplique a esta una clave sumamente extensa y aleatoria. - Habilite la auditoria sobre los eventos de LOGON/LOGOFF y examine diariamente los logs generados. - Desabilite los enlaces NetBIOS de su placa externa. - Revise frecuentemente la definicion acerca de sus politicas de contraseñas. 10. Conclusiones ~~~~~~~~~~~~~~~~ Hemos llegado al final de este articulo, como habran notado el panorama no resulta del todo alentador. Mientras el modelo a aplicar siga siendo el de contrase~as reutilizables, los administradores seguiremos encontrandonos con los inconvenientes comunes a toda implementacion. NOTA: Revise los siguientes links para evaluar algunas de las alternativas a las contrase~as reutilizables: http://www.rsasecurity.com/products/securid/ ftp://ftp.cert.dfn.de/pub/tools/password/SKey/ Nunca olvidemos uno de los conceptos basicos en seguridad informatica, *Un sistema es tan seguro como su eslabon mas debil*, usted podria establecer las claves ma s poderosas en sus sistemas y de toda forma ser victima de un ataque de ingenieria social. Otro punto relevante a tener en cuenta, es que los ataques a contrase~as presuponen, generalmente haber ganado con anterioridad acceso de algun tipo, a los sistemas a atacar. Este es el motivo por el cual las verdaderas contramedidas respecto de este tema, deberia ser el conjunto de contramedidas implementadas en nuestros sistemas como una estrategia global. Por ultimo, recuerde que en la practica, en el 90 por ciento de los casos una vez obtenido acceso a la informacion del SAM, la obtencion de contrase~as es cuestion de tiempo... Angel Protector 11. Tools ~~~~~~~~~ http://www.atstake.com/research/lc3/download.html (LC3 - L0phtCrack 3.02) http://astalavista.box.sk/cgi-bin/robot?srch=lc3&submit=+search+ (LC3-Crack) http://www.atstake.com/research/lc3/download.html (L0pht 1.5 source code) http://www.polivec.com/pwdump3download.html (Free-pwdump3 v2.0) http://ftp.cerias.purdue.edu/pub/dict/wordlists/ (Diccionarios) 12. Links/Referencias ~~~~~~~~~~~~~~~~~~~~~ A continuacion encontrara material consultado al momento de confeccionar el presente articulo: http://www.microsoft.com/security http://www.microsoft.com/technet http://www.w2000mag.com/atrasados/2001/52_abr01/articulos/suplemento /proteccion.htm http://www.w2000mag.com/atrasados/2001/52_abr01/articulos/suplemento /proteccion_columna.htm http://www.hackingexposed.com http://www.rsasecurity.com http://online.securityfocus.com/infocus/1554 http://www.atstake.com/research/lc3/index.html http://www.atstake.com/research/lc3/documentation/help.htm http://www.sysinternals.com/ntw2k/freeware/NTFSDOS.shtml http://online.securityfocus.com/infocus/1554 http://www.microsoft.com/Latam/technet/seguridad/robichaux/ro1299.asp http://www.microsoft.com/Latam/technet/seguridad/au/junio2000.asp <<::RareGaZz::>>