Source: Expel (blog threat intelligence) — analyse de Marcus Hutchins. Contexte: observation d’une variante de ClickFix exploitant le cache du navigateur pour déposer un ZIP malveillant, tout en se faisant passer pour un vérificateur de conformité Fortinet.
🎣 Leurre et procédé ClickFix: la page de phishing brandée Fortinet affiche un faux chemin \\Public\Support\VPN\ForticlientCompliance.exe
. Un clic copie en réalité une commande beaucoup plus longue, remplie d’espaces pour masquer la partie malveillante. Collée dans la barre d’adresse de l’Explorateur, elle lance conhost.exe --headless
puis PowerShell en arrière-plan, la portion visible n’étant qu’un commentaire.
🧩 Chaîne technique côté hôte: le script PowerShell crée \%LOCALAPPDATA%\FortiClient\compliance
, copie le cache Chrome depuis \%LOCALAPPDATA%\Google\Chrome\User Data\Default\Cache\Cache_Data\
, puis scanne chaque fichier avec une regex pour extraire des données encadrées par bTgQcBpv
et mX6o0lBw
. Il écrit ces données dans ComplianceChecker.zip
, les décompresse (Expand-Archive) et exécute FortiClientComplianceChecker.exe
— sans aucune connexion réseau ni téléchargement explicite au moment de l’exécution du script.
🛰️ Cache smuggling côté web: la page appelle fetch(/5b900a00-71e9-45cf-acc0-d872e1d6cdaa)
et renvoie un contenu servi comme image/jpeg
mais qui n’est pas une image (pas d’en-tête JPG) — il contient un bloc ZIP (PK
) encapsulé entre marqueurs. Le navigateur met en cache cet objet « image », permettant au script local d’y récupérer le payload. Cette astuce déjoue les contrôles cherchant des téléchargements ou des requêtes web dans PowerShell. Le domaine leurre fc-checker[.]dlccdn[.]com
a cessé de résoudre; l’IP d’hébergement restait accessible lors de l’analyse.
🛡️ Mesures défensives proposées (par l’article):
- Alerter sur les processus inattendus accédant au cache du navigateur.
- Restreindre l’usage de PowerShell aux utilisateurs qui en ont besoin; sinon, surveiller les exécutions suspectes et sensibiliser aux arnaques ClickFix.
- Utiliser SWG/DNS filtering pour bloquer
checker[.]dlccdn[.]com
, les domaines nouvellement créés ou nouvellement vus dans l’environnement.
IOC et TTPs
- IOCs:
- Domaines:
fc-checker[.]dlccdn[.]com
,checker[.]dlccdn[.]com
- Ressource:
/5b900a00-71e9-45cf-acc0-d872e1d6cdaa
- En-tête HTTP:
Content-Type: image/jpeg
- Marqueurs de payload:
bTgQcBpv
…mX6o0lBw
- Chemins:
\%LOCALAPPDATA%\Google\Chrome\User Data\Default\Cache\Cache_Data\
,\%LOCALAPPDATA%\FortiClient\compliance
- Fichiers:
ComplianceChecker.zip
,FortiClientComplianceChecker.exe
, leurre\\Public\Support\VPN\ForticlientCompliance.exe
- Processus:
conhost.exe --headless
,powershell
- Domaines:
- TTPs:
- ClickFix (copier-coller de commande malveillante via presse-papiers, padding d’espaces, commentaire trompeur)
- Cache smuggling (payload servi comme image, déposé via cache navigateur)
- Living-off-the-land avec
conhost.exe
etPowerShell
- Usurpation de marque (Fortinet VPN Compliance Checker)
- Extraction par regex du payload encapsulé
Conclusion: article d’analyse de menace détaillant une campagne et sa technique d’évasion par cache smuggling, avec un focus sur la chaîne d’exécution et les artefacts.
🧠 TTPs et IOCs détectés
TTP
ClickFix (copier-coller de commande malveillante via presse-papiers, padding d’espaces, commentaire trompeur), Cache smuggling (payload servi comme image, déposé via cache navigateur), Living-off-the-land avec conhost.exe et PowerShell, Usurpation de marque (Fortinet VPN Compliance Checker), Extraction par regex du payload encapsulé
IOC
Domaines: fc-checker[.]dlccdn[.]com, checker[.]dlccdn[.]com; Ressource: /5b900a00-71e9-45cf-acc0-d872e1d6cdaa; En-tête HTTP: Content-Type: image/jpeg; Marqueurs de payload: bTgQcBpv … mX6o0lBw; Chemins: %LOCALAPPDATA%\Google\Chrome\User Data\Default\Cache\Cache_Data, %LOCALAPPDATA%\FortiClient\compliance; Fichiers: ComplianceChecker.zip, FortiClientComplianceChecker.exe, leurre \Public\Support\VPN\ForticlientCompliance.exe; Processus: conhost.exe –headless, powershell
🔗 Source originale : https://expel.com/blog/cache-smuggling-when-a-picture-isnt-a-thousand-words/