
PoC - 스테가노그래피와 폴리글랏을 통한 익스플로잇 전달, CVE-2014-0282
by Charmve - yidazhang1 [at] gmail[dot]com, @Charmve @therealsaumil @amichael
2021년 5월

Stegosploit는 'drive-by' 브라우저 익스플로잇을 인코딩하여 이미지 파일을 통해 전달하는 새로운 방법을 제공합니다. 이러한 페이로드는 현재의 수단으로는 탐지할 수 없습니다. 이 문서는 이미지 기반 익스플로잇 전달에 사용되는 두 가지 광범위한 기본 기술(스테가노그래피(Steganography)와 폴리글롯(Polyglots))에 대해 논의합니다. Drive-by 브라우저 익스플로잇은 JPG 및 PNG 이미지에 스테가노그래피 방식으로 인코딩됩니다. 결과 이미지 파일은 HTML 및 Javascript 디코더 코드와 결합되어 HTML+Image 폴리글롯이 됩니다. 이 폴리글롯은 이미지처럼 보이고 느껴지지만, 로드될 때 피해자의 브라우저에서 디코딩되어 트리거됩니다.
Stegosploit는 사용자가 이미지를 분석하고, JPG 및 PNG 파일에 익스플로잇 데이터를 스테가노그래피 방식으로 인코딩하며, 인코딩된 이미지를 HTML로 렌더링하거나 Javascript로 실행할 수 있는 폴리글롯 파일로 변환할 수 있는 도구들로 구성되어 있습니다.
현재 Stegosploit 버전은 0.2이며, International Journal of Proof-of-Concept or Get The Fuck Out (Poc||GTFO) 0x08호에서 찾을 수 있습니다. PoC||GTFO 기사의 끝까지 읽어야 툴킷을 추출하는 방법에 대한 힌트를 찾을 수 있다는 점에 유의하십시오.
README.mdcopying.txt - WTFPLstego/
image_layer_analysis.html - 이미지의 비트 레이어 분석iterative_encoding.html - JPG 또는 PNG 이미지에 익스플로잇 인코딩imagedecoder.html - 스테가노그래피 방식으로 인코딩된 이미지 디코딩imagedecode.jshistogram.jsmd5.jsbase64.jsexploits/
exploits.js - 미리 준비된 익스플로잇 코드decoder_cve_2014_0282.html - 디코더 코드 + CVE-2014-0282 HTML 요소jpegdump.c는 Ralph Giles가 작성했으며 https://svn.xiph.org/experimental/giles/jpegdump.c에서 다운로드할 수 있습니다.
이 저장소에서 중요한 것은 project-stegosploit이 핵심 부분이며, 이미지에 익스플로잇 코드를 숨기고, 인코딩/디코딩하며, meterpreter 프레임워크를 실행하는 방법을 보여줍니다.
익스플로잇 코드는 이미지의 픽셀 내에 삽입되어 이미지가 익스플로잇 코드를 포함하게 됩니다. 그런 다음 IMAJS는 이미지로 읽히면서 자바스크립트 익스플로잇을 추출하고 실행할 디코더를 포함하는 폴리글롯 이미지를 생성합니다.
사용할 익스플로잇은 Internet Explorer Use-after-free 익스플로잇 (CVE-2014-0282)입니다.
python -m http.server 8000
하이라이트:
10.0.2.2:5000을 통해 이미지를 제공할 수 있습니다..html 및 .jpg)을 빌드할 수 있습니다. CRC32.pm 리팩토링
PNGDATA.pm 리팩토링
html_in_jpg_ie.pl 리팩토링
pngenum.pl 리팩토링
데모 서버
/static으로 이동template_render를 사용하여 파싱되도록 확인내 저장소
이 저장소는 GPL 오픈 소스 계약을 따릅니다. 반드시 이해하시기 바랍니다.
이 프로그램을 통해 국가 법률을 위반하는 모든 행위를 엄격히 금지합니다. 법적 범위 내에서 이 프로그램을 사용하십시오.
기본적으로 이 항목을 사용하는 것은 우리의 규칙에 동의하는 것으로 간주됩니다. 도덕적, 법적 기준을 반드시 준수하십시오.
준수하지 않을 경우 발생하는 결과에 대한 책임은 본인에게 있으며, 저자는 어떠한 책임도 지지 않습니다!
[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 - IE용 JPG+HTML 폴리글롯 생성html_in_jpg_ff.pl - Firefox용 JPG+HTML 폴리글롯 생성html_in_png.pl - PNG+HTML 폴리글롯 생성 (모든 브라우저용)pngenum.pl - PNG 파일의 FourCC 청크 열거jpegdump.c - JPG 파일의 세그먼트 열거CRC32.pmPNGDATA.pmproject-stegosploit/ - 핵심 부분 비디오 1 | 텍스트 1
encoding/ - 핵심
iterative_encoding.html - 익스플로잇 코드의 스테가노그래피 인코딩image_layer_analysis.htmlimagedevoder.htmldecode_and_run_cinput_withjs.htmlexploits/ - decoder.htmlimages/ - 인코딩된 이미지 및 원본 이미지polyglots/ - lena_poly_demo.htmlscripts/ - HTML+PNG 폴리글롯 생성 polyglot_with_jpg.pytmp/ 실행 --/tools/msf4$ ./msfconsole -r ./tmp/load_meterpreter.rc 비디오 2README.md - 이 project-stegosploit 사용 방법 보기