본 포스팅은 기존 제작된 익스플로잇을 무작정 따라하는 내용을 담고 있습니다.
(천만 스크립트 키드 양성을 위한 그날까지..!)
유형 : Stack Buffer Overflow
타겟 프로그램 : BlazeDVD Pro Player 6.1
테스트 환경 : Windows XP SP3 Eng
링크 : http://www.exploit-db.com/exploits/32737/ (제작자 : Deepak Rathore)
설명 : Playlist를 열때 Stack Buffer Overflow를 일으킵니다.
[재현]
[그림1 - 프로그램 실행 화면]
링크에서 타겟 프로그램과 Exploit을 다운로드 합니다.
Perl 설치가 귀찮으신 분은blazeExpl.plf<-- 이것을 다운로드 해 주세요.
[그림2 - Playlist Exploit 파일]
해당 파일을 Hex Editor로 열면 위의 그림과 같이 나옵니다.
위의 박스친 부분의 주소를 사용자PC에 맞게 고쳐줘야 하는데, ASLR이 적용되지 않은 모듈에서 jmp esp를 찾으면 됩니다.
[그림3 - JMP ESP 찾기]
저는 0x7C86467B에 있는 jmp esp를 사용했습니다.
[그림4 - Exploit 성공]
Playlist 를 열어서 그림4와 같이 나오면 성공입니다.
[분석]
[그림5 - 버퍼를 스택에 복사]
Playlist를 로드하면 위의 코드에서 스택에 Playlist의 버퍼를 복사합니다.
(스샷을 연속적으로 찍지 않아서 스택의 주소가 그림마다 다릅니다. 양해를..)
[그림6 - 스택 비교]
위의 그림은 스택 버퍼가 쓰여지기 전과 후의 모습입니다.
[그림7 - RETN]
계속해서 Step over를 하면 최종적으로 그림7과 같은 코드를 만나게 되어 리턴합니다.
[그림 8 - RETN 시 스택]
RETN 직전 스택을 보면 ESP가 0x7C86467B를 가리키고 있는데 해당 주소는 JMP ESP 를 담고 있습니다.
말 그대로 ESP로 점프하라는 것이며, 한번 더 Step over 하면 스택에 0x10이 더해진 0x12F0D0으로 이동합니다.
[그림 9 - 쉘코드]
NOP후 쉘코드가 실행됩니다.
'Windows > Hacking & Vulnerability' 카테고리의 다른 글
Peach Fuzzer를 이용한 File Fuzzing #1 (0) | 2014.07.18 |
---|---|
MiniFuzz를 이용한 File Fuzzing (2) | 2014.07.17 |
[SEH Exploit] AudioCoder 0.8.29 - Memory Corruption (0) | 2014.04.29 |
브라우저 취약점 - Shellcode의 bad char로 인한 에러 해결 (0) | 2014.03.22 |
EMET 4.1 - Force ASLR (0) | 2014.03.20 |