如果问题真的很简单,请原谅,但是我还没有找到解决方案。
我正在探索 Kali Linux 在流行的 Metasploitable 易受攻击服务器上的利用潜力。这是通过在 Virtualbox 中通过 NAT 网络连接两者来完成的。
我完成了 Nessus 扫描,结果显示 Metasploitable 机器容易受到 NFS 挂载漏洞的攻击。我进一步研究了这个问题,发现这似乎是通过 SSH 获得无密码访问权限的简单方法。
我已经通过暴力破解三个帐户(用户、postgres 和 msfadmin)的密码获得了 SSH 访问权限,然而,我想更进一步了解 NFS 如何导致漏洞。
我按照本教程中的步骤进行操作:https://www.youtube.com/watch?v=i0_t3zl_X_E
我曾经ssh-keygen
生成一个新的 RSA 密钥:
我将 RSA 密钥复制到 Metasploitable 的 authorized_keys 文件中
我验证了在 metasploitable 端已经添加了新的密钥:
现在我应该(根据视频)能够使用 ssh 通过 ssh 登录[电子邮件保护]卸载文件后
我收到以下错误:
我研究过为什么会发生这种情况,我发现的一个答案与文件权限有关,或者使用命令setsebool -P use_nfs_home_dirs 1
我尝试使用它chmod
来更改权限,但没有成功,并且最终在某个时候破坏了虚拟机(这表明我缺乏理解,但是尝试所有不同的 chmod 选项而不知道哪一个可行可能会花费很长时间)。
setsebool
也没有用,因为我无法使用 apt-get install 安装它所在的包policycoreutils
(404 错误,请尝试使用 apt-get update 或 --fix-missing)
但是,显然我能够使用破解的密码通过 SSH 进入系统,尽管我仍然会收到相同的错误,直到我使用标志-oHostKeyAlgorithms=+ssh-rsa
。请注意,这在添加到时不起作用,仅在使用时才起作用ssh [email protected]
ssh -oHostKeyAlgorithms+=ssh-rsa [email protected]
本质上,我想知道为什么 SSH 无法识别我的公钥已经在文件authorized_keys
中
非常感谢任何能给我指明正确方向的人。
答案1
我想知道为什么 SSH 无法识别我的公钥已经在 authorized_keys 文件中
一方面,你收到的错误消息与主机密钥有关——不是你正在使用的那个,而是服务器标识(并进入您的“known_hosts”文件)。该虚拟机上的 sshd 服务仅支持新客户端不再接受的旧签名算法。
另一方面,两个方向都支持相同的算法。如果服务器不支持使用其主机密钥进行 rsa-sha2 签名,则它还不支持使用 rsa-sha2 来验证您从用户密钥发送的签名。因此,仅允许旧版 ssh-rsa 通过是不够的HostKeyAlgorithms
– 您还需要允许它通过PubkeyAcceptedAlgorithms
,否则客户端甚至不会提供自己的密钥,因为它认为所有可用的算法都不受支持。