2013-08-23 2 views
1

공격자가 NX-bit와 ASLR로 보호 된 x86-64의 Windows에서 명령 포인터를 제어 할 수있게되면 NX 비트 보호가 어떻게 해제됩니까? 이 기능을 비활성화하는 시스템 호출이 ASLRed가 아닌 주소에 있다고 가정하고 직접 호출 할 수 있습니까?현대 Windows에서 ASLR 및 NX 비트?

최신 Windows 머신 (예 : 자바 스크립트 구현의 버그)을 악용하는 데 힙 스프레이가 자주 사용되는 것 같습니다. 분명히 실행 가능한 힙을 수반하기 때문에 힙 스프레이보다 먼저 힙을 실행할 수 있습니까? Windows에서이 작업이 어떻게 수행되었는지 명확하게 보여주는 몇 가지 문서가 있습니까?

답변

1

일반적으로 악용에는 ROP attack이 포함됩니다. ROP 공격은 일부 시스템 호출 (예 : 쉘 생성)을 직접 호출하거나 VirtualProtect()을 호출하여 NX 비트를 비활성화 할 수 있습니다.

ROP 공격의 한 단계는 예측 가능한 위치 (예 : a DLL that didn't opt into ASLR)에서 적어도 일부 코드를 찾거나 공격자가 일부 코드 위치를 예측할 수있는 정보 유출 취약점을 찾아 공격자가 가제트는 예측 가능한 주소에 있습니다. 공격자가 임의의 가젯을 실행할 수있게되면 일반적으로 게임 오버가 발생합니다. 예를 들어 익스플로잇 코드는 VirtualProtect()과 같은 다른 모든 기능의 주소를 역 랜덤화한 다음 호출 할 수 있습니다.

도 참조 https://security.stackexchange.com/q/20497/971