EnglishFrenchSpanish

OnWorks favicon

p0f - Online in the Cloud

Run p0f in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command p0f that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

PROGRAM:

NAME


p0f - identify remote systems passively

SYNOPSIS


p0f p0f [ -f file ] [ -i device ] [ -s file ] [ -o file ] [ -Q socket [ -0 ] ] [ -w file ]
[ -u user ] [ -c size ] [ -T nn ] [ -e nn ] [ -FNODVUKAXMqxtpdlRL ] [ 'filter rule' ]

DESCRIPTION


p0f uses a fingerprinting technique based on analyzing the structure of a TCP/IP packet to
determine the operating system and other configuration properties of a remote host. The
process is completely passive and does not generate any suspicious network traffic. The
other host has to either:

- connect to your network - either spontaneously or in an induced manner, for example when
trying to establish a ftp data stream, returning a bounced mail, performing auth lookup,
using IRC DCC, external html mail image reference and so on,

- or be contacted by some entity on your network using some standard means (such as a web
browsing); it can either accept or refuse the connection.

The method can see thru packet firewalls and does not have the restrictions of an active
fingerprinting. The main uses of passive OS fingerprinting are attacker profiling (IDS and
honeypots), visitor profiling (content optimization), customer/user profiling (policy
enforcement), pen-testing, etc.

OPTIONS


-f file
read fingerprints from file; by default, p0f reads signatures from ./p0f.fp or
/etc/p0f/p0f.fp (the latter on Unix systems only). You can use this to load custom
fingerprint data. Specifying multiple -f values will NOT combine several signature
files together.

-i device
listen on this device; p0f defaults to whatever device libpcap considers to be the
best (and which often isn't). On some newer systems you might be able to specify
'any' to listen on all devices, but don't rely on this. Specifying multiple -i
values will NOT cause p0f to listen on several interfaces at once.

-s file
read packets from tcpdump snapshot; this is an alternate mode of operation, in
which p0f reads packet from pcap data capture file, instead of a live network.
Useful for forensics (this will parse tcpdump -w output, for example).

You can use Ethereal's text2pcap to convert human-readable packet traces to pcap
files, if needed.

-w file
writes matching packets to a tcpdump snapshot, in addition to fingerprinting;
useful when it is advisable to save copies of the actual traffic for review.

-o file
write to this logfile. This option is required for -d and implies -t.

-Q socket
listen on a specified local stream socket (a filesystem object, for example
/var/run/p0f-sock) for queries. One can later send a packet to this socket with
p0f_query structure from p0f-query.h, and wait for p0f_response. This is a method
of integrating p0f with active services (web server or web scripts, etc). P0f will
still continue to report signatures the usual way - but you can use -qKU
combination to suppress this. Also see -c notes.

A sample query tool (p0fq) is provided in the test/ subdirectory. There is also a
trivial perl implementation of a client available.

NOTE: The socket will be created with permissions corresponding to your current
umask. If you want to restrict access to this interface, use caution.

-0 treat source port 0 in remote queries as a wildcard: find any record for that host.
This is useful when developing plugins for programs that do not pass source port
information to the subsystem that uses p0f queries; note that this introduces some
ambiguity, and the returned match might be not for the exact connection in question
(-Q mode only).

-e ms packet capture window. On some systems (particularly on older Suns), the default
pcap capture window of 1 ms is insufficient, and p0f may get no packets. In such a
case, adjust this parameter to the smallest value that results in reliable
operation (note that this might introduce some latency to p0f). -c size cache size
for -Q and -M options. The default is 128, which is sane for a system under a
moderate network load. Setting it too high will slow down p0f and may result in
some -M false positives for dial-up nodes, dual-boot systems, etc. Setting it too
low will result in cache misses for -Q option. To choose the right value, use the
number of connections on average per the interval of time you want to cache, then
pass it to p0f with -c.

P0f, when run without -q, also reports average packet ratio on exit. You can use
this to determine the optimal -c setting. This option has no effect if you do not
use -Q nor -M.

-u user
this option forces p0f to chroot to this user's home directory after reading
configuration data and binding to sockets, then to switch to his UID, GID and
supplementary groups.

This is a security feature for the paranoid - when running p0f in daemon mode, you
might want to create a new unprivileged user with an empty home directory, and
limit the exposure when p0f is compromised. That said, should such a compromise
occur, the attacker will still have a socket he can use for sniffing some network
traffic (better than rm -rf /).

-N inhibit guesswork; do not report distances and link media. With this option, p0f
logs only source IP and OS data.

-F deploy fuzzy matching algorithm if no precise matches are found (currently applies
to TTL only). This option is not recommended for RST+ mode.

-D do not report OS details (just genre). This option is useful if you don't want p0f
to elaborate on OS versions and such (combine with -N).

-U do not display unknown signatures. Use this option if you want to keep your log
file clean and are not interested in hosts that are not recognized.

-K do not display known signatures. This option is useful when you run p0f
recreationally and want to spot UFOs, or in -Q or -M modes when combined with -U to
inhibit all output.

-q be quiet - do not display banners and keep low profile.

-p switch card to promiscuous mode; by default, p0f listens only to packets addressed
or routed thru the machine it runs on. This setting might decrease performance,
depending on your network design and load. On switched networks, this usually has
little or no effect.

Note that promiscuous mode on IP-enabled interfaces can be detected remotely, and
is sometimes not welcome by network administrators.

-t add human-readable timestamps to every entry (use multiple times to change date
format, a la tcpdump).

-d go into daemon mode (detach from current terminal and fork into background).
Requires -o.

-l outputs data in line-per-record style (easier to grep).

-A a semi-supported option for SYN+ACK mode. This option will cause p0f to fingerprint
systems you connect to, as opposed to systems that connect to you (default). With
this option, p0f will look for p0fa.fp file instead of the usual p0f.fp. The usual
config is NOT SUITABLE for this mode.

The SYN+ACK signature database is sort of small at the moment, but suitable for
many uses. Feel free to contribute.

-R a barely-supported option for RST+ mode. This option will prompt p0f to fingerprint
several different types of traffic, most importantly "connection refused" and
"timeout" messages.

This mode is similar to SYN+ACK (-A), except that the program will now look for
p0fr.fp. The usual config is NOT SUITABLE for this mode. You may have to
familiarize yourself with p0fr.fp before using it.

-O absolutely experimental open connection (stray ACK) fingerprinting mode. In this
mode, p0f will attempt to indiscriminately identify OS on all packets within an
already established connection.

The only use of this mode is to perform an immediate fingerprinting of an existing
session. Because of the sheer amount of output, you are advised against running p0f
in this mode for extended periods of time.

The program will use p0fo.fp file to read fingerprints. The usual config is NOT
SUITABLE for this mode. Do not use unless you know what you are doing. NOTE: The
p0fo.fp database is very sparsely populated at the moment.

-r resolve host names; this mode is MUCH slower and poses some security risk. Do not
use except for interactive runs or low traffic situations. NOTE: the option ONLY
resolves IP address into a name, and does not perform any checks for matching
reverse DNS. Hence, the name may be spoofed - do not rely on it without checking
twice.

-C perform collision check on signatures prior to running. This is an essential option
whenever you add new signatures to .fp files, but is not necessary otherwise.

-x dump full packet contents; this option is not compatible with -l and is intended
for debugging and packet comparison only.

-X display packet payload; rarely, control packets we examine may carry a payload.
This is a bug for the default (SYN) and -A (SYN+ACK) modes, but is (sometimes)
acceptable in -R (RST+) mode.

-M deploy masquerade detection algorithm. The algorithm looks over recent (cached)
hits and looks for indications of multiple systems being behind a single gateway.
This is useful on routers and such to detect policy violations. Note that this mode
is somewhat slower due to caching and lookups. Use with caution (or do not use at
all) in modes other than default (SYN).

-T nn masquerade detection threshold; only meaningful with -M, sets the threshold for
masquerade reporting.

-V use verbose masquerade detection reporting. This option describes the status of all
indicators, not only an overall value.

-v enable support for 802.1Q VLAN tagged frames. Available on some interfaces, on
other, will result in BPF error.

FILTERS


The last part, 'filter rule', is a bpf-style filter expression for incoming packets. It is
very useful for excluding or including certain networks, hosts, or specific packets, in
the logfile. See man tcpdump for more information, few examples:

´src port ftp-data´

´not dst net 10.0.0.0 mask 255.0.0.0´

´dst port 80 and ( src host 195.117.3.59 or src host 217.8.32.51 )´

You also can use a companion log report utility for p0f. Simply run 'p0frep' for help.

SECURITY


P0f, due to its simplicity, is believed to be considerably secure than other software that
is often being run for packet capture (tcpdump, Ettercap, Ethereal, etc). Please follow
the security guidelines posted in the documentation supplied with the package.

Use p0f online using onworks.net services


Free Servers & Workstations

Download Windows & Linux apps

  • 1
    OfficeFloor
    OfficeFloor
    OfficeFloor provides inversion of
    coupling control, with its: - dependency
    injection - continuation injection -
    thread injection For more information
    visit the...
    Download OfficeFloor
  • 2
    DivKit
    DivKit
    DivKit is an open source Server-Driven
    UI (SDUI) framework. It allows you to
    roll out server-sourced updates to
    different app versions. Also, it can be
    used fo...
    Download DivKit
  • 3
    subconverter
    subconverter
    Utility to convert between various
    subscription format. Shadowrocket users
    should use ss, ssr or v2ray as target.
    You can add &remark= to
    Telegram-liked HT...
    Download subconverter
  • 4
    SWASH
    SWASH
    SWASH is a general-purpose numerical
    tool for simulating unsteady,
    non-hydrostatic, free-surface,
    rotational flow and transport phenomena
    in coastal waters as ...
    Download SWASH
  • 5
    VBA-M (Archived - Now on Github)
    VBA-M (Archived - Now on Github)
    Project has moved to
    https://github.com/visualboyadvance-m/visualboyadvance-m
    Features:Cheat creationsave statesmulti
    system, supports gba, gbc, gb, sgb,
    sgb2Tu...
    Download VBA-M (Archived - Now on Github)
  • 6
    Stacer
    Stacer
    Linux System Optimizer and Monitoring
    Github Repository:
    https://github.com/oguzhaninan/Stacer.
    Audience: End Users/Desktop. User
    interface: Qt. Programming La...
    Download Stacer
  • More »

Linux commands

Ad