Aller au contenu

Activité utilisateur

Base des notifications (wpndatabase.db)

Fiche base des notifications Windows : tables de wpndatabase.db, Payload XML des toasts, ArrivalTime et ExpiryTime en FILETIME, récupération WAL, appdb.dat.

Emplacement
C:\Users\<user>\AppData\Local\Microsoft\Windows\Notifications\wpndatabase.db
Prouve
Quelle application a affiché quel texte de notification à l'utilisateur, et quand
Horodatages
ArrivalTime et ExpiryTime par notification en FILETIME, UTC ; horodatages des canaux push et des handlers ; heure d'en-tête de l'ancien appdb.dat
Rétention
Lignes supprimées après ExpiryTime ou à la fermeture ; restes dans le WAL et les pages libres ; l'ancien appdb.dat réutilise environ 256 blocs
Accès
Fichier du profil tenu ouvert par le service de notifications : copier .db, -wal et -shm ensemble via VSS (esentutl /y /vss)
Type
Base de données
Windows
1011
Cible KAPE
WindowsNotificationsDB
Velociraptor
Windows.Triage.Targets:WindowsNotificationsDB

Présentation

La plateforme Windows Push Notification (WPN) conserve les notifications émises par les applications (toasts, vignettes et badges) pour que le Centre de notifications puisse les afficher. Chaque utilisateur dispose d'une base SQLite, wpndatabase.db, apparue avec Windows 10 version 1607. Les versions antérieures de Windows 10 utilisaient un fichier binaire propriétaire, appdb.dat.

Les notifications contiennent du texte que l'utilisateur a vu à l'écran : objets et expéditeurs d'e-mails, aperçus de messages Teams, Slack, WhatsApp ou Signal, rappels d'agenda, alertes de téléchargement ou de sécurité. Comme les applications recopient le contenu dans la notification, la base peut conserver un texte de message que l'application elle-même chiffre ou a déjà supprimé.

Emplacement

Version de WindowsCheminFormat
10 1607 et suivants / 11 (par utilisateur)%LOCALAPPDATA%\Microsoft\Windows\Notifications\wpndatabase.dbSQLite, avec wpndatabase.db-wal et wpndatabase.db-shm
10 1607 et suivants / 11 (système)C:\Windows\System32\config\systemprofile\AppData\Local\Microsoft\Windows\Notifications\wpndatabase.dbSQLite, notifications de niveau système
10 1607 et suivants / 11%LOCALAPPDATA%\Microsoft\Windows\Notifications\wpnidm\Images référencées par les notifications
10 avant 1607%LOCALAPPDATA%\Microsoft\Windows\Notifications\appdb.datBinaire, signature DNPW

La base fonctionne en mode WAL : les entrées récentes et celles récemment supprimées ne se trouvent souvent que dans wpndatabase.db-wal (WAL SQLite).

Ce que l'artefact prouve

  • Contenu affiché : le texte (et parfois l'image) d'une notification présentée à l'utilisateur, comme un aperçu de message ou l'objet d'un e-mail.
  • Application source : l'application ou le service qui l'a émise (PrimaryId du gestionnaire, par exemple un AppUserModelID).
  • Chronologie : l'heure d'arrivée de la notification et son expiration prévue.
  • Présence d'applications : les enregistrements de gestionnaires montrent quelles applications se sont inscrites aux notifications sur ce profil.
  • L'artefact ne prouve pas que l'utilisateur a lu ou cliqué la notification, ni que l'application était au premier plan.

Champs clés

Table / champSignification
Notification.Id, OrderIdentifiant et ordre de la notification
Notification.HandlerIdLien vers NotificationHandler.RecordId
Notification.TypeNature de la notification (toast, vignette ou badge)
Notification.PayloadContenu de la notification, en général du XML (<toast>…<text>…</text>) ; parfois binaire
Notification.PayloadType, Tag, GroupFormat du contenu et regroupement défini par l'application
Notification.ArrivalTime, ExpiryTimeArrivée et suppression programmée
Notification.BootId, ExpiresOnReboot, ActivityIdRéférence de session de démarrage, expiration au redémarrage, lien d'activité
NotificationHandler.PrimaryIdIdentifiant de l'application propriétaire de la notification
NotificationHandler.HandlerType, CreatedTime, ModifiedTimeType de gestionnaire, date d'inscription et de mise à jour
WNSPushChannel.ChannelId, Uri, CreatedTime, ExpiryTimeCanal push enregistré auprès du Windows Notification Service

La base contient aussi les tables HandlerAssets, NotificationData et TransientTable.

Horodatages

HorodatagePositionné quandFormatPièges
ArrivalTimeRéception de la notificationFILETIME, UTCL'événement (message, e-mail) peut être antérieur si l'appareil était hors ligne
ExpiryTimeSuppression programmée de la baseFILETIME, UTCFixée par l'application ou le système ; la ligne peut disparaître plus tôt si l'utilisateur la ferme
WNSPushChannel.CreatedTime, ExpiryTimeCréation / expiration du canal pushFILETIME, UTCConcerne l'inscription de l'application, pas l'activité de l'utilisateur
NotificationHandler.CreatedTime, ModifiedTimeInscription / mise à jour du gestionnaireConvertis par les parseursApproche le moment où une application a utilisé les notifications pour la première fois
Date d'en-tête de appdb.datDernière notification affichée (ancien format)FILETIME, UTCPrésente uniquement dans l'en-tête du premier bloc

Rétention et effacement

  • Les notifications vivent peu : les lignes sont supprimées après ExpiryTime ou dès que l'utilisateur les acquitte ou les ferme ; la table active ne contient souvent que des éléments récents.
  • Les lignes supprimées peuvent survivre dans wpndatabase.db-wal et dans les pages libres SQLite jusqu'à écrasement : récupérez-les par carving et examinez les clichés instantanés.
  • L'utilisateur peut désactiver les notifications par application ou globalement ; aucune nouvelle ligne n'est alors écrite pour ces applications.
  • appdb.dat utilise des blocs fixes (environ 256 par défaut) réutilisés : les entrées anciennes sont écrasées.

Collecte

  • Cible KAPE : WindowsNotificationsDB (collecte wpndatabase.db*, WAL et SHM compris, ainsi que appdb.dat). PushNotification ne collecte que wpndatabase.db et appdb.dat, sans le WAL. Aucune des deux ne couvre la base du profil système ni le dossier wpnidm.
  • Velociraptor (Windows.Triage.Targets) : WindowsNotificationsDB.
  • Commandes natives : la base est tenue ouverte par le service de notifications ; copiez les trois fichiers ensemble via un cliché instantané (esentutl /y /vss copie n'importe quel fichier verrouillé, pas seulement les bases ESE).
esentutl.exe /y C:\Users\alice\AppData\Local\Microsoft\Windows\Notifications\wpndatabase.db /vss /d E:\case\Notifications\wpndatabase.db
esentutl.exe /y C:\Users\alice\AppData\Local\Microsoft\Windows\Notifications\wpndatabase.db-wal /vss /d E:\case\Notifications\wpndatabase.db-wal
esentutl.exe /y C:\Users\alice\AppData\Local\Microsoft\Windows\Notifications\wpndatabase.db-shm /vss /d E:\case\Notifications\wpndatabase.db-shm
robocopy C:\Users\alice\AppData\Local\Microsoft\Windows\Notifications\wpnidm E:\case\Notifications\wpnidm /E /COPY:DAT

Outils d'analyse

  • SQLECmd (Eric Zimmerman) : la carte WPNDatabase_Notifications joint notifications et gestionnaires et convertit les FILETIME.
  • DB Browser for SQLite : ouvrez une copie de travail avec le -wal à côté et lisez Payload comme du texte.
  • Velociraptor : artefact Exchange Windows.Forensics.NotificationsDatabase, ou l'extension Generic.Forensic.SQLiteHunter.
  • Plaso : le plugin SQLite windows_push_notification ajoute les événements de notifications et de gestionnaires à une super-chronologie.
  • Ancien appdb.dat : script Python et modèle 010 Editor de Yogesh Khatri.

Conseils d'investigation

  • Cherchez dans Payload les aperçus de messages de Teams ou des messageries : on y trouve parfois un texte que l'application a chiffré ou effacé.
  • Regroupez par PrimaryId pour lister les applications qui ont notifié l'utilisateur, y compris des outils d'accès distant, clients VPN ou applications de stockage cloud inattendus.
  • Les alertes de sécurité de Microsoft Defender ou d'outils tiers affichées en toast confirment que l'utilisateur a été averti ; rapprochez-les des journaux d'événements Windows.
  • Analysez toujours le WAL : une table apparemment propre accompagnée d'un gros fichier -wal cache souvent des notifications récemment fermées ou supprimées.
  • Convertissez ArrivalTime en UTC et placez-le sur la chronologie Windows et les données de session pour montrer que l'utilisateur était connecté à ce moment-là.

Artefacts liés

Termes du glossaire

Tous les artefacts sur une page : aide-mémoire