Aller au contenu

Accès aux fichiers

Fichiers du spouleur d'impression (.SPL et .SHD)

Fiche spouleur d'impression : fichiers .SPL et .SHD de spool\PRINTERS, récupération EMF, événement 307 PrintService, pilotes et traces PrintNightmare.

Emplacement
C:\Windows\System32\spool\PRINTERS\*.SPL, *.SHD
Prouve
Un document a été imprimé (ou mis en file), par quel utilisateur, sur quelle imprimante, et à quoi il ressemblait
Horodatages
Heure de soumission dans le SHD (SYSTEMTIME, en général UTC mais à vérifier), horodatages NTFS des fichiers de spool, heure de l'événement 307 en UTC
Rétention
Les fichiers de spool sont supprimés à la fin du travail sauf si KeepPrintedJobs est activé ; l'événement 307 est désactivé par défaut
Accès
Administrateur pour lire spool\PRINTERS ; les fichiers d'un travail en cours sont tenus ouverts par spoolsv.exe
Type
Fichier / système de fichiers
Windows
XPVista / 78 / 8.11011
Cible KAPE
Pas de cible dédiée
Velociraptor
Pas de cible dédiée

Présentation

Le service Spouleur d'impression (spoolsv.exe) met chaque travail d'impression en file sur le disque avant de l'envoyer à l'imprimante. Chaque travail produit deux fichiers : un fichier .SPL avec les données des pages et un fichier fantôme .SHD avec les métadonnées du travail (utilisateur, nom du document, imprimante, type de données). Ils sont normalement supprimés dès la fin du travail, mais restent souvent récupérables, et dans ce cas le SPL peut montrer exactement ce qui a été imprimé. Le spouleur charge aussi les pilotes d'imprimante, ce qui en a fait une cible de persistance et d'élévation de privilèges (PrintNightmare).

Emplacement

ÉlémentChemin
Fichiers de spoolC:\Windows\System32\spool\PRINTERS\<nnnnn>.SPL et .SHD (noms du type 00012.SPL ou FP00012.SPL)
Dossier de spool modifiéHKLM\SYSTEM\CurrentControlSet\Control\Print\Printers valeur DefaultSpoolDirectory, SpoolDirectory par imprimante
Imprimantes installéesHKLM\SYSTEM\CurrentControlSet\Control\Print\Printers\<nom>
Imprimantes réseau par utilisateurHKCU\Printers\Connections
Pilotes d'imprimanteC:\Windows\System32\spool\drivers\x64\3\ (plus \New, \Old)
Événements d'impressionMicrosoft-Windows-PrintService%4Operational.evtx, ...%4Admin.evtx

Ce que l'artefact prouve

  • Prouve qu'un travail a été soumis : le SHD contient l'utilisateur, la machine, le nom du document, l'imprimante et le type de données.
  • Prouve le contenu si le SPL est récupéré : les données de spool EMF peuvent être rendues sous forme de pages.
  • L'événement 307 prouve qu'un travail a été imprimé, avec nom du document, utilisateur, imprimante, port, taille et nombre de pages.
  • Il ne prouve pas qu'une copie papier a été récupérée, ni que l'imprimante a réellement imprimé (imprimante hors ligne, travail annulé).
  • Les travaux Microsoft Print to PDF et XPS Document Writer passent aussi par le spouleur : une « impression » peut être un export de fichier.

Champs clés

ChampSourceSignification
Nom du documentSHD, événement 307Titre transmis par l'application, souvent le nom du fichier ou le titre de l'onglet du navigateur
Utilisateur / ordinateurSHD, événement 307Compte ayant soumis le travail
Imprimante, portSHD, événement 307Locale, réseau (\\serveur\file), PDF ou XPS
Type de donnéesSHDNT EMF 1.00x, RAW, XPS2GDI ; détermine si le contenu est affichable
Pages, tailleÉvénement 307Nombre de pages et octets
Heure de soumissionSHDMoment de la mise en file

La structure du SHD diffère selon les versions de Windows et n'est que partiellement documentée ; les outils peuvent mal lire les variantes récentes.

Horodatages

HorodatageFormatRemarques
Heure de soumission du SHDStructure SYSTEMTIMEFuseau horaire à confirmer ; recoupez avec les horodatages NTFS
$SI et $FN des SPL/SHDNTFS, UTCLa création correspond à la mise en file ; survit dans la $MFT après suppression tant que l'enregistrement n'est pas réutilisé
Événement 307Heure de l'enregistrement, UTCÉcrit à la fin de l'impression
Journal USNFILETIME, UTCLes paires FILE_CREATE / FILE_DELETE des noms .SPL donnent un historique des travaux même sans événements

Rétention et effacement

  • Les fichiers de spool sont supprimés après un travail réussi. Ils restent si l'imprimante est hors ligne, si le travail échoue ou si Conserver les documents imprimés (attribut KeepPrintedJobs) est activé sur l'imprimante.
  • Le contenu supprimé des SPL/SHD est souvent récupérable par carving de l'espace non alloué (cherchez l'enregistrement d'en-tête EMF, dont la signature EMF est à l'offset 40) et dans les clichés instantanés.
  • PrintService/Operational est désactivé par défaut ; activez-le (et augmentez sa taille) là où les fuites par impression comptent.

Collecte

# Dossier de spool et pilotes (administrateur)
robocopy C:\Windows\System32\spool\PRINTERS E:\case\spool /COPY:DAT /DCOPY:T
robocopy C:\Windows\System32\spool\drivers E:\case\spooldrivers /E /COPY:DAT /DCOPY:T
# Le canal Operational est-il actif, et que contient-il ?
wevtutil gl Microsoft-Windows-PrintService/Operational
Get-WinEvent -LogName Microsoft-Windows-PrintService/Operational | Where-Object Id -eq 307

Collectez en parallèle les ruches SYSTEM et SOFTWARE et les métadonnées NTFS ($MFT, $J).

Outils d'analyse

  • EMF Spool Viewer / SPLViewer (utilitaires Windows gratuits) : ouvrent les SPL EMF et affichent les pages.
  • Carving manuel : extraire les enregistrements EMF d'un SPL ou de l'espace non alloué avec un éditeur hexadécimal ou bulk_extractor, puis les ouvrir en .emf.
  • EvtxECmd : l'événement 307 s'exporte proprement en CSV pour les chronologies.
  • Registry Explorer : imprimantes, ports, pilotes et stratégie Point and Print.

Conseils d'investigation

  • Fuite de données : construisez une chronologie d'impression à partir de l'événement 307, des créations .SPL dans l'USN et des restes de SHD, puis récupérez le contenu des SPL carvés. Rapprochez les noms de documents des fichiers présents dans les documents récents et les jump lists.
  • PrintNightmare (CVE-2021-1675 / CVE-2021-34527) : cherchez des DLL inattendues dans spool\drivers\x64\3\ et ses dossiers New/Old, des processus lancés par spoolsv.exe, et les événements PrintService d'installation de pilote ou d'échec de chargement de module (souvent cités : Admin 808, Operational 316 ; vérifiez les ID et le canal sur votre version). Contrôlez HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Printers\PointAndPrint pour NoWarningNoElevationOnInstall = 1.
  • Les processeurs d'impression et moniteurs de port malveillants sont une méthode de persistance connue : examinez Control\Print\Environments\...\Print Processors et Control\Print\Monitors.
  • Un nom de document ressemblant à un titre de page web indique souvent une impression depuis un navigateur ; rebondissez vers les artefacts de navigateur.

Artefacts liés

Termes du glossaire

Guides

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