저는 루트인데 비밀번호를 모릅니다. 제한 사항을 우회하려면 /bin/의 바이너리를 교체하세요.

저는 루트인데 비밀번호를 모릅니다. 제한 사항을 우회하려면 /bin/의 바이너리를 교체하세요.

활성 루트 계정이 있지만 비밀번호를 모릅니다.

내 비밀번호를 변경하거나 도구를 사용하여 다른 사용자를 생성하려면 passwd내 비밀번호를 알아야 합니다. 이로 인해 문제가 발생합니다. 하지만 저는 루트이기 때문에 /bin/디렉토리에 있는 임의의 바이너리를 대체할 수 있습니까? passwd소스 코드를 수정하고 컴파일한 후 원본을 새 코드로 바꾸면 됩니다. 정말 그렇게 간단합니까? 예방 조치가 있나요?

내 테스트 시스템은 다음과 같습니다. FreeBSD 11.0+Ubuntu 18.04

답변1

내가 본 대부분의 Linux는 레거시 비밀번호를 passwd요구하지 않도록 구성되었습니다 .root

root@xxx ~# passwd root
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

물어보거나 수동으로 편집 하더라도 passwd시도할 수 있으며 ( 비밀번호 해시는 두 번째 필드, 두 콜론 사이의 긴 문자 소개) 먼저 해시를 계산해야 합니다. 이 작업을 수행하는 도구는 다음과 같습니다.chpasswd/etc/passwd/etc/shadowopenssl

$ echo foobar | openssl passwd -1 -stdin
$1$G/nr44th$wn16q7ITSvfrNq4amDfzn1

(실제로는 MD5기반 $1$해시를 사용해서는 안 되지만 적어도 알려진 값으로 재설정한 후 해시를 변경하는 데 사용할 수 있기 때문에 문제가 되지 않습니다 passwd.)

관련 정보