# Introducción a PowerUp

`PowerUp.ps1` es una herramienta de script escrita en PowerShell que forma parte del conjunto de herramientas PowerSploit, una colección de módulos de PowerShell diseñados para ayudar a los pentesters durante las fases de post-explotación y evaluación de seguridad en entornos Windows.

{% embed url="<https://github.com/PowerShellMafia/PowerSploit/blob/master/Privesc/PowerUp.ps1>" %}

La finalidad de `PowerUp.ps1` es automatizar el proceso de evaluación de la configuración de seguridad y buscar posibles vectores de elevación de privilegios en sistemas Windows. Es una herramienta ampliamente utilizada en el ámbito del pentesting y por equipos de red (Red Teams) para identificar debilidades y vulnerabilidades dentro de la configuración de un sistema que podrían ser explotadas para obtener mayores privilegios.

Entre las características y capacidades de `PowerUp.ps1`, se incluyen:

* <mark style="color:red;">**Enumeración de servicios con rutas no citadas**</mark><mark style="color:red;">:</mark> Identifica servicios donde la ruta del ejecutable no está entre comillas y contiene espacios, lo que podría permitir la inserción de ejecutables maliciosos en la ruta.
* <mark style="color:red;">**Permisos de ejecutables de servicios**</mark><mark style="color:red;">:</mark> Comprueba si el usuario actual tiene permisos para modificar archivos de servicios de Windows que luego podrían ser ejecutados con privilegios elevados.
* <mark style="color:red;">**Permisos de servicio**</mark><mark style="color:red;">:</mark> Evalúa si el usuario actual tiene la capacidad de modificar servicios de Windows o su configuración.
* <mark style="color:red;">**Búsqueda en la variable de entorno**</mark>**&#x20;`%PATH%`**<mark style="color:red;">:</mark> Busca ubicaciones en la variable de entorno `%PATH%` que podrían ser usadas para la inyección de DLLs maliciosas.
* <mark style="color:red;">**Clave de registro**</mark> **`AlwaysInstallElevated`**<mark style="color:red;">:</mark> Comprueba si esta clave de registro está configurada para permitir la instalación de programas con privilegios elevados.
* <mark style="color:red;">**Credenciales de autologon**</mark><mark style="color:red;">:</mark> Busca credenciales almacenadas en el registro que permiten el inicio de sesión automático.
* <mark style="color:red;">**Configuraciones de Autorun y archivos modificables**</mark><mark style="color:red;">:</mark> Identifica configuraciones de autorun y archivos del sistema que son modificables y podrían ser abusados para ejecutar código al reiniciar el sistema o al iniciar sesión.
* <mark style="color:red;">**Tareas programadas**</mark><mark style="color:red;">:</mark> Revisa los archivos y configuraciones de tareas programadas que podrían ser modificadas para obtener ejecución de código con privilegios.
* <mark style="color:red;">**Archivos de instalación desatendidos**</mark><mark style="color:red;">:</mark> Busca archivos de instalación desatendida que pueden contener credenciales en texto plano.
* <mark style="color:red;">**Cadenas cifradas en archivos**</mark> **`web.config`**<mark style="color:red;">:</mark> Identifica cadenas de configuración cifradas que podrían incluir información sensible.
* <mark style="color:red;">**Contraseñas de pools de aplicaciones y directorios virtuales**</mark><mark style="color:red;">:</mark> Busca contraseñas cifradas asociadas con pools de aplicaciones y directorios virtuales en IIS que podrían ser descifradas.
* <mark style="color:red;">**Contraseñas en texto plano en archivos**</mark> **`SiteList.xml`** <mark style="color:red;">**de McAfee**</mark><mark style="color:red;">:</mark> Busca archivos de configuración de McAfee que pueden contener contraseñas en texto plano.
* <mark style="color:red;">**Preferencias de Política de Grupo en caché**</mark><mark style="color:red;">:</mark> Revisa si hay archivos .xml de Política de Grupo que contienen contraseñas o configuraciones que podrían ser explotadas.

```powershell
PS C:\Users\admin\Desktop> Import-Module .\PowerUp.ps1
PS C:\Users\admin\Desktop> Invoke-AllChecks

[*] Running Invoke-AllChecks


[*] Checking if user is in a local group with administrative privileges...
[+] User is in a local group that grants administrative privileges!
[+] Run a BypassUAC attack to elevate privileges to admin.


[*] Checking for unquoted service paths...

[*] Checking service executable and argument permissions...

[*] Checking service permissions...

[*] Checking %PATH% for potentially hijackable .dll locations...

HijackablePath : C:\Users\admin\AppData\Local\Microsoft\WindowsApps\
AbuseFunction  : Write-HijackDll -OutputFile 'C:\Users\admin\AppData\Local\Microsoft\WindowsApps\\wlbsctrl.dll'
                 -Command '...'

[*] Checking for AlwaysInstallElevated registry key...

[*] Checking for Autologon credentials in registry...

[*] Checking for vulnerable registry autoruns and configs...

[*] Checking for vulnerable schtask files/configs...

[*] Checking for unattended install files...

[*] Checking for encrypted web.config strings...

[*] Checking for encrypted application pool and virtual directory passwords...
```

## <mark style="color:red;">Validaciones realizadas por PowerUp:</mark>

* [x] Current privileges
* [x] Unquoted service paths
* [x] Service executable permissions
* [x] Service permissions
* [x] %PATH% for hijackable DLL locations
* [x] AlwaysInstallElevated registry key
* [x] Autologon credentials in registry
* [x] Modifidable registry autoruns and configs
* [x] Modifiable schtask files/configs
* [x] Unattended install files
* [x] Encrypted web.config strings
* [x] Encrypted application pool and virtual directory passwords
* [x] Plaintext passwords in McAfee SiteList.xml
* [x] Cached Group Policy Preferences .xml files


---

# Agent Instructions: 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:

```
GET https://books.spartan-cybersec.com/cpad/post-explotacion-en-windows/introduccion-a-powerup.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
