一个知道你是谁的ssh服务器 $ ssh whoami.filippo.io

作者:Sec-Labs | 发布时间:

项目地址

https://github.com/FiloSottile/whoami.filippo.io

whoami.filippo.io网站

一个知道你是谁的 ssh 服务器。

尝试一下(它是无害的)

ssh whoami.filippo.io

ED25519 按键指纹为 SHA256:qGAqPqtlvFBCt4LfMME3IgJqZWlcrlBMxNmGjhLVYzY .
RSA 密钥指纹是 SHA256:O6zDQjQws92wQSA41wXusKquKMuugPVM/oBZXNmfyvI .

怎么运行的

当 ssh 尝试通过公钥进行身份验证时,它会将您所有的公钥一一发送给服务器,直到服务器接受一个。 可以利用这一点来枚举所有客户端安装的公钥。

另一方面,GitHub 允许每个人下载用户的公钥(这有时非常方便)。 Ben Cox 利用了这一点并 构建了所有 GitHub 公钥的数据集

这是一个非常普通的 golang.org/x/crypto/ssh Go 服务器,它将发布 (publickey,keyboard-interactive) 身份验证。 它不会接受任何公钥,但会记下它们。 一旦客户端完成了公钥,它将尝试 keyboard-interactive ,服务器将接受而不发送任何挑战,因此不需要用户交互。

然后它让你打开一个 shell+PTY,使用公钥和 Ben 的数据库找到你的用户名,向 GitHub API 询问你的真实姓名,打印所有这些并关闭终端。

所有有趣的部分都在 server.go 中。

我该如何阻止它?

如果此行为对您来说有问题,您可以告诉 ssh 默认情况下不要向服务器提供您的公钥。

在你的末尾添加这些行 ~/.ssh/config (在其他“主机”指令之后)

Host *
    PubkeyAuthentication no
    IdentitiesOnly yes

然后指定每个主机应该使用什么密钥

Host example.com
    PubkeyAuthentication yes
    IdentityFile ~/.ssh/id_rsa
    # IdentitiesOnly yes # Enable ssh-agent (PKCS11 etc.) keys

如果你愿意,你可以使用不同的键,这样它们就不能链接在一起

Host github.com
    PubkeyAuthentication yes
    IdentityFile ~/.ssh/github_id_rsa

 

标签:工具分享