NOP Sled 이해 및 실습


NOP Sled 이해 및 실습

미리 알아둘 것 스택 오버플로우 이해 준비물 Ubuntu 18.04. LTS 이하 Python2 GCC 컴파일러 GDB (필요하면) 이번에는메모리에 스택이나 힙에서 오버플로우를 일으킬 때 오버플로우의 난이도를 낮추는 기법입니다. 전통적인 오버플로우 기법 중 Ret2Shell(Return to shellcode) 공격을 예시로 들어보면, 스택을 오염시켜서 Return address 부분에 셸 코드가 있는 스택의 주소를 넣고, 프로그램 종료시 실행 흐름을 그 부분으로 돌려서 셸코드가 실행되도록 만듭니다. 그런데 위와 같은 방법은 실행하고자 하는 데이터가 있는 주소를 "정확하게" 알아야 한다는 점에서 상황에 따라서는 어려울 수도 있습니다. 이때 NOP Sled(또는 NOP Slide)라는 기법을 사용하면 이러한 스택의 주소를 정확하게 맞추지 않고, 대략적으로 그 근처만 맞추어도 셸 코드를 실행할 수 있습니다. NOP 은 어셈블리어 수준 명령어 중 하나로, 하는 것은 아무것도 없는 명령입니...


#buffer #실습 #버퍼오버플로우 #공격 #strcpy #pwnable #NOP_slide #NOP_sled #NOP #gcc #exploitation #Clang #C #오버플로우

원문링크 : NOP Sled 이해 및 실습