[주요기반] (리눅스) U-16 root home, path 디렉토리 권한 및 패스 설정

.  <---------- 저 점 하나가 리눅스에서는 큰 변화를 가져올 수 있다. :/


PATH 환경변수란?

프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임.


Default: /etc/profile 파일에 저장됨.

각 사용자에게는 일반적으로 사용자의 $HOME/.profile 파일에 PATH 값을 가지고 있음.

.profile 파일의 PATH값은 시스템 전체 PATH값을 재정의하거나 기타 디렉토리를 이 값에 추가한다.

PATH환경변수 변조를 이용해서 발생할 수 있는 시나리오 참고 IBM 사이트 글


root 계정의 PATH 환경변수에 . 이 포함되어 있으면,

root 계정의 인가자로 인해 비의도적으로 현재 디렉토리에 위치하고 있는 명령어가 실행될 수 있다.

. 이 녀석이 /usr/bin 이나 /bin, /sbin 등 명령어들이 위치하고 있는 디렉토리보다 윗단에 위치하고 있으면, root 계정의 인가자가 특정 명령을 실행했을 때 비인가자가 불법적으로 위치시킨 파일을 실행하여 예기치 않은 결과를 가져올 수 있음.

잘못된 PATH의 우선순위 등이 침해사고에 이용될 수 있으므로, . 뿐만 아니라 비인가자가 불법적으로 생성한 디렉토리를 우선으로 가리키지 않도록 설정해야 한다.


양호: PATH 환경변수에 . 이 맨 앞이나 중간에 포함되지 않은 경우

취약: PATH 환경변수에 . 이 맨 앞이나 중간에 포함되어 있는 경우

조치방법:

root 계정의 환경변수 설정파일(/.profile, /.cshrc 등)과

/etc/profile (등)에서 PATH 환경변수에 포함되어 있는 현재 디렉토리를 나타내는 . 을

'환경변수의 마지막' 으로 이동.

/etc/profile 과 root 계정의 환경변수 파일,

일반계정의 환경변수 파일을 순차적으로 검색하여 확인한다.

OS별 점검 파일 위치 및 점검 방법

SunOS, LINUX,

AIX, HP-UX

#echo $PATH

/usr/local/sbin:/sbin:/usr/sbin:/bin:/usr/bin:/usr/bin/X11:/usr/local/bin:/usr/bi

n:/usr/X11R6/bin:/root/bin

위와 같이 출력되는 PATH 변수 내에 . 또는, :: 포함 여부 확인

PATH 변수 내에 ., :: 이 맨 앞에 존재하는 경우 아래의 보안설정방법에 따라 설정을 변경함

SHELL 따라 참조되는 환경 설정파일

/bin/sh

/etc/profile, $HOME/.profile

/bin/csh

$HOME/.cshrc, $HOME/.login, /etc/.login

/bin/ksh

/etc/profile, $HOME/.profile, $HOME/kshrc

/bin/bash

/etc/profile, $HOME/.bash_profile

홈 디렉터리에 설정된 값이 가장 늦게 적용되어 최종 PATH로 설정됨

FN_HEAD "[U-16]" " root 홈, 패스 디렉터리 권한 및 패스 설정"

  RTN="MANUAL"

  

  echo "[*] root PATH Check"

  echo $PATH

FN_TAIL $RTN


Q) 저 $PATH가 대체 어디서 오는거지?


(알껍데기 시절 필기)

../../../

var/www/html/ 웹루트디렉토리  <- 웹해킹할 때는  저 /html/index.html 이 부분을 진단하게 된다. Hello ~ apache 이런게 뜰거다.

/etc/passwd를 확인하고 싶다.

../../../  <- /root/ 로 가게 된다.

Usr/local/bin 에 명령어들이 위치해 있다. < - 이런 명령어들을 미리 지정해줘서 우리가 명령어 쓸 때마다

저런거 다 일일히 타이핑해가면서 명령어 쓰지 않아도 되게 해주는 것이 환경변수.


심볼릭링크가 걸려있다. <- user/bin 으로 들어가도 바로 usr/local/bin 으로 바로 접속이 되는 이유.


/usr/local/sbin ./~/tmp/악성코드  < -- 환경변수 조작. -------- 어떻게 조작할 수 있을까/ 찾아보자.

불필요한 환경변수 찾는게 맞다. <- 거기를 보통 조작할거기 때문.

Comments