root@sparrow:~/writeups$ cat cyborg.md
// Offensive
Cyborg
10 Feb 2023
· 9 min read
· user access
Executive summary — Cyborg is an Easy Linux room on TryHackMe that chains a web information leak, hash cracking and an encrypted backup. The app exposes a Squid proxy configuration containing anAPR1hash that we crack with John; that password turns out to be the passphrase of a Borg repository downloaded from the admin panel, from which we recover SSH credentials for useralex. Once inside, the final escalation abuses a script runnable as root viasudo. A Web → Borg → SSH → Root journey.
| Platform | TryHackMe |
| Operating system | Linux |
| Difficulty | Easy |
| Room | Cyborg |
| Target IP | MACHINE_IP |
Attack map
[80/HTTP] web application
| /etc/squid/passwd exposed -> APR1 hash (music_archive)
v
[CRACK] john + rockyou -> music_archive:squidward
| download archive.tar from /admin -> Borg repository
v
[BORG] borg extract (passphrase: squidward) -> alex's note.txt
| recovered SSH credentials
v
[SSH] alex@MACHINE_IP -> user.txt
| sudo -l -> abusable root-run script (PATH / writable)
v
[ROOT] root.txt1. Reconnaissance
We start by mapping the attack surface with a full TCP scan, running default scripts and version detection:
sudo nmap -sC -sV -T4 -p- MACHINE_IPWhy these flags:
-sC→ runs the default NSE scripts (banners, HTTP titles, etc.).-sV→ identifies each service's version.-p-→ scans all 65535 TCP ports, not just the top 1000.-T4→ aggressive timing template (fast but not reckless).
Relevant result: 22/tcp (SSH) and 80/tcp (HTTP) are open.
Analysis: with SSH and a web service exposed, the entry vector is almost certainly the web application; SSH is saved for later, once we hold credentials.
Resumen ejecutivo — Cyborg es una máquina Linux Easy de TryHackMe cuyo recorrido combina fuga de información web, cracking de hashes y un backup cifrado. La app expone la configuración de un proxy Squid con un hashAPR1que crackeamos con John; esa contraseña resulta ser la passphrase de un repositorio Borg descargado desde el panel de administración, del que extraemos credenciales SSH del usuarioalex. Ya dentro, la escalada final se apoya en un script ejecutable como root víasudo. Un recorrido Web → Borg → SSH → Root.
| Plataforma | TryHackMe |
| Sistema operativo | Linux |
| Dificultad | Easy |
| Room | Cyborg |
| IP objetivo | MACHINE_IP |
Mapa del ataque
[80/HTTP] aplicación web
| /etc/squid/passwd expuesto -> hash APR1 (music_archive)
v
[CRACK] john + rockyou -> music_archive:squidward
| descargar archive.tar desde /admin -> repositorio Borg
v
[BORG] borg extract (passphrase: squidward) -> note.txt de alex
| credenciales SSH recuperadas
v
[SSH] alex@MACHINE_IP -> user.txt
| sudo -l -> script root-run abusable (PATH / escritura)
v
[ROOT] root.txt1. Reconocimiento
Empezamos mapeando la superficie de ataque con un escaneo TCP completo, con scripts por defecto y detección de versiones:
sudo nmap -sC -sV -T4 -p- MACHINE_IPPor qué estas flags:
-sC→ ejecuta los scripts NSE por defecto (banners, títulos HTTP, etc.).-sV→ identifica la versión de cada servicio.-p-→ escanea los 65535 puertos TCP, no solo los 1000 habituales.-T4→ plantilla de tiempo agresiva (rápida sin pasarse).
Resultado relevante: quedan abiertos 22/tcp (SSH) y 80/tcp (HTTP).
Análisis: con SSH y un servicio web expuestos, el vector de entrada es casi seguro la aplicación web; SSH quedará para más adelante, cuando tengamos credenciales.
🔒 Free account required
This is USER ACCESS content — free to unlock, no payment. The rest of the write-up (and everything else at this level) opens up once you're signed in.
Create a free account🔒 Registro gratuito requerido
Esto es contenido de nivel USER ACCESS — se desbloquea gratis, sin pago. El resto del writeup (y todo lo demás de este nivel) se abre en cuanto inicies sesión.
Crear una cuenta gratis