[하루한줄] CVE-2020-7468: FreeBSD local privilege escalation
URL
CVE-2020-7468: TURNING IMPRISONMENT TO ADVANTAGE IN THE FREEBSD FTPD CHROOT JAIL
Target
FreeBSD ftpd
Explain
FreeBSD의 ftp 데몬에서 root 로 권한 상승이 가능한 취약점이 발견되었습니다.
취약점은 chroot
함수의 로그인 처리 부분의 결함으로 인해 발생합니다.
chroot
함수에서 chdir
이 실패할 경우 ftpd는 chroot
의 jail에서 새로운 로그인 연결을 기다립니다. 이를 이용해 강제로 chdir
이 실패하도록 유도하면 해커가 업로드한 파일을 시스템 파일인 것처럼 속일 수 있습니다.
취약점의 상세 공격 단계는 다음과 같습니다.
- 해커가 FTP 유저 계정으로 로그인합니다.
etc/spwd.db
에 임의의 root 패스워드를 설정해 업로드합니다.chmod 0
으로 홈 디렉터리에 대한 권한을 변경하고 유저 계정으로 다시 로그인합니다.- 3번으로 인해 로그인 중
chdir
이 실패하고ftpd chroot jail
내부에서 새로운 연결을 기다립니다. 이후 모든 시스템 파일 액세스는 해커 계정의 홈 디렉터리를 기준으로 이루어집니다. - 결과적으로 이후 root로 로그인할 때 해커가 업로드한
etc/spwd.db
의 root 패스워드 테이블을 참조해 패스워드를 검증하고 해커가 root 계정에 접근할 수 있습니다.
해당 취약점을 악용하면 리버스쉘을 실행시키는 명령어를 포함한 파일을 업로드해 root 권한으로 쉘을 실행하고, chroot jail을 벗어나 임의의 명령어 또한 실행할 수 있습니다.
본 글은 CC BY-SA 4.0 라이선스로 배포됩니다. 공유 또는 변경 시 반드시 출처를 남겨주시기 바랍니다.