secure-execution mode
secure-execution mode
어떤 바이너리를 실행하면, dynamic linker(ld.so)는getauxval( ) 를 이용해 auxiliary vector인 AT_SECURE
값을 가져와 0
인지 확인하고 0
이 아니면 secure-execution mode로 실행한다.
2017/09/02 - [System/Exploit] - Return to VDSO using ELF Auxiliary Vectors leck
다음과 같은 경우, AT_SECURE != 0
이 된다.
eUID != rUID
또는c eGID != rGID
인 경우 ( => setUID나 setGID가 걸려있는 경우 )- non-root UID process가 capability를 가진 바이너리를 실행하면서 capability를 얻는 경우 (capabilities )
- Linux Security Module이 set하는 경우
secure-execution mode 일 경우 ld.so는 특정 환경변수의 동작을 제한하거나 비활성화 한다.
LD_PRELOAD
에는 다음과 같은 제약이 생긴다.
- preload pathnames containing slashes are ignored
- only shared objects in the standard search directories that have the set-user-ID mode bit enabled are loaded.
This post is licensed under CC BY 4.0 by the author.