chroot, sudo -R

agnusdei·2025년 7월 19일

CTF

목록 보기
46/185

🧾 sudo -R <directory> 옵션이란?

✅ 정의:

-R, --chroot=directory

Sudo가 지정된 디렉토리를 루트(/) 디렉토리처럼 간주(chroot와 유사하게)하고 명령을 실행합니다.


🔍 -R 옵션의 실제 동작

  • sudo -R <dir> <command>는 마치 <dir> 디렉토리 안이 전체 루트 파일 시스템처럼 작동하도록 sudo가 처리합니다.

  • 이는 완전한 chroot는 아니지만, Sudo는 내부적으로 해당 디렉토리를 루트처럼 해석하고, 다음 파일들을 해당 디렉토리 기준으로 찾습니다:

    • /etc/nsswitch.conf
    • /etc/passwd
    • NSS 라이브러리 (libnss_*.so.2)
    • 환경 파일들

📌 예시 비교

일반 sudo 명령:

sudo id
  • 시스템 전체 기준으로 실행
  • /etc/nsswitch.conf → 시스템 파일 참조
  • /lib/x86_64-linux-gnu/libnss_files.so.2 등 실제 시스템 경로 기준

-R 사용 시:

sudo -R /my/fake_root id
  • /my/fake_root가 루트(/)처럼 간주됨

  • 참조되는 파일:

    • /my/fake_root/etc/nsswitch.conf
    • /my/fake_root/libnss_*.so.2
  • → 공격자는 /my/fake_root/ 내부에 악성 파일을 만들어 루트 권한으로 실행시키게 함


💣 그래서 이게 왜 위험한가?

Sudo는 -R 옵션을 통해 가짜 환경에서 동작하면서도 여전히 루트 권한으로 NSS 구성 및 라이브러리를 로드합니다.
공격자는 이 점을 이용해 가짜 NSS 구성과 악성 공유 라이브러리를 삽입하면, 루트로 실행되는 Sudo가 공격자 코드를 실행하게 됩니다.


🔐 요약

항목설명
옵션sudo -R <dir>
역할지정된 디렉토리를 루트(/)처럼 간주하고 명령 실행
취약점 연결점Sudo가 -R 환경에서 NSS 설정 및 라이브러리를 신뢰하고 루트로 실행함
악용 방식가짜 NSS 구성 (nsswitch.conf) + 악성 라이브러리 (libnss_*.so.2) 삽입

profile
DevSecOps, Pentest, Cloud(OpenStack), Develop, Data Engineering, AI-Agent

0개의 댓글