본문 바로가기

System/Windows

Windows 7 Pro 32bit/Analysis/메모리 보호기법 해제

반응형
분석과 테스트를 위해서 불필요한 보호기법을 해제할 필요성이 있습니다. 보호기법이 적용되어 있다면, 테스트를 위해 보호기법을 우회해야하고 시간 제약적인면에서 손해가 큽니다. 고로 .. 저는 보통 보호기법을 해제시키고 테스트를 합니다. 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


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