Reconeixement i Recollida d'Informació
Introducció
El reconeixement (o fase de recon) és la primera etapa d'un test d'intrusió. Consisteix a recopilar tanta informació com sigui possible sobre l'objectiu sense interactuar directament amb els seus sistemes (reconeixement passiu) o amb una interacció mínima i controlada (reconeixement actiu).
Un hacker ètic (o un atacant real) pot estalviar molt de temps i triplicar l'eficàcia del seu atac si fa un bon reconeixement previ. Com deia Sun Tzu: "Coneix el teu enemic i coneix-te a tu mateix; en cent batalles, mai seràs derrotat".
flowchart LR
subgraph Passiu[Reconeixement Passiu - No interacció directa]
OSINT[OSINT\nShoda, HIBP, LinkedIn]
DNS[Enumeració DNS\nPassiveDNS, WHOIS]
CERT[Certificats SSL\ncrt.sh]
PASTE[Pastebin\nBreaches]
end
subgraph Actiu[Reconeixement Actiu - Interacció controlada]
PORTSCAN[Port Scan\nNmap]
WEB[Web Crawling\nGobuster, Nikto]
VULN[Vulnerability Scan\nOpenVAS, Nessus]
end
TARGET[Objectiu] --> Passiu
Passiu --> Actiu
Actiu --> EXPLOIT[Fase d'Explotació]
Autorització prèvia obligatòria
Fins i tot el reconeixement actiu (escaneig de ports) pot ser il·legal sense autorització escrita. L'escaneig de ports es considera un acte preparatori d'intrusió en moltes jurisdiccions. Mai realitzar reconeixement actiu sobre sistemes que no són teus o sense autorització explícita.
Reconeixement Passiu (OSINT)
Google Dorks
Els Google Dorks (cerques avançades de Google) permeten trobar informació sensible indexada accidentalment:
# Cerques bàsiques
site:empresa.cat # Totes les pàgines d'un domini
site:empresa.cat filetype:pdf # Documents PDF del domini
site:empresa.cat "password" # Pàgines que continguin la paraula "password"
# Fitxers sensibles exposats
site:empresa.cat filetype:xls "salary" # Fulles de càlcul amb sous
site:empresa.cat filetype:sql # Fitxers SQL (backup de BBDD!)
site:empresa.cat intitle:"index of" "backup" # Directoris oberts amb backups
# Panells d'administració
inurl:"/admin" site:empresa.cat
inurl:"/wp-admin" site:empresa.cat
intitle:"phpMyAdmin" site:empresa.cat
# Dispositius exposats
inurl:":8080" site:empresa.cat # Ports no estàndard
intitle:"Live View / - AXIS" site:empresa.cat # Càmeres IP AXIS
GHDB - Google Hacking Database
La Google Hacking Database (https://www.exploit-db.com/google-hacking-database) manté un catàleg actualitzat de Google Dorks per categories: fitxers sensibles, dispositius vulnerables, panells d'administració, etc.
Shodan
Shodan és el "Google dels dispositius connectats": indexa dispositius IoT, servidors, càmeres, routers i qualsevol servei que escolti a Internet.
# Cerques a Shodan (via CLI o web)
# Compte gratuït: 2 resultats per pàgina
# Buscar per organització
org:"ACME Corp"
# Buscar per IP o CIDR
net:203.0.113.0/24
# Buscar serveis específics vulnerables
product:"Apache httpd" version:"2.4.49" # Versió vulnerable a CVE-2021-41773
port:21 "220" "FTP server ready" # Servidors FTP
port:3389 "Remote Desktop Protocol" # Escritoris remots exposats
"default password" port:23 # Telnet amb contrasenya per defecte
# Shodan CLI (requereix API key)
docker run --rm -e SHODAN_API_KEY=YOUR_KEY \
--name shodan-NOMCOGNOM \
python:alpine bash -c "
pip install shodan -q &&
shodan init YOUR_API_KEY &&
shodan host 203.0.113.1
"
theHarvester - Email i Subdominis
# theHarvester: recopila emails, noms, IPs, subdominis de fonts públiques
docker run --rm \
--name harvester-NOMCOGNOM \
kalilinux/kali-rolling bash -c "
apt-get install -y theHarvester -qq &&
theHarvester \
-d empresa.cat \
-l 200 \
-b bing,google,linkedin,twitter \
-f /tmp/harvester-empresa.json
"
Enumeració de Subdominis
# amass: eina OWASP per a enumeració de subdominis (passive mode)
docker run --rm \
--name amass-NOMCOGNOM \
caffix/amass \
enum -passive -d empresa.cat -o /tmp/amass-empresa.txt
# subfinder: ràpid i eficient
docker run --rm \
projectdiscovery/subfinder:latest \
-d empresa.cat -silent
# crt.sh: buscar subdominis via certificats SSL (sense connectar a l'objectiu)
curl -s "https://crt.sh/?q=%.empresa.cat&output=json" | \
python3 -c "
import json, sys
data = json.load(sys.stdin)
domains = set()
for cert in data:
name = cert.get('name_value', '')
for d in name.split('\n'):
if 'empresa.cat' in d:
domains.add(d.strip().lstrip('*.'))
for d in sorted(domains):
print(d)
"
Enumeració DNS
# Resoldre registres DNS bàsics
docker run --rm \
--name dns-enum-NOMCOGNOM \
python:alpine bash -c "
pip install dnspython -q &&
python3 -c \"
import dns.resolver
domain = 'empresa.cat'
record_types = ['A', 'AAAA', 'MX', 'NS', 'TXT', 'SOA', 'CNAME']
for rtype in record_types:
try:
answers = dns.resolver.resolve(domain, rtype)
for rdata in answers:
print(f'{rtype}: {rdata}')
except Exception:
pass
\"
"
# Transferència de zona DNS (si el servidor ho permet - misconfiguration)
# ÚNICAMENT en laboratoris - mai en sistemes reals sense autorització
dig axfr @ns1.empresa.cat empresa.cat
Miniactivitat
Realitza un reconeixement PASSIU sobre el domini hackthissite.org (plataforma legal d'entrenament):
- Quants subdominis trobes amb crt.sh?
- Quina informació proporciona el registre MX (servidor de correu)?
- Utilitza WHOIS i indica qui és el registrador del domini i quan expira
Reconeixement Actiu
Nmap - Escaneig de Ports
Nmap és l'eina estàndard per a descoberta de xarxes i escaneig de ports:
# Escaneig bàsic (TCP SYN scan, 1000 ports comuns)
nmap -sS 192.168.1.1
# Escaneig complet amb detecció de versions i scripts
nmap -sV -sC -O --version-intensity 5 192.168.1.1
# Escaneig ràpid de tota una subxarxa
nmap -sn 192.168.1.0/24 # Host discovery (ping scan)
nmap --open -T4 192.168.1.0/24 # Ports oberts ràpid
# Escaneig de tots els ports UDP (lent però important)
nmap -sU --top-ports 100 192.168.1.1
# Scripts NSE (Nmap Scripting Engine) per a vulnerabilitats
nmap --script vuln 192.168.1.1 # Escaneig de vulnerabilitats
nmap --script http-enum 192.168.1.1 # Enumeració de directoris web
nmap --script ssh-brute 192.168.1.1 # Força bruta SSH (PRECAUCIÓ)
nmap --script smb-vuln-ms17-010 192.168.1.1 # EternalBlue (WannaCry)
# Nmap en Docker (per al lab)
docker run --rm \
--network host \
--name nmap-NOMCOGNOM \
instrumentisto/nmap:latest \
-sV -sC -O --open -T4 \
-oA /tmp/nmap-scan-NOMCOGNOM \
192.168.1.0/24
Interpretació de resultats Nmap
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
443/tcp open ssl/http Apache httpd 2.4.41
3306/tcp open mysql MySQL 8.0.32-0ubuntu0.20.04.2
8080/tcp open http Jetty 9.4.48.v20220622
# Anàlisi:
# ✅ SSH en port 22 (estàndard)
# ⚠️ MySQL accessible directament (port 3306 obert!)
# ⚠️ Jetty en port 8080 (possible panell d'administració intern exposat)
# ℹ️ Apache 2.4.41 (buscar CVEs per a aquesta versió)
Gobuster - Enumeració de Directoris Web
# Gobuster: enumeració de directoris i fitxers web per força bruta
docker run --rm \
--name gobuster-NOMCOGNOM \
kalilinux/kali-rolling bash -c "
apt-get install -y gobuster wordlists -qq &&
gobuster dir \
-u http://TARGET_URL \
-w /usr/share/wordlists/dirb/common.txt \
-x php,html,txt,bak,sql \
-t 20 \
-o /tmp/gobuster-NOMCOGNOM.txt
"
# Subdomain fuzzing
docker run --rm \
--name gobuster-sub-NOMCOGNOM \
kalilinux/kali-rolling bash -c "
gobuster dns \
-d empresa.cat \
-w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-5000.txt
"
Nikto - Escàner de Vulnerabilitats Web
# Nikto: escàner de vulnerabilitats web (no és subtil, genera molts logs)
docker run --rm \
--name nikto-NOMCOGNOM \
hysnsec/nikto \
-host http://TARGET_URL \
-Format htm \
-output /tmp/nikto-report-NOMCOGNOM.html
Organitzar el Reconeixement
Un bon reconeixement s'ha de documentar sistemàticament. Eina recomanada: Maltego (versió community gratuïta) o simplement un fitxer estructurat:
# Informe de Reconeixement - NOMCOGNOM
**Data**: ____________________
**Objectiu**: empresa.cat
**Autorització**: [referència al document d'autorització]
## 1. Informació de Domini
- Registrador: _______________
- Data registre: _______________
- Data expiració: _______________
- Nameservers: ns1.empresa.cat, ns2.empresa.cat
- IP(s): 203.0.113.1
## 2. Subdominis Descoberts
| Subdomini | IP | Servei |
|-----------|-----|--------|
| www.empresa.cat | 203.0.113.1 | Apache 2.4.41 |
| mail.empresa.cat | 203.0.113.5 | Postfix |
| vpn.empresa.cat | 203.0.113.10 | OpenVPN |
## 3. Ports Oberts (nmap -sV)
| Port | Protocol | Servei | Versió | Notes |
|------|---------|--------|--------|-------|
| 22 | TCP | SSH | OpenSSH 8.2 | - |
| 80 | TCP | HTTP | Apache 2.4.41 | Redirigeix a HTTPS |
| 443 | TCP | HTTPS | Apache 2.4.41 | Cert vàlid |
| 3306 | TCP | MySQL | 8.0.32 | ⚠️ Accessible externament |
## 4. Emails Trobats (theHarvester)
- admin@empresa.cat
- joan.garcia@empresa.cat
## 5. Tecnologies Detectades (Wappalyzer/WhatWeb)
- CMS: WordPress 6.4.2
- PHP: 8.1.x
- jQuery: 3.6.0
## 6. Vulnerabilitats Potencials Identificades
1. MySQL exposat a Internet (CVE-...)
2. WordPress versió antiga (buscar CVEs)
3. ...
Exercici pràctic
Realitza un reconeixement complet (passiu i actiu) sobre la màquina de laboratori proporcionada al mòdul de Hacking Ètic. Documenta tots els passos i resultats en un informe reconeixement_NOMCOGNOM.md.
Restricció important: Únicament pots fer reconeixement actiu sobre la IP del laboratori Docker assignada, MAI sobre sistemes reals sense autorització.