
PhantomFS v1.2.20
Windows-Honeypot, der ProjFS verwendet, um Köderdateien zu projizieren, die bei Zugriff Ereignisprotokoll- und Desktop-Warnungen auslösen, mit SMB-Fernsitzungsprotokollierung zur Erkennung von Lateral Movements.
Fake Files. Echte Sicherheit.
Virtuelles Honeypot-Dateisystem für Windows — locke Angreifer in ein Verzeichnis, das echt aussieht, und erwische sie auf frischer Tat.
Was ist PhantomFS?
PhantomFS nutzt das Windows Projected File System (ProjFS), um ein virtuelles Verzeichnis voller überzeugender Lockdateien einzublenden – Finanzberichte, SSH-Schlüssel, API-Zugangsdaten, HR-Tabellen, NDAs – die nur im Speicher existieren. Es werden niemals Daten auf die Festplatte geschrieben, bis ein Angreifer (oder Insider-Bedrohung) eine Datei öffnet.
In dem Moment, in dem eine Datei berührt wird, macht PhantomFS Folgendes:
- Schreibt einen Windows-Ereignisprotokolleintrag (Anwendungsprotokoll, Quelle
PhantomFS) - Sendet eine Toast-Benachrichtigung an die aktive Desktop-Sitzung
- Protokolliert den genauen Dateinamen, Zeitstempel und Prozesskontext
- Bei Zugriff über eine Netzwerkfreigabe – erfasst den SMB-Benutzernamen und die Quelladresse
Da legitime Benutzer keinen Grund haben, Dateien zu öffnen, die sie nicht selbst dort abgelegt haben, ist jede Warnung hochzuverlässig. Kein Tuning, kein ML, keine Cloud-Abhängigkeiten – nur ein nativer Windows-Treiber und eine einzelne ausführbare Datei.
Funktionen
| Funktion | Details |
|---|---|
| Fußabdruckfreie Lockdateien | Dateien werden bei Bedarf projiziert – nichts wird auf die Festplatte geschrieben, es sei denn, ein Angreifer liest eine Datei |
| Windows-Ereignisprotokoll | Ereignis-ID 1001 (Datei gelesen), 1002 (Platzhalter erstellt), 1003 (gestartet), 1004 (gestoppt) |
| Toast-Warnungen | Sofortige Desktop-Benachrichtigung über Windows PowerShell – funktioniert sogar über RDP |
| Protokollierung entfernter Sitzungen | SMB-Benutzername und Quelladresse erfasst über NetSessionEnum, wenn PID 4 den Zugriff auslöst |
| Automatische Bereinigung | Hydrierte synthetische Dateien werden nach einer konfigurierbaren Verzögerung gelöscht; kehrt beim nächsten Zugriff zum virtuellen Zustand zurück |
| Konfigurierbare Vorlagen | PDF, XLSX, DOCX, JSON, CSV, PEM, Klartext – alle aus XML-Vorlagen in der Konfiguration |
| Cooldown pro Datei | Konfigurierbare Drosselung (Standard 15 s) verhindert Warnungsfluten, wenn ein Tool mehrere Blöcke liest |
| Liste synthetischer Dateien | Einfügbare XML-Liste überzeugender Dateinamen mit realistischen Bytegrößen |
| Einzelne ausführbare Datei | PhantomFS.exe + PhantomFS.exe.config – kein Installationsprogramm erforderlich |
Voraussetzungen
- Windows 10 Version 1809 (Build 17763) oder höher – Windows 11 empfohlen
- .NET Framework 4.8
- Windows Projected File System optionale Funktion aktiviert (
Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart) - Administratorrechte zum Starten des virtuellen Stammverzeichnisses
Schnellstart
Einfache Befehle (empfohlen)
- Laden Sie
PhantomFS-v1.1.0-x64.zipvon Releases herunter und entpacken Sie es - Als Administrator ausführen – ProjFS aktivieren,
Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart .\PhantomFS.exe --virtroot C:\PhantomFS\Virtual\Documents --syntheticonlyausführen- Navigieren Sie im Explorer zu
C:\PhantomFS\Virtual\Documents– Sie sehen die Lockdateien - Öffnen Sie eine – beobachten Sie die Toast-Benachrichtigung und überprüfen Sie Ereignisanzeige → Windows-Protokolle → Anwendung
Konfiguration
Alle Einstellungen befinden sich in PhantomFS.exe.config. Alle Schlüssel sind optional – das Weglassen eines Schlüssels verwendet den in der Tabelle angegebenen Standardwert.
Verwenden Sie den PhantomFS-Profil-Builder, um verschiedene Konfigurationsprofile für Ihre Bereitstellungsszenarien zu erstellen:
<settings>-Abschnitt
<settings>
<enableEventLog>true</enableEventLog>
<enableToast>true</enableToast>
<alertOnOpen>true</alertOnOpen>
<alertOnRead>true</alertOnRead>
<toastCooldownSeconds>15</toastCooldownSeconds>
<verbose>false</verbose>
<virtRoot></virtRoot>
<sourceRoot></sourceRoot>
<syntheticOnly>true</syntheticOnly>
<!-- v1.1.0 — automatische Bereinigung -->
<autoCleanupEnabled>true</autoCleanupEnabled>
<autoCleanupDelaySeconds>300</autoCleanupDelaySeconds>
<!-- v1.1.0 — Protokollierung entfernter Sitzungen -->
<resolveRemoteIPs>true</resolveRemoteIPs>
</settings>
| Schlüssel | Standard | Seit | Beschreibung |
|---|---|---|---|
enableEventLog | true | 1.0.0 | In das Windows-Anwendungsereignisprotokoll schreiben |
enableToast | true | 1.0.0 | Desktop-Toast-Benachrichtigung senden |
alertOnOpen | true | 1.0.0 | Warnen, wenn ein Platzhalter zum ersten Mal erstellt wird (Verzeichnis durchsuchen) |
alertOnRead | true | 1.0.0 | Warnen, wenn Dateidaten tatsächlich gelesen werden |
toastCooldownSeconds | 15 | 1.0.0 | Mindestsekunden zwischen Toasts für denselben Dateipfad |
verbose | false | 1.0.0 | Zusätzliche Konsolenausgabe für Diagnose |
virtRoot | (Argument 1) | 1.0.0 | Überschreibt den Pfad des virtuellen Stammverzeichnisses aus der Konfiguration anstelle der Befehlszeile |
sourceRoot | (leer) | 1.0.0 | Optionales echtes Hintergrundverzeichnis – für den Nur-Synthetik-Modus leer lassen |
syntheticOnly | true | 1.0.0 | Nur die in <syntheticFileList> aufgeführten Dateien ausliefern |
autoCleanupEnabled | true | 1.1.0 | Materialisierte synthetische Dateien nach der Verzögerung löschen und in den virtuellen Zustand zurückversetzen |
autoCleanupDelaySeconds | 300 | 1.1.0 | Sekunden nach der Hydrierung, bevor die Datei gelöscht wird (Bereinigungstimer läuft alle 30 s) |
resolveRemoteIPs | true | 1.1.0 | DNS-Auflösung des SMB-Client-Hostnamens zu einer IP-Adresse; auf false setzen, wenn die Nachschlageverzögerung nicht akzeptabel ist |
Protokollierung entfernter Sitzungen
Wenn über eine SMB-Freigabe auf eine Datei zugegriffen wird, erkennt PhantomFS PID 4 (den Windows-Systemprozess / SMB-Kernel-Treiber) als Aufrufer und ruft automatisch NetSessionEnum auf, um den entfernten Benutzer zu identifizieren. Der Ereignisprotokolleintrag und die Toast-Benachrichtigung enthalten dann:
PhantomFS — Honeypot-Dateiinhalt gelesen
Datei : Documents\Q4_Financial_Report_2024.pdf
Prozess : System (PID 4)
Remote : CORP\jsmith @ DESKTOP-A1B2C3D [192.168.1.45]
Voraussetzungen für die Fernprotokollierung:
- Der Serverdienst muss ausgeführt werden (er startet automatisch, sobald eine Freigabe aktiv ist)
- PhantomFS muss auf dem Computer ausgeführt werden, der die Freigabe hostet
resolveRemoteIPserfordert, dass der Client-Computer über DNS auflösbar ist