바이너리 보호 우회은(는) 무엇을 하나요?
바이너리 보호 우회 플레이북. ASLR, PIE, NX/DEP, 스택 카나리, RELRO, FORTIFY_SOURCE, CET 및 MTE 보호를 식별하고 우회하여 ELF 바이너리에서 익스플로잇을 가능하게 할 때 사용합니다.
개요
이 스킬은 ELF 바이너리의 보호 메커니즘을 분석하고 우회하는 방법을 제공합니다. 각 보호 기법에 대한 설명과 함께 실제 우회 기법을 코드 예제와 함께 제시합니다.
주요 보호 기법
- ASLR (Address Space Layout Randomization): 메모리 주소 공간을 무작위화하여 익스플로잇을 어렵게 만듭니다.
- PIE (Position Independent Executable): 실행 파일을 주소 독립적으로 만들어 ASLR의 효과를 높입니다.
- NX/DEP (No-Execute/Data Execution Prevention): 데이터 영역에서 코드 실행을 방지합니다.
- 스택 카나리 (Stack Canary): 함수 프롤로그와 에필로그에 삽입된 값으로 스택 버퍼 오버플로를 감지합니다.
- RELRO (Relocation Read-Only): GOT와 PLT를 보호하여 재배치 테이블 덮어쓰기를 방지합니다.
- FORTIFY_SOURCE: 컴파일 타임 경고와 버퍼 오버플로 검사를 추가합니다.
- CET (Control-flow Enforcement Technology): 간접 분기와 반환 주소를 보호합니다.
- MTE (Memory Tagging Extension): 메모리 태그를 사용하여 오염된 포인터를 감지합니다.
사용법
yak run binary-protection-bypass.yak
지원 플랫폼
- Linux x86_64
- Linux ARM64
- macOS (일부 기능 제한)
환경 변수
BINARY_PATH: 분석할 바이너리 경로BYPASS_ASLR: ASLR 우회 활성화 (true/false)BYPASS_PIE: PIE 우회 활성화 (true/false)BYPASS_NX: NX/DEP 우회 활성화 (true/false)
예제
ASLR 우회
# ASLR 우회 예제
from binary_protection import bypass_aslr
bypass_aslr("/path/to/binary")
스택 카나리 우회
# 스택 카나리 우회 예제
from binary_protection import bypass_canary
bypass_canary("/path/to/binary")
참고
이 플레이북은 교육 및 합법적인 보안 테스트 목적으로 설계되었습니다. 승인되지 않은 시스템에서 사용하지 마십시오.