Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
file-notification-attacks — Artefacts de recherche pour les attaques par canal auxiliaire de notification de fichiers sur Linux, Windows et macOS, démontrant la fuite via inotify/FSEvents, le timing des frappes clavier et l'empreinte de sites web. | Kitploit
Outils/GitHubGitHub/isec-tugraz/file-notification-attacks
Sécurité AndroidAnalyse des VulnérabilitésExploitationExploitation d'Applications WebCollecte d'InformationsSécurité MobileProtection de la Vie PrivéeArticles et RechercheApprentissage et Éducation

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager
GitHubisec-tugraz/file-notification-attacks

file-notification-attacks

Artefacts de recherche pour les attaques par canal auxiliaire de notification de fichiers sur Linux, Windows et macOS, démontrant la fuite via inotify/FSEvents, le timing des frappes clavier et l'empreinte de sites web.

Voir le dépôt
13102il y a 28 joursPas encore vérifié

Attaques par notification de fichiers - Artefacts

Ce dépôt contient les artefacts (encore en cours de révision !) pour l'article « File Notification Attacks: Templating and Exploiting Side-Channel Leakage from the File-Notification Systems on Linux, Windows, and macOS », accepté à CCS '26.

Consultez le site web avec les démos à l'adresse : https://inoti.fyi/

Lisez l'article à l'adresse : https://snee.la/pdf/pubs/file-notification-attacks.pdf ou http://inoti.fyi/pubs/file-notification-attacks.pdf

Table des matières

  • Avant-propos
  • Linux
    • Prérequis : version du noyau
    • Configuration
    • Attaques
      • 1. Contournement de fichier illisible
      • 2. Résolution temporelle
      • 3. Timing entre frappes
      • 4. Habillage de l'interface d'authentification
      • 5. Empreinte de sites web via les polices
  • Android
  • Windows
    • Prérequis matériels / logiciels
    • Fuite directe de sites web sur Firefox
  • macOS
    • Prérequis matériels / logiciels
    • Surveillance de /Applications

Avant-propos

Dans le cadre de l'évaluation des artefacts à CCS'26 (encore en cours !), nous avons fourni une VM Debian 13 + KDE Plasma 6 avec un noyau pré-patché. Cette VM n'a pas été utilisée pour produire les résultats d'évaluation de l'article et n'est pas destinée à reproduire leur magnitude exacte. Ce dépôt pourra être mis à jour pour intégrer les relectures et retours de nos évaluateurs d'artefacts. Nous rendrons la VM publiquement accessible lorsque notre évaluation d'artefacts sera terminée.

Nous avons employé Claude (Opus 4.8) pour envelopper notre code dans des artefacts correctement documentés et performants (par exemple, celui pour Windows était un peu lent). Cependant, le code, les scripts et les makefiles qu'il a générés étaient basés sur

Les instructions ci-dessous pour tester le code Linux sont spécifiques à l'exécution de commandes dans la VM. Veuillez plutôt consulter le code dans Linux/.

La VM existe purement par commodité, afin que le montage de chaque attaque ne nécessite pas une configuration d'environnement à partir de zéro ni une rétrogradation du noyau. Le mécanisme sous-jacent démontré dans la VM est identique à celui décrit dans l'article, mais veuillez noter que nous n'avons pas utilisé la VM pour produire les chiffres rapportés dans l'article. Les timings absolus peuvent différer en raison de l'environnement virtualisé et du matériel sous-jacent.

Linux

Les résultats sont reproduits dans une VM Debian 13 (linux-vm/), installée à partir de l'ISO live officielle Debian avec KDE Plasma 6 (Wayland) installé avec un noyau antérieur au correctif fsnotify. inotify-tools, les en-têtes de développement Qt6 et pkexec sont installés. Rien d'autre n'est mis à jour, et le noyau n'est jamais touché après l'installation. Veuillez NE PAS exécuter apt upgrade ni tenter de mettre à jour le noyau. Cette image de VM est délibérément ancienne, n'est pas à jour et ne dispose pas des derniers correctifs de sécurité. Cette image de VM est uniquement destinée à une validation et des tests rapides !

Le code, les attaques et les démonstrations situés dans la VM sont reproduits dans Linux/.

Remarque : Nous indiquons sous quel utilisateur exécuter les commandes en haut de chaque bloc de commandes. Il y a [host], qui est la machine hôte qui exécute la VM, [user] qui est la victime des attaques dans la VM, et [spyuser] qui doit être configuré et qui sera l'attaquant dans la plupart des attaques Linux.

L'image disque est fournie sous le nom linux-vm-upload.qcow2, compressée avec zstd. Renommez-la en linux-vm.qcow2 avant d'exécuter run.sh (qui attend ce nom de fichier) :

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

La lecture d'un qcow2 compressé avec zstd nécessite qemu-img/qemu-system-x86_64 version 5.2 ou supérieure (2020+), vérifiez avec qemu-img --version. Si vous êtes bloqué sur un QEMU plus ancien et qu'il échoue à ouvrir l'image, décompressez-la d'abord en un qcow2 plat :

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

4 cœurs, 4 Go de RAM, affichage graphique. Les identifiants sont :

  • nom d'utilisateur root, mot de passe password,
  • nom d'utilisateur user, mot de passe password,
  • nom d'utilisateur spyuser, mot de passe password (ne vous connectez pas en tant que spyuser !)

Configuration

La VM fournie exécute déjà un noyau vulnérable et pré-patché (6.12.43+deb13-amd64), donc aucune rétrogradation n'est nécessaire pour l'utiliser. Vous aurez besoin de QEMU pour exécuter cette image (qui dispose d'une interface graphique). L'artefact se trouve à /home/user/Linux-File-Notification-Attacks dans la VM.

Une seule commande configure tout à neuf dans la VM : (i) un compte spyuser non privilégié (non-sudo), (ii) sa propre copie du répertoire d'artefacts (un compte non privilégié distinct ne peut autrement pas traverser le répertoire personnel de user), (iii) et tous les scripts rendus exécutables dans les deux copies.

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

Chaque attaque ci-dessous s'exécute en tant que spyuser (su - spyuser, mot de passe password), sauf auth-ui-redress, qui s'exécute en tant que user (expliqué ci-dessous).

Attaques

1. Contournement de fichier illisible

Démontre que les notifications d'opérations sur fichiers sont délivrées pour des fichiers qui ne peuvent pas être lus directement, tant que leur répertoire parent est lisible.

# 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

Laissez-le s'exécuter, puis générez une ligne de journal depuis un autre terminal en tant que user :

# Run As: [user]
logger "hello"

Cette image Debian 13 n'a pas rsyslog, donc il n'y a pas de fichier /var/log/syslog comme montré dans l'article. Le script se rabat sur la surveillance de /var/log/journal/<machine-id>/ à la place. C'est la même idée, car les fichiers .journal surveillés appartiennent à root (utilisateur) et systemd-journal (groupe), dont aucun n'est spyuser.

2. Résolution temporelle

Mesure le délai de notification d'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 ouvre une surveillance inotify sur un fichier de test et horodate chaque IN_ACCESS qu'il reçoit. accessor lit ce même fichier 1000 fois avec un délai aléatoire de 5 à 10 ms entre les lectures, en horodatant lui-même chaque lecture. stats.py compare les deux enregistrements d'horodatage et affiche le délai moyen/écart-type/minimum entre le moment où la lecture a lieu et l'arrivée de la notification, c'est-à-dire la résolution temporelle d'inotify.

Télécharger l’outil