Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
file-notification-attacks — Исследовательские материалы по атакам через побочный канал уведомлений о файлах в Linux, Windows и macOS, демонстрирующие утечку через inotify/FSEvents, тайминг нажатий клавиш и фингерпринтинг веб-сайтов. | Kitploit
Инструменты/GitHubGitHub/isec-tugraz/file-notification-attacks
Безопасность AndroidАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийСбор информацииМобильная безопасностьКонфиденциальностьСтатьи и ИсследованияОбучение и Образование

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
GitHubisec-tugraz/file-notification-attacks

file-notification-attacks

Исследовательские материалы по атакам через побочный канал уведомлений о файлах в Linux, Windows и macOS, демонстрирующие утечку через inotify/FSEvents, тайминг нажатий клавиш и фингерпринтинг веб-сайтов.

Репозиторий
1310228 дней назадЕщё не проверено

Атаки на системы уведомлений о файлах — Артефакты

Этот репозиторий содержит (всё ещё на рецензии!) артефакты для статьи "File Notification Attacks: Templating and Exploiting Side-Channel Leakage from the File-Notification Systems on Linux, Windows, and macOS", принятой на CCS '26.

Посетите сайт с демонстрациями: https://inoti.fyi/

Читайте статью: https://snee.la/pdf/pubs/file-notification-attacks.pdf или http://inoti.fyi/pubs/file-notification-attacks.pdf

Содержание

  • Предисловие
  • Linux
    • Требования: версия ядра
    • Настройка
    • Атаки
      • 1. Обход нечитаемых файлов
      • 2. Временное разрешение
      • 3. Тайминг между нажатиями клавиш
      • 4. Подмена интерфейса аутентификации
      • 5. Идентификация веб-сайтов через шрифты
  • Android
  • Windows
    • Требования к оборудованию / программному обеспечению
    • Прямая утечка веб-сайтов в Firefox
  • macOS
    • Требования к оборудованию / программному обеспечению
    • Наблюдение за /Applications

Предисловие

В рамках оценки артефактов на CCS'26 (всё ещё продолжается!) мы предоставили виртуальную машину Debian 13 + KDE Plasma 6 с предварительно пропатченным ядром. Эта ВМ не использовалась для получения результатов оценки из статьи и не предназначена для воспроизведения их точной величины. Этот репозиторий может быть обновлён с учётом рецензий и отзывов наших оценщиков артефактов. Мы сделаем ВМ общедоступной после завершения оценки артефактов.

Мы использовали Claude (Opus 4.8) для обёртывания нашего кода в достаточно хорошо документированные и высокопроизводительные артефакты (например, версия для Windows была немного медленной). Однако код, скрипты, makefile, которые он сгенерировал, были основаны на

Приведённые ниже инструкции по тестированию кода для Linux относятся к запуску команд в ВМ. Пожалуйста, вместо этого посмотрите на код в Linux/.

ВМ существует исключительно для удобства, чтобы монтирование каждой атаки не требовало настройки среды с нуля или понижения версии ядра. Базовый механизм, демонстрируемый в ВМ, идентичен описанному в статье, но обратите внимание, что мы не использовали ВМ для получения чисел, приведённых в статье. Абсолютные значения времени могут отличаться из-за виртуализированной среды и базового оборудования.

Linux

Результаты воспроизводятся внутри ВМ Debian 13 (linux-vm/), установленной с официального live-ISO Debian с KDE Plasma 6 (Wayland) и ядром, которое предшествует исправлению fsnotify. Установлены inotify-tools, заголовки разработки Qt6 и pkexec. Больше ничего не обновляется, и ядро никогда не трогается после установки. Пожалуйста, НЕ запускайте apt upgrade и не пытайтесь обновить ядро. Этот образ ВМ намеренно старый, не обновлён и не имеет последних патчей безопасности. Этот образ ВМ предназначен только для быстрой проверки и тестирования!

Код, атаки и демонстрации, находящиеся внутри ВМ, зеркально отражены в Linux/.

Примечание: В начале каждого блока команд мы указываем, от имени какого пользователя запускать команды. Есть [host] — хост-машина, на которой запущена ВМ, [user] — жертва атак в ВМ, и [spyuser], которого требуется настроить и который будет атакующим в большинстве атак на Linux.

Образ диска поставляется как linux-vm-upload.qcow2, сжатый с помощью zstd. Переименуйте его в linux-vm.qcow2 перед запуском run.sh (который ожидает именно это имя файла):

# Run As: [host]
cd linux-vm/
mv linux-vm-upload.qcow2 linux-vm.qcow2
./run.sh

Для чтения qcow2, сжатого zstd, требуется qemu-img/qemu-system-x86_64 версии 5.2 или новее (2020+), проверьте с помощью qemu-img --version. Если вы застряли на старом QEMU и он не может открыть образ, сначала распакуйте его в плоский qcow2:

qemu-img convert -O qcow2 linux-vm-upload.qcow2 linux-vm.qcow2

4 ядра, 4 ГБ ОЗУ, графический дисплей. Учётные данные для входа:

  • имя пользователя root, пароль password,
  • имя пользователя user, пароль password,
  • имя пользователя spyuser, пароль password (не входите как spyuser!)

Настройка

Предоставленная ВМ уже работает на уязвимом, предварительно пропатченном ядре (6.12.43+deb13-amd64), поэтому для её использования понижение версии не требуется. Для запуска этого образа (который имеет графический интерфейс) вам понадобится QEMU. Артефакт находится по адресу /home/user/Linux-File-Notification-Attacks внутри ВМ.

Одна команда настраивает всё с нуля в ВМ: (i) непривилегированную учётную запись spyuser (без sudo), (ii) её собственную копию каталога артефактов (иначе отдельная непривилегированная учётная запись не сможет войти в домашний каталог user), (iii) и все скрипты, сделанные исполняемыми в обеих копиях.

# In the VM, Run As: [user]
sudo bash ~/Linux-File-Notification-Attacks/setup_attacks.sh

Каждая атака ниже запускается от имени spyuser (su - spyuser, пароль password), кроме auth-ui-redress, которая запускается от имени user (объяснено ниже).

Атаки

1. Обход нечитаемых файлов

Доказывает, что уведомления о файловых операциях доставляются для файлов, которые нельзя прочитать напрямую, если их родительский каталог доступен для чтения.

# Run As: [spyuser]
# To switch to spyuser, in a new terminal type `su - spyuser`. The password
# is `password`.
cd ~/Linux-File-Notification-Attacks/unreadable-file-bypass
./watch-syslog.sh

Оставьте его работающим, затем сгенерируйте строку лога из другого терминала от имени user:

# Run As: [user]
logger "hello"

В этом образе Debian 13 нет rsyslog, поэтому нет файла /var/log/syslog, как показано в статье. Вместо этого скрипт переключается на наблюдение за /var/log/journal/<machine-id>/. Это та же идея, поскольку отслеживаемые файлы .journal принадлежат root (пользователь) и systemd-journal (группа), ни один из которых не является spyuser.

2. Временное разрешение

Измеряет задержку уведомлений inotify.

# Run As: [user], ensure numpy is installed (or pip3)
sudo apt install python3-numpy
# Run As: [spyuser]
cd ~/Linux-File-Notification-Attacks/temporal-resolution
./run.sh

watcher открывает наблюдение inotify за тестовым файлом и ставит метку времени для каждого получаемого IN_ACCESS. accessor читает тот же файл 1000 раз со случайной задержкой 5-10 мс между чтениями, самостоятельно ставя метку времени для каждого чтения. stats.py сравнивает две записи меток времени и выводит среднюю/стандартное отклонение/минимальную задержку между происходящим чтением и приходом уведомления, т.е. временное разрешение inotify.

3. Тайминг между нажатиями клавиш

Не полная атака из статьи, а лишь примитив фильтрации — доказательство концепции, на котором построена атака: для каждой клавиши, нажатой где угодно в системе, выводится одно уведомление с меткой времени, без прямого чтения /dev/input.

Скачать инструмент