취약점
관리자가 명령어(예: ls, mv, cp등)를 수행했을 때 root 계정의 PATH 환경변수에 "." (현재 디렉터리 지칭)이 포함되어 있으면 현재 디렉터리에 명령어와 같은 이름의 악성파일이 실행되어 악의적인 행위가 일어날 수 있음
직접해보기
기존 환경변수 내용 확인
[root@localhost ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
실습을 위해 "." 추가!
[root@localhost ~]# vi /etc/profile
...
export PATH=.:$PATH
...
[root@localhost ~]# source /etc/profile
변경된 환경변수 확인
[root@localhost ~]# echo $PATH
.:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
다음과 같이 c프로그램을 짜고 ls라는 이름으로 컴파일!

root는 ls를 입력하였으나 환경변수에 .이 선행하므로 공격자가 만들어 놓은 ls명령어를 수행

결과

hack파일이 setuid설정을 받아 실행시 root의 권한을 이용할수있게됨
보안조치
root 계정의 환경변수 설정파일("/.profile", "/.cshrc" 등)과 "/etc/profile" 등에서 PATH 환경변수에 포함되어 있는 현재 디렉터리를 나타내는 "."을 PATH 환경변수의 마지막으로 이동 "/etc/profile", root 계정의 환경변수 파일, 일반계정의 환경변수 파일을 순차적으로 검색하여 확인
'리눅스 > 파일 및 디렉토리 관리' 카테고리의 다른 글
[CentOS 7] /dev에 존재하지 않는 device 파일 점검 (0) | 2021.04.06 |
---|---|
[CentOS 7] world writable 파일 및 환경변수 파일의 소유자 및 권한 확인 (0) | 2021.04.01 |
[CentOS 7] SUID, SGID, Sticky bit 설정 파일 점검 (0) | 2021.03.19 |
[CentOS 7] 파일 소유자 및 권한 설정 (0) | 2021.03.17 |
개요 (0) | 2020.12.31 |