반응형
SMALL

이번 실습은 MP3 플레이어 컨버터를 이용한 Exploit을 한다. 최종적으로 올리디버거를 이용해 계산기를 출력하는게 목표다.



* 컨버터 실습 *



모나를 실행시켜 !mona pattern_create 10000을 입력해서 패턴을 만든다.



만들어준 패턴을 보기 위해 immunity Debugger 아이콘 오른쪽을 클릭해 properties를 실행시켜 find target을 실행시켜 모나를 실행시켜 만든 pattern을 찾는다. 패턴을 찾은 후 10000개의 문자열을 복사한다.





계산기 소스에 payload에 20000 + 옆에 문자열들을 붙여 넣는다. 이름은 test라고 저장한다.



mp3 컨버터로 test를 실행시켜주면 오버플로우가 발생하게 된다. debug버튼을 눌러 올리디버거와 연결시킨다.



올리디버거를 실행시키면 EIP에 34754833이라고 나오면 정상이다. 이 값을 복사한다.



모나를 실행시켜 offset 뒤에 복사한 값을 붙여넣어서 실행시키면 포지션은 6071이라는 값이 나온다. 최종적으로 만들려는 버퍼 길이는 26071이 된다.



\x90은 사실상 아무것도 하진 않는다. 하지만 주소값을 buf쪽에 전달하는 역할만 한다. RET가 주소값을 리턴시키면 \x90을 거친 후 buf라는 곳으로 주소값이 전달되어 계산기가 실행되게 된다. 



test1을 mp3컨버터로 실행시켜보면 스택쪽을 보면 주소값을 어디로 리턴시켜줄지 찾아야 되는데 일단은 90909090으로 반복되는 부분 거의 끝에 해당하는 값을 찾는다. 오버플로우가 나지 않는 선에서 스택값을 찾아야 한다.



0x00FFD80값으로 바꿔주고 test2로 저장한다.



test2를 MP3 컨버터를 활용해서 실행시켜보면 계산기가 화면과 같이 실행된다. 이처럼 오버플로우를 이용하고 offset값을 찾아 RET를 잘 이용해주면 이런식으로 프로그램을 실행할 수 있다.

반응형
LIST

'악성코드분석' 카테고리의 다른 글

리버싱 기초 (1)  (0) 2021.01.10
UPX 자동 언패킹  (0) 2021.01.05
ollydbg와 mona를 이용한 BOF 실습  (0) 2018.01.21
BOF 기초실습  (0) 2018.01.21
stack과 BOF 개념  (0) 2018.01.21
블로그 이미지

만년필석사

,