Matasano是如何被黑客入侵的?

use*_*898 10 security hacking vulnerabilities

来自:http : //seclists.org/fulldisclosure/2009/Jul/0388.html

如果我从以下帖子中理解得最好:http : //news.ycombinator.com/item?id=723798 Matasano 的人让 sshd 互联网可访问 - 对此有任何建议的解决方案(从编程的角度来看)?

小智 34

Matasano是如何被黑客入侵的?

从帖子中的信息到完全披露,这是不可能回答的。然而,推测总是很有趣,因为他们确实提供了一些信息-

# ./th3_f1n4l_s0lut10n www.matasano.com
[-] 连接到 69.61.87.163:22..
[/] 寻找有效的非 root 用户.. adam
******** R3D4CT3D h4h4h4h4 ********

他们在th3_f1n41_s01ut10n连接到 ssh 端口的 Matasano 服务器上运行他们的二进制文件“ ”。它通过一些未知的方式找到了一个有效的非 root 用户,并且对输出的其余部分进行了编辑。

# ./th3_f1n4l_s0lut10n -u adam -t 3 www.matasano.com
[*] 209.112.118.10:3338 上的连接监听器..
[!] SSH2_MSG_SERVICE_ACCEPT [OpenSSH_4.5p1, OpenSSL 0.9.8g 2007 年 10 月 19 日] 

使用找到的用户名再次运行二进制文件,该用户名登录并通过端口 3338 连接回他们的服务器(希望没有在他们的名字中注册......)。

adam_at_www:~$ uname -a
Linux www 2.6.20.1-1-686 #1 SMP Sun Mar 4 12:44:55 UTC 2007 i686 GNU/Linux
**** h4h4h4hh4h4h4 l3tz us3 m0r3 !0D4Y!H4H4H4H4H4H4H4 ****

他们可能暗示他们对这个内核有一个 0 天的时间,当你考虑这家公司的股票交易时,这个内核已经很老了。

adam_at_www:~$ cd /tmp
*********** B0R1NG ***********
root_at_www:~# cat /etc/shadow 

哎呀 - 突然之间,用户现在是 root。他们在 /tmp 中有一个本地提权漏洞,这可能是他们所指的 0 天。

所以这里至少有两个漏洞利用 - OpenSSH 利用获取系统上的有效非 root 用户,并以该用户身份登录,然后进行本地权限提升。

考虑到 OpenSSH 自 4.5 版以来存在一些已知的安全问题:

OpenSSH 的安全页面

  • 5.2 版之前的 OpenSSH 容易受到 CPNI-957037“Plaintext Recovery Attack Against SSH”中描述的协议弱点的影响。然而,根据可用的有限信息,这种攻击在大多数情况下似乎是不可行的。有关更多信息,请参阅 cbc.adv 建议和 OpenSSH 5.2 发行说明。
  • OpenSSH 4.9 和更新版本不会~/.ssh/rc对其命令已被 sshd_config(5) ForceCommand 指令覆盖的会话执行。这是一个记录在案但不安全的行为(在 OpenSSH 4.9 发行说明中描述)。
  • 如 OpenSSH 4.7 发行说明中所述,当不受信任的 cookie 生成失败(例如,由于故意资源耗尽)时,OpenSSH 4.7 和更新版本不会回退到创建受信任的 X11 身份验证 cookie。

我猜这个较旧的 Linux 内核和较旧的 SSH 守护程序为他们做了。此外,它运行在他们的 www 服务器上,该服务器可在 Internet 上使用,在我看来,这是一件非常有信心的事情。闯进来的人,显然是想给他们难堪。

如何防止这些攻击?

这可以通过主动管理来防止 - 确保任何面向 Internet 的服务都打补丁,并限制可以连接的人数,而不是允许人们从任何地方连接。这一事件加重了安全系统管理困难的教训,需要业务的奉献精神为 IT 提供时间来保持修补程序 - 实际上,这不是容易发生的事情,至少在较小的公司中是这样。

最好使用束手无策的方法 - 使用公钥身份验证、在 ssh 守护进程上列入白名单、两因素身份验证、IP 限制和/或将所有内容置于 VPN 之后是锁定它的可能途径。

我想我知道明天我将在工作中做什么。:)

  • 需要有效的公钥才能通过 OpenSSH 登录。不是傻瓜证明,但有帮助。好帖子顺便说一句。 (2认同)