Matasano是如何被黑客入侵的?

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

如果我从http://news.ycombinator.com/item?id=723798的post中了解最好的话,那么Matasano的工作人员就可以使用sshd internet访问 – 为此提供的任何解决scheme(从编程的angular度来看)?

Matasano是如何被黑客入侵的?

从“全面披露”这篇文章中的信息来看,这是不可能的。 然而,推测总是很有趣的,因为他们确实提供了一些信息 –

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

他们运行他们的二进制“ th3_f1n41_s01ut10n ”对Matasano的服务器,连接到SSH端口。 它通过一些未知的手段find一个有效的非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日] 

二进制再次运行使用find的用户名,login并连接回到他们的服务器端口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 

哎呀 – 突然之间用户现在是根。 他们在/ tmp中有一个本地特权升级漏洞,可能是他们提到的0天。

所以这里至less有两个漏洞攻击 – OpenSSH利用漏洞在系统上获取有效的非root用户,并以该用户身份login,然后进行本地特权升级。

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

从OpenSSH的安全页面 :

  • 5.2之前的OpenSSH容易受到CPNI-957037“针对SSH的明文恢复攻击”中描述的协议弱点的影响。 然而,基于有限的信息,似乎这种描述的攻击在大多数情况下是不可行的。 有关更多信息,请参阅cbc.adv咨询和OpenSSH 5.2发行说明。
  • OpenSSH 4.9和更高版本不会对其命令已被sshd_config(5)ForceCommand指令覆盖的会话执行~/.ssh/rc 。 这是一个logging,但不安全的行为(在OpenSSH 4.9发行说明中描述)。
  • 如OpenSSH 4.7发行说明中所述,OpenSSH 4.7及更高版本不会在不可信cookie生成失败(例如,由于故意的资源耗尽)而创build受信任的X11身份validationCookie。

我想这个较旧的Linux内核和较旧的SSH守护进程是为他们做的。 而且,它运行在互联网上的www服务器上,这对我来说是非常有信心的。 明显的破门的人想让他们难堪。

如何防止这些攻击?

主动pipe理可以防止这种情况的发生 – 确保所有面向互联网的服务都得到了修补,限制了可以连接的人数,而不是让人们从任何地方连接。 这个情节加强了安全系统pipe理困难的教训,并且需要企业的专注,为IT提供时间来维持一些事情 – 事实上,至less在小公司中,并非易事。

使用腰带和大括号的方法是最好的 – 使用公钥authentication,白名单上的SSH守护进程,双因素身份validation,IP限制,和/或把所有东西放在VPN后面都是可能的路线来locking它。

我想我知道明天我在做什么工作。 🙂

人们喜欢创造FUD,但似乎他们知道用户已经在那里,也知道他的密码(也许通过暴力或其他方法)。 但是,他们想要看起来很酷,并全面地创造这个大惊小怪。

另一件有趣的事情是,用户adam在一年多的时间内没有login到该框。

(lastlog的输出)

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

所以他可能会保留这个密码(也许是一个坏的)一段时间。

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

为什么你会尝试从编程的angular度来解决这个问题?

您应该从智能服务器pipe理员的angular度来解决它。 在您发布的链接的评论中,有一些很棒的build议,例如使用白名单。

我还想补充一点,因为你在这里问,你很可能绝不是一个安全专家,任何你想写的东西只会增加更多的漏洞。 这真的不是一个编程问题。

保护您的软件免受0天的攻击……这是不可能的。

也许一个好办法是声称你的软件是不可靠的,这将导致白帽试用,并全面披露一切,留下更less的漏洞。 Oracle 10有这个说法,然后在第二天发现了9个新的漏洞。 它现在相当安全。

最可能的是,黑客滥用完美软件的configuration

这让我想起在这台机器上有很多用户使用shell。 这就是他们如何拥有自己的一切,其他一切都是红鲱鱼打算分散注意力。 其中一个最有可能的是在其他shell机器上重新安装了ssh客户端,然后就是游戏结束了。 给每个人的shell帐户,使sshd世界访问只是懒惰和愚蠢的。