
PoC - Entrega de Exploit via Esteganografia e Poliglotas, CVE-2014-0282
por Charmve - yidazhang1 [at] gmail[dot]com, @Charmve @therealsaumil @amichael
Maio de 2021

O Stegosploit cria uma nova forma de codificar exploits de navegador "drive-by" e entregá-los através de arquivos de imagem. Essas cargas úteis são indetectáveis usando os meios atuais. Este artigo discute duas técnicas amplas subjacentes usadas para entrega de exploits baseados em imagem - Esteganografia e Poliglotas. Exploits de navegador drive-by são esteganograficamente codificados em imagens JPG e PNG. O arquivo de imagem resultante é fundido com código decodificador HTML e Javascript, transformando-o em um poliglota HTML+Imagem. O poliglota parece e se comporta como uma imagem, mas é decodificado e acionado no navegador da vítima quando carregado.
Stegosploit compreende ferramentas que permitem ao utilizador analisar imagens, codificar esteganograficamente dados de exploit em arquivos JPG e PNG, e transformar as imagens codificadas em arquivos poliglotas que podem ser renderizados como HTML ou executados como Javascript.
A versão atual do Stegosploit é 0.2 e pode ser encontrada na Edição 0x08 do International Journal of Proof-of-Concept or Get The Fuck Out (Poc||GTFO). Note que você terá que ler até o final do artigo no PoC||GTFO para encontrar a dica de como extrair o kit de ferramentas.
README.mdcopying.txt - WTFPLstego/
image_layer_analysis.html - Analisar as camadas de bits de uma imagemiterative_encoding.html - Codificar um exploit numa imagem JPG ou PNGimagedecoder.html - Decodificar uma imagem esteganograficamente codificadaimagedecode.jshistogram.jsmd5.jsbase64.jsexploits/
exploits.js - Código de exploit enlatadodecoder_cve_2014_0282.html - Código decodificador + elementos HTML CVE-2014-0282jpegdump.c foi escrito por Ralph Giles e pode ser baixado de https://svn.xiph.org/experimental/giles/jpegdump.c
Neste repositório, importantemente, project-stegosploit é a parte chave, que mostra como ocultar Código de Exploit numa imagem, codificar/decodificar e executar o framework meterpreter.
O código do exploit é inserido dentro dos pixels da imagem de modo que a imagem contenha o código do exploit. O IMAJS então cria uma imagem poliglota que será lida como uma imagem e contém um decodificador que extrairá e executará o exploit javascript.
O exploit que usaremos é um exploit Use-after-free do Internet Explorer (CVE-2014-0282).
python -m http.server 8000
Destaques:
10.0.2.2:5000.html e .jpg) Refatorar CRC32.pm
Refatorar PNGDATA.pm
Refatorar html_in_jpg_ie.pl
Refatorar pngenum.pl
Servidor de Demonstração
/statictemplate_renderMeu repositório
Este repositório segue o acordo de código aberto GPL, por favor certifique-se de entender.
Proibimos estritamente todos os atos que violem qualquer lei nacional através deste programa, por favor use este programa dentro do âmbito legal.
Por padrão, usar este item será considerado como sua concordância com nossas regras. Por favor, cumpra os padrões morais e legais.
Se não cumprir, você será responsável pelas consequências, e o autor não assumirá qualquer responsabilidade!
[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 - Gerar poliglota JPG+HTML para IEhtml_in_jpg_ff.pl - Gerar poliglota JPG+HTML para Firefoxhtml_in_png.pl - Gerar um poliglota PNG+HTML (para qualquer navegador)pngenum.pl - Enumerar os chunks FourCC de um arquivo PNGjpegdump.c - Enumerar os segmentos de um arquivo JPGCRC32.pmPNGDATA.pmproject-stegosploit/ - Parte Principal vídeo 1 | texto 1
encoding/ - núcleo
iterative_encoding.html - Codificação Esteganográfica do Código do Exploitimage_layer_analysis.htmlimagedevoder.htmldecode_and_run_cinput_withjs.htmlexploits/ - decoder.htmlimages/ - imagens codificadas e originaispolyglots/ - lena_poly_demo.htmlscripts/ - Cria um poliglota HTML+PNG polyglot_with_jpg.pytmp/ execute --/tools/msf4$ ./msfconsole -r ./tmp/load_meterpreter.rc vídeo 2README.md - Mostra como usar este project-stegosploit