martes, 7 de febrero de 2017

Una nueva clave de registro en Windows para persistir

Se quiere hacer eco de la siguiente entrada en el blog: Securityartwork.es (30/01/2017), así como de la entrada original del blog Enigma0x3.net (15/08/2016)

En dichas entradas se habla sobre la posibilidad de saltarse (bypass) la UAC (User Account Control), implementada por los sistemas Microsoft Windows para evitar la escalada de privilegios dentro del sistema.

El bypass se consigue mediante la creación/modificación de la siguiente clave de registro usada por la aplicación: eventvwr.exe (Microsoft Management Console)

HKEY_CURRENT_USER\Software\Classes\mscfile\shell\open\command

Y sobre la que el usuario tiene permisos de escritura.

Prueba de concepto

Se ha procedido a crear la estructura de claves de registros en el hive: HKEY_Current_User, y sobre el valor por defecto se ha introducido la ubicación de la aplicación: "powershell".

Tras lo cual se ha procedido a  llamar a: eventvwr.exe. 

El resultado ha sido este:

Claves de registro creadas para la ejecución en este caso de la aplicación: powershell.exe

Tras la modificación del registro de Windows se procede a realizar la prueba con los efectos que se pueden apreciar en la foto.


Resultado final de la prueba de concepto.

Conclusión

Con lo que me quedo de dicho uso no es tanto la escala de privilegios como su posible uso para obtener persistencia de cualquier tipo de malware dentro de nuestro sistema, tal y como se comenta en el blog: Securityatwork.es

Por dicho motivo se debería considerar:

1.- Monitorización de la clave de registro comentada frente a la creación y/o modificación
2.- Configurar el nivel de la UAC a: "Notificar siempre". Para ello en la siguiente clave de registro:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System

Las variables:  ConsentPromptBehaviorAdmin y PromptOnSecureDesktop, deben de tener respectivamente los valores 2 y 1.

Lo que hagas con la información es cosa tuya, no mía ... pero ten conciencia.

PD: Gracias por contactar DT

4 comentarios:

  1. Buenas!!

    No logro entender el resultado final de la prueba de concepto, por mas que intento replicarlo la ventana de powershell no es interactiva, si bien es cierto que con ella puedo crear ficheros en la raíz del sistema (prueba suficiente de que ha realizado el bypass), puedo ver el proceso en Process Explorer pero no puedo darle a "Bring to front" debido a "No visible windows found for this process". He de decir que si utilizo powershell_ise.exe la ventana si es interactiva.

    Me he limitado a seguir las instrucciones e invocar a "C:\windows\system32\WindowsPowerShell\v1.0\powershell.exe"

    Gracias, genial trabajo!! y un saludo.

    ResponderEliminar
  2. Buenas DT

    Ante todo muchas gracias por contactarme y por leer.

    Ten en cuenta que todo depende del entorno en el que hagas las pruebas. La gente de Enigma0x3 comenta que lo ha probado en entornos Windows 7 y 10, pero ya no sólo eso, en el script desarrollado en powershell por los mismos, la primera comprobación que hace es de la configuración de la UAC. Si encuentra que esta se encuentra en modo "Notificar siempre", el script indica que dicho entorno no puede ser "bypasseado".

    https://github.com/enigma0x3/Misc-PowerShell-Stuff/blob/master/Invoke-EventVwrBypass.ps1

    Contacto: 4null0@gmail.com

    ResponderEliminar
  3. Correctisimo. He repetido la prueba en Windows 7 y trabaja justo como pusiste en la imagen.

    He logrado un efecto interactivo en windows 10 apuntando a:
    "C:\Windows\System32\WindowsPowerShell\v1.0\powershell_ise.exe"

    Gracias por tu tiempo!

    ResponderEliminar