Назад к обновлениям
New releaseAug 14, 2026

PhantomFS v1.2.20

Ханипот Windows, использующий ProjFS для создания файлов-приманок, которые при обращении к ним вызывают события в Event Log и уведомления на рабочем столе, с журналированием удаленных сессий SMB для обнаружения бокового перемещения.

Поделиться

PhantomFS — Фальшивые файлы. Настоящая безопасность.

Фальшивые файлы. Настоящая безопасность.
Виртуальная файловая система-приманка для Windows — заманите атакующих в каталог, который выглядит настоящим, а затем поймайте их с поличным.

MIT License Platform .NET 4.8 Sponsor


Что такое PhantomFS?

PhantomFS использует Windows Projected File System (ProjFS) для отображения виртуального каталога, заполненного правдоподобными файлами-приманками — финансовые отчёты, SSH-ключи, учётные данные API, таблицы HR, NDA, — которые существуют только в памяти. Никакие данные никогда не записываются на диск, пока атакующий (или инсайдер) не откроет один из них.

В момент касания файла PhantomFS:

  • Записывает запись в Журнал событий Windows (журнал приложений, источник PhantomFS)
  • Отправляет Toast-уведомление на активный сеанс рабочего стола
  • Логирует точное имя файла, временную метку и контекст процесса
  • При доступе через сетевую папку — захватывает имя пользователя SMB и исходный адрес

Поскольку у легитимных пользователей нет причин открывать файлы, которые они туда не помещали, каждое предупреждение является высокодостоверным. Никакой настройки, никакого машинного обучения, никаких облачных зависимостей — только родной драйвер Windows и один исполняемый файл.


Возможности

ФункцияОписание
Приманки с нулевым следомФайлы проецируются по требованию — ничего не записывается на диск, пока атакующий не прочитает файл
Журнал событий WindowsИдентификаторы событий: 1001 (чтение файла), 1002 (создан заполнитель), 1003 (запуск), 1004 (остановка)
Toast-уведомленияМгновенное уведомление на рабочем столе через Windows PowerShell — работает даже через RDP
Логирование удалённых сессийИмя пользователя SMB и исходный адрес захватываются через NetSessionEnum, когда PID 4 инициирует доступ
Автоматическая очисткаГидрированные синтетические файлы удаляются после настраиваемой задержки; при следующем доступе снова становятся виртуальными
Настраиваемые шаблоныPDF, XLSX, DOCX, JSON, CSV, PEM, обычный текст — все предоставляются из XML-шаблонов в конфигурации
Интервал кулдауна на файлНастраиваемая задержка (по умолчанию 15 с) предотвращает лавину оповещений, когда инструмент читает несколько блоков
Список синтетических файловВстраиваемый XML-список правдоподобных имён файлов с реалистичными размерами в байтах
Один исполняемый файлPhantomFS.exe + PhantomFS.exe.config — не требует установки

Требования

  • Windows 10 версии 1809 (сборка 17763) или новее — рекомендуется Windows 11
  • .NET Framework 4.8
  • Включённая дополнительная функция Windows Projected File System (Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart)
  • Права администратора для запуска виртуального корня

Быстрый старт

Простые команды (рекомендуется)

  1. Скачайте PhantomFS-v1.1.0-x64.zip из Releases и распакуйте его
  2. Запустите от имени администратора — включите ProjFS, Enable-WindowsOptionalFeature -Online -FeatureName Client-ProjFS -NoRestart
  3. Выполните .\PhantomFS.exe --virtroot C:\PhantomFS\Virtual\Documents --syntheticonly
  4. Перейдите в C:\PhantomFS\Virtual\Documents в Проводнике — вы увидите файлы-приманки
  5. Откройте один из них — наблюдайте отправку Toast и проверьте Просмотр событий → Журналы Windows → Приложение

Конфигурация

Все настройки находятся в PhantomFS.exe.config. Все ключи необязательны — пропуск ключа приводит к использованию значения по умолчанию, указанного в таблице.

Используйте PhantomFS Profile Builder для генерации различных профилей конфигурации под ваши сценарии развёртывания:

Раздел <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 — автоматическая очистка -->
  <autoCleanupEnabled>true</autoCleanupEnabled>
  <autoCleanupDelaySeconds>300</autoCleanupDelaySeconds>

  <!-- v1.1.0 — логирование удалённых сессий -->
  <resolveRemoteIPs>true</resolveRemoteIPs>
</settings>
КлючПо умолчаниюС версииОписание
enableEventLogtrue1.0.0Запись в журнал событий приложений Windows
enableToasttrue1.0.0Отправка Toast-уведомления на рабочий стол
alertOnOpentrue1.0.0Предупреждение при первом создании заполнителя (просмотр каталога)
alertOnReadtrue1.0.0Предупреждение при фактическом чтении данных файла
toastCooldownSeconds151.0.0Минимальное количество секунд между Toast для одного и того же пути файла
verbosefalse1.0.0Дополнительный вывод в консоль для диагностики
virtRoot(арг. 1)1.0.0Переопределение пути виртуального корня из конфигурации, а не из командной строки
sourceRoot(пусто)1.0.0Необязательный реальный резервный каталог — оставьте пустым для режима только синтетики
syntheticOnlytrue1.0.0Обслуживать только файлы, перечисленные в <syntheticFileList>
autoCleanupEnabledtrue1.1.0Удалять материализованные синтетические файлы после задержки и возвращать к виртуальным
autoCleanupDelaySeconds3001.1.0Секунды после гидратации до удаления файла (таймер очистки запускается каждые 30 с)
resolveRemoteIPstrue1.1.0Разрешать DNS-имя клиента SMB в IP-адрес; установите false, если задержка разрешения недопустима

Логирование удалённых сессий

Когда к файлу обращаются через общую папку SMB, PhantomFS обнаруживает PID 4 (системный процесс Windows / драйвер SMB ядра) как вызывающий и автоматически вызывает NetSessionEnum для идентификации удалённого пользователя. Запись в журнале событий и Toast-уведомление будут содержать:

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]

Требования для удалённого логирования:

  • Служба Server должна быть запущена (она запускается автоматически, когда общая папка активна)
  • PhantomFS должен работать на машине, на которой размещена общая папка
  • Для resolveRemoteIPs необходимо, чтобы клиентская машина была разрешима через DNS

Поведение автоматической очистки

После того как синтетический файл открыт и гидратирован (содержимое записано на диск), фоновый таймер проверяет каждые 30 секунд и удаляет файлы, время гидратации которых превышает autoCleanupDelaySeconds. Удалённый файл возвращается к виртуальному заполнителю ProjFS — при следующем доступе снова срабатывает обратный вызов ProjFS, как если бы файл никогда не был открыт.

Категории