Ing. Víctor David Casares vcasares@cybsec.com CYBSEC S.A. www.cybsec.com Escalar de un Dominio a otro 1.- Introducción: El presente artículo describe una técnica que podría utilizar un pentester para tomar control de más de un dominio en una empresa, identificando las relaciones de confianza de un dominio al que se ganó acceso, y aprovechándose del eslabón más débil en la cadena de la Seguridad Informática (El humano). 2.- Descripción: En muchas ocasiones, cuando durante un test de intrusión tomamos control de un “Controlador de Dominio”, pensamos que no se puede hacer nada más, pues tenemos el máximo control. Sin embargo, siempre se puede ir un poco más allá. En este artículo se mostrará como un atacante que ya logró tomar control de un dominio (en este caso “LAB.COM”) podría apoderarse de otro dominio sobre el cual existe una relación de confianza. Recordemos que las relaciones de confianza son utilizadas, por ejemplo, para compartir recursos. Relación de Confianza LAB.COM LABDOS.COM Recurso Compartido “Los usuarios del “LAB.com” pueden acceder a un recurso compartido en “LABDOS.com” Teniendo en cuenta esto, las tareas del atacante ahora se centrarán en saber si existen relaciones de confianza, y con qué dominio. Ing. Víctor David Casares vcasares@cybsec.com CYBSEC S.A. www.cybsec.com 3.- Explotación: Para esto podría usar la herramienta “NLTEST” que viene instalada en Windows Server, o ir a la configuración de “Dominios y Confianzas” dentro del Active Directory. Chequeo de relaciones de confianza. Luego de identificar las relaciones de confianza que tiene nuestro dominio, el siguiente paso es realizar un reconocimiento de los recursos a los cuales se puede acceder y qué usuarios tienen permisos sobre los mismos. Esta tarea se debe realizar manualmente por lo cual, en caso de que estemos analizando una organización muy grande, podría llevarnos algún tiempo. Una vez encontrado un recurso compartido al que podamos obtener acceso, la tarea consiste en dejar un archivo malicioso con un nombre llamativo para lograr “una buena carnada” y esperar que un usuario curioso lo abra para obtener una Shell remota en el equipo. Preparamos nuestra carnada utilizando el payload “meterpreter” de Metasploit cifrado con “Veil” para que los antivirus no lo detecten. A este payload lo pondremos dentro de un archivo “pdf” malicioso (orientado a explotar una vulnerabilidad de Adobe PDF Reader) al que curiosamente llamamos “sueldos.pdf”. Ing. Víctor David Casares vcasares@cybsec.com CYBSEC S.A. www.cybsec.com Archivo “sueldos”copiado en LABDOS.COM. El siguiente paso es poner nuestra PC a escuchar conexiones y esperar que algún usuario curioso del dominio “LABDOS.COM”, que no haya actualizado su Adobe Reader a la última versión, abra el archivo. Si tenemos suerte, alguno de ellos tendrá algún token de Administrador del dominio “LABDOS.COM” y nos permitirá tomar control del mismo. Al recibir conexiones podemos encontrarnos, por ejemplo, con un Windows 7 SP1 como puede verse en la siguiente imagen: Acceso a SYSTEM denegado en Windows 7. Obtener privilegios de “SYSTEM” en Windows 7 SP1 tiene sus bemoles. Puede observarse en la imagen anterior que el comando “getsystem” no funciona. Durante las pruebas notamos que al ejecutar “getsystem”, en el equipo de la víctima, aparecía lo siguiente: Ing. Víctor David Casares vcasares@cybsec.com CYBSEC S.A. www.cybsec.com Pop-Up percibido por el usuario. ¿Les pasó esto alguna vez? El proceso NTVDM (Windows NT DOS Virtual Machine) se utiliza para ejecutar programas de 16bits en plataformas de 32bits. Según Microsoft el proceso podría dejar de funcionar al producirse algunas de estas operaciones: • Se ejecuta una aplicación de gráficos de 16 bits que cambia el modo de gráficos de vídeo y, a continuación, mover el puntero del mouse. • Ejecutar una aplicación de 16 bits que intenta crear una canalización con nombre. En nuestro caso el proceso dejó de funcionar por la segunda operación. Visto esto, al encontrarnos con un Windows 7 SP1, deberemos tener cuidado de no alertar a las víctimas con este tipo de mensajes de error. Lo primero que intentamos hacer entonces fue “bypassear” el UAC (User Account Control) de Windows mediante el módulo de Metasploit “post/windows/escalate/bypassuac”, lo que NO dio resultados satisfactorios en un principio. Luego de evaluar y probar diferentes alternativas pudimos llegar a “SYSTEM” usando la elevación de privilegios a través de la explotación de una vulnerabilidad en la función EPATHOBJ::pprFlattenRec del archivo win32k.sys, cuyo exploit se encuentra en “exploit/windows/local/ppr_flatten_rec”. Ing. Víctor David Casares vcasares@cybsec.com CYBSEC S.A. www.cybsec.com Acceso como SYSTEM en Windows 7. Una vez que se obtuvieron privilegios de SYSTEM, se procedió a realizar un ataque de “token kidnapping” mediante el módulo “Incognito” de Metasploit. En la siguiente captura de pantalla se puede observar el listado de tokens de acceso que se encontraron en el equipo. Listado de tokens disponibles. El premio final fue un token del usuario “LABDOS\Administrator”, que pertenece al grupo “Domain Admins” correspondiente a “LABDOS.COM”, listo para usar!! El domino “LABDOS.COM” se encuentra bajo nuestro control. De esta manera queda demostrado como, a través de las relaciones de confianza, se podría llegar a comprometer múltiples dominios. Si bien este ataque requiere intervención del usuario final, sabemos que “una buena carnada” puede ser suficiente. Ing. Víctor David Casares vcasares@cybsec.com CYBSEC S.A. www.cybsec.com 4.- Posibles Soluciones: Recomendamos tener un control estricto sobre los recursos compartidos a los que acceden usuarios de un dominio sobre el que se tiene confianza, restringiendo, si es posible, la escritura en estos recursos. Por otra parte se debería concientizar a todo el personal de la empresa sobre técnicas de Ingeniería Social y Seguridad Informática para evitar que los mismos sean víctimas de ataques que puedan llegar a comprometer la confidencialidad de la información de la empresa. 5.- Sobre el autor: Víctor David Casares, es Ingeniero en Sistemas por la UNLAR (Universidad de Nacional de La Rioja), experto en administración de redes y Seguridad Informática por UTNFRVM (Universidad Tecnológica Nacional, Facultad Regional Villa María), cuenta con certificaciones internacionales tales como CCNA (CISCO CERTIFIED NETWORK ASSOCIATE) y CEH (CERTIFIED ETHICAL HACKER). Actualmente trabaja en el departamento de Ethical Hacking de CYBSEC, es instructor de Seguridad Informática en EducacionIT, escribe artículos de seguridad informática para el Blog de EducacionIT y CYBSEC. 6.- Sobre CYBSEC S.A: Desde 1996 se dedica exclusivamente a prestar servicios profesionales especializados en Seguridad de la Información. Su área de servicios cubre América y Europa y más de 400 clientes acreditan la trayectoria empresaria. Para más información: www.cybsec.com.