Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
file-notification-attacks — Artefatos de pesquisa para ataques de canal lateral de notificação de arquivos no Linux, Windows e macOS, demonstrando vazamento de inotify/FSEvents, temporização de teclas e fingerprinting de sites. | Kitploit
Ferramentas/GitHubGitHub/isec-tugraz/file-notification-attacks
Segurança AndroidAnálise de VulnerabilidadesExploraçãoExploração de Aplicações WebColeta de InformaçõesSegurança MóvelPrivacidadePapers e PesquisaAprendizado e Educação

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
GitHubisec-tugraz/file-notification-attacks

file-notification-attacks

Artefatos de pesquisa para ataques de canal lateral de notificação de arquivos no Linux, Windows e macOS, demonstrando vazamento de inotify/FSEvents, temporização de teclas e fingerprinting de sites.

Ver Repositório
13102há 28 diasAinda não revisado

Ataques de Notificação de Arquivos - Artefatos

Este repositório contém os artefatos (ainda em revisão!) para o artigo "File Notification Attacks: Templating and Exploiting Side-Channel Leakage from the File-Notification Systems on Linux, Windows, and macOS", aceito no CCS '26.

Visite o site com demonstrações em: https://inoti.fyi/

Leia o artigo em: https://snee.la/pdf/pubs/file-notification-attacks.pdf ou http://inoti.fyi/pubs/file-notification-attacks.pdf

Índice

  • Prefácio
  • Linux
    • Requisitos: Versão do Kernel
    • Configuração
    • Ataques
      • 1. Bypass de Arquivo Ilegível
      • 2. Resolução Temporal
      • 3. Temporização entre Teclas
      • 4. Redress de UI de Autenticação
      • 5. Fingerprinting de Sites via Fontes
  • Android
  • Windows
    • Requisitos de Hardware / Software
    • Vazamento Direto de Sites no Firefox
  • macOS
    • Requisitos de Hardware / Software
    • Monitorando /Applications

Prefácio

Como parte da avaliação de artefatos no CCS'26 (ainda em andamento!), disponibilizamos uma VM Debian 13 + KDE Plasma 6 com um kernel pré-patchado. Esta VM não foi usada para produzir os resultados de avaliação do artigo e não se destina a reproduzir sua magnitude exata. Este repositório pode ser atualizado para incorporar revisões e feedback dos nossos avaliadores de artefatos. Tornaremos a VM publicamente acessível quando nossa avaliação de artefatos for concluída.

Empregamos o Claude (Opus 4.8) para empacotar nosso código em artefatos razoavelmente bem documentados e de alto desempenho (por exemplo, o do Windows estava um pouco lento). No entanto, o código, scripts e makefiles que ele gerou foram baseados em

As instruções para testar o código Linux abaixo são específicas para executar comandos na VM. Por favor, consulte o código em Linux/.

A VM existe puramente por conveniência, para que a montagem de cada ataque não exija uma configuração de ambiente do zero ou um downgrade de kernel. O mecanismo subjacente demonstrado na VM é idêntico ao descrito no artigo, mas observe que não usamos a VM para produzir os números relatados no artigo. Os tempos absolutos podem diferir devido ao ambiente virtualizado e ao hardware subjacente.

Linux

Os achados são reproduzidos dentro de uma VM Debian 13 (linux-vm/), instalada a partir da ISO live oficial do Debian com KDE Plasma 6 (Wayland) instalado com um kernel anterior à correção do fsnotify. inotify-tools, cabeçalhos de desenvolvimento do Qt6 e pkexec estão instalados. Nada mais é atualizado, e o kernel nunca é tocado após a instalação. Por favor, NÃO execute apt upgrade nem tente atualizar o kernel. Esta imagem de VM é deliberadamente antiga, não está atualizada e não possui os últimos patches de segurança. Esta imagem de VM destina-se apenas a validação e testes rápidos!

O código, os ataques e as demonstrações localizados dentro da VM estão espelhados em Linux/.

Nota: Mencionamos como qual usuário executar os comandos no topo de cada bloco de comando. Há o [host], que é a máquina hospedeira que executa a VM, o [user], que é a vítima dos ataques na VM, e o [spyuser], que precisa ser configurado e será o atacante na maioria dos ataques Linux.

A imagem de disco é fornecida como linux-vm-upload.qcow2, comprimida com zstd. Renomeie-a para linux-vm.qcow2 antes de executar run.sh (que espera esse nome de arquivo):

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

Ler um qcow2 comprimido com zstd requer qemu-img/qemu-system-x86_64 versão 5.2 ou mais recente (2020+), verifique com qemu-img --version. Se você estiver preso em um QEMU mais antigo e ele falhar ao abrir a imagem, descompacte-a em um qcow2 plano primeiro:

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

4 núcleos, 4GB de RAM, exibição GUI. Os logins são:

  • usuário root, senha password,
  • usuário user, senha password,
  • usuário spyuser, senha password (não faça login como spyuser!)

Configuração

A VM fornecida já executa um kernel vulnerável e pré-patchado (6.12.43+deb13-amd64), então nenhum downgrade é necessário para usá-la. Você precisará do QEMU para executar esta imagem (que possui uma GUI). O artefato está em /home/user/Linux-File-Notification-Attacks dentro da VM.

Um comando configura tudo do zero na VM: (i) uma conta spyuser sem privilégios (não-sudo), (ii) sua própria cópia do diretório de artefatos (uma conta sem privilégios separada não consegue, de outra forma, acessar o diretório home do user), (iii) e todos os scripts tornados executáveis em ambas as cópias.

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

Cada ataque abaixo é executado como spyuser (su - spyuser, senha password), exceto auth-ui-redress, que é executado como user (explicado abaixo).

Ataques

1. Bypass de Arquivo Ilegível

Prova que notificações de operações de arquivo são entregues para arquivos que não podem ser lidos diretamente, desde que seu diretório pai seja legível.

# 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

Deixe-o em execução, então gere uma linha de log de outro terminal como user:

# Run As: [user]
logger "hello"

Esta imagem Debian 13 não possui rsyslog, então não há arquivo /var/log/syslog como mostrado no artigo. O script recorre a monitorar /var/log/journal/<machine-id>/ em vez disso. É a mesma ideia, pois os arquivos .journal sendo monitorados pertencem a root (usuário) e systemd-journal (grupo), nenhum dos quais é spyuser.

2. Resolução Temporal

Mede o atraso de notificação do 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 abre um watch do inotify em um arquivo de teste e marca o timestamp de cada IN_ACCESS que recebe. accessor lê esse mesmo arquivo 1000 vezes com um atraso aleatório de 5-10ms entre leituras, marcando o timestamp de cada leitura ele mesmo. stats.py compara as duas gravações de timestamp e imprime o atraso médio/desvio padrão/mínimo entre a leitura ocorrer e a notificação chegar, ou seja, a resolução temporal do inotify.

3. Temporização entre Teclas

Não é o ataque completo do artigo, mas apenas a primitiva de prova de conceito de filtragem na qual o ataque é construído: para cada tecla pressionada em qualquer lugar do sistema, imprime uma notificação com timestamp, sem nunca ler /dev/input diretamente.

# Run As: [spyuser]
cd ~/Linux-File-Notification-Attacks/inter-keystroke-timing
make
./find-keyboard.sh

Digite em qualquer janela (talvez um novo terminal como user). Cada tecla pressionada imprime uma linha KEYPRESS. A janela de supressão (que escolhemos heurísticamente para esta demonstração é de 130ms) mescla vários eventos IN_ACCESS gerados por um único pressionamento físico de tecla. Na prática, notamos que esta janela é diferente para hardwares diferentes (por exemplo, teclados mecânicos, estilos de digitação).

Baixar ferramenta