Download as pdf or txt
Download as pdf or txt
You are on page 1of 20

Fase 2. Exploració.

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:

• Detecció de sistemes actius


• Escanneig de ports i serveis de l'objectiu (detectem els ports oberts, per tal de conéixer els
serveis actius)
• Detecció del sistema operatiu (fingerprinting)
• Escanneig de vulnerabilitats: Permet trobar vulnerabilitats en els equips objectius, tant del
sistema operatiu com de les aplicacions.

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.

Les funcionalitats bàsiques d'aquesta capa són:

• El seguiment de les converses individuals entre aplicacions d'extrem a extrem, mitjançant el


mecanisme de finestra lliscant,
• La segmentació de les dades de la capa d'aplicació i la gestió de cada porció, mitjançant
els números de seqüència,
• El reensamblatge d'aquests segments en fluxos de dades (streams) d'aplicació, fent ús
d'aquests números de seqüència,
• La identificació de diferents aplicacions, mitjançant el mecanisme dels números de port

Els dos protocols de la capa de transport són el TCP i l'UDP:

• 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.

L'establiment de la connexió amb la salutació tres vies

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/

Hping3: Es tracta d'un generador/analitzador de paquets, semblant a ping, però amb la


diferència que, així com ping només genera paquets ICMP echo request, hping, pot generar
paquets TCP, UDP, ICMP i RAW-IP
http://www.hping.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.

La sintaxi bàsica de nmap és:

nmap [tipus d'escanneig] destí

Per tal de fer un TCP Connect, el tipus d'escanneig que hem de fer és el -sT:

$ nmap ­sT 127.0.0.1

Starting Nmap 5.00 ( http://nmap.org ) at 2011­12­07 09:23 CET


Interesting ports on localhost (127.0.0.1):
Not shown: 993 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
631/tcp open ipp
902/tcp open iss­realsecure
3306/tcp open mysql
5432/tcp open postgresql

Nmap done: 1 IP address (1 host up) scanned in 0.07 seconds

TCP SYN Scan

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.

En funció de la resposta podem saber:

• Si la resposta obtinguda és un SYN/ACK, el port estarà obert (2n pas de la negociació a


tres vies),
192.168.10.5 -> 192.168.10.1 SYN
192.168.10.5 <- 192.168.10.1 SYN/ACK
• Si la resposta és un RST, el port estarà tancat.
192.168.10.5 -> 192.168.10.1 SYN
192.168.10.5 <- 192.168.10.1 RST/ACK
• Si no rebem resposta, el port està filtrat.
192.168.10.5 -> 192.168.10.1 SYN
<sense resposta>

Per tal de fer un sondeig d'aquest tipus amb nmap farem ús de -sS:

$ sudo nmap ­sS 127.0.0.1

Starting Nmap 5.00 ( http://nmap.org ) at 2011­12­07 09:48 CET


Interesting ports on localhost (127.0.0.1):
Not shown: 993 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind
631/tcp open ipp
902/tcp open iss­realsecure
3306/tcp open mysql
5432/tcp open postgresql

Nmap done: 1 IP address (1 host up) scanned in 0.20 seconds

Amb l'eina hping3 també podem fer aquest tipus d'escanneig:

# hping3 ­c 1 ­­syn ­p 80 192.168.10.1

Els paràmetres que utilitzem seran:

• -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.

# hping3 ­c 1 ­­syn ­p 80 192.168.10.1


HPING 192.168.10.1 (eth0 192.168.10.1): S set, 40 headers + 0 data bytes
len=46 ip=192.168.10.1 ttl=64 DF id=0 sport=80 flags=SA seq=0 win=5840
rtt=1.8 ms
­­­ 192.168.10.1 hping statistic ­­­
1 packets tramitted, 1 packets received, 0% packet loss
round­trip min/avg/max = 1.7/1.7/1.7 ms

# hping3 ­c 1 ­­syn ­p 81 192.168.10.1


HPING 192.168.10.1 (eth0 192.168.10.1): S set, 40 headers + 0 data bytes
len=46 ip=192.168.10.1 ttl=64 DF id=0 sport=81 flags=RA seq=0 win=0
rtt=1.8 ms
­­­ 192.168.10.1 hping statistic ­­­
1 packets tramitted, 1 packets received, 0% packet loss
round­trip min/avg/max = 1.7/1.7/1.7 ms

TCP FIN Scanning (Stealth scan - Sigilós)


Aquest atac s'aprofita del fet que molts tallafocs només filtren les peticions SYN a ports tancats. Si
s'envia un datagrana FIN a un un port tancat, aquest sol contestar amb el flag RST corresponent,
però si el port està obert, detecta l'error, i no envia cap resposta.

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:

# nmap ­sF 192.168.10.1


Starting Nmap 4.21ALPHA2 ( http://insecure.org ) at 2007­03­07 08:51 CST
Interesting ports on 192.168.10.1 (192.168.10.1):
Not shown: 1702 closed ports
PORT STATE SERVICE
80/tcp open|filtered http
5190/tcp open|filtered aol
MAC Address: 00:0C:E5:4F:0F:AF (Motorola BCS)
Nmap finished: 1 IP address (1 host up) scanned in 2.812 seconds

Amb hping3 haurem d'indicar que el tipus de paquet que enviem siga –FIN:

# hping3 ­c 1 ­­fin ­p 80 192.168.10.1


HPING 192.168.10.1 (eth0 192.168.10.1): F set, 40 headers + 0 data bytes
­­­ 192.168.10.1 hping statistic ­­­
1 packets tramitted, 0 packets received, 100% packet loss
round­trip min/avg/max = 0.0/0.0/0.0 ms
# hping3 ­c 1 ­­fin ­p 81 192.168.10.1
HPING 192.168.10.1 (eth0 192.168.10.1): F set, 40 headers + 0 data bytes
len=46 ip=192.168.10.1 ttl=64 DF id=0 sport=81 flags=RA seq=0 win=0
rtt=1.6 ms
­­­ 192.168.10.1 hping statistic ­­­
1 packets tramitted, 1 packets received, 0% packet loss
round­trip min/avg/max = 1.6/1.6/1.6 ms

TCP XMAS SCAN

Aquest escanneig es basa en l'enviament de paquets TCP anormalment configurats, amb tots els
flags activats ( SYN, ACK, PSH, RST, URG i FIN).

Amb açò detectem:

• Si el port està obert o filtat (no obtenim resposta)


192.168.10.5 -> 192.168.10.1 FIN/URG/PSH
<Sin respuesta>

• Si el port està tancat, obtenim un RST/ACK:


192.168.10.5 -> 192.168.10.1 FIN/URG/PSH
192.168.10.5 <- 192.168.10.1 RST/ACK

Amb nmap, l'escanneig XMAS Scan es fa amb l'opció -sX:

# nmap ­sX 192.168.10.1


Starting Nmap 4.21ALPHA2 ( http://insecure.org ) at 2007­03­07 08:54
CST
Interesting ports on 192.168.10.1 (192.168.10.1):
Not shown: 1702 closed ports
PORT STATE SERVICE
80/tcp open|filtered http
5190/tcp open|filtered aol
MAC Address: 00:0C:E5:4F:0F:AF (Motorola BCS)
Nmap finished: 1 IP address (1 host up) scanned in 2.491 seconds

Amb hping3, enviarem un paquet amb els flags activats:

# hping3 ­c 1 ­­fin ­­push ­­urg ­p 80 192.168.10.1


HPING 192.168.10.1 (eth0 192.168.10.1): FPU set, 40 headers + 0 data
bytes
­­­ 192.168.10.1 hping statistic ­­­
1 packets tramitted, 0 packets received, 100% packet loss
round­trip min/avg/max = 0.0/0.0/0.0 ms

# hping3 ­c 1 ­­fin ­­push ­­urg ­p 81 192.168.10.1


HPING 192.168.10.1 (eth0 192.168.10.1): FPU set, 40 headers + 0 data
bytes
len=46 ip=192.168.10.1 ttl=64 DF id=0 sport=81 flags=RA seq=0 win=0
rtt=2.2 ms
­­­ 192.168.10.1 hping statistic ­­­
1 packets tramitted, 1 packets received, 0% packet loss
round­trip min/avg/max = 1.7/1.7/1.7 ms

TCP NULL SCAN

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.

La resposta que obtenem és...

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

Amb nmap farem ús del tipus d'escanneig -sN:

# nmap ­sN 192.168.10.1


Starting Nmap 4.21ALPHA2 ( http://insecure.org ) at 2007­03­07 08:57
CST
Interesting ports on 192.168.10.1 (192.168.10.1):
Not shown: 1702 closed ports
PORT STATE SERVICE
80/tcp open|filtered http
5190/tcp open|filtered aol
MAC Address: 00:0C:E5:4F:0F:AF (Motorola BCS)
Nmap finished: 1 IP address (1 host up) scanned in 2.673 seconds

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
round­trip 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
round­trip min/avg/max = 0.1/0.1/0.1 ms

TCP WINDOW SCAN

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>

Amb nmap farem ús de l'opció -sW per fer l'escanneig:

# nmap ­sW 192.168.10.1


Starting Nmap 4.21ALPHA2 ( http://insecure.org ) at 2007­03­07 11:02
CST
All 1704 scanned ports on 192.168.10.1 (192.168.10.1) are closed
MAC Address: 00:0C:E5:4F:0F:AF (Motorola BCS)
Nmap finished: 1 IP address (1 host up) scanned in 1.500 seconds

Amb hping, enviarem un paquet ack:

# hping3 ­c 1 ­­ack ­p 80 192.168.10.1


HPING 192.168.10.1 (eth0 192.168.10.1): A set, 40 headers + 0 data bytes
len=46 ip=192.168.10.1 ttl=64 DF id=0 sport=80 flags=R seq=0 win=0
rtt=1.7 ms
­­­ 192.168.10.1 hping statistic ­­­
1 packets tramitted, 1 packets received, 0% packet loss
round­trip min/avg/max = 5.2/5.2/5.2 ms

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]

Veiem com fer-lo amb nmap:

# nmap ­sU 192.168.10.1


Starting Nmap 4.21ALPHA2 ( http://insecure.org ) at 2007­03­07 09:18
CST
Interesting ports on 192.168.10.1 (192.168.10.1):
Not shown: 1485 closed ports
PORT STATE SERVICE
53/udp open|filtered domain
67/udp open|filtered dhcps
2049/udp open|filtered nfs
MAC Address: 00:0C:E5:4F:0F:AF (Motorola BCS)
Nmap finished: 1 IP address (1 host up) scanned in 1489.293 seconds

I amb hping:

# hping3 ­c 1 ­­udp ­p 53 192.168.10.1


HPING 192.168.10.1 (eth0 192.168.10.1): udp mode set, 28 headers + 0
data bytes
­­­ 192.168.10.1 hping statistic ­­­
1 packets tramitted, 0 packets received, 100% packet loss
round­trip min/avg/max = 0.0/0.0/0.0 ms
# hping3 ­c 1 ­­udp ­p 54 192.168.10.1
HPING 192.168.10.1 (eth0 192.168.10.1): udp mode set, 28 headers + 0
data bytes
ICMP Port Unreachable from ip=192.168.10.1 name=192.168.10.1
­­­ 192.168.10.1 hping statistic ­­­
1 packets tramitted, 1 packets received, 0% packet loss
round­trip min/avg/max = 0.0/0.0/0.0 ms

TCP ACK SCAN

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.

No Filtrat (obtingut a través de firewall):


192.168.10.5 -> 192.168.10.1 ACK
192.168.10.5 <- 192.168.10.1 RST

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>

Per fer este tipus d'escanneig, fem ús de l'opció -sA de nmap:

# nmap ­sA 192.168.10.1


Starting Nmap 4.21ALPHA2 ( http://insecure.org ) at 2007­03­07 09:03
CST
All 1704 scanned ports on 192.168.10.1 (192.168.10.1) are UNfiltered
MAC Address: 00:0C:E5:4F:0F:AF (Motorola BCS)
Nmap finished: 1 IP address (1 host up) scanned in 2.468 seconds
# hping3 ­c 1 ­­ack ­p 80 192.168.10.1
HPING 192.168.10.1 (eth0 192.168.10.1): A set, 40 headers + 0 data bytes
len=46 ip=192.168.10.1 ttl=64 DF id=0 sport=80 flags=R seq=0 win=0
rtt=1.7 ms
­­­ 192.168.10.1 hping statistic ­­­
1 packets tramitted, 1 packets received, 0% packet loss
round­trip min/avg/max = 5.2/5.2/5.2 ms

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]

Per fer aquest escanneig amb nmap:

# nmap ­sO 192.168.10.1


Starting Nmap 4.21ALPHA2 ( http://insecure.org ) at 2007­03­07 09:03
CST
Interesting protocols on 192.168.10.1 (192.168.10.1):
Not shown: 252 open|filtered protocols
PROTOCOL STATE SERVICE
1 open icmp
2 closed igmp
6 open tcp
17 open udp
MAC Address: 00:0C:E5:4F:0F:AF (Motorola BCS)
Nmap finished: 1 IP address (1 host up) scanned in 5.781 seconds

Amb hping3 farem:

# hping3 ­c 1 ­­rawip ­­ipproto 0 192.168.10.1


HPING 192.168.10.1 (eth0 192.168.10.1): raw IP mode set, 20 headers + 0
data bytes
­­­ 192.168.10.1 hping statistic ­­­
1 packets tramitted, 0 packets received, 100% packet loss
round­trip min/avg/max = 0.0/0.0/0.0 ms
# hping3 ­c 1 ­­icmp 192.168.10.1
HPING 192.168.10.1 (eth0 192.168.10.1): icmp mode set, 28 headers + 0
data bytes
len=46 ip=192.168.10.1 ttl=64 id=40509 icmp_seq=0 rtt=1.6 ms
­­­ 192.168.10.1 hping statistic ­­­
1 packets tramitted, 1 packets received, 0% packet loss
round­trip min/avg/max = 18.6/18.6/18.6 ms
# hping3 ­c 1 ­­rawip ­­ipproto 2 192.168.10.1
HPING 192.168.10.1 (eth0 192.168.10.1): raw IP mode set, 20 headers + 0
data bytes
ICMP Protocol Unreachable from ip=192.168.10.1 name=192.168.10.1
­­­ 192.168.10.1 hping statistic ­­­
1 packets tramitted, 1 packets received, 0% packet loss
round­trip min/avg/max = 0.0/0.0/0.0 ms
3. Fingerprinting (detecció del sistema opearatiu)
Una de les tasques prèvies a la realització d'un atac és la recerca d'empremtes identificatives
(fingerprint). Una vegada s'ha realitzat un reconeixement inicial per identificar espais d'adreces IP
d'interès mitjançant eines administratives, passem a aquesta segona fase, que té per objectiu
extreure informació sobre el sistema a atacar. Un cop recollida la major quantitat d'informació
possible sobre el sistema, la última fase prèvia a la realització de l'acat es l'exploració de ports
accessibles mitjançant eines de rastreig de ports.

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.

La implementació de la pila TCP/IP en els diferents sistemes operatius es basa en la interpretació


que es faça dels RFCs que descriuen la pila, de manera que la informació que poguem obtenir
sobre la resposta de la pila TCP/IP d'un sistema ens pot donar indicis bastant fiables del seu sistema
operatiu.

3.1. Implementacions de la pila TCP/IP

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:

• Tahoe, derivada de 4.3BSD,


• Reno, derivada de Tahoe, i usada posteriorment en 4.4BSD-LITE
• Vegas, que millora en velocitat a Reno.

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.

3.2. Tècniques utilitzades en la recerca

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.

3.2.1. Tècniques 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.

3.2.2. Tècniques passives

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ó?

3.3. Eines de recerca d'empremptes

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.

3.3.1. SING (Send ICMP Nasty Garbage)


Pàgina web: http://sourceforge.net/projects/sing/
Es tracta d'una utilitat de línia de comandments, que envía sondejos ICMP completament
configurables i que pretén ser un substitut de ping amb certes millores, com spoofing i fragmentació.
D'entre les característiques principals destaquem:

• Enviament de paquets fragmentats,


• Envia paquets de gran longitud (més de 65534 bytes)
• Envia i rep paquets amb identitat suplantada,
• Accepta la transmissió de diversos tipus de missatge ICMP, com els d'adreça de màscara
(address mask request), de sol·licitud de temps (timestamp request), de sol·licitud
d'informació (information request), sol·licitud de router (Router Solicitation) i publicació
de router (Router Advertisement).
• Enviament de paquets ICMP d'error: Redirecció (redirect), font d'interferència (Source
Quench), temps excedit (Time Exceed), Destinació inassolible (Destination Unreacheable)
i problema de paràmetres (Parameter Problem).
• Utilització de tècniques de fingerprint per descobrir sistemes Windows o Solaris,
• Envía paquets ICMP emulats de sistemes operatius com Cisco IOS, Solaris, Linux, Shiva,
Unix i Windows.

Recerca d'empremtes amb SING

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
round­trip min/avg/max = ­103079192.000/­103079192.000/0.000 ms

<*> Remote OS on 127.0.0.1 is a Linux 2.0.x or Compaq Tru64

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# sing ­O 81.203.120.131


SING: Unable to select an interface to route throughout

Tot i que sí que tenim assolible la IP:

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.

A la pàgina d'insecure.org (http://nmap.org/book/osdetect-methods.html) podem trobar de


manera totalment detallada cadascuna de les sondes que s'envien i dels anàlisis que se'n fa.

Nmap realitza 9 proves:

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.

Recerca d'empremtes amb nmap


Per tal d'obtenir el sistema operatiu d'un host amb nmap, fem ús de l'opció -O, de la següent
manera:

$sudo nmap ­O 127.0.0.1


Starting Nmap 4.62 ( http://nmap.org ) at 2009­03­18 01:03 CET
Interesting ports on localhost (127.0.0.1):
Not shown: 1710 closed ports
PORT STATE SERVICE
25/tcp open smtp
80/tcp open http
111/tcp open rpcbind
631/tcp open ipp
3306/tcp open mysql
Device type: general purpose
Running: Linux 2.6.X
OS details: Linux 2.6.17 ­ 2.6.23
Uptime: 0.113 days (since Tue Mar 17 22:21:04 2009)
Network Distance: 0 hops

OS detection performed. Please report any incorrect results at


http://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 2.189 seconds
Sidharta:/home/joamuran#

Com podem observar, nmap ens mostra una versió més encertada del kernel.

Sidharta:/home/joamuran# uname ­r
2.6.26­1­amd64

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.

La funcionalitat d'Xprobe2 és semblant a la que ofereix en la recerca d'empremtes la utilitat nmap, i


ens ofereix:

• Confiabilitat de la predicció del sistema operatiu de la màquina remota,


• Pot travessar sistemes intermedis (routers, firewalls...) mitjançant lleugeres modificacions dels
paquets,
• Pot indicar els tipus d'aqests sistemes (per exemple si s'està realitzant emmascarament d'IPs)
• Disposa d'una arquitectuira modular, que permet incloure nous tests i noves signatures per a la
detecció dels sistemes.

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

I concretament per a la detecció de l'empremta:

• Petició d'eco ICMP,


• Petició ICMP de màscara de xarxa,
• Detecció de l'empremta basada en missatges ICMP de port inassoblible
• Detecció de l'empremta basada en la salutació a tres vies
• Detecció de l'empremta basada en paquets RST de TCP
• Detecció de l'empremta basada en SMB

Recerca d'empremtes amb Xprobe2

L'opció -v d'xprobe2 realitza la recerca d'empremtes. Vegem un exemple d'ús:

# xprobe2 ­v 127.0.0.1
Xprobe2 v.0.3 Copyright (c) 2002­2005 fyodor@o0o.nu, ofir@sys­security.com,
meder@o0o.nu

[+] Target is 127.0.0.1


[+] Loading modules.
[+] Following modules are loaded:
[x] [1] ping:icmp_ping ­ ICMP echo discovery module
[x] [2] ping:tcp_ping ­ TCP­based ping discovery module
[x] [3] ping:udp_ping ­ UDP­based ping discovery module
[x] [4] infogather:ttl_calc ­ TCP and UDP based TTL distance calculation
[x] [5] infogather:portscan ­ TCP and UDP PortScanner
[x] [6] fingerprint:icmp_echo ­ ICMP Echo request fingerprinting module
[x] [7] fingerprint:icmp_tstamp ­ ICMP Timestamp request fingerprinting module
[x] [8] fingerprint:icmp_amask ­ ICMP Address mask request fingerprinting
module
[x] [9] fingerprint:icmp_port_unreach ­ ICMP port unreachable fingerprinting
module
[x] [10] fingerprint:tcp_hshake ­ TCP Handshake fingerprinting module
[x] [11] fingerprint:tcp_rst ­ TCP RST fingerprinting module
[x] [12] fingerprint:smb ­ SMB fingerprinting module
[x] [13] fingerprint:snmp ­ SNMPv2c fingerprinting module
[+] 13 modules registered
[+] Initializing scan engine
[+] Running scan engine
[­] ping:tcp_ping module: no closed/open TCP ports known on 127.0.0.1. Module
test failed
[­] ping:udp_ping module: no closed/open UDP ports known on 127.0.0.1. Module
test failed
[­] No distance calculation. 127.0.0.1 appears to be dead or no ports known
[+] Host: 127.0.0.1 is up (Guess probability: 50%)
[+] Target: 127.0.0.1 is alive. Round­Trip Time: 0.00011 sec
[+] Selected safe Round­Trip Time value is: 0.00022 sec
[­] fingerprint:tcp_hshake Module execution aborted (no open TCP ports known)
[­] fingerprint:smb need either TCP port 139 or 445 to run
[­] fingerprint:snmp: need UDP port 161 open
[+] Primary guess:
[+] Host 127.0.0.1 Running OS: "Linux Kernel 2.4.22" (Guess probability: 100%)
[+] Other guesses:
[+] Host 127.0.0.1 Running OS: "Linux Kernel 2.4.23" (Guess probability: 100%)
[+] Host 127.0.0.1 Running OS: "Linux Kernel 2.4.21" (Guess probability: 100%)
[+] Host 127.0.0.1 Running OS: "Linux Kernel 2.4.20" (Guess probability: 100%)
[+] Host 127.0.0.1 Running OS: "Linux Kernel 2.4.19" (Guess probability: 100%)
[+] Host 127.0.0.1 Running OS: "Linux Kernel 2.4.24" (Guess probability: 100%)
[+] Host 127.0.0.1 Running OS: "Linux Kernel 2.4.25" (Guess probability: 100%)
[+] Host 127.0.0.1 Running OS: "Linux Kernel 2.4.26" (Guess probability: 100%)
[+] Host 127.0.0.1 Running OS: "Linux Kernel 2.4.27" (Guess probability: 100%)
[+] Host 127.0.0.1 Running OS: "Linux Kernel 2.4.28" (Guess probability: 100%)
[+] Cleaning up scan engine
[+] Modules deinitialized
[+] Execution completed.

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):

Sidharta:/home/joamuran# xprobe2 ­v moodle.iessantvicent.com

Xprobe2 v.0.3 Copyright (c) 2002­2005 fyodor@o0o.nu, ofir@sys­security.com,


meder@o0o.nu
...
[+] Primary guess:
[+] Host 81.47.131.143 Running OS: "NetBSD 2.0" (Guess probability: 89%)
[+] Other guesses:
[+] Host 81.47.131.143 Running OS: "NetBSD 1.6.2" (Guess probability: 89%)
[+] Host 81.47.131.143 Running OS: "NetBSD 1.6.1" (Guess probability: 89%)
[+] Host 81.47.131.143 Running OS: "NetBSD 1.6" (Guess probability: 89%)
[+] Host 81.47.131.143 Running OS: "Cisco IOS 11.2" (Guess probability: 92%)
[+] Host 81.47.131.143 Running OS: "Cisco IOS 11.1" (Guess probability: 92%)
[+] Host 81.47.131.143 Running OS: "Linux Kernel 2.2.3" (Guess probability: 92%)
[+] Host 81.47.131.143 Running OS: "Linux Kernel 2.2.2" (Guess probability: 92%)
[+] Host 81.47.131.143 Running OS: "Linux Kernel 2.2.1" (Guess probability: 92%)
[+] Host 81.47.131.143 Running OS: "Linux Kernel 2.2.0" (Guess probability: 92%)
[+] Cleaning up scan engine
[+] Modules deinitialized
[+] Execution completed.

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ó:

• Detecció d'empremtes de les connexions entrants (mode SYN, per defecte),


• Detecció d'empremtes de les connexions de sortida (mode SYN/ACK),
• Detecció d'empremtes de les connexions de sortida rebutjades (mode RST),
• Detecció d'empremtes de les connexions establertes (mode stray ACK)
P0F fa ús de diverses tècniques de detecció d'empremtes, d'entre les tècniques habituals, tenim:

• Comprovació de les opcions i els comptadors dels paquets


• Ús d'opcions no reconegudes (TTCP, etc)
• Comprovació d'un timestamp de zero,
• Ús d'un IP ID igual a zero en el paquet inicial,
• Ús de flags auxiliars poc usuals,
• Opcions d'IP no buides

I com a tècniques pròpies:

• Presència d'EOL i de les dades a les opcions de les capçaleres


• Comprovació de la correlació entre WSS i MSS/MTU
• Ús de valors per a ACK diferents de zero en l'establiment del SYN inicial,
• Camps TCP sense ús amb valor diferent a zero,
• Punter a dades urgents diferent a zero en les peticions SYN,
• Segon timestamp diferent a zero,
• Dades en el payload en paquets de control
• Nombres de seqüència iguals als nombres d'ACK
• Nombres de seqüència amb valor nul.

Detecció de l'empremta amb P0f

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:

190.225.92.249:50792 ­ Windows 2000 SP4, XP SP1+


­> 81.203.125.192:42377 (distance 15, link: sometimes DSL (3))

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:

81.203.125.192:36808 ­ Linux 2.6 (newer, 2) (up: 11 hrs)


­> 65.55.12.249:80 (distance 0, link: sometimes modem)

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.

You might also like