반응형
SMALL

BOF 기초에서는 어디서 오버플로우가 나는지 알고 실습을 했었는데 이번에는 아예 모르는 상태에서 어디서부터 오버플로우가 발생하는지 알아보는 실습이다.




먼저 올리디버그에 접속해서 just in time debugging을 클릭해서 사진과 같이 2개만 활성화 시켜준다.




그리고 Immunity Debbug를 열어서 mona를 실행시켜 !mona pattern_create 120을 입력해준다. 보통 패턴은 100이 넘어갈때 많이 발생하니 120정도면 딱 적당하다.




Immunity Debbug 아이콘 오른쪽을 클릭해 find target을 눌러 만든 패턴에 대해 열고 문자열들을 그대로 카피해준다.






그리고 cmd창을 열어 지난번에 만들었던 BOF를 열어 그대로 문자열들을 붙여넣어주면 오버플로우 메시지가 나오게 된다. 여기서 Debug를 눌러준다.




그렇게 되면 EIP에 41366441이라는 숫자가 뜨게 되는데 이 EIP값을 그대로 복사해준다.




그리고 mona를 실행시켜 !mona pattern_offset  뒤에 방금 복사한 숫자를 붙여넣어 실행시켜 주면 된다. 실행결과를 보면 position 108이라고 메시지가 나와 있는데 여기서부터 오버플로우가 발생한다는 의미이다. 이런식으로 offset을 찾아서 어디부터 오버플로우가 발생할 수 있는지, 취약점이 발생할 수 있는지 정확하게 알 수 있다.

반응형
LIST

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

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

만년필석사

,