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
Outils
Comparer tous les outils- EVTX ParserNavigateur
- Registry ParserNavigateur
- EMF Spool Viewer
- SPLViewerGUI · open source
- EvtxECmdCLI
- Registry ExplorerGUI
- bulk_extractorCLI · open source
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ément | Chemin |
|---|---|
| Fichiers de spool | C:\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ées | HKLM\SYSTEM\CurrentControlSet\Control\Print\Printers\<nom> |
| Imprimantes réseau par utilisateur | HKCU\Printers\Connections |
| Pilotes d'imprimante | C:\Windows\System32\spool\drivers\x64\3\ (plus \New, \Old) |
| Événements d'impression | Microsoft-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
| Champ | Source | Signification |
|---|---|---|
| Nom du document | SHD, événement 307 | Titre transmis par l'application, souvent le nom du fichier ou le titre de l'onglet du navigateur |
| Utilisateur / ordinateur | SHD, événement 307 | Compte ayant soumis le travail |
| Imprimante, port | SHD, événement 307 | Locale, réseau (\\serveur\file), PDF ou XPS |
| Type de données | SHD | NT EMF 1.00x, RAW, XPS2GDI ; détermine si le contenu est affichable |
| Pages, taille | Événement 307 | Nombre de pages et octets |
| Heure de soumission | SHD | Moment 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
| Horodatage | Format | Remarques |
|---|---|---|
| Heure de soumission du SHD | Structure SYSTEMTIME | Fuseau horaire à confirmer ; recoupez avec les horodatages NTFS |
| $SI et $FN des SPL/SHD | NTFS, UTC | La 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 307 | Heure de l'enregistrement, UTC | Écrit à la fin de l'impression |
| Journal USN | FILETIME, UTC | Les 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
EMFest à l'offset 40) et dans les clichés instantanés. PrintService/Operationalest 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
.SPLdans 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 dossiersNew/Old, des processus lancés parspoolsv.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ôlezHKLM\SOFTWARE\Policies\Microsoft\Windows NT\Printers\PointAndPrintpourNoWarningNoElevationOnInstall = 1. - Les processeurs d'impression et moniteurs de port malveillants sont une méthode de persistance connue : examinez
Control\Print\Environments\...\Print ProcessorsetControl\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
- Journaux d'événements Windows (EVTX)Fiche des journaux d'événements Windows : emplacements EVTX, ID indispensables (connexions, processus, services, effacement), rétention, audit et outils.
- Services WindowsFiche services Windows : valeurs de la clé Services (ImagePath, Start, Type, ServiceDll), événements 7045 et 4697, traces de PsExec et pièges.
- Ruches du registreFiche ruches du registre : SYSTEM, SOFTWARE, SAM, SECURITY, NTUSER.DAT, UsrClass.dat, journaux de transactions, RegBack, LastWrite et collecte.
- Clichés instantanés de volume (VSS)Fiche clichés instantanés VSS : fichiers de stockage dans System Volume Information, copie sur écriture, suppression par rançongiciel, montage et analyse.
- Journal USN ($UsnJrnl:$J)Fiche journal USN : $UsnJrnl:$J et $Max, champs, indicateurs Reason, référence parent, taille par défaut, rotation, fsutil et analyse avec MFTECmd.
- Table de fichiers maîtres ($MFT)Fiche $MFT : enregistrements FILE, horodatages $SI et $FN, données résidentes, entrées supprimées, numéros de séquence, timestomping et MFTECmd.
Termes du glossaire
- Carving de fichiersLa récupération de fichiers à partir de données brutes grâce à des signatures de contenu (en-têtes, pieds), sans métadonnées du système de fichiers.
- Espace non allouéLes clusters qu'un système de fichiers considère comme libres ; ils contiennent souvent encore des données de fichiers supprimés.
- ID d'événement WindowsLe numéro qui identifie un type d'événement au sein d'un fournisseur donné ; il n'a de sens qu'associé à ce fournisseur et à son canal.
- FILETIMELe format d'horodatage Windows sur 64 bits qui compte les intervalles de 100 nanosecondes depuis le 1er janvier 1601 UTC.
Guides
- Analyse forensique des journaux Windows : EVTX et event IDsGuide pratique des journaux d'événements Windows : format EVTX, canaux clés, event IDs Security et Sysmon, politique d'audit, logs effacés et outils.
- Chasser la persistance Windows : registre, tâches, WMIDétecter la persistance d'un attaquant sous Windows : clés Run, services, tâches planifiées, WMI, Winlogon, IFEO, COM et BITS, avec MITRE ATT&CK et outils.