Image d’illustration générée par IA
AmnesiaStealer transforme le navigateur macOS en session contrôlable à distance
AmnesiaStealer utilise des faux dépôts GitHub pour infiltrer macOS et prendre le contrôle à distance des navigateurs, volant cookies et identifiants.
Texte généré par intelligence artificielle, publié sans relecture humaine. Transparence IA
Un faux dépôt GitHub convainc la victime d’utiliser le Terminal
Le 14 août 2026, Jamf Threat Labs a signalé AmnesiaStealer, un nouvel infostealer écrit en Rust et conçu pour cibler les utilisateurs de macOS.
La campagne observée s’appuie sur de fausses pages GitHub. Les sites reprennent le thème sombre de la plateforme, affichent le logo Octocat et incluent même un badge « Verified Publisher ». Le bouton de téléchargement est toutefois remplacé par une instruction demandant de copier-coller une commande dans le Terminal.
Il s’agit de la technique ClickFix, qui exploite l’interaction de l’utilisateur plutôt qu’un téléchargement traditionnel. La commande lance un script shell, lequel télécharge et exécute la charge malveillante.
Le même type de page a également été associé à des campagnes liées à Atomic Stealer et MacSync. Cela laisse penser que plusieurs familles de malwares pourraient réutiliser la même infrastructure et les mêmes modèles d’appât.
Les versions précises de macOS et des navigateurs compatibles n’ont pas été communiquées. L’analyse indique néanmoins un comportement spécifique sur macOS 26.
Trois composants, de l’infection au contrôle du navigateur
La chaîne d’infection se compose de trois étapes. La première est un script shell qui récupère le malware et le lance. La deuxième est l’infostealer Rust, chargé de collecter des informations sur le système. La troisième est stream_module, téléchargé à la demande.
Ce module ajoute la fonction la plus dangereuse de la menace : la commande remote_stream. Il ne se contente pas d’exfiltrer des cookies ou des mots de passe, mais crée une session de navigateur contrôlable en temps réel par l’opérateur.
Pour cela, AmnesiaStealer clone le profil du navigateur et lance une session headless. L’attaquant peut alors envoyer des entrées clavier, cliquer avec la souris, naviguer et gérer les onglets ouverts. L’activité se déroule dans une fenêtre distincte et masquée.
La fenêtre du navigateur utilisée habituellement par la victime reste inchangée. L’utilisateur peut donc continuer à voir sa propre session sans remarquer qu’une autre instance opère sur le même profil.
Le module exploite le Chrome DevTools Protocol et appelle Network.getAllCookies sur la session headless. À ce stade, le navigateur a déjà déchiffré les cookies en mémoire, ce qui permet au malware d’en récupérer les valeurs en clair sans devoir contourner directement le chiffrement des données stockées.
AmnesiaStealer utilise également Page.addScriptToEvaluateOnNewDocument pour modifier les API de fingerprinting. L’objectif est de réduire la probabilité que les sites visités détectent la session automatisée.
Identifiants, documents et applications ciblés
Le malware tente d’abord de déverrouiller et de lire le trousseau de connexion de macOS. Il recherche ensuite des données dans Apple Notes et Telegram, ainsi que dans les dossiers Desktop, Documents et Downloads.
L’analyse indique également la recherche de documents et de fichiers associés à des portefeuilles numériques. Côté navigateur, la cible comprend 16 navigateurs de la famille Chromium, dont le malware tente d’extraire les cookies, les identifiants, l’historique et les données des extensions.
Les informations récupérées peuvent inclure des mots de passe enregistrés, des cookies d’authentification et des sessions actives. Ces dernières sont particulièrement importantes : une session déjà authentifiée peut permettre d’accéder à un service sans saisir de nouveau le mot de passe et sans nécessairement déclencher une nouvelle procédure de connexion.
Lors de l’installation, le malware affiche une fenêtre native de macOS qui imite une demande de mot de passe. La valeur saisie est vérifiée localement avec dscl. Si le mot de passe est refusé, la fenêtre continue d’afficher le message « Incorrect password. Please try again ».
Une fois la valeur correcte obtenue, AmnesiaStealer la réutilise pour plusieurs opérations nécessitant des privilèges, notamment sudo -S et security unlock-keychain -p. Le mot de passe est également enregistré en clair dans le fichier de staging pwd et dans le répertoire personnel de l’utilisateur, à l’emplacement ~/.pwd.
Cette étape étend l’impact de la compromission au-delà du seul navigateur. La récupération du mot de passe local peut faciliter l’accès au trousseau et à d’autres ressources protégées du système.
Persistance root et manipulation de Chrome Safe Storage
Pour survivre aux redémarrages, AmnesiaStealer installe un LaunchDaemon exécuté avec les privilèges root. Son nom imite celui d’un service Apple de rapport de plantage : com.apple.ReportCrash.agent, suivi d’un suffixe numérique aléatoire.
La configuration permet au malware d’opérer dans le compte de l’utilisateur de la console. Un LaunchDaemon portant ce nom, surtout s’il est apparu sans modification administrative identifiable, doit donc être vérifié immédiatement.
Sur macOS 26, la menace peut intervenir sur la clé Chrome Safe Storage. Si elle ne parvient pas à la récupérer par les procédures habituelles, elle la supprime et la remplace par une clé déjà connue de l’attaquant.
Cela permet de déchiffrer les mots de passe et les cookies collectés par la suite. Cette action a toutefois également un effet destructeur : les données précédemment enregistrées peuvent devenir inaccessibles.
Le comportement ne vise donc pas uniquement le vol de données. Il peut modifier l’état de protection du navigateur et compromettre la disponibilité des informations déjà sauvegardées.
Une infrastructure préparée pour différentes campagnes
Le backend de commande et contrôle, baptisé Amnesia Panel, se trouve à la racine du domaine utilisé pour la distribution. Lorsque l’authentification échoue, le panneau renvoie des messages d’erreur en russe.
L’analyse a identifié le schéma d’URL suivant :
/d/command?t=token&b=build
Le même schéma apparaît sur plusieurs domaines résolus vers la même adresse IP. Ce comportement est compatible avec un builder capable de générer des configurations différentes pour chaque campagne et de les intégrer à la charge malveillante.
Les configurations sont incorporées sous forme de blobs chiffrés par XOR. Le nom de la famille, les messages en russe, les pages d’appât partagées et la réutilisation de l’infrastructure indiquent une activité organisée, plutôt qu’un simple test isolé.
On ignore si AmnesiaStealer a été ajouté au catalogue KEV de la CISA, et les informations disponibles ne mentionnent pas de délai de remédiation associé. Il n’est donc pas possible de le considérer, sur la base des données disponibles, comme une vulnérabilité répertoriée faisant l’objet d’une exploitation active : il s’agit d’un malware distribué par ingénierie sociale.
Points à vérifier sur un Mac suspect
Le premier indicateur est une page GitHub qui demande de coller des commandes dans le Terminal. Un projet légitime peut fournir des instructions en ligne de commande, mais toute demande présentée comme une alternative obligatoire au téléchargement doit être vérifiée avant exécution.
Il convient également de rechercher :
- des fenêtres macOS demandant le mot de passe et ressemblant à une boîte de dialogue d’installation ;
- une utilisation inhabituelle de
dscl,sudo -Setsecurity unlock-keychain; - la présence des fichiers
pwdet~/.pwd; - des LaunchDaemons dont le nom ressemble à
com.apple.ReportCrash.agent; - la suppression et la recréation d’entrées Chrome Safe Storage via
security; - des sessions headless et des appels inhabituels au Chrome DevTools Protocol ;
- plusieurs domaines partageant le schéma
/d/command?t=token&b=buildet la même adresse de résolution.
Toute personne ayant exécuté la commande proposée par la page d’appât devrait isoler le Mac du réseau et modifier ses identifiants depuis un appareil considéré comme fiable. Les mots de passe du navigateur et les sessions actives doivent être considérés comme compromis. Il faut donc révoquer les sessions, régénérer les jetons lorsque cela est possible et vérifier les accès à la messagerie, aux services de communication, aux services cloud et aux portefeuilles numériques.
Le brief ne mentionne aucune mise à jour logicielle unique permettant de corriger l’infection. La principale mesure de protection consiste à éviter l’exécution de commandes copiées depuis des pages web, à contrôler les mécanismes de persistance et à rechercher les indicateurs techniques laissés par le malware.
Sources
Cet article est une réécriture originale fondée sur les sources ci-dessous.
