반응형
분석과 테스트를 위해서 불필요한 보호기법을 해제할 필요성이 있습니다. 보호기법이 적용되어 있다면, 테스트를 위해 보호기법을 우회해야하고 시간 제약적인면에서 손해가 큽니다. 고로 .. 저는 보통 보호기법을 해제시키고 테스트를 합니다. windows 7에서는 ASLR, DEP, SEHOP만 해제하면 되므로 테스트하기 아주 편합니다.
# Windows 7 Pro 32bit 테스팅 환경
- Enhanced Mitigation Experience Toolkit (EMET) 사용
- ASLR 해제
- [이전 버전 IDE 설정] Visual Stduio 2012: Configuration Properties > Linker > Advanced > Randomized Base Address [No]
- [존재 x] HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\MoveImages
- [컴파일 옵션] /DYNAMICBASE[:NO]
- [바이너리 수정 - HXD, PEview 사용] IMAGE_OPTIONAL_HEADER의 오프셋 13E에 해당하는 DLL Characteristics의 IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE를 제거
- 0040값을 0000으로 수정 - HXD사용.
- DEP 해제
- [OS설정 변경] 시스템 속성 > 고급 > 성능의 설정 > 데이터 실행 방지(DEP) 탭 > 데이터 실행방지(DEP)를 필수 Windows 프로그램 및 서비스에만 사용(T) 체크
- [CMD : 부팅 구성 데이터 저장소 편집기 사용] 작업관리자로 cmd 실행 > bcdedit /set <current> nx AlwaysOff
- 활성화 : bcdeit /set {current} nx optin
- 설정 후 시스템 재시작 필요.
- SEHOP 해제
- [레지스트리 하위키 추가 ] HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\kernel\ 하위 키에서 DisableExceptionChainValidation가 없는 경우 새로 만듭니다.
- 새로 만들기 > DWORD > DisableExceptionChainValidation 추가 > 레지스트리 값 0
- 운영체제별 보호기법 - https://blogs.technet.microsoft.com/askpfeplat/2017/04/24/windows-10-memory-protection-features/
Win7 | Win7+EMET | Win10 1607 Anniversary Update | Win10 1703 Creators Update | Win10 1607+EMET Anniversary Update | |
Default Enabled System Mitigation | |||||
Kernel pool hardening [18] | Y | No Change | Y | Y | No Change |
Kernel ASLR (images) [18] | Y | No Change | Y | Y | No Change |
Fonts (usermode appcontainer) [10] | N | N | Y | Y | No Change |
NTVDM disabled [18] | N | N | Y | Y | No Change |
Kernel ASLR (full) [10] | N | N | Y | Y | No Change |
Kernel DEP [18] | N | N | Y | Y | No Change |
Kernel pool hardening (extended) [18] | N | N | Y | Y | No Change |
SMEP [18] | N | N | Y | Y | No Change |
Global safe unlinking [18] | N | N | Y | Y | No Change |
Improved ASLR entropy [17] | N | N | Y | Y | No Change |
Opt-In System Mitigation | |||||
DEP | Y | Y | Y | Y | Y |
SEHOP | Y | Y | Y | Y | Y |
ASLR | Y | Y | Y | Y | Y |
Pinning | N | Y | Y [9] | Y | Y |
Fonts (block untrusted) | N | N | Y [1] | Y | Y |
VBS – HyperGuard (protect MSR/SMEP) | N | N | Y | Y | No Change |
VBS – HVCI (kernel CI) | N | N | Y | Y | No Change |
VBS – Credential Guard | N | N | Y | Y | No Change |
VBS – Device Guard | N | N | Y | Y | No Change |
SecureBoot | N | N | Y | Y | No Change |
Default Enabled Application Mitigation | |||||
Heap metadata hardening [15] | Y | Y | Y | Y | No Change |
Heap metadata hardening (extended) [15] | N | N | Y | Y | No Change |
Heap allocation randomization [15] | N | N | Y | Y | No Change |
Heap guard pages [15] | N | N | Y | Y | No Change |
AppContainer symbolic link hardening [10] | N | N | Y | Y | No Change |
Opt-In Application Mitigation | |||||
SEHOP [16] | Y | Y | Y | Y | Y |
DEP | N | Y | Y | Y | Y |
NullPage | N | Y | Y | Y | No Change [19] |
Force ASLR [3] | N | Y | Y | Y | Y |
BottomupASLR | N | Y | Y | Y | Y |
LoadLib (Image Load Restriction) | N | Y | Y [4] | Y [4] | Y |
MemProt (Dynamic Code Restriction) | N | Y | Y [5] | Y [5] | Y |
Fonts (block untrusted) | N | N | Y [1] | Y [1] | No Change [2] |
Child Process Restriction [6] | N | N | Y | Y | No Change |
Code Integrity Restriction [7] | N | N | Y | Y | No Change |
Win32k System Call Disable Restriction [8] | N | N | Y | Y | No Change |
High Entropy ASLR [11] | N | N | Y | Y | No Change |
Strict handle checks [12] | N | N | Y | Y | No Change |
Extension point disable [13] | N | N | Y | Y | No Change |
Heap terminate on corruption [14] | N | N | Y | Y | No Change |
ASR | N | Y | N | Y | Y |
HeapSpray | N | Y | N | N | Y |
EAF | N | Y | N | N | Y |
EAF+ | N | Y | N | N | Y |
Caller | N | Y | N | N | Y |
SimExecFlow | N | Y | N | N | Y |
StackPivot | N | Y | N | N | Y |
CFG [20] | N | N | N | N | N |
반응형
'System > Windows' 카테고리의 다른 글
System/Hacking/고급 리버싱 기술 (0) | 2017.11.30 |
---|---|
System/Hacking/Fuzzing (0) | 2017.11.30 |
System/DllInject/레퍼런스 및 오류 (0) | 2017.11.30 |
System/Hacking/버그헌팅/기본 방법론 (0) | 2017.11.30 |
System/Hacking/ASLR/ASLR 우회 (0) | 2017.11.30 |