첫째, 내가 이미 알고 있는 정보가 포함된 답변을 얻기 전에, 예, 슈퍼유저가 비밀번호를 재설정할 수 있다는 것을 알고, 예, 슈퍼유저가 비밀번호를 몰라도 다른 사용자로 로그인할 수 있다는 것을 알고 있습니다.
또한 암호화된 비밀번호는 특수 프로그램을 사용하여 해독할 수 있다는 것도 알고 있습니다. 나는 아무것도 해독하지 않고 사용자가 입력한 일반 텍스트 비밀번호를 직접 얻는 것에 대해 이야기하고 있습니다.
물론 일반 키로거도 이 작업을 수행할 수 있다고 생각하지만 출력에는 비밀번호와 관련되지 않은 정크가 많이 있을 것이며 이러한 사용을 방지하기 위해 보안 기능이 내장되어 있을 수도 있습니다.
사용자가 비밀번호를 변경하고 정보가 암호화되기 전에 "가로채기"할 때 특별히 활성화되는 키로거를 컴퓨터에 루트가 배치할 수 있습니까? 그런 다음 이 정보를 루트 홈 디렉터리의 비밀 파일로 보낼 수 있습니다.
답변1
물론이죠.
수퍼유저는 사용자의 비밀번호( login
, passwd
, ...)를 읽는 프로그램을 해당 작업을 수행하고 비밀번호를 로그에 기록하는 버전으로 대체할 수 있습니다.
ls
또한 슈퍼유저는 md5sum
프로그램 작동 방식을 수정하는 커널로 커널을 교체하여 lsof
수정된 프로그램이 일반 프로그램처럼 보인다고 보고하여 시스템 내부에서 수정되었음을 감지하는 것이 불가능하도록 할 수도 있습니다. 디스크 이미지를 보는 등 외부에서 자세히 관찰하면 수정 사항을 감지할 수 있습니다.
수퍼유저는 더 나아가 시스템 시작 시 악성 코드를 주입하기 위해 시스템의 주요 주변 장치 중 하나에 있는 특정 펌웨어를 수정할 수도 있습니다. 이는 상당히 높은 수준의 복잡성을 나타내지만 적어도 원칙적으로는 가능합니다.
컴퓨터 관리자를 신뢰할 수 없다면 거기에 비밀번호를 입력하지 마세요.
답변2
이는 사용자가 비밀번호를 변경하는 방법에 따라 다릅니다. 사용자가 단지 사용하고 있었다면 실제 바이너리를 손상된 등가물로 교체하는 것은 어렵지 않을 것입니다 passwd
. 대부분의 사람들은 그것이 바이너리인지 쉘 스크립트인지 또는 합법적인 소스에서 나온 것인지 너무 많이 확인하는 습관이 없습니다. 그러나 결국 가장 중요한 것은 사용자는 자신이 가장 강력한 사용자이며 자신에게 속하지 않은 시스템을 100% 신뢰할 수 없다는 점을 이해해야 한다는 것입니다.root
passwd
passwd
root
답변3
1-2-3처럼 간단합니다.
- 사용자가 사용 중인 셸의 소스 코드를 가져옵니다.
- 모든 내용이 기록되거나 이후 문자만 기록되도록 수정하세요.
passwd
- 기존 쉘 컴파일 및 교체
답변4
이론적으로는 그렇습니다. 수퍼유저는 실행 중인 시스템의 모든 항목을 수정할 수 있습니다. 이는 또한 해시되기 전에 웹 사이트에 암호를 보내는 호출을 추가하는 등 커널 및 모든 로그인 관련 바이너리를 의미합니다.
사실, 당신이 지적했듯이 이것은 쓸모가 없기 때문에 이런 일은 아마도 결코 일어나지 않을 것입니다.