반응형
SMALL

이번엔 스택오버플로우에 대해 포스팅하려고 한다. 많이 들어봤을 법한 공격인데 공격방법도 매우 다양하게 있어 막기가 쉽지가 않다.



1. BOF 공격이란?



<사진출저: sizz의 it블로그>



퍼오버플로우는 데이터와 main함수 쪽에서 신호를 주고 받게 되는데 예를 들면 main함수쪽에서 무언가를 실행하고 있을 때 A라는 값을 데이터쪽에 보내서 리턴주소를 주고받고 해야 하는데 데이터쪽이 포화가 되서 리턴주소가 다른 엉뚱한곳으로 가게 되는 현상이 발생한다. 그렇게 되면 ret값의 주소가 있는 영역까지 포화가 되서 ret값을 악성코드의 주소로 덮어버리게 된다. 그래서 리턴을 받지 못해서 삽입시켜 놓은 악성코드가 실행이 되게 된다.




* 스택오버플로우 공격 실습


영화를 검색하는데 그 검색어의 프록시를 잡아 버퍼오버플로우의 취약점을 이용해서 cmd안에 있는 ps를 실행시킨다는 시나리오이다. 



일단 버퍼오버플로우 화면을 실행한다. a를 354개 이상 보내면 이상이 발생한다는 전제하에 실습을 했다. 




일단 메타스플로잇으로 파일을 만들 것이다. 메타스플로잇 콘솔을 실행시키기 전에 msfdb를 실행시켜준다. 본인은 이미 실행시켜놓은 상태이다.



그리고 msfconsole이라는 명령어를 실행시켜 메타스플로잇 콘솔창을 띄워주고 리눅스 x86을 사용한다고 use linux/x86/exec라는 명령어를 입력한다. 그리고 cmd에 있는 ps를 실행시킨다는 명령어를 준다.



그리고 tmp에 payload.txt파일을 만든다는 명령어이다. 사진의 명령어와 똑같이 입력해서 실행시켜주면 알 수 없는 문구가 나올건데 이렇게 나오는게 정상이다.



그리고 x86안에 있는 파일을 tmp안에 있는 payload.txt로 보내달라고 요청하는 것이다. 사진과 같이 205바이트를 읽었다고 나오면 정상이다. 이제 메타스플로잇을 종료해준다.




payload.txt에 파일하나를 만들껀데 저 명령어를 입력해줘서 파일을 만들어준다. 사진과 같이 알 수 없는 코드들이 나오게 되면 정상적으로 만들어진 것이다.



다음으로 gedit로 test.py파일을 만들어서 사진과 같이 입력해준다. shellcode부분은 방금전에 만든 코드를 붙여넣어서 만들어 주면 된다. %41은 알파벳 A라는 뜻이며 354개가 넘어가면 문제가 발생한다는 것을 파이썬코드로 코딩해준 것이다.



이제 파이썬 파일을 실행시키면 다음과 같은 코드들이 나오는데 이 코드들을 복사해준다.



그리고 비박스로 돌아와 프록시를 잡아주고 title부분에 복사했었던 코드들을 붙여주고 Repeater로 보내준다.



프록시 Raw에서 받은 코드들을 Go버튼을 눌러 실행해준다. 그리고 Response쪽에 Render을 보면 cmd안에 있는 ps정보들이 그대로 웹페이지에 노출되고 있음을 확인할 수 있다. ps정보 말고도 다른 cmd안에 있는 정보들을 다 볼 수 있다. 그래서 스택오버플로우 공격이 심각하다는 의미이다. a라는 값을 354개 이상 줬을 때 리턴값이 엉뚱한곳으로 가는 취약점을 이용해 이런식으로 ps정보들을 전부 확인할 수 있다. ps정보 말고도 스택오버플로우 공격으로 또 어떠한 취약점이 있을지는 조금 더 연구하고 실습해봐야 할 것 같다.




반응형
LIST

'웹해킹 > Bee-box' 카테고리의 다른 글

하트블리드 공격  (1) 2020.03.15
쉘 쇼크 취약점  (0) 2018.01.02
디바이스 접근 제한/서버 측 요청 변조  (0) 2018.01.02
디렉터리 리스팅  (0) 2018.01.01
ARP 스푸핑 공격  (0) 2017.12.31
블로그 이미지

만년필석사

,