
PhantomFS v1.2.20
Honeypot de Windows que utiliza ProjFS para proyectar archivos señuelo que generan alertas en el Registro de Eventos y en el escritorio cuando se accede a ellos, con registro de sesiones SMB remotas para la detección de movimientos laterales.
Archivos Falsos. Seguridad Real.
Sistema de archivos honeypot virtual para Windows: atraiga a los atacantes a un directorio que parece real y luego atrápelos en el acto.
¿Qué es PhantomFS?
PhantomFS utiliza el Sistema de Archivos Proyectado de Windows (ProjFS) para mostrar un directorio virtual lleno de archivos señuelo convincentes: informes financieros, claves SSH, credenciales de API, hojas de cálculo de RR.HH., acuerdos de confidencialidad (NDA), que existen solo en la memoria. Nunca se escribe ningún dato en el disco hasta que un atacante (o amenaza interna) abre uno.
En el momento en que se toca un archivo, PhantomFS:
- Escribe una entrada en el Registro de Eventos de Windows (registro de Aplicaciones, origen
PhantomFS) - Dispara una notificación Toast en la sesión de escritorio activa
- Registra el nombre exacto del archivo, la marca de tiempo y el contexto del proceso
- Cuando se accede a través de un recurso compartido de red: captura el nombre de usuario SMB y la dirección de origen
Debido a que los usuarios legítimos no tienen motivo para abrir archivos que ellos no colocaron allí, cada alerta es de alta confianza. Sin ajustes, sin aprendizaje automático, sin dependencias en la nube: solo un controlador nativo de Windows y un único ejecutable.
Características
| Característica | Detalles |
|---|---|
| Señuelos de huella cero | Los archivos se proyectan bajo demanda; nada se escribe en el disco a menos que un atacante lea un archivo |
| Registro de Eventos de Windows | ID de evento 1001 (lectura de archivo), 1002 (creación de marcador de posición), 1003 (iniciado), 1004 (detenido) |
| Alertas Toast | Notificación inmediata en el escritorio mediante Windows PowerShell; funciona incluso a través de RDP |
| Registro de sesiones remotas | Nombre de usuario SMB y dirección de origen capturados mediante NetSessionEnum cuando el PID 4 desencadena el acceso |
| Limpieza automática | Los archivos sintéticos hidratados se eliminan después de un retardo configurable; se revierten a virtuales en el próximo acceso |
| Plantillas configurables | PDF, XLSX, DOCX, JSON, CSV, PEM, texto plano; todos servidos desde plantillas XML en la configuración |
| Enfriamiento por archivo | Limitación configurable (predeterminado 15 s) evita inundaciones de alertas cuando una herramienta lee múltiples fragmentos |
| Lista de archivos sintéticos | Lista XML que se puede incorporar con nombres de archivo convincentes y tamaños en bytes realistas |
| Ejecutable único | PhantomFS.exe + PhantomFS.exe.config; no requiere instalador |
Requisitos
- Windows 10 versión 1809 (compilación 17763) o posterior; se recomienda Windows 11
- .NET Framework 4.8
- Característica opcional Sistema de Archivos Proyectado de Windows habilitada (
Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart) - Privilegios de administrador para iniciar la raíz virtual
Inicio Rápido
Comandos Simples (recomendado)
- Descargue
PhantomFS-v1.1.0-x64.zipdesde Releases y extráigalo - Ejecute como Administrador; habilite ProjFS:
Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart - Ejecute
.\PhantomFS.exe --virtroot C:\PhantomFS\Virtual\Documents --syntheticonly - Navegue a
C:\PhantomFS\Virtual\Documentsen el Explorador; verá los archivos señuelo - Abra uno; observe la notificación Toast y revise Visor de Eventos → Registros de Windows → Aplicación
Configuración
Toda la configuración reside en PhantomFS.exe.config. Todas las claves son opcionales: omitir una clave usa el valor predeterminado que se muestra en la tabla.
Use el PhantomFS Profile Builder para generar diferentes perfiles de configuración según sus escenarios de implementación:
Sección <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 — auto-cleanup -->
<autoCleanupEnabled>true</autoCleanupEnabled>
<autoCleanupDelaySeconds>300</autoCleanupDelaySeconds>
<!-- v1.1.0 — remote session logging -->
<resolveRemoteIPs>true</resolveRemoteIPs>
</settings>
| Clave | Valor predeterminado | Desde | Descripción |
|---|---|---|---|
enableEventLog | true | 1.0.0 | Escribir en el registro de eventos de Aplicaciones de Windows |
enableToast | true | 1.0.0 | Enviar notificación Toast de escritorio |
alertOnOpen | true | 1.0.0 | Alertar cuando se crea un marcador de posición por primera vez (exploración de directorio) |
alertOnRead | true | 1.0.0 | Alertar cuando realmente se leen los datos del archivo |
toastCooldownSeconds | 15 | 1.0.0 | Segundos mínimos entre notificaciones Toast para la misma ruta de archivo |
verbose | false | 1.0.0 | Salida adicional en la consola para diagnósticos |
virtRoot | (arg 1) | 1.0.0 | Sobrescribir la ruta raíz virtual desde la configuración en lugar de la línea de comandos |
sourceRoot | (vacío) | 1.0.0 | Directorio de respaldo real opcional; dejar vacío para modo solo sintético |
syntheticOnly | true | 1.0.0 | Servir solo los archivos listados en <syntheticFileList> |
autoCleanupEnabled | true | 1.1.0 | Eliminar archivos sintéticos materializados después del retardo y revertir a virtuales |
autoCleanupDelaySeconds | 300 | 1.1.0 | Segundos después de la hidratación antes de que el archivo sea eliminado (el temporizador de limpieza se ejecuta cada 30 s) |
resolveRemoteIPs | true | 1.1.0 | Resolver DNS el nombre de host del cliente SMB a una dirección IP; establecer en false si la latencia de búsqueda es inaceptable |
Registro de Sesiones Remotas
Cuando se accede a un archivo a través de un recurso compartido SMB, PhantomFS detecta el PID 4 (el proceso Sistema de Windows / controlador SMB del kernel) como el llamador y llama automáticamente a NetSessionEnum para identificar al usuario remoto. La entrada del Registro de Eventos y la notificación Toast incluirán:
PhantomFS — Honeypot File Content Read
File : Documents\Q4_Financial_Report_2024.pdf
Process : System (PID 4)
Remote : CORP\jsmith @ DESKTOP-A1B2C3D [192.168.1.45]
Requisitos para el registro remoto:
- El servicio Server debe estar en ejecución (se inicia automáticamente cuando hay un recurso compartido activo)
- PhantomFS debe estar ejecutándose en la máquina que aloja el recurso compartido
resolveRemoteIPsrequiere que la máquina cliente sea resoluble a través de DNS