반응형

오버플로우 영역에 쉘코드 주입 후 리턴 주소 변경

 

[BUF에 들어가는 주소 값을 추출하는 방법]

memcpy 지점에 가서 실제 복사가 될 값은 EAX일 가능성이 높기 때문에 해당 주소를 hex dump영역과 스택 영역에서 검색한다.

 

memcpy를 실행하고 hex dump영역과 스택 영역에서도 값이 출력되는 것을 확인할 수 있다.

이 주소가 쉘코드가 들어가서 시작되는 주소이다. 022FDAC

 

F8키로 리턴까지 수행을 하면 0022FEEC 지점에 022FDAC이 들어가면 메인함수가 리턴하는 순간 쉘코드가 시작하는 지점으로 이동한다. 따라서 쉘코드가 실행된다.

 

[A의 개수를 산출하는 방법]

A350개로 오버플로우 시켰는데 이 값은 너무 많기 때문에 0022FEEC 위의 주소인 0022FEE8까지만 A로 오버플로우 시켜야 한다. A0022FEE8까지만 있어야 하기 때문에 30개의 A를 지워야 한다.

 

쉘코드 주입 및 리턴 주소 변경

위와 같이 수정하고 파이썬 파일을 실행시킨다.

 

memcpy를 실행하고 hex dump영역과 스택 영역에서도 값이 들어가는 것을 확인한다.

 

리턴까지 실행하여 쉘코드의 시작 지점이 잘 들어간 것을 확인했다.

 

쉘코드 영역을 지나 BP를 걸고 그 부분을 실행해보면 출력이 되며 cmd창에서도 확인했다.

반응형

'Study > 윈도우즈 보안과 운영 실습' 카테고리의 다른 글

overflow  (0) 2024.03.19
Stackoverflow 실습2  (0) 2024.03.19
Stackoverflow 실습  (0) 2024.03.19
Stackoverflow  (0) 2024.03.19
쉘코드 작성 - calc  (0) 2024.03.19