내가 읽고있다BSI 안전 가이드(독일어), NIS와 관련하여 이 항목이 NIS 서버 파일 +::0:0:::
에 나타나지 않도록 해야 한다고 명시적으로 언급되어 있습니다 ./etc/passwd
+
제가 조사한 결과 전체 NIS 목록을 passwd 파일로 가져오는 것으로 나타났습니다 . 가이드에서 제안하는 해결책은 항목의 비밀번호 부분에 하나를 추가하는 것입니다 *
. 그러면 사용자 이름이 섀도우 파일에서 조회됩니다. 이는 기본적으로 NIS 목록 가져오기를 쓸모없게 만들기 때문에(이 목록에는 섀도우에 항목이 없기 때문에) 다소 비생산적이지 않습니까?
또한 이 항목의 합법적인 용도는 무엇이며 공격자가 이를 어떻게 악용할 수 있습니까(아무것도 없음 *
)?
답변1
이러한 항목은 파일에 해당 항목이 있는 경우에만 +::0:0:::
예상대로 작동합니다 . 대신 이 항목을 사용하면 의도한 효과가 나타나지 않습니다.passwd: compat
/etc/nsswitch.conf
passwd: files nis
적어도 내 Debian 9 시스템의 매뉴얼 페이지에 따르면 이것은 유효한 구문이 아닌 것 같습니다 nsswitch.conf(5)
. 해당 시스템에서 루트 액세스를 얻는 NIS 사용자 이름이어야 하거나 +user::0:0:::
NIS 사용자가 사용하는 콘텐츠를 제외한 모든 것을 포함해야 합니다. NIS에서 지정한 UID/primaryGID 값을 재정의하지 않고 이전에 구문을 사용했거나 제외했습니다.user
+
-user
-@netgroup
확장하면 +::0:0:::
"모든 NIS 사용자는 해당 시스템의 루트입니다"를 의미하는 것처럼 보이지만 처음에는 결코 좋은 생각이 아닙니다.
위험은 읽기를 통해 자체적으로 인증을 처리하지만 스타일 구문 확장을 구현하지 않는 애플리케이션의 경우 해당 줄 /etc/passwd
은 문자 그대로 "사용자에게 UID 0 및 GID 0이 있고 비밀번호가 없음"을 의미한다는 것입니다./etc/shadow
passwd: compat
+
이러한 응용 프로그램을 사용하는 경우 이는 " +
사용자 이름 입력 프롬프트, Enter비밀번호 프롬프트를 누르기만 하면 됩니다. 이제 루트 액세스 권한을 갖습니다." 취약점입니다. 유효한 셸이 없기 때문에 즉시 셸 액세스 권한을 얻지 못할 수도 있습니다. 그러나 응용 프로그램을 통해 UID 0 액세스 권한만 있으면 노련한 침입자에게 곧 전체 루트 셸 액세스 권한을 얻을 수 있는 충분한 영향력을 제공할 수 있습니다.