Professional Documents
Culture Documents
3 Exploracio
3 Exploracio
La fase de sondeig i enumeració utilitza la informació obtinguda anteriorment, per tal de detectar
vectors d'atacs en la infraestructura d'una organització, i consta de lse següents subfases:
1. La capa de transport
La capa de transport és l'enllaç entre les aplicacions i les capes inferiors, responsables de la
transmissió en la xarxa. Aquesta capa és l'encarregada de traslladar les dades entre les diferents
aplicacions en dispositius de xarxa, oferint una comunicació confiable d'extrem a extrem.
• UDP (RFC 768) és un protocol simple, no orientat a la connexió i amb poc consum de
recursos, que no garanteix el lliurament de les porcions de comunicació (o datagrames), ni
la seua arribada ordenada.
• TCP (RFC 793) en canvi, és un protocol orientat a la connexió, que garanteix l'arribada
ordenada de les porcions de comunicació (anomenades segments TCP). Aquestes
funcionalitats addicionals, es tradueixen en un increment dels recursos consumits, ja que
cada segment TCP porta una capçalera de 20 bytes, mentre que un segment UDP només
necessita 8 bytes de càrrega a la capçalera.
Per tal d'establir sessions TCP entre dues entitats, es fa ús d'un mecanisme anomenat la salutació a
tres bandes: Disposem de dos hosts, A i B. El host A desitja establir una connexió TCP amb el host
B, el qual disposa d'un port obert de forma passiva, a l'espera de rebre connexions. El procés que
se seguirà per tal d'establir aquesta connexió és:
Host A Host B
(Escoltant)
1 Envía SYN
(seq=100,
Rep SYN
ctl=syn)
Envía SYN/ACK
(seq=300, ack=101, 2
Rep SYN/ACK ctl=sy,ackn)
Connexió
3 Establerta.
(seq=101, ack=301,
ctl=ack)
1. El host A envía a B una datagrama amb el flag SYN activat, i amb un número de seqüència
determinat.
2. El host B rep el datagrama i respon amb un datagrama amb els flags SYN i ACK activats,
proporcionant-li el seu número de seqüència, i un número d'acceptació igual al número de
seqüència que espera rebre del host A. En principi, aquests números de seqüència generats
per cada banda ajuda a que no es puguen establir sessions falsejades.
3. Finalment, A, rep aquest segon datagrama, i n'envia un tercer cap a B, amb el flag ACK
activat, confirmant l'establiment de la connexió, i amb el número d'acceptació corresponent
al següent número de seqüència que espera rebre de B.
2. Escanneig de ports
L'escaneig de ports és una tècnica utilitzada per hackers i administradors per tal d'auditar màquines
i xarxes, per tal de saber quins ports estan oberts o tancats, quins serveix ofereix, i fins i tot per
saber de l'existència de firewalls.
Existeixen diverses formes de determina quins ports presenta oberts un ordinador, fent ús dels
diferents flags TCP, indicadors que s'utilitzen per indicar certes peculiaritats del segment. Els flags
relacionats amb l'escanneig de ports són: SYN, ACK, PSH, URG, FIN y RST.
En aquest apartat veurem diferents tècniques d'escaneig de ports, i com realitzar aquest escaneig
mitjançant dos potents eines: hping3 i nmap.
Nmap: Es tracta d'una utilitat FOOS (free and open source) per a l'exploració de xarxes i
auditories de seguretat, que fa ús de paquets IP en cru per determinar hosts disponibles en una
xarxa, i quins serveis ofereixen, així com les versions d'aquests i el sistema operatiu que utilitzen
(fingerprint).
http://nmap.org/
TCP Connect
Es tracta d'una tècnica ràpida i simple, però bastant “sorollosa” i es detecta fàcilment. Amb esta
tècnica, les connexions poden ser loguejades o filtrades.
La tècnica consisteix a establir una connexió amb el port del host remot mitjançant una crida a la
funció del sistema connect(). A partir d'aquest moment s'iniciarà l'establiment de la connexió amb la
salutació a tres vies. Si la connexió s'estableix, evidentment, el port estarà obert. En cas que no
obtinguem resposta, el port estarà tancat o filtrat.
Per tal de fer un TCP Connect, el tipus d'escanneig que hem de fer és el -sT:
Es tracta d'una tècnica semblant a l'anterior, però a la qual no es realitza una connexió completa,
sino que s'envia un paqueten cru (raw) amb el flag SYN activat (paquet SYN d'ara endavant), per
tal de trobar els ports oberts.
Per tal de fer un sondeig d'aquest tipus amb nmap farem ús de -sS:
• -c indica la quantitat de paquets que s'envien, en esta cas -c 1 indica que enviem un paquet.
• --syn indica que es tracta d'un paquet amb el flag SYN activat.
• -p 80 indica que estem provant el port 80.
Per tant, aquest escanneig pot indicar-nos si un port està tancat (rep un RST), però no distingeix
entre ports oberts o filtrats. Aquest escanneig és útil perquè pot botar-se firewalls que no realitzen
inspeccions de l'estat (non-stateful; ni distingeix paquets legítims per a diferents tipus de connexions).
L'inconveninet d'aquest mètode és que alguns sistemes operatius que no segueixen l'RFC i envien
RST inclús si està obert.
Obert o Filtrat:
192.168.10.5 -> 192.168.10.1 FIN
<Sense resposta>
Tancat:
192.168.10.5 -> 192.168.10.1 FIN
192.168.10.5 <- 192.168.10.1 RST/ACK
Per tal de fer auest escanneig amb nmap, farem ús de l'opció -sF:
Amb hping3 haurem d'indicar que el tipus de paquet que enviem siga –FIN:
Aquest escanneig es basa en l'enviament de paquets TCP anormalment configurats, amb tots els
flags activats ( SYN, ACK, PSH, RST, URG i FIN).
Es tracta d'altre mètode d'escanneig sigilós, on s'envia un paquet sense cal flag actiu. És semblant a
un FIN Scan i XMAS Scan, però sense cap flag.
Obert o Filtrat:
192.168.10.5 -> 192.168.10.1 (NONE)
<Sin respuesta>
Tancat:
192.168.10.5 -> 192.168.10.1 (NONE)
192.168.10.5 <- 192.168.10.1 RST/ACK
I amb hping:
# hping3 c 1 p 80 192.168.10.1
HPING 192.168.10.1 (eth0 192.168.10.1): NO FLAGS are set, 40 headers + 0
data bytes
192.168.10.1 hping statistic
1 packets tramitted, 0 packets received, 100% packet loss
roundtrip min/avg/max = 0.0/0.0/0.0 ms
# hping3 c 1 p 81 192.168.10.1
HPING 192.168.10.1 (eth0 192.168.10.1): NO FLAGS are set, 40 headers + 0
data bytes
len=40 ip=192.168.10.1 ttl=64 DF id=0 sport=80 flags=RA seq=0 win=0
rtt=0.1 ms
192.168.10.1 hping statistic
1 packets tramitted, 1 packets received, 0% packet loss
roundtrip min/avg/max = 0.1/0.1/0.1 ms
Es tracta d'un escanneig molt semblant al TCP ACK, excepte que intenta tanbé diferenciar entre
ports oberts i tancats. Per a això. S'examina el camp Window de la capçalera TCP del paquet RST
rebut. Alguns sistemes fan ús d'un valor de finestra positiu per als ports oberts i 0 per als tancats
(encara que alguns sistemes fan el contrari!). Si obtenim gran quantitat de ports oberts i pocs
tancats, probablement estiguem en aquest cas.
Obert:
192.168.10.5 -> 192.168.10.1 ACK
192.168.10.5 <- 192.168.10.1 RST [Window size > 0]
Tancat:
192.168.10.5 -> 192.168.10.1 ACK
192.168.10.5 <- 192.168.10.1 RST [Window size == 0]
Filtrat:
192.168.10.5 -> 192.168.10.1 ACK
<Sin respuesta>
UDP SCAN
Es tracta d'un escanneig que mostrarà els ports oberts mitjançant UDP en lloc de TCP. Consisteix a
enviar un paquet UDP i esperar una resposta. Si ña resposta és un ICMP Port Unrecheable significa
que el puerto està tancat. En canvi si rebem un ICMP Unrecheables, el més probable és que estiga
tancat, i si rebem una resposta UDP, significa que estarà obert.
Obert:
192.168.10.5 -> 192.168.10.1 [UDP]
192.168.10.5 <- 192.168.10.1 [UDP]
Obert o Filtrat:
192.168.10.5 -> 192.168.10.1 [UDP]
<Sin respuesta>
Tancat:
192.168.10.5 -> 192.168.10.1 [UDP]
192.168.10.5 <- 192.168.10.1 [ICMP Port Unreachable]
Filtrat:
192.168.10.5 -> 192.168.10.1 [UDP]
192.168.10.5 <- 192.168.10.1 [Misc. ICMP Unreachable]
I amb hping:
Quan estem fent un SYN scan a un host que està rere un firewall, probablement no rebem el
SYN/ACK o RST, de manera que no sabem què puga estar passant. Per això ens pot resultar
interessant saber quin tipus de configurció té el tallafoc, de manera que poguem determinar si el
tràfic ha estat filtrat o no.
L'ACK scan no ens dirà si un port està obert o tancat, sinò que intentarà dir-nos si un firewall és
stateful (guarda l'estat de les connexions) o stateless (probablement només rebutja els paquets SYN
entrants).
Si un port obert o tancat rep un ACK que no espera i el firewall no guarda l'estat (o bé no hi ha
firewall), rebrem un paquet RST. Si no rebem una resposta, o rebem algun ICMP unreacheable,
probablement, el port estiga filtrat.
Filtrat:
192.168.10.5 -> 192.168.10.1 ACK
192.168.10.5 <- 192.168.10.1 [Misc. ICMP Unreachable]
o bé...
<sense respoesta>
IP PROTOCOL SCAN
Es tracta d'un tipus d'escanneig que busca els protocols IP suportats, més que els ports oberts.
Semblant a l'UDP Scan, envia paquets IP en cru (raw), amb diferents valors al camp de protocol de
la capçalera. En lloc de buscar missatges ICMP Port Unreacheable, busca el ICMP Protocol
Unreacheable, per tal de dir si està tancat (o no suportat). Si la resposta que rebem és una resposta
en el mateix protocol, aquest estarà obert (o suportat). Si obtenim diferents ICMPs Unreacheables,
pobablement estiga filtrat. En cas de no obtenir resposta, pot que estiga obert o filtrat.
Suportat:
192.168.10.5 -> 192.168.10.1 [Some IP protocol]
192.168.10.5 <- 192.168.10.1 [Same IP protocol]
Suportat o filtat:
192.168.10.5 -> 192.168.10.1 [Some IP protocol]
192.168.10.5 <- 192.168.10.1 [Misc. ICMP Unreachable]
O bé...
<Sense resposta>
No suportat:
192.168.10.5 -> 192.168.10.1 [Some IP protocol]
192.168.10.5 <- 192.168.10.1 [ICMP Protocol Unreachable]
Una vegada obtinguts els ports accessibles en un sistema, passem a una segona subfase, centrada
en obtenir aquesta empremta identificativa del sistema objecte de l'atac. Existeixen eines com
Nmap, SING o Xprobe2 que ens permeten extreure gran quantitat d'informació al respecte del
sistema objectiu. Abans d'entrar de ple en el seu estudi i explicar el seu ús, anem a analitzar
breument quines són les tècniques que aquestes eines usen per tal d'obtenir informació sobre el
sistema.
Les primeres implementacions de la pila TCP/IP provenen de BSD, derivada dels sistemes Unix.
Gràcies a la llicència BSD, es van realitzar diferents implementacions derivades de la implementació
original de BSD. Inicialment disposavem de les versions:
Moltes implementacions actuals es basen en alguna d'aquestes implementacions, tot i que han
aparegut noves implementacions més modernes com FreeBSD, OpenBSD, NetBSD...
Existeixen altres versions millorades d'aquestes versions com Tahoe sense “Fast Retransmit”, New
Reno, Reno Plus, Sack, Peach, ATCP i d'altres.
Així doncs, els diferents sistemes operatius, tal i com comentàvem mostren un comportament diferent
en quant a TCP, tot i que tots ells s'assemblen, ja que comparteixen part del codi (principalment el
de BSD).
El cas de Linux és un tant diferent, ja que el seu codi està sota llicència GPL, i presenta
incompatibilitats amb la clàusula de publicitat de la llicència BSD, pel que el codi de TCP es va
haver de reescriure de forma independent. Els detalls d'implementació es poden veure explicats al
codi font, disponible al directori net/ipv4 (i /net/ipv6 per a versió 6), i com a arxius importants:
tcp_ipv4.c, tcp_input.c i tcp_output.c.
Com hem pogut comprovar, a causa de l'evolució de TCP, actualment existeixen moltes versions
diferents: unes d'escrites des de zero i d'altres basades en implementacions anteriors, però amb
variacions. Aquestes variacions entre les diferents versions seran les que faran que cada sistema
operatiu es comporte d'una forma diferent, la qual cosa ens permetrà realitzar la identificació
remota del sistema operatiu.
Els programes de detecció que tractarem en aquest exercici, disposen d'una base de dades amb
l'empremta de casa sistema, i poden realitzar la identificació automàtica.
Abans d'abordar de ple les eines per tal d'obtenir l'empremta del sistema, anem a fer un repàs de
les diferents tècniques que aquestes eines usaran per a aquesta finalitat.
Podem dividir les tècniques per a la recerca d'empremtes en aquelles que envien paquets especials
per tal d'analitzar un sistema remot, anomenades actives, i les tècniques passives, que es basen en
els paràmetres de les connexions establertes, i que per tant, són menys invasives que les actives.
Aquestes tècniques basen el seu anàlisi en l'enviament de paquets amb certes característiques, per
tal d'analitzar el comportament de la salutació a tres vies per establir la connexió:
➢ SYN probe: En enviar un paquet de FIN el sistema remot no hauria de respondre, però hi
ha implementacions, com Windows NT que tornen un FIN-ACK.
➢ Bogus flag probe: S'activa un flag TCP aleatori en un paquet SYN. La resposta de certes
implementacions com les de Linux tornen un SYN-ACK amb el mateix flag actiu.
➢ ISN sampling: Pretén trobar un patró emprat per la implementació per seleccionar els
nombres de seqüència inicials (ISN) d'una connexió TCP.
➢ Monitorització del bit de no fragmentació (DF): S'analitza si el sistema operatiu
estableix per defecte el bit de no fragmentació (DF) com a actiu o no.
➢ Mida de la finestra TCP inicial: La mida de finestra emprat per defecte en cada
implementació és molt particular i ajuda a descobrir de quin sistema operatiu es pot tractar.
➢ Valor d'ACK: Algunes implementacions retornen el valor rebut com a número de seqüència
mentre que d'altres l'incrementen en un.
➢ Missatge d'error de ICMP quenching: L'RFC 1812 determina que el control de flux de
missatges d'error s'ha de limitar. En enviar un paquet UDP a un nombre elevat de port,
aleatòriament, es pot mesurar el nombre de missatges de tipus unreachable per unitat de
temps.
➢ ICMP message quoting: Els comentaris afegits als missatges d'error ICMP varien en
funció del sistema operatiu.
➢ Missatges d'error ICMP – integritat: Les capçaleres IP poden ser alterades per les
diferents implementacions en tornar missatges d'error ICMP. Una anàlisi exhaustiva dels
canvis a les capçaleres pot permetre determinar el sistema operatiu.
➢ TOS (Tipus de Servei): Davant els missatges "ICMP port unreachable" es pot examinar el
camp TS, que sol ser zero però pot variar.
➢ Gestió de la fragmentació: La manipulació dels paquets fragmentats que se superposen
és gestionat de forma particular per cada pila: en reensamblar els fragments, algunes
sobreescriu les dades més antigues amb els nous i viceversa.
➢ Opcions TCP: Els RFCs 793 i 1323 defineixen les opcions TCP possibles. Mitjançant
l'enviament d'e paquets amb moltes opcions avançades actives (no operation, MSS,
Window scale factor, timestamps ...) pot descobrir el comportament de cada SO.
Dintre d'aquestes tècniques, vegem com els paquets ICMP cobren especial importància, ja no
només per a la detecció del SO, sinò per a la recerta d'informació sobre la xarxa objecte d'estudi.
És el que es coneix com sondeig ICMP. Dins els paquets ICMP ens poden ser útils els tipus de
peticions:
➢ ICMP Echo Request (Tipus 8), o simplement peticions ping, que ens poden ser útils per
fer un rastreig (amb eines com Nmap) dels hosts accessibles en una xarxa. Per tal d'obtenir
alguna empremta identificativa del sistema, podem observar el camp TTL de la petició (Time
to Live) que s'inicialitzas de diferent forma segons el sistema operatiu. A més, diferents
sitemes poden tenir diferent resposta característica davant una petició d'eco cap a l'adreça
de broacdast (per exemple, alguns sistemes Unix donen resposta, mentre que sistemes de
Miscosoft no responen a aquest tipus de paquets).
➢ ICMP Timestamp (Tipus 13), o sol·licitud de temps, que s'usa per obtenir la referència
de temps del sistema objectiu de l'anàlisi. En funció de la implementació que s'haja realitzat
de la pila TCP/IP podrem rebre o no aquesta informació. Per exemple, en sistemes Unix sí
que l'implementen majoritàriament mentre que en els sistemes Windows no s'implementa en
la majoria.
➢ ICMP Information Request (Tipus 15), ideat per a sistemes autoconfigurables, sense
disc dur, per a que en l'arranc inicial puguen descobrir la seua adreça IP. Els protocols
RARP, BOOTP o DHCP, realitzen aquesta mateixa funció de manera més eficicent, pel que
els missatges d'aquest tipus no s'usen amb freqüència.
Un altre tipus de petició ICMP és la de tipus 17 (Subnet Address mask request), que sol·licita
la màscara de les adreces se subxarxa, i que ens pot ser útil per realitzar el mapa de xarxa i
els espais de xarxa emprats per la xarxa d'estudi.
Dins de les tècniques d'identificació d'un sistema existeixen altres, denominades passives, que no es
basen en enviar paquets al sistema a examinar, sinò que monitoritzen el trànsit associat al sistema, i
en funció dels atributs i característiques dels paquets, principalment de les capçaleres TCP,
determinen el seu origen:
➢ TTL: quin és el valor del camp Time To Live (TTL) en els paquets sortints?
➢ Mida de finestra: quin és el valor fixat pel SO?
➢ TS: es fixa algun valor per al camp Tipus de Servei, TOS?
➢ DF: ¿s'activa o no el bit de no fragmentació?
Existeixen diverses eines per a la realització de sondejos ICMP i per otenir l'empremta d'un sistema:
Nmap, SING, ICMPScan, Xprobe2, entre d'altres. Anem a veure aquestes utilitats, les tècniques
que usen, els avantatges i el seu ús.
Amb l'opció -O de SING podem fer ús de la recerca de l'empremta identificativa d'un host remot.
Per tal de discriminar entre un sistema operatiu i un altre, SING utilitza el següent mètode: Envia un
paquet ICMP amb codi diferent a 0 dins una petició d'eco. Un sistema amb Windows respon amb
un codi 0, mentre que la resta de sistemes no canviaran el camp del codi.
# sing O 127.0.0.1
SINGing to 127.0.0.1 (127.0.0.1): 24 data bytes
24 bytes from 127.0.0.1: seq=0 ttl=64 TOS=66 time=103079192.000 ms
24 bytes from 127.0.0.1: seq=1 ttl=64 TOS=66 time=103079192.000 ms
24 bytes from 127.0.0.1: seq=2 ttl=64 TOS=66 time=103079192.000 ms
^C
127.0.0.1 sing statistics
3 packets transmitted, 3 packets received, 0% packet loss
roundtrip min/avg/max = 103079192.000/103079192.000/0.000 ms
Aquesta utilitat presenta un bug a les arquitectures de 64 bits, tal i com podem llegir a
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=419003 i que consisteix en un error d'interfície
quan fem un sing a una adreça diferent a la de loopback:
Sidharta:/home/joamuran# route n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
81.203.120.0 0.0.0.0 255.255.248.0 U 0 0 0 eth0
0.0.0.0 81.203.120.1 0.0.0.0 UG 0 0 0 eth0
3.3.2. Eina Nmap
Pàgina web: http://insecure.org/nmap
Nmap és una de les eines més conegudes per a la recerca d'empremtes identificatives, entre d'altres
usos. Es tracta d'una eina lliure i de codi obert per a l'exploració i l'auditoria de xarxes. Nmap fa
ús de paquets IP RAW per tal de determinar els hosts disponibles en una xarxa, els serveis (nom de
l'aplicació i versió), el sistema operatiu (i la seua versió), tipus de filtres o tallafocs que es troben en
ús, entre d'altres característiques.
Inicialment, Nmap es va disseynar per escannejar de manera ràpida xarxes grans, però treballa
també per a hosts individuls. Nmap a més, funciona sobre la majoria de sistemes operatius, i estan
disponibles versions en consola i ne mode gràfic.
La manera en què treballa NMAP per tal de realitzar fingerprint consisteix en enviar fins a 16
sondes TCP, UDP i ICMP a ports coneguts oberts i tancats en la màquina destí. Aquestes sondes
estan dissenyades per analitzar determinades ambigüitats en la redacció de l'RFC del protocol en
qüestió. Nmap escolta les respostes, i combina multitud d'atributs que obté per tal de generar una
empremta.
1. Tseq: s'observa l'ISN (número de seqüència inicial) del paquet SYN per buscar pautes de
les diferents implementacions de TCP/IP en l'ISN de la capçalera TCP, en respondre a una
sol licitud de connexió. Hi ha diversos grups de classificació: 64K (Class = 64K) per a
versions de Unix, increments aleatoris (Classe = RI) per a Solaris (IRIX i FreeBSD sobretot),
totalment aleatori o a l'atzar (Classe = TR) per a Linux i alguna versió d' AIX, dependent del
temps (Classe = DT) per a sistemes Windows, constant per a 3Com, etc.
2. T1: en aquesta prova s'envia a un port obert un paquet amb el flag SYN amb una sèrie
d'opcions, consistents en un valor d'escala de finestra de 10, una longitud màxima del
segment de 265, i un valor del timestamp de 1061109567.
3. T2: s'envia un paquet NULL (paquet amb tots els flags URG, ACK, PSH, RST, SYN, FIN
desactivats a la capçalera TCP) amb les mateixes opcions que l'anterior paquet a un port
obert.
4. T3: S'envia un paquet amb els indicadors SYN , FIN, URG i PSH a un port obert.
5. T4: s'envia un paquet amb el camp de justificant de recepció ACK actiu a un port obert.
6. T5: s'envia un paquet amb el flag d'inici de connexió SYN a un port tancat.
7. T6: s'envia un ACK a un port tancat.
8. T7: s'envia un paquet amb els camps FIN, PSH i URG (fi de connexió, el receptor no posa
les dades a la cua sinó que els passa directament a l'aplicació i punter d'urgent) a un port
tancat.
9. PU (Port Unreachable): S'envia un paquet UDP a un port tancat, de manera que si el port
està realment tancat i no hi ha cap firewall pel mig, es torna un missatge ICMP de port
inassolible que té una longitud de 8 bytes a la seva capçalera encara que només s'utilitzen
els 4 primers i la resta tenen valor zero.
Com podem observar, nmap ens mostra una versió més encertada del kernel.
Sidharta:/home/joamuran# uname r
2.6.261amd64
3.3.3. Xprobe2
Pàgina web: http://xprobe.sourceforge.net/
La utilitat Xprobe2, d'Ofir Arkin realitza una recerca d'empremptes del sistema opeartiu analitzant
primerament les respostes als sondejos ICMP.
Els mòduls que utilitza Xprobe2 ens poden donar una idea de la seua funcionalitat:
• Sondeig d'ICMP,
• Sondeig ping basat en TCP
• Sondeix ping basat en UDP
• Càlcul de la distància basada en el TTL de TCP i UDP
• Escanneig de ports TCP i IDP
# xprobe2 v 127.0.0.1
Xprobe2 v.0.3 Copyright (c) 20022005 fyodor@o0o.nu, ofir@syssecurity.com,
meder@o0o.nu
Com vegem, en primer lloc carrega els mòduls, realitza els tests, i ens mostra els resultats. En aquest
cas, per a localhost ens mostra amb una probabilitat del 100% diversos kernels 2.4 (tot i que
disposem d'un kernel 2.6 per a arquitectura de 64 bits)
Vegem com funciona amb un kernel més antic (faig un fingerprint a moodle.iessantvicent.com):
Com vegem, ara ens mostra diferents sistemes NetBSD, Cisco i Kernels 2.2, aquests dos amb major
probabilitat (realment es tracta d'un kernel 2.2)
3.3.4. P0F
web: http://lcamtuf.coredump.cx/p0f.shtml i http://lcamtuf.coredump.cx/p0f/README
P0f és una eina de detecció d'empremtes de forma passiva i que ens permet quatre modes de
detecció:
p0f disposa de diverses opcions, que podem consultar al manual. La forma més senzilla d'ús, sense
emprar cap opció ens mostra la següent eixida:
# p0f
p0f passive os fingerprinting utility, version 2.0.8
(C) M. Zalewski <lcamtuf@dione.cc>, W. Stearns <wstearns@pobox.com>
p0f: listening (SYN) on 'eth0', 262 sigs (14 generic, cksum 0F1F5CA2), rule: 'all'.
190.225.92.249:50792 Windows 2000 SP4, XP SP1+
> 81.203.125.192:42377 (distance 15, link: sometimes DSL (3))
....
81.203.125.192:36808 Linux 2.6 (newer, 2) (up: 11 hrs)
> 65.55.12.249:80 (distance 0, link: sometimes modem)
L'aplicació s'executa en mode passiu, i quan detecta alguna connexió, tant d'entrada com de
sortida, ens mostra línies com les següents:
On ens mostra una connexió entrant (la meua IP és la 81.203.125.192), d'una màquina amb un
SO Windows 2000 amb SP4 o XP amb SP1+, que i que es troba a una distància de 15 bots i amb
una connexió probablement DLS.
La segona:
Ens mostra una connexió d'eixida, i ens mostra el nostre kernel (Linux 2.6) i el temps que porta
engegat. També podem apreciar que la distància 0 indica que es tracta de la pròpia màquina.