> 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](/files/6465IXNGsLcMqycUKhIa)

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](/files/Jytf4dSw1iSP6idceK55)

***

## 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](/files/eXFmjys8DxJH8gXkjL8l)

Hydra encuentra credenciales validas:

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

Con esas credenciales se accede a la web protegida:

![Apache default](/files/x7Yr1Lp5txjlJEJNqVBN)

***

## 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](/files/y5UbwwMmY0RB5n8ZhP2g)

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](/files/lZoAYzK2YwUVXzKcjdG4)

***

## 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](/files/UTLsIKtS7Mtu4ssSCUFy)

Al ejecutarlo se encuentra la password:

![Password login](/files/b7KVrlOov54eoK2YJ2Ht)

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

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

![Login correcto](/files/QuxzSWahdz4XBYz5V7or)

```
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](/files/VbFZpwY0pCwDm6Thol30)

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](/files/O6HhlT7PMmXipgFydBmV)

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](/files/KLcP2saqYjLePJdjDmq3)

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](/files/qgBNK9MraZ17vmCul58x)

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

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

![Password root](/files/NhNrUOyevbOCHcy9wycr)

```
rockyou
```

***

## Escalada a root

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

```bash
su root
```

Password:

```
rockyou
```

![Root](/files/oH3AsqH6adZfPbUTygS0)

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


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://itskode.gitbook.io/pentesting/dockerlabs/facil/influencerhate.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
