¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
¡Acceso ilimitado 24/7 a todos nuestros libros y vídeos! Descubra la Biblioteca Online ENI. Pulse aquí
  1. Libros
  2. Ciberseguridad y PowerShell
  3. Defender su SI con PowerShell
Extrait - Ciberseguridad y PowerShell Del ataque a la defensa del sistema de información
Extractos del libro
Ciberseguridad y PowerShell Del ataque a la defensa del sistema de información Volver a la página de compra del libro

Defender su SI con PowerShell

Introducción

Los capítulos anteriores han demostrado que es posible utilizar PowerShell con fines maliciosos, pero también que es posible dotar de seguridad a PowerShell contra este tipo de ataques. Sin embargo, no hemos abordado lo que PowerShell puede ofrecer para fortalecer la seguridad de un sistema de información. Si para los administradores es esencial controlar el uso de PowerShell en su entorno de sistemas, igualmente es esencial controlar el propio entorno de sistemas. También se debe notar que, con la llegada de las instalaciones servidor en modo «Core» (a partir de Server 2008), el dominio de PowerShell para la administración y seguridad de servidores ya no es opcional.

Este capítulo se centrará en algunas operaciones de endurecimiento seleccionadas que se pueden realizar con la ayuda de PowerShell. Al igual que en los otros capítulos, el objetivo aquí no es proporcionar una visión exhaustiva de la seguridad de un SI, sino señalar algunos elementos clave o métodos para permitir al lector iniciar este trabajo por sí mismo en su propio contexto.

Endurecimiento

1. RDP: Remote Desktop Protocol

a. Autenticación, NLA y gestión de acceso

«Utilice una contraseña fuerte». Aunque esta recomendación pueda parecer obvia a estas alturas del libro, cobra sentido especialmente aquí. El ataque de bruteforce a contraseñas sigue siendo un método muy simple para acceder ilegítimamente a un servidor RDP.

Basándonos en esta premisa, implementar una autenticación sólida en RDP es el siguiente paso lógico. El protocolo RDP admite tokens como Yubikey (U2F) o RSA, aunque su implementación no requiere en ningún momento PowerShell. Por esta razón, esta implementación no se detallará en este libro.

Además de una buena contraseña, otras configuraciones pueden fortalecer la seguridad del protocolo RDP. Por ejemplo, se recomienda activar de la NLA (Network Level Authentication), disponible desde Windows XP SP3. Esta función de seguridad de RDP permite la conexión solo cuando el cliente ya está autenticado. Antes de esta opción, la sesión RDP se establecía previamente y mostraba la pantalla de inicio de sesión, lo que permitía explotar posibles vulnerabilidades en el nivel del protocolo, como en el caso de la vulnerabilidad «BlueKeep».

BlueKeep es una vulnerabilidad de RDP descubierta en 2019. Afectó a todos los sistemas Microsoft desde Windows 2000. El ataque utiliza de manera anormal los canales del protocolo RDP para modificar la memoria de la máquina remota y ejecutar código en la máquina de la víctima. El uso de NLA complica la explotación de la vulnerabilidad.

 Verifique que NLA esté habilitada en DC19:

> (Get-WmiObject -class "Win32_TSGeneralSetting" -Namespace   
root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'"). 
UserAuthenticationRequired 

Si es necesario, puede habilitar la NLA con el cmdlet siguiente:

(Get-WmiObject -class "Win32_TSGeneralSetting" -Namespace  
root\cimv2\terminalservices -Filter "TerminalName='RDP-tcp'"). 
SetUserAuthenticationRequired(0) 

Esta vulnerabilidad en RDP también nos recuerda la necesidad absoluta de mantener actualizados los sistemas en un entorno informático. Las versiones más recientes de Windows...

Windows Firewall

1. ¿Qué es un cortafuegos?

Desde el comienzo del libro, se ha mencionado el concepto de cortafuegos (firewall) en varias ocasiones, sin abordar su definición y administración. Un firewall puede ser de tipo «sistema», como en los Windows del Lab, o «perimetral» (a veces llamado «barrera» o «interzona»), como en la máquina pfSense.

Un firewall tiene la función de imponer una directiva de red, controlando las comunicaciones autorizadas (o no) a partir de criterios como estos:

  • Las IP de origen y destino.

  • El protocolo: TCP, UDP, ICMP, etc.

  • El puerto de origen o destino.

  • Algunas opciones: fragmentación, seguimiento del estado de la conexión TCP, número de conexiones por segundo, etc.

Hoy en día existen muchos firewalls. Se puede mencionar, por ejemplo, iptables/netfilter para Linux; los firewalls integrados en el antivirus, como en Symantec Endpoint Protection, o productos de editores como Fortinet o Palo Alto. En este libro, es interesante centrarse brevemente en el funcionamiento de un firewall de Windows y su configuración con PowerShell.

Los firewalls de los clientes de Windows tienen la particularidad de integrar tres perfiles de funcionamiento diferentes:

  • Redes con dominio (redes empresariales con un AD).

  • Redes privadas (redes personales o de pequeñas empresas).

  • Redes públicas o de invitados (redes públicas no controladas).

Estas ubicaciones son seleccionadas por el usuario en la primera conexión a una nueva red y se asocian a un conjunto de reglas dedicadas al perfil. La elección se realiza entre el modo privado y el modo público; el modo «con dominio» se aplica automáticamente tan pronto como la máquina se une al dominio. Dado que la elección se deja al usuario, está sujeta a errores que este usuario podría cometer ante un mecanismo que no ha comprendido necesariamente.

 Controle el modo de conexión en la máquina Windows 10:

> Get-NetConnectionProfile  
  
  
Name          : pspirineos.es  
InterfaceAlias: Ethernet  
InterfaceIndex: 12  
NetworkCategory: DomainAuthenticated  
IPv4Connectivity: Internet  
IPv6Connectivity: NoTraffic 

No es necesario aquí...

Defender y controlar su AD

Una primera recomendación, que parece muy sencilla y es fácilmente implementable en entornos pequeños, es el seguimiento de las cuentas informáticas. En una empresa, esto es un ejercicio obligatorio, ya sea por razones regulatorias, de conformidad organizativa o simplemente por buenas prácticas de seguridad.

En los grandes SI, el ejercicio es mucho más complicado debido a la magnitud de las cifras involucradas. El fortalecimiento y la automatización de estos procesos son un primer paso en esta dirección. La implementación de estas técnicas de vigilancia y automatización no tiene nada que ver con la seguridad en sí, y está más relacionada con las buenas prácticas de administración.

1. Las cuentas de servicio gestionadas

Algunas cuentas son bastante más interesantes para un atacante que otras: las cuentas privilegiadas y las cuentas de servicio. Las primeras permiten tomar rápidamente el control de la infraestructura. Las segundas son cuentas no nominativas, a menudo abandonadas sin ninguna atención particular, y a veces con contraseñas que datan de directivas de seguridad idénticas a la antigüedad de la cuenta. Supervisar y renovar los secretos de estas cuentas es un proceso tedioso y lento; lleva mucho tiempo, es pesado y a menudo se descuida. Y, sin embargo, estas cuentas suelen tener privilegios importantes en el dominio o el SI.

El ataque de Kerberoasting, presentado en el capítulo Los atacantes y PowerShell, se dirige específicamente a este tipo de cuenta. Para ello, la vulnerabilidad explotada se reduce a una contraseña demasiado débil y, por lo tanto, reversible para una cuenta. Microsoft propone una solución para resolver este tipo de problema: las cuentas de servicio de grupo administradas (gMSA).

Las cuentas de servicio administradas son sorprendentemente poco conocidas por los administradores de Windows y los desarrolladores de soluciones de software. Sin embargo, las gMSA deberían reemplazar lo más pronto posible las cuentas de usuarios tradicionales que se utilizan para estas necesidades de cuentas técnicas.

Estas gMSA son las sucesoras de las cuentas de servicio administradas (MSA), que tenían como objetivo automatizar la gestión de contraseñas de cuentas de servicio (a través...

Live-forensics y PowerShell

1. WinRM y el live-forensics

Para empezar, ¿qué es el live-forensics? Es un método de investigación digital que complementa el análisis forense tradicional, que es un análisis realizado en la imagen de disco de una máquina apagada. «El análisis forense de sistemas vivos», en español, se utiliza, como su nombre indica, en máquinas activas y accesibles en línea.

Esta técnica es necesaria para todos los ejemplos de ataques «solo en memoria», que se han abordado en los primeros capítulos (ver capítulo Malware casero - Etapa 1: el dropper Memory Only). En comparación con un análisis en frío, permitirá, en particular, la recolección de una imagen de la memoria RAM que sería imposible en una máquina apagada.

En los grandes SI, hoy en día esta función la llevan a cabo los EDR (Endpoint Detection and Response) que, con la ayuda de un agente en las estaciones y servidores, proporcionarán estas funcionalidades. Cuando el entorno o el contexto no permiten la instalación de tal producto, las funciones de control remoto de PowerShell, como WinRM, especialmente si se combina con JEA, pueden proporcionar funcionalidades similares e interesantes a los administradores.

En las siguientes secciones, no vamos a volver a la operación de acceso remoto de PowerShell, sino más bien a ver lo que es posible monitorear en un sistema con PowerShell desde una perspectiva de control o de aclaración de dudas.

2. WMI: suscripciones a eventos del sistema

Muy utilizados por los malwares como mecanismo de persistencia o propagación, los eventos WMI también pueden usarse en una perspectiva de monitorización del sistema de información. WMI, de hecho, proporciona una funcionalidad de gestión de eventos.

Por ejemplo, durante la creación de un nuevo proceso, se crea una nueva instancia del objeto WIN32_Process en la base WMI, lo que desencadena un evento de tipo __Instancecreationevent. Del mismo modo, se elevará un evento en el apagado del sistema o en la modificación de una clave de registro. 

Todos estos tipos de eventos son accesibles a través de filtros escritos en lenguaje WQL (WMI Query Language). Muy cercano en su filosofía al SQL (usado con bases de datos), permite...

Conclusión

En este capítulo, hemos dado varios ejemplos de mecanismos defensivos que un administrador puede implementar para fortalecer la seguridad de su sistema de información: firewall, gestión de protocolos de red, protección del directorio y estudio de mecanismos de monitorización, así como mecanismos de persistencia de atacantes, con suscripción a eventos WMI. Estos ejemplos no se han elegido al azar y forman parte de las victorias rápidas y fáciles de implementar en un sistema de información (implementación de cuentas de servicio administrado, por ejemplo), o de elementos a menudo mal comprendidos por los administradores (persistencia WMI en cabeza).

En contraposición, a través de estos pocos ejemplos, solo hemos arañado la superficie del iceberg que es la defensa de un sistema de información con Windows. Habría suficiente material para escribir un libro solo sobre los mecanismos de ataque y defensa de Active Directory.

En lugar de esperar un día a completar una última lista de control de seguimiento de proyectos que pueda asegurarle que su sistema de información está seguro, e implementar las técnicas anteriores sin reflexión, le invitamos a continuar este proceso continuo de aprendizaje y a aportar mayor seguridad a los mecanismos existentes en sus sistemas de información. Esto le permitirá...