P0f
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 ] |
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 |
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 |
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 |
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 |
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 |
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/