본문 바로가기
IT Tech/Application

SROP(SigReturn Oriented Programming)

by _><- 2015. 10. 29.
반응형


SROP는 (SigReturn Oriented Programming) ROP, RTL보다 성공확률이 높은 메모리 공격기법이다.


보통 ROP(Return oriented programming)은 ret가 포함된 가젯(Gaget)을 이용하여 작성을 하는데

SROP는 가젯대신 sysreturn system call을 이용하여 ROP 공격을 한다.


sigreturn system call는 시그널을 받은 프로세스가 커널모드로 동작한 후에 유저모드로 돌아올때 사용하는 system call이다


프로그램 실행 중에 Signal 이 발생하게 되면 커널은 CPU의 정보를 커널영역에 복사하고 프로그램의 실행을 멈춘 후 Signal을 처리한다.

처리된 Signal이 처리되고 나서 다시 프로그램을 실행하기 위해 커널영역에 저장된 CPU의 정보(Context)를 스택에 복사하여

프로그램을 실행한다.


취약점은 커널이 Sigreturn System call을 호출하여 스택으로 커널영역으로 복사했던 Context를 복사하여 실행할 때 재검증을 하지 않을 때

발생된다.




sigreturn의 스템 콜 번호




Context의 값이 스택에 어떤순으로 들어가는지는 sigcontext.h의 구조체를 참조하면 알 수 있다.


sigcontext.h



첫 ret을 덮기 위해서 20개의 dummy가 필요




참고 : 

1, https://www.google.co.kr/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CB4QFjAAahUKEwj9nOnO7-fIAhUHG6YKHWwdCG8&url=http%3A%2F%2Ferr0rless313.tistory.com%2Fattachment%2Fcfile23.uf%402379F14B54DF08BC083B9C.pdf&usg=AFQjCNHfSE2JFSMkPnsGQZVSDjfCLzZbxA&sig2=CAfKcMnH0Jn63saCrk2yMg&bvm=bv.106130839,d.dGY

2. http://lxr.free-electrons.com/source/arch/sh/include/asm/unistd_32.h?v=3.3

반응형

'IT Tech > Application' 카테고리의 다른 글

방화벽 Config 확인 명령어  (0) 2015.11.03
악성코드 분석  (0) 2015.11.03
파일업로드 취약점  (0) 2015.10.19
RPC 공격  (0) 2015.10.07
Cloaking 기능  (0) 2015.10.07