P0f

From ICO wiki

Sissejuhatus

P0f on mitmekülgne, skaleeritav, passiivne operatsioonisüsteemide(OS) "fingerprintimis" programm. P0f on võimeline tuvastama iga kaugseadme, mis on ühendatud kas sinu omaga või millele oled ise ühendanud läbi OSI neljanda kihi ehk transport kihi. [1] [2] P0f'i on võimalik kasutada taustal töötava programmina või hoopis daemonina ehk programmina, mis töötab tagataustal. Tavaliselt miks P0f'i kasutatakse on, et teha kindlaks kas võrgus on turvaauke või lihtsalt võrgu monritoorimiseks. P0f võimaldab ka tuvastada autoriseerimata ühendusi organisatsiooni sisestes keskkondades ning lisaks veel üleüldisteks analüüsideks. [3]

Kuidas Töötab

P0f on võimeline tuvastama, kuidas kaugseade on võrku ühendatud(Ethernet, DSL), kui kaugel see masin asub ning ülalolekuaeg. ISP(Internet Servide Provider) ehk internetiteenuse pakkujad saavad seda ka kasutad, et tuvastada nende võrgu illegaalseid kasutusi. P0f'iga on võimalik ka tuvastada erinevaid andmepakettide filtreerijaid ning NAT(Network address translation) konfiguratsioone. Vahest on ka võimalik tuvastada uuritava kasutja ISP nimi. Kõike seda tehes on P0f täiesti passiivne, ehk ei genereerita võrgu liiklust, ei toimu name lookup'e, trace route või siis võrgu liiklust uuritavale kasutajale. [4]

P0f on võimeline tuvastama kõiki eelnevalt loetletud aspekte uuritava OS'i kohta ainult tänu ajakohastele "sõrmejälgedele". Sõrmejäljed on andmebaasid, mis koosnevad erinevate OS'ide informatsioonist ja mida P0f kasutab, et võrrelda informatsiooni, mida ta passiivselt kogub, kui peaks toimuma ühendus kas sinu süsteemi või sinu süsteemist välja. [5]

Versioon

Avalikult kättesaadavalt on P0f'i versioone veel alates 1.7'st:

http://lcamtuf.coredump.cx/p0f3/releases/old/1.x/

ja

http://lcamtuf.coredump.cx/p0f3/releases/

Praegune, kasutusel olev P0f'i versioon on 3.08b ehk v3:

http://lcamtuf.coredump.cx/p0f3/releases/p0f-3.08b.tgz

Versioon 3.07 Windows'ile:

http://www.info-sec.ca/p0f.html

Programmi autor

Michal Zalewski, tema ja programmi arendamise toetamiseks võid soetada:

http://www.amazon.com/Tangled-Web-Securing-Modern-Applications/dp/1593273886

Küsimuste tekkimisel või ettepanekute esitamiseks:

lcamtuf@coredump.cx

Süntaks

p0f [ -f file ] [ -i iface ] [ -L ] [ -r file ] [ -o file ] [ -s file ] [ -d ] [ -u user ] [ -p ] [ -S num ] [ -m c,h ] [ -t c,h ]

[6]

Võtmed

Option Tähendus
-f file Loeb fingerprint andmebaasi kindlast failist
-i iface Kuulab kindlat võrgu liidest
-L Kuvab kõik olemasolevad võrgu liidesed
-r file Loeb pcap paketi faili, selle asemel, et kuulata võrgu liidest
-o file Lisab väljundi faili, grep'i sõbralikus vormingus
-s file Väljund socket'i(sokkel)
-d Programm läheb daemon'i ehk töötab tagataustal
-u user Vahetatkse kasutaja ja eemaldatakse kõike õigused, kasutada koos -d
-p Panna valitud liides lihtsameelsesse viisi
-S num Panna paika maksimum arv API klientide ühendus, tavaliselt 20
-m c,h Maksimum number kliente ja host'e, keda jälgitakse
-t c,h Aegumisajad ühendustele(c) ning eemaldimine tegevusetutele(h) hostidele
-A Selle asemel, et p0f fingerprindib süsteeme kes sinu süsteemi ühenduvad, hakkab p0f fingerprintima neid, kuhu sa ühendud
-t Lisatakse timestampid igale kirjele

[7]

Kasutus

Failid, kus hoitakse p0f'i "sõrmejälgede" andmebaase, mille vastu kogutud informatsiooni võrreldakse ja tehakse järeldusi, millise süsteemiga on siis tegu:

/etc/p0f/p0f.fp /etc/p0f/p0fa.fp /etc/p0f/p0fr.fp /etc/p0f/p0fo.fp

[8]

Kuidas paigaldada

Linux

P0f paigaldamine võib vajada libpcap 0.4 teeki, mis on mõeldud andmepaketide salvestamiseks. Libpcap võimaldab salvestada kõik paketid, mis läbivad sinu ethernet liidest. Kõik paketid sinu võrgus, on võimalik libpcap'iga salvestada, isegi need, mis on mõeldud teistele hostidele. Libpcap on võimalik paigaldada nii:

sudo apt-get install libpcap0.8-dev libpcap-dev

P0f'i saab paigaldada nii:

sudo apt-get install p0f

[9]

Windows

Installeerida WinPcap, mis on Windowsi keskkonnad mõeldud andmepakettide salvestamiseks:

https://winpcap.org/default.htm

Alla laadida ja installeerida P0f Windows'ile:

http://www.info-sec.ca/p0f.html

[10]

Näited

Selline käsk võimaldab meil näha kõiki ühendusi, mis tulevad sinu võrgu liidesesse, mis on spetsifitseeritud -i võtmega, see võib sul erineda, oleneb, millist võrguliidest tahad jälgida. Lisame ka -v võtme, millega näeme kõike, mis toimub terminalis, ehk paljusõnaline. Ning lõpuks veel -t, millega lisatakse loetavad timestampi'd igale kirjele.

p0f –i eth0 –vt

Lisadel eelnevalt käsule -A, võimaldab p0f meil jälgida ühendus, mis lähevad sinu võrguliidesest välja, ehk näha süsteeme, kuhu ühendud.

p0f –i eth0 -A –vt

[11]

Kokkuvõte

P0f on tasuta tarkvara erinevatele operatsioonisüsteemidele nagu Windows ja Linux. P0f'i eesmärgiks on tuvastada, milliste süsteemidega kas siis sina ühendud või millised süsteemid ehk hostid ühenduvad sinuga üle võrguliideste. See on võimalik tänu fingerprintimisele, erinev informatsioon, mis kogutakse tänu erinevate süsteemide omavahel ühendumisele, võrreldakse andmebaasidega ehk "sõrmejälgedega", mis hõlmavad endast informatsiooni erinevate OS'i konfiguratsioonide kohta. Kuna OS'i konfiguratsioonid on erinevad, on ka saadetavad andmed erinevad ning kui võrrelda neid olemasolevate "sõrmejälgedega" on meil võimalik teha kindlaid järeldusi uuritava süsteemi kohta.

Autor

Janno Arnek

A21

16.05.2015

Kasutatud Allikad

http://lcamtuf.coredump.cx/p0f3/

https://en.wikipedia.org/wiki/TCP/IP_stack_fingerprinting

http://lcamtuf.coredump.cx/p0f3/README

https://www.sans.org/security-resources/idfaq/p0f.php

http://www.info-sec.ca/p0f.html

http://resources.infosecinstitute.com/passive-fingerprinting-os/

http://linux.die.net/man/1/p0f

http://www.elithecomputerguy.com/2013/02/15/passive-os-fingerprinting-with-p0f/