Torna agli aggiornamenti
New releaseAug 14, 2026

PhantomFS v1.2.20

Honeypot per Windows che utilizza ProjFS per proiettare file esca che attivano avvisi nel registro eventi e sul desktop quando vengono acceduti, con registrazione delle sessioni remote SMB per il rilevamento dei movimenti laterali.

Condividi

PhantomFS — File Falsi. Sicurezza Reale.

File Falsi. Sicurezza Reale.
File system virtuale honeypot per Windows — attira gli aggressori in una directory che sembra reale, poi coglili in flagrante.

Licenza MIT Piattaforma .NET 4.8 Sponsor


Cos'è PhantomFS?

PhantomFS utilizza il Windows Projected File System (ProjFS) per mostrare una directory virtuale piena di file esca convincenti — report finanziari, chiavi SSH, credenziali API, fogli di calcolo HR, NDA — che esistono solo in memoria. Nessun dato viene mai scritto su disco finché un aggressore (o una minaccia interna) non ne apre uno.

Nel momento in cui un file viene toccato, PhantomFS:

  • Scrive una voce nel Registro eventi di Windows (log Applicazione, origine PhantomFS)
  • Invia una notifica Toast alla sessione desktop attiva
  • Registra il nome esatto del file, il timestamp e il contesto del processo
  • Se accesso tramite condivisione di rete — cattura il nome utente SMB e l'indirizzo di origine

Poiché gli utenti legittimi non hanno motivo di aprire file che non hanno messo loro, ogni avviso è ad alta affidabilità. Nessuna regolazione, nessun ML, nessuna dipendenza dal cloud — solo un driver Windows nativo e un singolo eseguibile.


Caratteristiche

CaratteristicaDettagli
Esca a impronta zeroI file vengono proiettati su richiesta — nulla viene scritto su disco a meno che un aggressore non legga un file
Registro eventi WindowsEvent ID 1001 (lettura file), 1002 (creazione segnaposto), 1003 (avviato), 1004 (arrestato)
Avvisi ToastNotifica desktop immediata tramite Windows PowerShell — funziona anche in RDP
Registrazione sessioni remoteNome utente SMB e indirizzo di origine catturati tramite NetSessionEnum quando il PID 4 attiva l'accesso
Pulizia automaticaI file sintetici materializzati vengono cancellati dopo un ritardo configurabile; al prossimo accesso tornano virtuali
Modelli configurabiliPDF, XLSX, DOCX, JSON, CSV, PEM, testo semplice — tutti serviti da modelli XML nella configurazione
Cooldown per fileLimitazione configurabile (default 15 s) impedisce inondazioni di avvisi quando uno strumento legge più blocchi
Elenco file sinteticiElenco XML predefinito di nomi file convincenti con dimensioni in byte realistiche
Singolo eseguibilePhantomFS.exe + PhantomFS.exe.config — nessun installer richiesto

Requisiti

  • Windows 10 versione 1809 (Build 17763) o successiva — Windows 11 consigliato
  • .NET Framework 4.8
  • Funzionalità opzionale Windows Projected File System abilitata (Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart)
  • Privilegi di amministratore per avviare la radice virtuale

Avvio rapido

Comandi semplici (consigliati)

  1. Scarica PhantomFS-v1.1.0-x64.zip dalle Release ed estrailo
  2. Esegui come Amministratore — abilita ProjFS, Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart
  3. Esegui .\PhantomFS.exe --virtroot C:\PhantomFS\Virtual\Documents --syntheticonly
  4. Vai a C:\PhantomFS\Virtual\Documents in Esplora risorse — vedrai i file esca
  5. Aprilo uno — guarda il Toast attivarsi e controlla Visualizzatore eventi → Log di Windows → Applicazione

Configurazione

Tutte le impostazioni risiedono in PhantomFS.exe.config. Tutte le chiavi sono opzionali — omettere una chiave utilizza il valore predefinito mostrato nella tabella.

Usa il PhantomFS Profile Builder per generare diversi profili di configurazione per i tuoi scenari di distribuzione:

Sezione <settings>

<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 — pulizia automatica -->
  <autoCleanupEnabled>true</autoCleanupEnabled>
  <autoCleanupDelaySeconds>300</autoCleanupDelaySeconds>

  <!-- v1.1.0 — registrazione sessioni remote -->
  <resolveRemoteIPs>true</resolveRemoteIPs>
</settings>
ChiavePredefinitoDalla versioneDescrizione
enableEventLogtrue1.0.0Scrive nel log eventi Applicazione di Windows
enableToasttrue1.0.0Invia notifica desktop Toast
alertOnOpentrue1.0.0Avvisa quando viene creato un segnaposto (sfogliatura directory)
alertOnReadtrue1.0.0Avvisa quando i dati del file vengono effettivamente letti
toastCooldownSeconds151.0.0Secondi minimi tra Toast per lo stesso percorso file
verbosefalse1.0.0Output console extra per diagnostica
virtRoot(arg 1)1.0.0Sovrascrive il percorso radice virtuale dalla configurazione anziché dalla riga di comando
sourceRoot(vuoto)1.0.0Directory di appoggio reale opzionale — lascia vuoto per modalità solo sintetici
syntheticOnlytrue1.0.0Serve solo i file elencati in <syntheticFileList>
autoCleanupEnabledtrue1.1.0Elimina i file sintetici materializzati dopo il ritardo e torna allo stato virtuale
autoCleanupDelaySeconds3001.1.0Secondi dopo l'idratazione prima che il file venga cancellato (timer di pulizia eseguito ogni 30 s)
resolveRemoteIPstrue1.1.0Risolve DNS il nome host del client SMB in un indirizzo IP; impostare a false se la latenza di risoluzione è inaccettabile

Registrazione sessioni remote

Quando un file viene accesso tramite una condivisione SMB, PhantomFS rileva il PID 4 (processo di sistema Windows / driver kernel SMB) come chiamante e chiama automaticamente NetSessionEnum per identificare l'utente remoto. La voce del Registro eventi e la notifica Toast includeranno:

PhantomFS — Contenuto file esca letto
File    : Documents\Q4_Financial_Report_2024.pdf
Processo : System (PID 4)
Remoto  : CORP\jsmith @ DESKTOP-A1B2C3D  [192.168.1.45]

Requisiti per la registrazione remota:

  • Il servizio Server deve essere in esecuzione (si avvia automaticamente ogni volta che una condivisione è attiva)
  • PhantomFS deve essere in esecuzione sulla macchina che ospita la condivisione
  • resolveRemoteIPs richiede che la macchina client sia risolvibile tramite DNS

Comportamento della pulizia automatica

Dopo che un file sintetico viene aperto e idratato (contenuto scritto su disco), un timer in background controlla ogni 30 secondi ed elimina i file il cui tempo di idratazione supera autoCleanupDelaySeconds. Il file eliminato torna a essere un segnaposto virtuale ProjFS — il prossimo accesso riattiva la callback ProjFS come se il file non fosse mai stato aperto.

I file ancora aperti quando scatta il timer di pulizia vengono saltati senza errore e riprovati al ciclo successivo di 30 secondi.

Aggiunta di file esca

Aggiungi voci sotto <syntheticFileList> nella configurazione:

\Documents,true,0,1744586986
\Documents\Q4_Financial_Report_2024.pdf,false,8192,1744586986
\Documents\Employee_Salaries_2024.xlsx,false,4096,1743942586
\IT\Keys,true,0,1744586986
\IT\Keys\deploy_key.pem,false,3247,1742354986

Aggiunta di modelli di contenuto

<syntheticTemplates>
  <template name="my_custom_file.txt"><![CDATA[
    ... il contenuto del tuo file qui ...
  ]]></template>
</syntheticTemplates>

Riferimento Registro eventi

Apri Visualizzatore eventi → Log di Windows → Applicazione e filtra per origine PhantomFS.

Event IDLivelloSignificato
1001AvvisoI dati di un file esca sono stati letti (include utente/IP remoto quando applicabile)
1002AvvisoUn segnaposto di file esca è stato creato (file sfogliato/stat'ato)
1003InformazioniPhantomFS avviato — percorso radice virtuale e impostazioni registrate
1004InformazioniPhantomFS arrestato correttamente

CI/CD — GitHub Actions

PhantomFS include un workflow in .github/workflows/build.yml che compila per x64 e ARM64 in parallelo e pubblica una Release su GitHub ad ogni tag di versione.


Compilazione dal sorgente

# Richiede .NET Framework 4.8 SDK o Visual Studio Build Tools
csc.exe /platform:x64 /r:System.Xml.dll /out:PhantomFS.exe src\PhantomFS.cs

csc.exe si trova tipicamente in:

C:\Windows\Microsoft.NET\Framework64\v4.0.30319\csc.exe

Idee per la distribuzione

  • Trappola workstation — esegui come attività pianificata all'accesso; qualsiasi movimento laterale a \\hostname\PhantomFS\Virtual innesca un avviso immediato con il nome utente dell'aggressore e l'IP di origine
  • Canarino su file server — posiziona una condivisione \Finance puntando alla radice virtuale insieme alla vera condivisione finanziaria; la registrazione della sessione remota identifica esattamente quale account ha sfogliato l'esca
  • Macchina sviluppatore — mostra chiavi AWS e SSH false in ~\Documents; attacchi insider o della supply chain attivano avvisi prima dell'esfiltrazione
  • Segmento air-gapped — imposta resolveRemoteIPs=false per saltare DNS in ambienti in cui le ricerche esterne sono bloccate; il nome macchina NetBIOS viene comunque catturato

Sponsorizzazione

PhantomFS è gratuito, open-source e con licenza MIT. Se ti ha fatto risparmiare tempo — o ha catturato un vero aggressore — considera di sponsorizzare lo sviluppo continuativo.

❤ Sponsorizza su GitHub

Gli sponsor ricevono:

  • Risposte prioritarie ai problemi
  • Accesso anticipato a nuovi modelli e funzionalità
  • Una menzione nelle note di rilascio

Gli sponsor aziendali ($500+/mese) ricevono un canale Slack privato per supporto diretto e richieste di funzionalità.


Licenza

MIT License

Copyright (c) 2026 Alloy Secure

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Avviso sul marchio: PhantomFS™ è un marchio di Alloy Secure. Tutti i diritti riservati.


Dichiarazione di non responsabilità — Uso consentito

PhantomFS viene fornito esclusivamente per scopi difensivi legittimi di sicurezza — inclusi rilevamento di intrusioni, ricerca di minacce e test di penetrazione autorizzati su sistemi di tua proprietà o per i quali hai esplicita autorizzazione scritta a monitorare.

Sei l'unico responsabile per assicurarti che l'uso di PhantomFS sia conforme a tutte le leggi locali, nazionali e internazionali applicabili, incluse ma non limitate a frode informatica, intercettazione, privacy e diritto del lavoro. Distribuire PhantomFS su sistemi o reti senza la dovuta autorizzazione potrebbe essere illegale.

Gli autori e i contributori di PhantomFS:

  • Non forniscono garanzie, esplicite o implicite, riguardo all'idoneità per uno scopo particolare
  • Non accettano alcuna responsabilità per danni diretti, indiretti, incidentali o consequenziali derivanti dall'uso o dall'abuso di questo software
  • Non sono responsabili per perdita di dati, danni al sistema, responsabilità legali o danni a terzi derivanti dalla distribuzione di PhantomFS in qualsiasi ambiente

Usalo a tuo rischio. Utilizzando PhantomFS riconosci di aver letto questa dichiarazione, di averla compresa e di accettare di esserne vincolato.

Avviso sul marchio: PhantomFS™ è un marchio di Alloy Secure. Tutti i diritti riservati.


Riconoscimenti

Costruito sulla Windows Projected File System API — la stessa tecnologia che alimenta WSL2 e OneDrive Files On-Demand.

Ispirato dal mio lavoro come ricercatore presso Thinkst 💚 https://citation.thinkst.com/talk/94782

Categorie