如何嗅探 SSH 密码-网络攻防学习社区-安全圈子-FancyPig's blog

如何嗅探 SSH 密码

原文地址

https://networklogician.com/2021/04/17/sniffing-ssh-passwords/

是否可以通过 ssh 以明文形式获取某人的密码? 是的! 当然,当ssh 的目的 是防止这种情况发生时,这是没有意义的。 好吧,我说的是直接从用户连接的服务器监控会话,而不是通过网络。

尽管通过网络的流量是加密的,但在服务器端, sshd 将分叉出一个子进程,在解密过程中密码是可读的。 这是sshd 的一个已知功能 ,可以通过 对该进程运行 strace来查看。

首先,让我们找到确切的 sshd pid。 您可以尝试使用“ pgrep -o sshd ”获取最旧的 pid,但我已经看到在sshd 重启后报告维护的较旧子进程的实例 。 所以,我们选择,

# pgrep -l sshd
6235 sshd

在我们的测试服务器上,我们将运行 strace 并 使用 sshd pid 指定 -p-f 标志 将监视所有子进程, -e 将跟踪所需的系统调用。 可用的选项是 trace=open,close,read,write 。 但是,我们将使用 just write 来减少噪音。 最后,将输出 ( -o capture ) 保存到文件中。

# strace -f -p 6235 -e trace=write -o capture

现在,从我们的客户端机器,我们将 ssh 进入服务器并立即退出。

[robert@c1.networklogician.com ~]$ ssh -l robert s1.networklogician.com
robert@s1.networklogician.com's password: 
Last login: Sat Apr 10 12:46:59 2021 from c1.networklogician.com
[robert@s1.networklogician.com ~]$ exit
logout

 

快速搜索用户名后,您将在下面几行找到明文密码,

4c14d0c9cd014757

 

最后的想法

您可能会注意到,为了在 sshd 上运行 strace ,您已经需要 root 访问权限并想, “这有什么意义?” ! 虽然可能有很多需要恢复无法更改的系统服务密码的示例,但我用它来劝阻将 Linux 系统集成到 Active Directory 中。

首先,在许多组织中,有单独的组来管理 Windows 和 Unix/Linux 系统,我从来不希望 Windows 管理员允许他们自己访问 AD Linux 组并控制超出他们职责范围的系统。 Linux 系统应该使用单独的目录服务……

……更重要的是,如果其中一台 Linux 服务器受到威胁, 您可能希望防止网络中的 横向移动到您的 Windows 系统。 我通过将 Linux 服务器加入 AD 然后捕获 Windows 域管理员用户的密码凭据来演示这一点。 游戏结束。

请登录后发表评论

    没有回复内容