Welcome To The Jungle - TheHackerLabs

texto

Herramientas utilizadas:

  • ping
  • nmap
  • **
  • **
  • **
  • **






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-01-24 12:46 -0600
...
MAC Address: XX (Oracle VirtualBox virtual NIC)
Nmap scan report for 192.168.100.200
Host is up (0.0012s latency).
Nmap done: 256 IP addresses (4 hosts up) scanned in 2.10 seconds

Vamos a probar la herramienta arp-scan:

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

3 packets received by filter, 0 packets dropped by kernel
Ending arp-scan 1.10.0: 256 hosts scanned in 2.211 seconds (115.78 hosts/sec). 3 responded

Encontramos nuestro objetivo y es: 192.168.100.200.


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.200
PING 192.168.100.200 (192.168.100.200) 56(84) bytes of data.
64 bytes from 192.168.100.200: icmp_seq=1 ttl=128 time=2.27 ms
64 bytes from 192.168.100.200: icmp_seq=2 ttl=128 time=0.945 ms
64 bytes from 192.168.100.200: icmp_seq=3 ttl=128 time=1.03 ms
64 bytes from 192.168.100.200: icmp_seq=4 ttl=128 time=0.763 ms

--- 192.168.100.200 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3065ms
rtt min/avg/max/mdev = 0.763/1.251/2.268/0.594 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.200 -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-02-19 17:39 -0600
Initiating ARP Ping Scan at 17:39
Scanning 192.168.100.200 [1 port]
Completed ARP Ping Scan at 17:39, 0.07s elapsed (1 total hosts)
Initiating SYN Stealth Scan at 17:39
Scanning 192.168.100.200 [65535 ports]
Discovered open port 139/tcp on 192.168.100.200
Discovered open port 135/tcp on 192.168.100.200
Discovered open port 80/tcp on 192.168.100.200
Discovered open port 445/tcp on 192.168.100.200
Discovered open port 49671/tcp on 192.168.100.200
Discovered open port 49668/tcp on 192.168.100.200
Discovered open port 49664/tcp on 192.168.100.200
Discovered open port 49665/tcp on 192.168.100.200
Discovered open port 49666/tcp on 192.168.100.200
Discovered open port 47001/tcp on 192.168.100.200
Discovered open port 49667/tcp on 192.168.100.200
Discovered open port 49670/tcp on 192.168.100.200
Discovered open port 5985/tcp on 192.168.100.200
Completed SYN Stealth Scan at 17:40, 31.83s elapsed (65535 total ports)
Nmap scan report for 192.168.100.200
Host is up, received arp-response (0.0010s latency).
Scanned at 2026-02-19 17:39:38 CST for 32s
Not shown: 57259 closed tcp ports (reset), 8263 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 128
135/tcp   open  msrpc        syn-ack ttl 128
139/tcp   open  netbios-ssn  syn-ack ttl 128
445/tcp   open  microsoft-ds syn-ack ttl 128
5985/tcp  open  wsman        syn-ack ttl 128
47001/tcp open  winrm        syn-ack ttl 128
49664/tcp open  unknown      syn-ack ttl 128
49665/tcp open  unknown      syn-ack ttl 128
49666/tcp open  unknown      syn-ack ttl 128
49667/tcp open  unknown      syn-ack ttl 128
49668/tcp open  unknown      syn-ack ttl 128
49670/tcp open  unknown      syn-ack ttl 128
49671/tcp open  unknown      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 32.06 seconds
           Raw packets sent: 159759 (7.029MB) | Rcvd: 57324 (2.293MB)
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.


Vemos varios puertos abiertos, pero me da curiosidad el puerto 80 que nos indica que hay una página web activa.


Escaneo de Servicios

nmap -sCV -p 80,135,139,445,5985,47001,49664,49665,49666,49667,49668,49670,49671 192.168.100.200 -oN targeted
Starting Nmap 7.98 ( https://nmap.org ) at 2026-02-19 17:40 -0600
Nmap scan report for 192.168.100.200
Host is up (0.0013s latency).

PORT      STATE SERVICE       VERSION
80/tcp    open  http          Microsoft IIS httpd 10.0
|_http-server-header: Microsoft-IIS/10.0
|_http-title: Welcome to the Jungle - The Hex Guns
| http-methods: 
|_  Potentially risky methods: TRACE
135/tcp   open  msrpc         Microsoft Windows RPC
139/tcp   open  netbios-ssn   Microsoft Windows netbios-ssn
445/tcp   open  microsoft-ds?
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
49668/tcp open  msrpc         Microsoft Windows RPC
49670/tcp open  msrpc         Microsoft Windows RPC
49671/tcp open  msrpc         Microsoft Windows RPC
MAC Address: XX (Oracle VirtualBox virtual NIC)
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Host script results:
| smb2-security-mode: 
|   3.1.1: 
|_    Message signing enabled but not required
|_nbstat: NetBIOS name: THEHEXGUNS, NetBIOS user: <unknown>, NetBIOS MAC: XX (Oracle VirtualBox virtual NIC)
|_clock-skew: 11m32s
| smb2-time: 
|   date: 2026-02-19T23:53:00
|_  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 60.44 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.


Analizando el escaneo de servicios, vemos un par de cosas interesantes:

  • La página web activa en el puerto 80, no tiene un dominio asignado.
  • Necesitaremos credenciales válidas para ver el servicio SMB, aunque por el mensaje de “Message signing enables but not required” nos puede permitir hacer NTLM o un SMB Relay Attack.

Por el momento, enfoquemonos en la página web, así que vamos a analizarla.




Análisis de Vulnerabilidades


Analizando Servicio HTTP

Entremos:

Parecer ser una página dedicada a un grupo musical.

Veamos qué nos dice Wappalizer:

No hay mucho que destacar, salvo el uso de PHP.

Si observas en la parte superior derecha, podemos visitar una subpágina llamada Albums:

Pero al revisar el código fuente, podemos ver un mensaje que dejo alguien y mencionan un nombre:

Podríamos aplicarle Fuerza Bruta para ver si pertecene a algún servicio de la máquina víctima, pero esto no nos llevara a nada.

Apliquemos Fuzzing para saber si hay algún directorio o archivo oculto.


Fuzzing

Al ver que se utiliza PHP, podemos enfocar una busqueda por esa extensión y algunas más.

Primero utilizaremos la herramienta ffuf:

ffuf -w /usr/share/wordlists/seclists/Discovery/Web-Content/combined_directories.txt:FUZZ -u http://192.168.100.200/FUZZ -t 300 -e .php,.txt,.html

        /'___\  /'___\           /'___\       
       /\ \__/ /\ \__/  __  __  /\ \__/       
       \ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\      
        \ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/      
         \ \_\   \ \_\  \ \____/  \ \_\       
          \/_/    \/_/   \/___/    \/_/       

       v2.1.0-dev
________________________________________________

 :: Method           : GET
 :: URL              : http://192.168.100.200/FUZZ
 :: Wordlist         : FUZZ: /usr/share/wordlists/seclists/Discovery/Web-Content/combined_directories.txt
 :: Extensions       : .php .txt .html 
 :: Follow redirects : false
 :: Calibration      : false
 :: Timeout          : 10
 :: Threads          : 300
 :: Matcher          : Response status: 200-299,301,302,307,401,403,405,500
________________________________________________

media                   [Status: 301, Size: 161, Words: 9, Lines: 2, Duration: 240ms]
css                     [Status: 301, Size: 159, Words: 9, Lines: 2, Duration: 258ms]
img                     [Status: 301, Size: 159, Words: 9, Lines: 2, Duration: 246ms]
index.php               [Status: 200, Size: 1209, Words: 231, Lines: 29, Duration: 327ms]
header.php              [Status: 200, Size: 189, Words: 35, Lines: 7, Duration: 129ms]
albums.php              [Status: 200, Size: 1915, Words: 455, Lines: 42, Duration: 143ms]
footer.php              [Status: 200, Size: 81, Words: 13, Lines: 3, Duration: 358ms]
CSS                     [Status: 301, Size: 159, Words: 9, Lines: 2, Duration: 111ms]
Media                   [Status: 301, Size: 161, Words: 9, Lines: 2, Duration: 130ms]
Css                     [Status: 301, Size: 159, Words: 9, Lines: 2, Duration: 128ms]
IMG                     [Status: 301, Size: 159, Words: 9, Lines: 2, Duration: 79ms]
Img                     [Status: 301, Size: 159, Words: 9, Lines: 2, Duration: 82ms]
Index.php               [Status: 200, Size: 1209, Words: 231, Lines: 29, Duration: 176ms]
Footer.php              [Status: 200, Size: 81, Words: 13, Lines: 3, Duration: 103ms]
Header.php              [Status: 200, Size: 189, Words: 35, Lines: 7, Duration: 99ms]
MEDIA                   [Status: 301, Size: 161, Words: 9, Lines: 2, Duration: 111ms]
index.php               [Status: 200, Size: 1209, Words: 231, Lines: 29, Duration: 115ms]
.                       [Status: 200, Size: 1209, Words: 231, Lines: 29, Duration: 113ms]
Albums.php              [Status: 200, Size: 1915, Words: 455, Lines: 42, Duration: 119ms]
INDEX.php               [Status: 200, Size: 1209, Words: 231, Lines: 29, Duration: 105ms]
FOOTER.php              [Status: 200, Size: 81, Words: 13, Lines: 3, Duration: 147ms]
:: Progress: [514492/514492] :: Job [1/1] :: 2762 req/sec :: Duration: [0:03:12] :: Errors: 4 ::
Parámetros Descripción
-w Para indicar el diccionario a usar en el fuzzing.
-u Para indicar la URL a utilizar.
-t Para indicar la cantidad de hilos a usar.
-e Para indicar una busqueda de archivos con extensiones específicas.


Ahora probemos con gobuster:

gobuster dir -u http://192.168.100.200 -w /usr/share/wordlists/seclists/Discovery/Web-Content/combined_directories.txt -t 300 -x php,txt,html --ne
===============================================================
Gobuster v3.8.2
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:                     http://192.168.100.200
[+] Method:                  GET
[+] Threads:                 300
[+] Wordlist:                /usr/share/wordlists/seclists/Discovery/Web-Content/combined_directories.txt
[+] Negative Status codes:   404
[+] User Agent:              gobuster/3.8.2
[+] Extensions:              php,txt,html
[+] Timeout:                 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
img                  (Status: 301) [Size: 159] [--> http://192.168.100.200/img/]
media                (Status: 301) [Size: 161] [--> http://192.168.100.200/media/]
index.php            (Status: 200) [Size: 1209]
css                  (Status: 301) [Size: 159] [--> http://192.168.100.200/css/]
header.php           (Status: 200) [Size: 189]
albums.php           (Status: 200) [Size: 1915]
footer.php           (Status: 200) [Size: 81]
CSS                  (Status: 301) [Size: 159] [--> http://192.168.100.200/CSS/]
Media                (Status: 301) [Size: 161] [--> http://192.168.100.200/Media/]
Css                  (Status: 301) [Size: 159] [--> http://192.168.100.200/Css/]
IMG                  (Status: 301) [Size: 159] [--> http://192.168.100.200/IMG/]
Img                  (Status: 301) [Size: 159] [--> http://192.168.100.200/Img/]
Index.php            (Status: 200) [Size: 1209]
MEDIA                (Status: 301) [Size: 161] [--> http://192.168.100.200/MEDIA/]
Footer.php           (Status: 200) [Size: 81]
Header.php           (Status: 200) [Size: 189]
error_log.html      (Status: 400) [Size: 324]
error_log.txt       (Status: 400) [Size: 324]
error_log.php       (Status: 400) [Size: 324]
error_log           (Status: 400) [Size: 324]
index.php            (Status: 200) [Size: 1209]
.                    (Status: 200) [Size: 1209]
Albums.php           (Status: 200) [Size: 1915]
INDEX.php            (Status: 200) [Size: 1209]
FOOTER.php           (Status: 200) [Size: 81]
Progress: 514492 / 514492 (100.00%)
===============================================================
Finished
===============================================================
Parámetros Descripción
-u Para indicar la URL a utilizar.
-w Para indicar el diccionario a usar en el fuzzing.
-t Para indicar la cantidad de hilos a usar.
-x Para indicar una busqueda de archivos con extensiones específicas.
–ne Para que no muestre errores.


No encontramos gran cosa, pero si vemos un directorio que se llama /media.

Probemos si hay algún archivo oculto, pero aparte de usar las extensiones que usamos al inicio, agreguemos algunas más:

ffuf -w /usr/share/wordlists/seclists/Discovery/Web-Content/combined_words.txt -u http://192.168.100.200/media/FUZZ -t 300 -e .php,.txt,.html,.rar,.zip,.db,.bak -mc 200,301,302

        /'___\  /'___\           /'___\       
       /\ \__/ /\ \__/  __  __  /\ \__/       
       \ \ ,__\\ \ ,__\/\ \/\ \ \ \ ,__\      
        \ \ \_/ \ \ \_/\ \ \_\ \ \ \ \_/      
         \ \_\   \ \_\  \ \____/  \ \_\       
          \/_/    \/_/   \/___/    \/_/       

       v2.1.0-dev
________________________________________________

 :: Method           : GET
 :: URL              : http://192.168.100.200/media/FUZZ
 :: Wordlist         : FUZZ: /usr/share/wordlists/seclists/Discovery/Web-Content/combined_words.txt
 :: Extensions       : .php .txt .html .rar .zip .db .bak 
 :: Follow redirects : false
 :: Calibration      : false
 :: Timeout          : 10
 :: Threads          : 300
 :: Matcher          : Response status: 200,301,302
________________________________________________

songs.zip               [Status: 200, Size: 3918, Words: 23, Lines: 11, Duration: 136ms]
Songs.zip               [Status: 200, Size: 3918, Words: 23, Lines: 11, Duration: 124ms]
:: Progress: [1026960/1026960] :: Job [1/1] :: 3118 req/sec :: Duration: [0:06:01] :: Errors: 0 ::
Parámetros Descripción
-w Para indicar el diccionario a usar en el fuzzing.
-u Para indicar la URL a utilizar.
-t Para indicar la cantidad de hilos a usar.
-mc Para aplicar un flitro que solo muestra resultados con un código de estado especifico.
-e Para indicar una busqueda de archivos específicos.


Excelente, encontramos un archivo ZIP que podemos descargar.

Descargalo y descomprimelo:

unzip songs.zip
Archive:  songs.zip
  inflating: digital_destruction.txt  
  inflating: neon_rebellion.txt      
  inflating: paradaise_404.txt       
  inflating: solo_final.wav

Nos dio 3 archivos de texto y un archivo WAV, que es un audio que se puede escuchar.

Analicemos cada archivo.




Explotación de Vulnerabilidades


Identificando Esteganografia en Archivos Obtenidos de Archivo ZIP

Leyendo cada archivo de texto que obtuvimos, vemos que parecen ser letras de canciones:

cat digital_destruction.txt
Binary burns through the wires,
1s and 0s flying higher...
# nothing special here
                                                                                                                                                                                              
cat neon_rebellion.txt
Rise against the static tide,
firewalls can't stop our ride.
                                                                                                                                                                                              
cat paradaise_404.txt
They tried to hide, but we still found,
The jungle echoes with a sound...

There's always one password we’ve used since the first rehearsal...

Trate de escuchar el archivo WAV utilizando Audicity, pero parece que no contiene ningún audio:

Quizá tenga algún espectograma oculto, pero como no hay audio como tal, no veremos nada:

Viendo la información del archivo, si encontramos la palabra data, puede que contenga un mensaje o archivo oculto:

file solo_final.wav
solo_final.wav: RIFF (little-endian) data, WAVE audio, Microsoft PCM, 16 bit, stereo 44100 Hz

Ahí esta data, hay una gran posibilidad de que se haya usado Esteganografía para ocultar algo en este archivo.

Probemos si la herramienta stegseek puede encontrar algo:

stegseek solo_final.wav
StegSeek 0.6 - https://github.com/RickdeJager/StegSeek

[i] Progress: 99.26% (132.5 MB)           
[!] error: Could not find a valid passphrase

Parece que si hay algo, pero necesita una contraseña.

Trate de utilizar rockyou.txt, pero no encontro nada, así que es muy probable que utilice alguna palabra que este dentro de la página web.

Este wordlist contiene palabras que pueden ser una contraseña:

cat contraseñas.txt
slash
Slash
SLASH
digital_destruction
digitaldestruction
DigitalDestruction
DIGITALDESCTRUION
neon_rebellion
neonrebellion
NeonRebellion
NEONREBELLION
paradaise_404
400paradise
400Paradise
400PARADISE
thehexguns
TheHexGuns
THEHEXGUNS

Probemos:

stegseek solo_final.wav contraseñas.txt
StegSeek 0.6 - https://github.com/RickdeJager/StegSeek

[i] Found passphrase: "thehexguns"
[i] Original filename: "password.txt".
[i] Extracting to "solo_final.wav.out".

Excelente, obtumos un archivo de texto.

Leamoslo:

cat solo_final.wav.out
Password:**********
URL:theh3xgun5

Tenemos una página web y una contraseña.

Entremos a esa págna:

Es un login y para este momento, ya tenemos un usuario y contraseña que podemos utilizar:


Analizando Binario commonlink.exe



strings commlink.exe | grep -n "password"
405:axl password: **********








Post Explotación








links


FIN