corelan
Exploit writing tutorial part2 : how to jmp shellcode
Exploit writing tutorial part2 : how to jmp shellcode 이번 문서에서는 앞서 stack based overflow에서 jmp esp를 사용해 공격자가 원하는 곳으로 프로그램의 흐름을 제어하였다. 이러한 방법이외에도 다양한 방법들이 존재하며 앞서 작성한 exploit을 수정하며 다양한 방법을 알아 볼 것이다. 1. CALL [register] 만약 레지스터에 shellcode를 가르키는 주소가 로드된 경우 해당 register를 단순히 CALL하면 된다. 예를 들면 Esp가 shellcode를 가르키고 있다면 CALL esp를 통해 shellcode를 실행 시킬 수 있다. Kernal32.dll이 많은 CALL [register]를 가지고 있으므로 꽤나 공격가능한 ..
Exploit writing tutorial part3 : SEH base exploit
앞서 shellcode로 점프할 수 있는 여러 방법에 대해서 알아보았다. 이번에는 조금 특별한 방법인 SEH기반의 오버 플로우 공격을 알아볼 것이다. 먼저 예외 핸들러에 대해 알아보자. 프로그램이 실행되는 도중 여러 예외가 발생 가능하다. 예를 들면 0으로 나누거나 stack overflow가 발생하는 경우 등이 있을것이다. 이러한 경우 예외 핸들러가 동작하며 해당 예외 발생에 대처한다. 일반적인 예외처리 매커니즘은 아래와 같다. try { //run stuff. If an exception occurs, go to code } catch { // run stuff when exception occurs } 이렇게 핸들러가 추가된 뒤 스택의 구조는 아래와 같다. 윈도우에서는 기본적으로 예외들을 처리할 수..