我在WSL中忘记了Ubuntu用户的密码,但是我能够通过以下方式重置它:
wsl -u root
,然后(在Ubuntu内部),passwd my_username
我可以在不提供旧密码的情况下更改我的密码。它起了作用,但这难道不是安全方面的漏洞吗?我是Linux/Unix的新手,所以我想到了这个问题.
发布于 2022-10-19 01:27:07
这是一个很好的问题--不管你是多么的新鲜或有经验,评估你的系统的安全性是一个很有价值的练习,IMHO。
我本人也曾多次考虑过这个问题(以及这种问题的一些不同的形式),但我还没有找到一个可以利用这种能力的明确攻击矢量。
这里有几件事要记住:
root
的身份运行,也不能对您的普通Windows用户无法更改的任何文件进行更改。例如:/mnt/c/<your_Windows_user>/Documents
中的文件( root
或普通用户)。/mnt/c/Windows/gdi32.dll
),因为除非在管理会话中运行(不要这样做!),否则即使通过文件资源管理器( files )也无法修改。同样,这与您的正常Windows用户可以(也不能)已经做的没有什么不同。
wsl --unregister
命令删除Ubuntu实例(不要这样做!).vhdx
),可以将其复制到另一台计算机,检查它,修改它等等。root
的形式运行(不需要密码)来更改用户的密码。因为您是运行WSL的Windows用户,所以您已经可以使用它做任何您想做的事情。WSL根本没有理由要求您使用密码登录到Ubuntu。甚至在“纯Ubuntu”中也存在其他类似的场景--运行Docker或Podman (或其他)容器可以让您完全控制该容器。您可以在该容器中创建用户、创建或删除文件等。当您将Ubuntu容器启动为root
inside (et )时,您不需要密码。,就像在WSL上将Ubuntu作为root
启动时不需要密码一样。
事实是,如果攻击者获得足够的访问权限,可以以Windows用户的身份运行任意代码,那么他们已经“获胜”了,不管他们是否能够访问运行在其中的Ubuntu。强迫您使用密码在WSL中“登录”Ubuntu (无论是作为root
还是其他用户)在这个场景中不会添加任何额外的防御措施。
https://askubuntu.com/questions/1436089
复制相似问题