Omm*_*mmm 3 security root username windows-subsystem-for-linux
我忘记了 WSL 中的 Ubuntu 用户密码,但我可以通过以下方式重置它:
wsl -u root,然后(在 Ubuntu 中),passwd my_username我无需提供旧密码即可更改密码。它确实有效,但这不是安全漏洞吗?我实际上是 Linux/Unix 新手,所以我想到了这个问题......
这是一个很好的问题 - 无论您是新手还是经验丰富,评估系统的安全性都是一项有价值的练习,恕我直言。
我个人多次思考过这个(以及这个问题的略微不同形式)特定问题,但我还没有找到可以利用此功能的明确攻击向量。
这里有几件事需要记住:
您的 WSL 实例使用您的Windows用户的权限运行。
即使您在 Ubuntu 中运行,您也无法对Windowsroot中的任何文件进行普通 Windows 用户无法进行的更改。例如:
/mnt/c/<your_Windows_user>/Documents(作为root普通用户)/mnt/c/Windows/gdi32.dll,因为即使通过文件资源管理器也无法执行此操作,除非您在管理会话中运行(不要这样做!)。同样,这与普通 Windows 用户已经可以(和不能)执行的操作没有什么不同。
您的 Windows 用户可以完全控制 WSL(以及任何其他发行版)中的 Ubuntu。
这类似于虚拟机或任何容器技术的工作方式。由于您是运行 WSL 的Windows用户,因此您已经能够:
wsl --unregister(不要这样做!).vhdx) 的完全访问权限,可以将其复制到另一台计算机、检查它、修改它等。root而且,正如您所发现的,通过运行为(无需密码)来更改用户的密码。因为您是运行 WSL 的 Windows 用户,所以您已经可以用它做任何您想做的事情。 WSL 根本没有理由要求您使用密码“登录”Ubuntu。
即使在“纯 Ubuntu”中也存在其他类似的场景——运行 Docker 或 Podman(或其他)容器可以让您完全控制该容器。您可以在该容器内创建用户、创建或删除文件等。当您像在 Docker 内部一样启动 Ubuntu Docker 容器时,不需要密码root(等);就像在 WSL 上启动 Ubuntu 时不需要密码一样root。
现实情况是,如果攻击者获得对您的系统的足够访问权限,以您的 Windows 用户身份运行任意代码,那么他们就已经“获胜”,无论他们是否能够访问在其中运行的 Ubuntu。在这种情况下,强制您使用密码在 WSL 中“登录”Ubuntu(无论是作为root用户还是其他用户)不会添加任何额外的防御措施。
| 归档时间: |
|
| 查看次数: |
9833 次 |
| 最近记录: |