
PoC - Livraison d'exploit via stéganographie et polyglottes, CVE-2014-0282
par Charmve - yidazhang1 [at] gmail[dot]com, @Charmve @therealsaumil @amichael
Mai 2021

Stegosploit crée une nouvelle façon d'encoder des exploits de navigateur « drive-by » et de les livrer via des fichiers images. Ces charges utiles sont indétectables par les moyens actuels. Cet article traite de deux techniques sous-jacentes larges utilisées pour la livraison d'exploits basés sur des images - la stéganographie et les polyglots. Les exploits de navigateur drive-by sont encodés de manière stéganographique dans des images JPG et PNG. Le fichier image résultant est fusionné avec du code de décodeur HTML et Javascript, le transformant en un polyglot HTML+Image. Le polyglot ressemble et se comporte comme une image, mais est décodé et déclenché dans le navigateur de la victime lorsqu'il est chargé.
Stegosploit comprend des outils qui permettent à un utilisateur d'analyser des images, d'encoder de manière stéganographique des données d'exploit sur des fichiers JPG et PNG, et de transformer les images encodées en fichiers polyglots pouvant être rendus en HTML ou exécutés en Javascript.
La version actuelle de Stegosploit est 0.2 et se trouve dans le numéro 0x08 du International Journal of Proof-of-Concept or Get The Fuck Out (Poc||GTFO). Notez que vous devrez lire jusqu'à la fin de l'article dans PoC||GTFO pour trouver l'indice sur la façon d'extraire la boîte à outils.
README.mdcopying.txt - WTFPLstego/
image_layer_analysis.html - Analyser les couches de bits d'une imageiterative_encoding.html - Encoder un exploit sur une image JPG ou PNGimagedecoder.html - Décoder une image encodée de manière stéganographiqueimagedecode.jshistogram.jsmd5.jsbase64.jsexploits/
exploits.js - Code d'exploit préfabriquédecoder_cve_2014_0282.html - Code de décodeur + éléments HTML CVE-2014-0282jpegdump.c a été écrit par Ralph Giles et peut être téléchargé depuis https://svn.xiph.org/experimental/giles/jpegdump.c
Dans ce dépôt, il est important de noter que project-stegosploit est la partie clé, qui montre comment cacher le code d'exploit dans une image, comment encoder/décoder, et comment exécuter le framework meterpreter.
Le code d'exploit est inséré dans les pixels de l'image de sorte que l'image contienne le code d'exploit. IMAJS crée ensuite une image polyglot qui sera lue comme une image et contient un décodeur qui extraira et exécutera l'exploit javascript.
L'exploit que nous allons utiliser est un exploit Use-after-free d'Internet Explorer (CVE-2014-0282).
python -m http.server 8000
Points forts :
10.0.2.2:5000.html et .jpg) Refactoriser CRC32.pm
Refactoriser PNGDATA.pm
Refactoriser html_in_jpg_ie.pl
Refactoriser pngenum.pl
Serveur de démonstration
/statictemplate_renderMon dépôt
Ce dépôt suit l'accord open source GPL, veuillez vous assurer de le comprendre.
Nous interdisons strictement tout acte violant les lois nationales via ce programme, veuillez utiliser ce programme dans le cadre légal.
Par défaut, l'utilisation de cet élément sera considérée comme votre accord avec nos règles. Veuillez respecter les normes morales et légales.
Si vous ne vous conformez pas, vous serez responsable des conséquences, et l'auteur n'assumera aucune responsabilité !
[2] https://conference.hitb.org/hitbsecconf2015ams/sessions/stegosploit-hacking-with-pictures/
[5] https://stackoverflow.com/questions/4110964/how-does-heap-spray-attack-work
[6] https://www.youtube.com/watch?time_continue=1&v=6lYUtIZHlJA
[7] https://www.owasp.org/images/0/01/OWASL_IL_2010_Jan_-_Moshe_Ben_Abu_-_Advanced_Heapspray.pdf
[8] https://en.wikipedia.org/wiki/Heap_spraying
[9] https://developer.microsoft.com/en-us/microsoft-edge/tools/vms/
yidazhang1[#]gmail[dot]com
imajs/
html_in_jpg_ie.pl - Générer un polyglot JPG+HTML pour IEhtml_in_jpg_ff.pl - Générer un polyglot JPG+HTML pour Firefoxhtml_in_png.pl - Générer un polyglot PNG+HTML (pour tout navigateur)pngenum.pl - Énumérer les chunks FourCC d'un fichier PNGjpegdump.c - Énumérer les segments d'un fichier JPGCRC32.pmPNGDATA.pmproject-stegosploit/ - Partie principale démonstration vidéo 1 | démonstration texte 1
encoding/ - cœur
iterative_encoding.html - Encodage stéganographique du code d'exploitimage_layer_analysis.htmlimagedevoder.htmldecode_and_run_cinput_withjs.htmlexploits/ - decoder.htmlimages/ - images encodées et originalespolyglots/ - lena_poly_demo.htmlscripts/ - Crée un polyglot HTML+PNG polyglot_with_jpg.pytmp/ exécuter --/tools/msf4$ ./msfconsole -r ./tmp/load_meterpreter.rc démonstration vidéo 2README.md - Montre comment utiliser ce project-stegosploit