반응형
오버플로우 영역에 쉘코드 주입 후 리턴 주소 변경
[BUF에 들어가는 주소 값을 추출하는 방법]
memcpy 지점에 가서 실제 복사가 될 값은 EAX일 가능성이 높기 때문에 해당 주소를 hex dump영역과 스택 영역에서 검색한다.
memcpy를 실행하고 hex dump영역과 스택 영역에서도 값이 출력되는 것을 확인할 수 있다.
이 주소가 쉘코드가 들어가서 시작되는 주소이다. 022FDAC
F8키로 리턴까지 수행을 하면 0022FEEC 지점에 022FDAC이 들어가면 메인함수가 리턴하는 순간 쉘코드가 시작하는 지점으로 이동한다. 따라서 쉘코드가 실행된다.
[A의 개수를 산출하는 방법]
A를 350개로 오버플로우 시켰는데 이 값은 너무 많기 때문에 0022FEEC 위의 주소인 0022FEE8까지만 A로 오버플로우 시켜야 한다. A는 0022FEE8까지만 있어야 하기 때문에 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 |