![저는 루트인데 비밀번호를 모릅니다. 제한 사항을 우회하려면 /bin/의 바이너리를 교체하세요.](https://linux55.com/image/158668/%EC%A0%80%EB%8A%94%20%EB%A3%A8%ED%8A%B8%EC%9D%B8%EB%8D%B0%20%EB%B9%84%EB%B0%80%EB%B2%88%ED%98%B8%EB%A5%BC%20%EB%AA%A8%EB%A6%85%EB%8B%88%EB%8B%A4.%20%EC%A0%9C%ED%95%9C%20%EC%82%AC%ED%95%AD%EC%9D%84%20%EC%9A%B0%ED%9A%8C%ED%95%98%EB%A0%A4%EB%A9%B4%20%2Fbin%2F%EC%9D%98%20%EB%B0%94%EC%9D%B4%EB%84%88%EB%A6%AC%EB%A5%BC%20%EA%B5%90%EC%B2%B4%ED%95%98%EC%84%B8%EC%9A%94..png)
활성 루트 계정이 있지만 비밀번호를 모릅니다.
내 비밀번호를 변경하거나 도구를 사용하여 다른 사용자를 생성하려면 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/shadow
openssl
$ echo foobar | openssl passwd -1 -stdin
$1$G/nr44th$wn16q7ITSvfrNq4amDfzn1
(실제로는 MD5
기반 $1$
해시를 사용해서는 안 되지만 적어도 알려진 값으로 재설정한 후 해시를 변경하는 데 사용할 수 있기 때문에 문제가 되지 않습니다 passwd
.)