explaingit

haruu77g/phantomprint

Analysis updated 2026-05-18

3PythonAudience · ops devopsLicense

TLDR

A passive network fingerprinting tool that identifies operating systems and devices from ordinary traffic, without sending any packets.

Mindmap

mindmap
  root((phantomprint))
    What it does
      Passive fingerprinting
      No packets sent
      Confidence scoring
    Tech stack
      Python
      YAML signatures
    Use cases
      Authorized pentesting
      Rogue device detection
      PCAP forensics
    Audience
      Security teams
      Network operators

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Quietly map devices on an authorized network during the early stage of a penetration test.

USE CASE 2

Spot an unexpected or rogue device appearing on a monitored network.

USE CASE 3

Reconstruct which operating systems and browsers were active from a saved packet capture.

USE CASE 4

Add custom YAML signatures to recognize new operating systems or devices.

What is it built with?

PythonYAML

How does it compare?

haruu77g/phantomprint0marildo/imago100/geotwitter
Stars333
LanguagePythonPythonPython
Last pushed2015-09-10
MaintenanceDormant
Setup difficultyeasymoderate
Complexity2/53/5
Audienceops devopsgeneralgeneral

Figures from each repo's GitHub metadata at analysis time.

In plain English

Phantomprint is a tool that figures out what operating system, browser, or device a computer on a network is using, without ever sending it a single packet. It watches normal network traffic that is already passing by, such as the start of a TCP connection, a TLS handshake, or a DHCP request, and reads small technical details in each one, like timing values and option orders, to guess what software produced them. Instead of relying on just one of these signals, it combines several of them, such as the TCP/IP handshake pattern, the TLS JA4 fingerprint, and DHCP option ordering, and produces a single host profile with a confidence score. The README compares it to older tools like p0f, which only look at one signal type and have not been updated in years, and argues that nothing else on the market merges multiple passive signals into one scored result. It can run in two ways: watching a live network interface, which needs root access and Python 3.11 or newer, or analyzing an already captured PCAP file, which does not need root. Results can be printed to the terminal or saved as JSON. Its detection rules are stored as readable YAML files describing the network patterns tied to each operating system or browser, and new rules can be added by dropping in more YAML files, which are picked up automatically. The README describes its intended use for authorized network monitoring: quietly mapping devices during a penetration test's early stages, spotting unexpected devices on a network, and reconstructing which systems were active from old traffic captures. It states plainly that it is meant only for networks the user owns or has explicit permission to monitor, and that passive fingerprinting still falls under a recognized network sniffing technique that needs proper authorization first. The project is licensed under GPL-3.0.

Copy-paste prompts

Prompt 1
Explain how phantomprint identifies an operating system from a TCP handshake alone.
Prompt 2
Walk me through analyzing an existing PCAP file with phantomprint instead of live capture.
Prompt 3
Show me how to write a new YAML signature file for a device I want to detect.
Prompt 4
Help me set up phantomprint on Linux with the root access it needs for live capture.

Frequently asked questions

What is phantomprint?

A passive network fingerprinting tool that identifies operating systems and devices from ordinary traffic, without sending any packets.

What language is phantomprint written in?

Mainly Python. The stack also includes Python, YAML.

Who is phantomprint for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.