Con el fin de dar a los administradores de sistemas una serie de ventajas sobre las interfaces tradicionales para simplificar y automatizar las tareas administrativas, Microsoft creó PowerShell, un lenguaje de secuencias de comandos incorporado y un ejecutor de línea de comandos. La solidez de PowerShell lo convierte en un instrumento útil para que los atacantes realicen exploits sin archivos, que son difíciles de bloquear e identificar. Básicamente, el script de PowerShell es un archivo de texto simple con una extensión a.ps1. Cuando ejecute el archivo en el indicador, este se activará. El usuario de PowerShell puede administrar cuáles scripts se ejecutan, y existen varios pasos que se pueden tomar para minimizar los archivos maliciosos considerando el riesgo cuando el usuario tiene malas intenciones.

 

En este artículo hablaremos sobre las posibles defensas contra los ataques de PowerShell  que se pueden emplear fácilmente para fortalecer este sistema. También cubriremos:

 

La seguridad de los scripts de PowerShell

Manteniendo a raya el movimiento lateral

Detección y prevención de ataques de PowerShell

 

Usando los siguientes métodos, se pueden prevenir los ataques de PowerShell:

 

Seguridad de los scripts de Powershell :

 

  • Configuración de la política de ejecución de PowerShell: Microsoft limita la implementación de los scripts de PowerShell para evitar que los usuarios ejecuten inadvertidamente scripts que no deberían haber hecho. Además, estas limitaciones ayudan a prevenir el uso de scripts peligrosos en iniciativas de ingeniería social.

 

Use el cmdlet Set – ExecutionPolicy y uno de los siguientes parámetros para configurar la política de ejecución:

  1. La opción más rígida es Rest La carga de archivos de configuración y la ejecución de scripts están prohibidas al seleccionar esta opción. En la consola de PowerShell, aún podrá ejecutar comandos solitarios.
  2. Si selecciona la opción AllSigned , todos los scripts y archivos de configuración deberán estar firmados digitalmente por un editor acreditado. Se usa un certificado para la firma de código durante la firma.
  3. Cuando se descarga un script o archivo de configuración de Internet, debe estar firmado digitalmente, según la opción de Firma remot Sin embargo, en la red local de su computadora, puede cargar scripts y archivos de configuración que no están firmados.
  4. Todos los scripts se pueden ejecutar y todos los archivos de configuración se pueden cargar si selecciona la opción Teniendo en cuenta que es la opción menos limitante, también es la que corre más riesgo.

 

  • Creación delCertificado X.509: Lo siguiente que debe hacer es que debe chamuscar el archivo una vez que la política de ejecución se haya cambiado a AllSigned . Se debe realizar un certificado de firma de código X.509 para lograrlo. El estándar de criptografía X.509 es uno que puede hacer usted mismo o comprarlo a una autoridad de certificación pú

 

  • Autenticación de secuencias de comandos de PowerShell: use el certificado que ha creado para firmar sus secuencias de comandos una vez creadas. El archivo de secuencia de comandos para firmar debe especificarse junto con su certificado al usar el cmdlet Set- AuthenticodeSignature . Se le dará la opción de decidir si se puede ejecutar un script firmado digitalmente antes de ejecutarlo. Tiene la opción de ejecutar el archivo una vez, en este momento , constantemente o nunca.

 

  • Desactive los scripts de PowerShell con AppLocker : el uso de AppLocker para incluir programas y scripts en una whitelist es ventajoso. Para establecer una regla permitida que solo se aplique a una carpeta en particular, utilice las políticas de Reglas de secuencias de comandos. Esto asegurará que solo se ejecuten los archivos en esta carpeta.

 

  • Configuración "Constrained” para PowerShell: señala los límites de idioma restringidos de PowerShell para acceder a componentes de lenguaje confidenciales que pueden llamar las API de Windows arbitrarias mientras admiten las operaciones diarias de PowerShell. El uso de tecnologías de control de aplicaciones junto con el modo restringido de PowerShell es una técnica eficiente para reducir los riesgos de la red.

 

Manteniendo a raya el movimiento lateral

 

No son solo los ataques de PowerShell emplean movimiento lateral . Sin embargo se pueden tomar una serie de pasos para reducir la probabilidad de que los atacantes implementen técnicas de movimiento lateral basadas en PowerShell:

 

  • Deshabilite WinRM cuando no sea necesario hacerlo para evitar PSSession . Este comando habilita una sesión remota interactiva de PowerShell que un usuario puede usar para ejecutar comandos a distancia. Se requiere el servicio de administración remota de Windows ( WinRM ) para esta opció Para utilizar esta técnica, WinRM debe estar activado. Siempre que sea posible, configure la opción ‘Permitir administración de servidor remoto con WinRM ‘ en Deshabilitar. Si esta configuración no es una opción, configure WinRM de la forma más segura posible.
  • Establezca la configuración de política “Permitir acceso de shell remoto” a “Deshabilitar” para controlar la configuración de la ejecución de comandos y secuencias de comandos remotos para todos los shells admitidos. Puede reducir la posibilidad de uso malicioso por parte de atacantes desactivá
  • Deshabilite Windows Server Message Block (SMB) : muchas de las técnicas que usan PowerShell para migrar lateralmente usan Windows Server Message Block (SMB). Los atacantes que utilicen programas de tipo PsExec no podrán hacerlo si SMB está
  • Establezca una política de libertades mínimas; si el atacante obtiene acceso de escritura a los archivos de perfil de PowerShell en una computadora remota, pudiera agregarles software malicioso.

 

Detección y prevención de ataques de PowerShell

 

Insertar blog: https://www.calcomsoftware.com/powershell-risk-factor-or-risk-mitigator/

 

PowerShell es bien conocido por sus sólidas funciones de registro de actividad que se pueden usar para identificar y contrarrestar el uso indebido de herramientas. Los administradores pueden utilizar las siguientes tres funciones de registro de actividades para examinar las actividades de PowerShell y establecer el alcance de una invasión:

 

  • Registro de módulos: al activar el registro de módulos, PowerShell realizaría un seguimiento de la ejecución de cada módulo, como los códigos y las salidas desofuscados. Para registrar aplicaciones, se recomienda ingresar un valor de “*” para registrar todo.
  • Registro de bloques de secuencias de comandos: si habilita esta opción, se producirán registros cada vez que se utilice un bloque de secuencias de comandos. Aunque podría ser una herramienta valiosa para la detección de ataques, conlleva peligros de seguridad adicionales.
  • Transcripción de PowerShell: cuando la transcripción de PowerShell está habilitada, se capturan todas las entradas y salidas de una transacción de PowerShell.

 

 

Los atacantes pueden utilizar PowerShell como una herramienta vital en diferentes puntos y de diferentes maneras durante un asalto. Pero al establecer configuraciones seguras para los servicios y elementos de la red, muchas de estas opciones pueden desactivarse. Verifique si su sistema se ha fortalecido lo suficiente antes de buscar métodos para aumentar la seguridad de PowerShell. Esto se puede hacer empleando los métodos mencionados anteriormente. Estos métodos son sistemas probados que evitarán que los atacantes debiliten su sistema o hagan un mal uso de cualquier información que tenga en PowerShell.

 

Herramientas de Hardening automatizado:

 

PowerShell es una herramienta poderosa para que la usen los atacantes, pero muchas de estas opciones pueden bloquearse ajustando componentes y servicios de configuración seguros en su sistema.

 

Antes de buscar otras herramientas que puedan aumentar la seguridad de PowerShell, asegúrese de que en su sistema se haya realizado el hardening correctamente. Recomendamos utilizar la automatización para esta tarea, ya que es una misión bastante complicada y propensa a errores. Aprenda cómo CalCom automatiza el Hardening.   .

 

 

You might be interested