HE

Unitat 3: Fingerprinting

.

Fingerprinting

El fingerprinting (o empremtament digital) és una tècnica utilitzada en ciberseguretat per identificar amb detall característiques específiques d’un sistema, dispositiu, aplicació o xarxa. És una etapa posterior (o més específica) que el footprinting, i té un enfocament més tècnic i actiu.

La enumeració també forma part del fingerprinting

L’enumeració és el procés mitjançant el qual un atacant o auditor de seguretat recull informació detallada i activa d’un sistema o xarxa. Forma part de la fase de reconeixement actiu dins del hacking ètic o pentesting.

Amb l’enumeració es pot obtindre:

  1. Llista d’usuaris i grups
  2. Recursos compartits
  3. Serveis actius i els seus ports
  4. Versions de serveis (com SSH, FTP, etc.)
  5. Direccions IP internes
  6. Sistema operatiu del dispositiu

Tipus de Fingerprinting

1. Fingerprinting del sistema operatiu (OS Fingerprinting)

Permet identificar quin sistema operatiu utilitza una màquina (Windows, Linux, macOS…).

Aplicació: Permet saber quines vulnerabilitats pot tenir el sistema segons el seu OS i versió.

2. Fingerprinting de serveis

Detecta quins serveis (web, correu, FTP, etc.) hi ha actius en un servidor i quina versió fan servir.

3. Fingerprinting d’aplicacions web

Identifica plataformes i frameworks utilitzats en una web: WordPress, Joomla, Laravel, PHP, etc.

4. Fingerprinting de dispositius o navegadors

S’identifiquen els navegadors o dispositius per rastrejar usuaris únics (a nivell web).

  • Resolució de pantalla
  • Sistema operatiu
  • Fonts instal·lades
  • Extensions del navegador

🔄 Diferència entre Footprinting i Fingerprinting

Característica Footprinting Fingerprinting
Objectiu Recollir informació general Identificar detalls tècnics específics
Tipus Sovint passiu (OSINT) Normalment actiu
Exemples WHOIS, DNS, xarxes socials Nmap,hping3, ..
Etapa Primer pas en el reconeixement Fase posterior i més detallada

⚖️ És legal fer Fingerprinting?

  • Sense permís: pot ser considerat intrusiu o il·legal, especialment si implica escaneigs actius.
  • En auditories autoritzades (pentesting), és una tècnica habitual i necessària.
  • A escala web: el fingerprinting de navegadors pot plantejar problemes de privacitat segons la normativa (ex: RGPD).

🖥️ Anàlisi de hosts i ports

L’anàlisi de hosts i ports és una part fonamental en el reconeixement actiu. Permet saber quins dispositius hi ha en una xarxa i quins ports i serveis tenen oberts, ajudant a identificar possibles vulnerabilitats.

un port en un host actiu pot estar (vist des d'altre host) en un dels següents estilsunitats

  • Obert
  • Tancat
  • Filtrat

Descobrir l'estat d'un port és fonamental, no sols por catalogar els ports oberts d'un objectiu, sino també per identificar si un host esta actiu o no

Anàlisi de hosts

  1. Ping Sweep (Exploració ICMP)
  2. ARP Scan
  3. Escaneig TCP ACK/SYN per identificar hosts actius

Anàlisi de ports

  1. TCP Connect Scan
  2. SYN Scan (semi-connectat)
  3. UDP Scan
  4. XMAS Scan
  5. FIN Scan
  6. NULL Scan

🔌 Anàlisi TCP de connexió completa (TCP Connect Scan)

3way

L’escaneig de connexió completa (en anglès TCP Connect Scan) és una tècnica d’anàlisi de ports que estableix una connexió TCP completa amb cada port obert. És el mateix procés que seguiria una aplicació normal per comunicar-se amb un servei.

Implica realitzar el 3-way handshake:
  1. El client envia un paquet SYN al port del servidor.
  2. El servidor respon amb un SYN-ACK si el port està obert.
  3. El client respon amb un ACK per completar la connexió.
  • ✅ No cal privilegis
  • ✅ El tallafocs no bloqueja connexions TCP normals
  • ❌ No és sigil·lós
  • El servidor pot contestar o no, i si contesta, pot contestar amb ACK (port obert) o amb RST (port tancant)

    Tant si el port està obert com tancat, el host estarà actiu

    Si el servidor no contesta res, pot ser que: No estiga actiu, o tinga el port filtrat



    🔌 Anàlisi TCP de half-connect (SYN scan)

    3way

    Un escaneig half-connect (mig connectat) és una tècnica d’anàlisi de ports que no completa la connexió TCP, sinó que només envia el primer paquet (SYN) i interpreta la resposta del servidor

    S'anomena "half-connect" perquè no es completa el "3-way handshake" típic del protocol TCP.

    En el SYN Scan (half-connect):
    1. 🔎 L’atacant envia un paquet SYN a un port.
    2. 📥 Si el port està:
      • Obert, el sistema respon amb SYN-ACK.
      • Tancat, respon amb RST.
    3. 🚫 En cas de SYN-ACK, l’atacant no envia l’ACK final, sinó un RST (per trencar la connexió abans de completar-la).
  • ✅ Sigil·lós
  • ✅ Ràpid
  • ✅ Eficient
  • ❌ Necessita permisos d’administrador o root
  • ❌ Pot ser bloquejat per tallafocs
  • ❌Alguns sistemes poden detectar l’ús massiu de SYN sense ACK com a comportament sospitós


  • 🔌 Anàlisi TCP ACK

    3way

    L’escaneig ACK (o TCP ACK Scan) no té com a objectiu descobrir ports oberts, sinó identificar si un port està filtrat o no filtrat per un firewall o sistema de filtratge de paquets.

    Com funciona

    1. Es envien paquets TCP amb el flag ACK activat.
    2. S’observa la resposta del sistema:
      • Si respon amb un paquet RST (Reset) → port no filtrat.
      • Si no hi ha resposta o es retorna un missatge ICMP (com "port unreachable") → port filtrat.

    ⚠️ No es pot saber si el port està obert o tancat, només si està filtrat o no.



    🔌 Anàlisi UDP

    L’anàlisi UDP és el procés d’examinar trànsit i serveis que utilitzen el protocol UDP (User Datagram Protocol)



    🔌 Altres tipus d'Anàlisi

    També hi ha escanejos especials com Xmas, FIN i NULL, que són tècniques de TCP scanning utilitzades per detectar ports oberts de forma més “furtiva” que un escaneig TCP normal.

    • FIN
    • XMAS
    • NULL

    nc (netcat) - La navalla suïssa

    Ès una eina de xarxa avançada que forma part del paquet Nmap i que serveix per establir connexions i transferir dades entre equips de manera molt flexible.

    s’utilitza per:

    • Connectar-se a ports remots per provar serveis o protocols.
    • Crear servidors o clients improvisats per enviar i rebre dades.
    • Fer túnels i redireccions de ports.
    • Obrir shells remotes (control remot d’un sistema) durant proves controlades.
    • Xifrar la comunicació (cosa que netcat original no feia).

    Exemple

    Des de lloc que escolta (server)

    nc -lvp 4444  
    • -l → escoltar connexions entrants
    • -v → mode detallat (verbose)
    • -p 4444 → escoltar en el port 4444

    Des del lloc que es connecta (client)

    nc 192.168.1.10 4444  

    Fingerprinting amb Nmap

    El fingerprinting amb Nmap és el procés de determinar informació específica sobre un sistema remot (hosts, sistemes operatius, serveis i versions de serveis) mitjançant l’eina Nmap (Network Mapper).

    Què és el Fingerprinting?

    • HOST Fingerprinting: Identificar els hosts en una xarxa.
    • OS Fingerprinting: Identificar el sistema operatiu del dispositiu remot.
    • Service Fingerprinting: Detectar quins serveis i versions exactes estan corrent en els ports oberts.
    • Application Fingerprinting: Identificar aplicacions o serveis específics a nivell de detall.

    Com fer Fingerprinting amb Nmap

    
    connexió completa: nmap -sT 
    half connect:      nmap -sS 
    ack:               nmap -sA -p 22,80,443 -n -Pn 
        -p per especificar ports (ex: -p 22,80,443)
        -n per evitar resolució DNS (més ràpid)
        -Pn per ometre el ping previ 
    UDP:      nmap -sU 192.168.1.10    
    Xmas:     nmap -sX 192.168.1.10
    FIN:      nmap -sF 192.168.1.10
    NULL:     nmap -sN 192.168.1.10
       

    Es pot trovar més informació en la pàgina oficial de nmap

    TCP Connect -- SYN scan -- ACK scan

    1. Escaneig de ports bàsic

    nmap <IP>

    Detecta els ports oberts (per defecte els 1000 més comuns).

    2. Detectar hosts

    nmap -Pn <IP_de_xarxa/24>

    3. Detectar serveis i versions

    nmap -sV <IP>
    • -sV: Intenta identificar els serveis i les seves versions en els ports oberts.
    nmap -sV 192.168.1.10

    4. Detectar sistema operatiu (OS Fingerprinting)

    nmap -O <IP>
    • -O: Activa la detecció del sistema operatiu.
    • Necessita privilegis d’administrador (root o sudo).

    5. Fingerprinting complet i detallat

    nmap -A <IP>
    • -A: Activa detecció d’OS (-O), detecció de versions (-sV), escaneig amb scripts (-sC), i traceroute.
    • És una exploració agressiva.
    sudo nmap -A 192.168.1.10

    6. Utilitzar scripts de detecció avançada (NSE - Nmap Scripting Engine)

    nmap --script=banner <IP>

    Mostra banners de serveis, útil per fingerprinting.

    Hi ha molts scripts útils per fingerprinting: http-title, ftp-anon, ssl-cert, etc.

    nmap -p 80 --script=http-title 192.168.1.10

    🛠 Exemples pràctics

    # Escaneig bàsic
    nmap 192.168.1.10
    
    # Detecció de serveis
    nmap -sV 192.168.1.10
    
    # Detecció d'OS
    sudo nmap -O 192.168.1.10
    
    # Escaneig agressiu
    sudo nmap -A 192.168.1.10
    
    # Obtenir banners dels serveis
    nmap -sV --script=banner 192.168.1.10

    📌 Notes importants

    • Privilegis: Algunes opcions com -O i -A necessiten permisos de root.
    • Legalitat: Sempre assegura’t que tens permís per escanejar la IP o xarxa. Escanejar sistemes sense autorització pot ser il·legal.

    Zenmap

    Zenmap és una manera d'utilizar nmap amb gui

    https://nmap.org/zenmap/

    Fingerprinting amb hping3

    Fingerprinting amb hping3 és una tècnica per identificar sistemes operatius, serveis, tallafocs i altres característiques de la xarxa mitjançant l’eina hping3. Aquesta eina permet enviar paquets personalitzats i observar com responen els sistemes objectiu.

    🔧 Què és hping3?

    hping3 és una eina en línia de comandes que permet generar paquets TCP/IP/UDP/ICMP personalitzats. S’utilitza habitualment per:

    • Fer escaneigs de ports
    • Fer OS fingerprinting
    • Detectar tallafocs
    • Fer proves de rendiment de xarxa
    • Simular atacs (per a proves controlades)

    Tècniques de fingerprinting amb hping3

    1. Fingerprinting passiu (OS detection)

    La manera com un sistema operatiu respon a paquets específics pot revelar quin OS és.

    Exemple: enviar un paquet SYN al port obert

    hping3 -S -p 80 -c 1 <IP_destinació>

    Paràmetres:

    • -S: envia un paquet TCP amb flag SYN
    • -p 80: port 80 (pots provar altres com 443, 22, etc.)
    • -c 1: només un paquet

    Resposta esperada:

    • Si reps un SYN-ACK, el port està obert.
    • Si reps un RST, el port està tancat.

    El TTL, la mida del paquet, i els flags poden variar segons l'OS (Linux, Windows, BSD...).

    2. Detectar tallafocs (firewall/packet filtering)

    hping3 -S -p 22 --tcp-timestamp <IP>

    Els tallafocs poden bloquejar certs paquets. Si no reps resposta o reps un RST, pot indicar filtratge.

    3. TCP ACK scan per detectar tallafocs estatful

    hping3 -A -p 80 <IP>

    Això envia un paquet amb flag ACK. Alguns sistemes només responen si hi ha estat TCP establert.

    4. Enviar paquets amb flags estranys (XMAS scan)

    hping3 -F -P -U -p 80 <IP>

    Aquest tipus de paquet (amb flags FIN, PSH, URG) pot ser ignorat per sistemes Unix (res no és retornat), però sistemes Windows poden respondre amb RST.

    5. Flood per veure comportament sota càrrega

    hping3 -S --flood -p 80 <IP>

    Aquest ataca per inundació envia paquets ràpidament (només per a proves autoritzades!).

    🕵️‍♂️ Interpretació de resultats

    Cada OS té una "fingerprint TCP/IP" única (TTL, resposta a flags, mida del window size, etc.). Per exemple:

    • Windows: TTL sol ser 128
    • Linux: TTL habitual és 64
    • FreeBSD: TTL pot ser 64, però window size diferent

    Combinar diversos tests t’ajuda a inferir quin sistema operatiu fa servir la màquina objectiu.

    ⚠️ Notes legals i ètiques

    L’ús d’hping3 per fer fingerprinting s’ha de fer només amb permís explícit. Està prohibit escanejar o atacar xarxes que no gestionis o no t’autoritzi el propietari.

    Si vols, et puc ajudar a automatitzar un script per fer fingerprinting bàsic amb hping3 o interpretar resultats. Vols un exemple més complet o un script?


    Fingerprinting anb Wireshark

    Fingerprinting amb Wireshark significa identificar dispositius, sistemes operatius, aplicacions o serveis en una xarxa mitjançant l’anàlisi de dades capturades amb Wireshark. Es tracta d’una forma de reconeixement passiu, útil en ciberseguretat, monitoratge de xarxa o proves d’intrusió.

    1. Captura de trànsit

    Obri Wireshark i captura paquets en la interfície de xarxa adequada:

    • Selecciona la interfície (Wi-Fi, Ethernet, etc.)
    • Pots aplicar filtres de captura si ho desitges (opcional), com ara tcp, udp, o port 80

    2. Fingerprinting del Sistema Operatiu (OS)

    Wireshark no et mostra directament quin sistema operatiu té un dispositiu, però pots deduir-lo observant:

    • Comportament de la pila TCP/IP:
      • Observa els valors TTL (Time to Live) i la Window Size en els encapçalaments IP/TCP.
      • Linux sol usar TTL = 64
      • Windows sol usar TTL = 128
      • Dispositius Cisco sovint TTL = 255
    • Obri un paquet TCP i mira:
      • IP > Time to live
      • TCP > Window size value
    • Opcions TCP (MSS, SACK, Window Scale, etc.) poden ajudar a identificar el sistema operatiu. Eines com p0f es basen en això.

    3. Fingerprinting de Serveis o Aplicacions

    Pots identificar aplicacions o serveis observant:

    • Capçaleres HTTP: sovint revelen el tipus de servidor (Apache, Nginx, etc.)
      • Filtre: http
      • Observa camps com Server: o User-Agent:
    • Intercanvi TLS: busca paquets Client Hello i Server Hello
      • Analitza les suites de xifrat, la versió TLS i les extensions
      • Filtre: ssl.handshake.type == 1 (Client Hello)
      • Eines com JA3 permeten identificar clients/servidors mitjançant aquests camps
    • Consultes DNS: poden indicar quines aplicacions o dispositius estan actius
      • Filtre: dns

    📱 4. Fingerprinting de Dispositius

    • Observa paquets DHCP (filtre: bootp):
      • Nom de l’amfitrió (hostname)
      • Identificadors de classe de venedor (Vendor Class ID)
      • Adreces MAC (pots deduir el fabricant mitjançant l’OUI)
    • Per a MAC:
      • Clic dret > Resolve MAC Address

    5. Filtres de visualització útils

    Propòsit Filtre
    Trànsit HTTP http
    TLS Client Hello ssl.handshake.type == 1
    Consultes DNS dns
    Trànsit DHCP bootp
    SYN TCP (inici de connexió) tcp.flags.syn == 1 && tcp.flags.ack == 0
    IP o MAC específica ip.addr == 192.168.1.100 o eth.addr == xx:xx:xx:xx:xx:xx

    Enumeració de serveis

    Enumeració FTP

    La enumeració FTP és el procés mitjançant el qual s’intenta obtindre informació d’un servidor FTP (File Transfer Protocol) per conéixer quins arxius, directoris o fins i tot configuracions estan disponibles

    # nmap -sV -p21,2121   
    o provar el script banner
    # nmap -p21,2121 --script banner   
    o amb un netcat o telnet
    $ telnet  
    es poden esbrinar més scripts d'nmap
     # ls -l /usr/share/nmap/scripts | grep -e "ftp"    

    Descarrega de contingut

    curl i wget
    $ curl ftp://usu:pass@servidor_ftp  

    Enumeració HTTP

    L'enumeració HTTP és un procés de recopilació d'informació sobre un servidor web i les seves aplicacions. Aquesta informació es pot utilitzar per identificar vulnerabilitats potencials que un hacker podria explotar. Essencialment, és com un explorador que fa un mapa detallat d'una ciutat (el servidor web) per trobar punts febles.

    Inspecció visual

    Consisteix en connectar-se a un lloc web, navegar per ell i inspeccinar el codi, buscant informació rellevant, com comentaris, enllaços ocults, codi javascript, etc

    Detectar tecnologies

    Es interessant coneixer les tecnologies que hi ha darrere d'una aplicació, per buscar vulnerabilitats

    Eines

    • Wappalyzer
    • whatweb
    • Enumeració de CMS especifics cmseek

    Fuzzing WEB

    El fuzzing web consisteix en fer peticions automatitzades a un servidor web usant paraules d'un diccionari i vore quin estat HTTP torna en cada cas: 200 OK, 404 NOT FOUND, 301,302,403, etc.. El que permet detectar pàgines, arxius, directoris que no estan enllaçats des de cap lloc, i que poden contenir informació rellevant

    Algunes ferramentes son:

    • wfuzz
    • script http-enum de namp
    • dirbuster
    • gobuster
    • dirb
    • dirsearch
    • ffuf
    • feroxbuster

    Tant important o més que la ferramenta, es el diccionari emprat

    kali inclou diversos diccionaris. En /usr/share/wordlists es troben enllaços a distintes carpetes

  • /usr/share/wfuzz/wordlist/general
  • /usr/share/dirb/wordlists
  • /usr/share/dirbuster/wordlists
  • Enumeració SMB

    L'enumeració SMB (Server Message Block) és una tècnica de hacking ètic que consisteix a recopilar informació sobre un sistema objectiu que utilitza el protocol SMB. L'objectiu és identificar recursos compartits, usuaris, grups, polítiques de contrasenyes i altres detalls que podrien ser explotats per a un atac.

    Eines:

    1. nbtscan
    2. enum4Linux
    3. nmap
    4. smbmap
    5. smbclient
    6. rpcclient

    Descobriment automatitzat de vulnerabilitats

    Existeixen moltes ferraments en el mercat, tant comercials, con de còdi obert. Algunes de les més importants son:

    Legion, Nessus, OpenVAS, Nexpose, Nikto, Nuclei, ....

    nikto

    En kali està instal·lat. En altre sistema es podria instal·lar

    $ sudo apt install nikto

    Executar nikto

    $ ./nikto.pl -host http://10.0.10.7

    Nuclei

    Es troba en els repositoris de kali, així que es pot instal·lar amb

    $ sudo apt install nuclei

    I executar amb

    $ nuclei

    Laboratoris