Ubuntu 9.04上的漏洞演示


15

对于一门有关IT安全的课程,我想向学生展示特权升级。为此,我浏览了exploit/linux/localMetasploit框架中的列表,发现(包括其他内容)exploit/linux/local/sock_sendpage自2009年8月起。

从2009年4月起,我使用32位Ubuntu Server 9.04(http://old-releases.ubuntu.com/releases/9.04/ubuntu-9.04-server-amd64.iso)设置了VM 。根据漏洞描述uname -r2.6.28-11-generic

相信自2001年5月以来的所有Linux 2.4 / 2.6版本都将受到影响:2.4.4至2.4.37.4(含);2.6.0至2.6.30.4(含)

因此,看来我设置的Ubuntu服务器应该适合演示。但是,我无法使其正常运行。

我在服务器上添加了一个(常规)用户,并且SSH访问有效。在Metasploit框架内,我可以使用创建SSH会话auxiliary/scanner/ssh/ssh_login。但是,当我运行漏洞利用程序时,

[*] Writing exploit executable to /tmp/mlcpzP6t (4069 bytes)

[*] Exploit completed, but no session was created.

我没有任何进一步的信息,即使设置DEBUG_EXPLOIT为true也是如此。/tmp是writabe,也来自Metasploit SSH会话:

$ sessions -c "touch /tmp/test.txt"
[*] Running 'touch /tmp/test.txt' on shell session 1 ([redacted])

$ sessions -c "ls -l /tmp"
[*] Running 'ls -l /tmp' on shell session 1 ([redacted])

total 0

-rw-r--r-- 1 [redacted] [redacted] 0 2016-03-28 09:44 test.txt

我还尝试设置WriteableDir服务器上用户的主目录,但未做任何更改。我在这里想念什么?这个版本的Ubuntu服务器(我故意没有更新!)是否不容易受到攻击?


至少,您应该检查VM的日志。
Klaatu von Schlacker '16

@KlaatuvonSchlacker:我到底在找什么?我只是重新运行了漏洞利用程序,没有任何新的条目添加到任一VM的日志中。
Andreas Unterweger '16

Answers:


16

9.04发行版的支持一直持续到2010年10月23日。您发现的漏洞是 2009 8月报告的。由于该发行版仍是当前发行版并受当时支持,因此似乎已经合理,因此已对ISO进行了修补,而您下载的版本是不再脆弱。

此外,您似乎已经很好地证明了它并不脆弱。毕竟,您尝试了该漏洞利用程序,但看起来好像失败了。

为什么不尝试使用较新的漏洞?例如CVE-2013-2094之的东西也应该影响Ubuntu


似乎没有CVE-2013-2094的Metasploit模块。Metasploit模块是否还有其他可能起作用的漏洞利用方法?从2011年开始的exploit / linux / local / pkexec似乎很有希望,但其结果与exploit / linux / local / sock_sendpage相同
安德烈亚斯·安特维格

@AndreasUnterweger哦,对不起,我没有意识到没有模块。我只是通过搜索“特权升级”随机发现的。至于pkexec漏洞利用,您检查过版本libpolkit-backend-1吗?您链接到的页面指出,该漏洞需要的版本早于0.94-1ubuntu1.1
terdon

根据dpkg -s libpolkit2,安装的版本是0.9-2ubuntu1
Andreas Unterweger

在这种情况下,@ AndreasUnterweger,我不知道。抱歉。您最好在Information Security上发布一个问题,询问一个已知有效的特定特权升级漏洞利用和分发组合。
terdon

@AndreasUnterweger和ThorbjørnRavnAndersen请通过此讨论聊天。我已经将您以前的评论移到了那里。
terdon

1

这不会回答您的特定查询,而是为您提供更多的私人ESC选项,以向您的学生展示...

您可能还需要考虑以下两个管理员的错误配置,这些配置可能会导致在'nix上使用priv esc(还有许多其他方法来错误配置'nix盒,这可能会使priv esc出现,因此请考虑一下胃口) ....

  1. root / root用户组(find / -uid 0 -perm -4000 -type f 2>/dev/nullfind / -uid 0 -perm -2000 -type f 2>/dev/null)拥有的suid和guid二进制文件,并查看它们是否可全局写入以允许低特权用户更改它们;您的低特权用户可以写入它们所在的文件夹,以进行可能的库路径注入。它们使用的库是什么-可以更改的那些库:使用以下命令之一检查二进制文件中any DT_RPATHDT_RUNPATHELF标头的值:

    • objdump -x ...
    • readelf -a ...
    • scanelf (来自PaX)
    • elfdump (来自太阳)
    • readelf -a binary | grep PATH
  2. sudoers 缺陷

    • NOPASSWD -当用户忘记锁定屏幕时,本地攻击者可以使用此访问权限在操作系统内提升其权限

    • Sudoers中缺少可执行文件- /etc/sudoers文件不存在。如果创建了可执行文件,则可以通过sudo以root身份运行它们,这将允许特权升级。

    • 孤立的Sudoers条目- /etc/sudoers文件中可能包含许多孤立的条目,这些/etc/passwd文件中没有配置相应的帐户。如果使用一个孤立名称创建用户,它将为用户提供一种将特权升级为完全根访问权限的方法。

    • 有些程序不应该像sudo一样vi使用:eCtrl o:w来访问/etc/shadow

    • sudoers文件中使用的命令错误/错误-我经常httpd在sudoers中看到-因此请尝试以具有sudo访问权限的低特权用户运行该命令(sudo -l或者sudo -ll将显示用户可以执行的操作):sudo /usr/bin/httpd -t /etc/shadow并查看错误。

    • sudoers中提到的命令和文件的文件权限很弱-请参阅我前面关于root拥有的suid和guid位二进制文​​件的段落


顺便说一句,如果metasploit模块不太正确,您还可以尝试使用Spender的metasploit模块原始代码:grsecurity.net/~spender/exploits
Richard Braganza

非常感谢您列出这些物品。但是,我担心这两组项目都需要学生提供过多的背景信息和背景信息-他们在学习的这一点上几乎不了解Linux。我想向他们展示特权升级是真实的事情,并且他们应该始终修补将要/将负责的系统。具有讽刺意味的是,到目前为止,我未能证明上述的实际特权升级。编辑:我将看一看Spender的代码,但不幸的是,当前时间已用完。非常感谢您提供的链接。
Andreas Unterweger '16
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.