해킹공주의 일상
[U-05] root홈, 패스 디렉터리 권한 및 패스 설정 본문
반응형
진단 내용
PATH 환경변수에 “.” 이 맨 앞이나 중간에 포함되어 있는지 확인.
진단 기준
일단 리눅스와 윈도우의 파일 실행방법에 대해 알아보자.
리눅스, 윈도우 모두 현재 위치에 a.out 파일이 있고, 해당 파일을 실행한다고 가정할때,
$ a.out
1. 리눅스
현재 디렉터리가 아닌 PATH 환경변수 경로로 가서 명령어를 실행하기때문에 현재 디렉터리에 a.out 파일이 있더라도 실행되지 않아 command not found 에러가 발생. 이를 실행시키려면 ./a,out 으로 실행해주어야한다.
2. 윈도우
현재 디렉터리를 먼저 찾고, 없으면 환경변수 경로로 가서 명령어를 실행한다. 지금은 현재 디렉터리에 a.out 파일이 존재하기 때문에, 해당 파일을 실행한다.
PATH 환경변수 예시는 아래와 같다.
#echo $PATH
/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin/X11:
/usr/local/bin:/usr/bin:/usr/X11R6/bin:/root/bin
:를 구분자로 하고 있는데, 만약에 여기에 . 이 들어가게 되면, 환경변수에 있는 어떤 값이나 명령어를 실행하는게 아니라 현재 디렉터리에 있는 파일을 실행하게 된다.
악성 행위 시나리오는 다음과 같다.
1. 공격자가 악성파일을 업로드한다.
악성파일 : hack.c
2. 악성 파일을 기본 명령어로 변경한다.
mv hack.c ls
3. PATH 환경변수에 .을 삽입한다
#echo $PATH
/usr/local/sbin:.:/bin:/usr/bin/X11:
/usr/local/bin:/usr/bin:/usr/X11R6/bin:/root/bin
4. 사용자가 ls 명령어 실행 시, 파일 리스트가 출력되는게 아니라 악성 파일이 실행된다.
따라서.. PATH 환경변수에 .이 있는지 확인해야한다.
조치방법
PATH 환경변수 중간이건 맨앞이건 .이 없도록 해야한다.
보안기사 공부중 확실하게 알게 되었다.. 알고 일하는거랑 모르고 하는거랑은 확실히 다른건데 잘알아서 좋다...
반응형
'인프라진단 > 진단 항목 정리' 카테고리의 다른 글
[U-53] 사용자 Shell 점검 (0) | 2025.02.17 |
---|---|
[U-16] /dev 에 존재하지 않는 device 파일 점검 (1) | 2024.07.30 |
[D-21] 인가되지않은 GRANT OPTION 사용 제한 (0) | 2023.08.09 |
[U-24] NFS 서비스 비활성화 (0) | 2023.08.07 |
[W-42] SAM 계정과 공유의 익명 열거 허용 안 함 (0) | 2023.07.28 |
Comments