
Moteur de reconnaissance d'empreintes hybrides passif — identifier des hôtes sans envoyer un seul paquet
Outil d'analyse hybride passive pour le profilage multiprotocole et l'intelligence agnostique du système d'exploitation
Identifiez les hôtes sur votre réseau sans envoyer un seul paquet.
PHANTOMPRINT corrèle plusieurs signaux passifs (pile TCP/IP, TLS/JA4, DHCP Option 55, HTTP/2 HPACK, comportement DNS) pour identifier les systèmes d'exploitation, navigateurs et appareils à partir du seul trafic observé.
| Outil | FP TCP/IP | TLS JA4 | FP DHCP | Multi-signal | Score de confiance |
|---|---|---|---|---|---|
| p0f | ✅ | ❌ | ❌ | ❌ | ❌ |
| Zeek | ✅ | plugin | ❌ | ❌ | ❌ |
| JA3er | ❌ | ✅ | ❌ | ❌ | ❌ |
| PHANTOMPRINT | ✅ | ✅ | ✅ | ✅ | ✅ |
p0f n'a pas été maintenu depuis 2014. Zeek nécessite une infrastructure lourde. Rien ne corrèle tous ces signaux en un profil d'hôte unifié et noté.
Trafic réseau
│
├─── TCP SYN/SYN-ACK ──→ TCPIPParser ──→ TTL + Fenêtre + hash d'options
├─── TLS ClientHello ──→ TLSParser ──→ empreinte JA4
├─── DHCP DISCOVER ──→ DHCPParser ──→ empreinte Option 55
└─── (HTTP/2, DNS) ──→ [à venir v1.5]
│
SignalMerger
│
Moteur de score bayésien
│
Profil d'hôte
┌──────────┴──────────┐
Terminal JSON / STIX
Aucun paquet n'est envoyé. Aucune connexion n'est ouverte. Entièrement passif.
git clone https://github.com/youruser/phantomprint
cd phantomprint
pip install -e ".[dev]"
Nécessite Python 3.11+ et root/CAP_NET_RAW pour la capture en direct.
sudo phantomprint live -i eth0
sudo phantomprint live -i eth0 -t 60 -o results.json
sudo phantomprint live -i eth0 --verbose
phantomprint pcap capture.pcap
phantomprint pcap capture.pcap -o results.json
phantomprint signatures
phantomprint signatures --category os
phantomprint signatures --category browser
◈ PHANTOMPRINT v0.1.0 — Résultats (4 hôtes)
┌─────────────────┬──────────────────┬───────────────┬──────────────────────┬───────┐
│ Hôte / MAC │ SE │ Navigateur / App │ Signaux │ Score │
├─────────────────┼──────────────────┼───────────────┼──────────────────────┼───────┤
│ 192.168.1.45 │ Windows 11 │ Chrome 120 │ TCP TLS DHCP │ 78% │
│ 192.168.1.12 │ Linux 6.x │ curl │ TCP TLS │ 52% │
│ 192.168.1.1 │ Routeur Cisco IOS │ — │ TCP │ 18% │
│ aa:bb:cc:dd:... │ Android 12-14 │ — │ DHCP │ 31% │
└─────────────────┴──────────────────┴───────────────┴──────────────────────┴───────┘
Les signatures se trouvent dans signatures/raw/ sous forme de fichiers YAML :
# signatures/raw/os/windows11.yaml
id: os_win11
name: Windows 11
type: os
description: Windows 11 / Windows Server 2022
signals:
tcp_ip:
- "128:65535:1:mss,nop,wscale,sackok,timestamp"
- "128:64240:1:mss,nop,wscale,sackok,timestamp"
dhcp:
- "1,3,6,15,31,33,43,44,46,47,119,121,249,252"
Ajoutez vos propres signatures et elles sont chargées automatiquement.
v1.0 ─ Analyseurs TCP/IP + TLS/JA4 + DHCP (actuel)
v1.5 ─ Empreinte HTTP/2 HPACK, analyse du comportement DNS, moteur de capture Rust
v2.0 ─ Corrélation cross-capteurs (Redis), détection de dérive comportementale, sortie STIX 2.1
v2.5 ─ Plugin Zeek, sortie Elastic/Splunk, interface web
PHANTOMPRINT est conçu pour être utilisé sur des réseaux que vous possédez ou pour lesquels vous avez une autorisation explicite de surveillance. L'empreinte passive relève de MITRE ATT&CK T1040 (Network Sniffing) — assurez-vous d'avoir les autorisations appropriées avant le déploiement.
Sous licence GPL-3.0.