본문 바로가기
익스플로잇

[Exploit] 취약점을 통한 공격을 막는 방법

by dladbru 2018. 3. 9.

이 글은 내가 새로운 기법이 생각날때마다 기록하고 싶다. 계속 추가적으로 글을 쓸 수 있는 내가 되기를..


#익스플로잇(Exploit)이란? 

 - 프로그램내에 존재하는 취약점을 통해 프로그램 제작자가 의도하지 않은 동작을 발생시키는 행위


개요:

과거 스택 오버플로우 라는 공격기법이 많이 성행했다. 하지만 프로그램 제작자가 이를 신경쓰고, Windows XP 이후 

많은 보안 매커니즘의 등장으로 인해서(ASLR,DEP) 스택 오버플로우는 많이 제한적이 되었다.


요즘은 실행권한이 존재하는 영역에 코드를 넣고 그 지점을 실행시키는 방법이 많이 사용되고있다. (힙 스프레이, 힙 오버플로우) 현재 이를 막는 방법에 대해 고민하자면 아래와 같다.


1. 쉘코드에서 실행될 API에 후킹을 걸고 리턴 어드레스의 지점이 MEM_IMAGE 가 아니면, 이것은 생성된 메모리다.

   생성된 메모리에서 실행되는 API는 코드가 새로 생성된것. (생성된 메모리는 MEM_PRIVITE)



2. 쉘코드에서 실행될 API에 후킹을 걸고 API를 호출한 OPCODE를 64비트라면 FF 15 xx xx xx xx 

32비트라면 E8 XX XX XX XX

jmp, call eax 같은 형태는 0xe9나 다른 형태를 가지고 있다.


3. DEP를 강제적으로 실행시켜 스택의 실행권한을 일단 막는다. ( 문제가 있으려나? )




--

생각나면 업데이트 예정



반응형

'익스플로잇' 카테고리의 다른 글

BOF 3  (0) 2015.06.04
BOF 1  (0) 2015.06.04
BOF 2  (0) 2015.06.04
2013년 네이트온 취약점 제보  (1) 2013.10.01
Hackerschool FTZ 풀이  (0) 2013.07.21

댓글