p0f, the Passive OS Fingerprinter
[Posted July 14, 2004 by cook]
p0f,
the passive OS fingerprinting tool, is a
networking utility application that runs from a standard command
line interface.
It was written by Michal Zalewski, William Stearns, and others.
p0f has been released under version 2.1 of the GNU Lesser General Public License (LGPL). p0f is cross-platform code, it runs on all of the major
Unix variants and Windows.
The project's
README file
explains how p0f works:
The passive OS fingerprinting technique is based on analyzing the
information sent by a remote host while performing usual communication
tasks - such as whenever a remote party visits your webpage, connecs to
your MTA - or whenever you connect to a remote system while browsing the
web or performing other routine tasks. In contrast to active
fingerprinting (with tools such as NMAP or Queso), the process of passive
fingerprinting does not generate any additional or unusual traffic,
and thus cannot be detected.
Captured packets contain enough information to identify the remote OS,
thanks to subtle differences between TCP/IP stacks, and sometimes certain
implementation flaws that, although harmless, make certain systems quite
unique.
Some of the uses of p0f include profiling, policy enforcement,
network troubleshooting, and seeing through a firewall.
Version 2.0.4 of p0f
was announced
this week, it features bug fixes, performance enhancements,
and fingerprinting support for several additional
network protocols including RST+ACK, SYN+ACK, masquerade and IP sharing.
The
README file
has more information on what's new in this version.
It is also a good place to read about the many command line options
that p0f supports.
Building p0f 2.0.4 was a breeze, it involved downloading the code,
un-tarring, and typing make. It built and ran with no trouble on several
machines that were tested. If you are interested in improving the
accuracy of p0f, click on the
fingerprint submission page and give the developers some
feedback on whether it identifies your system correctly.
(
Log in to post comments)