
Malicious PixelCode est un projet de recherche en sécurité qui démontre une technique furtive permettant d'encoder des fichiers exécutables dans des données de pixels et de les stocker dans des images ou des vidéos. Un chargeur léger récupère le fichier multimédia, reconstruit le binaire d'origine et l'exécute en mémoire. Ce projet met en évidence un mode de livraison de données non conventionnel.
Malicious PixelCode est un projet de recherche en sécurité qui démontre une technique furtive pour encoder des fichiers exécutables dans des données de pixels et les stocker dans des images ou des vidéos. Un chargeur léger récupère le fichier multimédia, reconstruit le binaire d'origine et l'exécute en mémoire. Ce projet met en évidence des méthodes non conventionnelles de livraison et d'obfuscation de données à des fins exclusivement éducatives et de recherche.
Cette recherche a été couverte par Cyber Security News : https://cybersecuritynews.com/pixelcode-attack/

[!CAUTION] Avis important : Ce projet est strictement destiné à des fins éducatives, de recherche et de sécurité défensive uniquement. Toute utilisation non autorisée de ces techniques peut enfreindre les lois et entraîner de graves conséquences juridiques.
Pixel Code est un concept de recherche qui représente des données binaires sous forme de pixels visuels où chaque pixel encode une petite partie du fichier d'origine en convertissant les octets exécutables en une matrice de couleurs structurée. Les données peuvent être stockées, transmises ou intégrées dans des images ou des vidéos sans exposer leur forme brute.
Cette technique est souvent explorée pour étudier l'obfuscation des données, le stockage furtif et les canaux d'encodage non conventionnels. L'encodage basé sur les pixels permet aux chercheurs d'analyser comment des informations peuvent être dissimulées dans du contenu multimédia puis reconstruites grâce à des algorithmes de décodage.
Cela aide également à comprendre les implications de sécurité liées au transport de données encodées via des plateformes courantes telles que les services de partage d'images ou de vidéos. Globalement, Pixel Code se concentre sur la transformation de fichiers numériques en une représentation visuelle pouvant être récupérée à l'aide d'un décodeur correspondant.

Des acteurs malveillants pourraient potentiellement abuser de Pixel Code en encodant des binaires ou des scripts nuisibles dans des données visuelles telles que des images ou des trames vidéo. En transformant des malwares en représentations basées sur les pixels, les attaquants pourraient tenter de déguiser leurs charges utiles en contenu multimédia inoffensif.
Ces fichiers encodés peuvent ensuite être téléversés sur des plateformes légitimes comme YouTube, leur donnant une apparence de confiance et contournant les filtres de sécurité traditionnels.
Un chargeur ou décodeur contrôlé par l'attaquant pourrait plus tard récupérer la vidéo et reconstruire le fichier malveillant d'origine. Ce scénario d'abus met en évidence comment des techniques d'encodage de données non conventionnelles peuvent créer de nouveaux vecteurs d'attaque et défier les mécanismes de détection existants.
Dans ce processus de recherche, nous commençons avec une charge utile C++ responsable de la communication de commande et contrôle. Après l'avoir compilée en un EXE, le binaire est converti en MP4 Pixel Code à l'aide d'un outil basé sur Python. La vidéo Pixel Code générée est ensuite téléversée sur YouTube et son URL est intégrée dans un chargeur C++.
Comme C++ ne disposait pas des bibliothèques multimédias requises pour inverser le Pixel Code, un stager Python a plutôt été utilisé ; il a été compilé en un EXE, encodé en Base64 et intégré directement dans le chargeur en plus de l'URL YouTube.
Lorsqu'il est exécuté sur l'environnement cible, le chargeur télécharge le MP4 Pixel Code depuis YouTube et utilise le stager Python intégré pour reconstruire la charge utile d'origine et l'exécuter, permettant finalement à l'environnement de recherche de rétablir la commande et le contrôle via BEAR-C2.

Il s'agit d'un shell inverse Windows furtif écrit en C++ qui se connecte de manière persistante à un serveur de commande et contrôle. Il utilise un chiffrement AES-CBC avec une clé statique codée en dur et des IV aléatoires pour toutes les communications, s'authentifie avec un identifiant unique, exécute les commandes reçues via cmd.exe ou PowerShell (lorsqu'elles sont préfixées par « EP »), prend en charge la navigation dans les répertoires, diffuse la sortie des commandes en temps réel à l'aide de blocs chiffrés préfixés par leur longueur, fonctionne sans fenêtre de console visible et se reconnecte automatiquement en cas d'échec. Un cheval de Troie d'accès à distance entièrement chiffré conçu pour le contrôle post-exploitation.

Une fois la charge utile compilée, l'EXE résultant est traité via un outil basé sur Python spécifiquement conçu pour convertir des données binaires en Pixel Code. Cet outil convertit l'exécutable en une représentation MP4 visuelle où les octets binaires sont intégrés comme valeurs de pixels dans les trames vidéo.

Après avoir généré le fichier MP4 Pixel Code, celui-ci est téléversé sur YouTube comme une vidéo standard. Héberger le binaire encodé sur une plateforme légitime permet à la recherche d'évaluer comment les services externes de confiance gèrent des données encodées non traditionnelles. L'URL de la vidéo YouTube est collectée pour être utilisée dans les étapes suivantes.

Un chargeur personnalisé écrit en C++ est préparé pour récupérer le Pixel Code depuis son emplacement sur YouTube. L'URL de la vidéo obtenue à l'étape précédente est intégrée directement dans ce chargeur afin qu'il puisse télécharger le MP4 pendant l'exécution.

Parce que C++ ne dispose pas des bibliothèques multimédias requises pour décoder le Pixel Code en forme binaire, un stager Python est utilisé pour gérer la reconstruction. Ce script Python est compilé en un EXE puis encodé en Base64. Le stager encodé est intégré directement dans le chargeur C++ en plus de l'URL YouTube.
Stager.py -> Stager.exe -> base64 -> Loader.cpp -> Loader.exe

Le stager Python traite la vidéo MP4 téléchargée image par image, extrait les données de pixels encodées et reconstruit la charge utile C++ d'origine en mémoire.

Une fois restaurée, la charge utile est exécutée, rétablissant finalement la communication de commande et contrôle avec le serveur BEAR-C2 utilisé dans le cadre de la recherche.

Ceci est destiné à la recherche, à la sensibilisation et à des fins éducatives. Je ne suis pas responsable si quelqu'un utilise cette technique à des fins illégales.