관리 메뉴

Information Security

Linux SUDO Baron Samedit 취약점 (CVE-2021-3156) 본문

CVE 취약점

Linux SUDO Baron Samedit 취약점 (CVE-2021-3156)

HackingPractice 2021. 2. 1. 15:58

로컬 사용자가 인증 없이도 Unix 계열 OS에서 루트 권한을 획득할 수 있는 SUDO 취약점이 발견되어 수정되었습니다.

 

SUDO는 시스템 관리자가 Sudoers 파일에 나열된 일반 사용자에게 제한된 루트 권한을 제공하는 동시에 그들의 활동 로그를 저장할 수 있도록 하는 유닉스 프로그램입니다.

 

해당 프로그램은 시스템의 전체 보안을 해치지 않고 사용자에게 일하는데 충분한 권한만을 부여하는 최소 권한 원칙(Principle of Least Privilege)을 기반으로 합니다.

 

유닉스 기반 OS에서 명령을 실행할 때, 권한이 없는 사용자는 sudo(superuser do) 명령을 사용하여 권한이 있거나 루트 사용자의 비밀번호를 알고 있는 경우 명령어를 root로 실행시킬 수 있습니다. Root는 시스템의 슈퍼 사용자로 특수 시스템 관리 계정을 말합니다.

 

Sudo는 Sudoers 구성 파일에 특수 지시문을 포함하여 일반 사용자가 다른 사용자를 대신하여 명령을 실행할 수 있도록 구성될 수 있습니다.

 

취약점 버전 1.8.2~1.8.31p2 / 1.9.0~1.9.5p1 

 

취약점 테스트

Ubuntu 18.04.4 LTS 버전이라는 것을 알 수 있다. 

그림 1-1 Ubuntu 버전

Sudo version 1.8.21p2 취약한 버전이라는 것을 알 수 있다.

그림 1-2 Sudo 버전

sudoedit -s / 입력 시 아래와 같은 메시지를 보여주는 것으로 보아 취약한 것을 알 수 있다.

그림 1-3 sudoedit

CVE-2021-3156 PoC 공격 코드를 다운로드하였다.

그림 1-4 PoC 코드

해당 파일을 아래와 같이 컴파일을 한다.

그림 1-5 컴파일

컴파일한 파일의 사용법을 확인했다.

그림 1-6 target

Ubuntu 18.04 버전이라 옵션을 0번 선택 시 공격이 실행되어 root 권한으로 권한 상승된 것을 알 수 있다.

그림 1-7 권한상승

/etc/shadow 파일을 읽을 수 있는 것을 알 수 있다.

그림 1-8 공격성공

대응방안

시스템이 취약한지 확인하기 위해서는 루트가 아닌 사용자로 로그인해 "sudoedit -s /" 명령을 실행하면 됩니다. 취약한 시스템은 "sudoedit:"으로 시작하는 에러를 표시할 것이고, 패치된 시스템은 "usage:"로 시작하는 에러를 표시합니다.

또한 사용자에게 루트 권한을 위임하기 위해 Sudo를 사용하는 시스템 관리자는 가능한 빨리 Sudo 1.9.5p2 이상으로 업그레이드할 것을 권장합니다.

 

www.sudo.ws/ 페이지에 접속해 sudo 1.9.5p2 버전을 링크 주소를 복사했다.

그림 1-9 sudo 1.9.5p2

sudo 1.9.5p2 버전을 다운로드하였다.

그림 1-10 다운로드

sudo 1.9.5p2 압축파일을 압축해제했다.

그림 1-11 압축파일

sudo 1.9.5p2 파일들을 확인했다.

그림 1-12 sudo 1.9.5p2 파일

./configure 명령어로 파일을 설치했다.

그림 1-13 configure

파일 관리 유틸리티 명령어 make를 사용하여 컴파일했다.

그림 1-14 make

make install 명령어로 컴파일 파일이 설치를 완료했다

그림 1-15 make install

sudo버전이 1.9.5p2로 버전이 업데이트된 것을 알 수 있다.

그림 1-16 sudo 버전

sudoedit -s / 입력 시 usage로 시작하는 것을 알 수 있다.

그림 1-17 usage

공격이 실행되지 않는 것을 알 수 있다.

그림 1-18 대응방안