对于 IT 安全课程,我想向学生演示权限升级。为此,我浏览了exploit/linux/local
Metasploit 框架中的列表,发现(除其他外)exploit/linux/local/sock_sendpage
从 2009 年 8 月开始。
我设置了一个具有 32 位 Ubuntu Server 9.04 的虚拟机(http://old-releases.ubuntu.com/releases/9.04/ubuntu-9.04-server-amd64.iso)从 2009 年 4 月开始。uname -r
给我2.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 框架内,我可以使用auxiliary/scanner/ssh/ssh_login
.然而,当我运行漏洞利用程序时,我得到了
[*] Writing exploit executable to /tmp/mlcpzP6t (4069 bytes)
[*] Exploit completed, but no session was created.
即使设置DEBUG_EXPLOIT
为 true,我也没有得到任何进一步的信息。/tmp
是可写的,也是在 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 服务器(我故意不更新!)不容易受到攻击吗?
答案1
9.04 版本受到支持截至 2010 年 10 月 23 日。您发现的漏洞是报道于2009 年 8 月。这似乎是合理的,因为该版本仍然是最新的并且当时受支持,ISO 已修补并且您下载的是不再容易受到攻击的版本。
此外,您似乎已经很好地证明了它并不脆弱。毕竟,您尝试了该漏洞利用,但看起来失败了。
为什么不尝试新的漏洞利用呢?就像是CVE-2013-2094哪个应该也影响Ubuntu, 例如。
答案2
这不会回答您的具体查询,而是为您提供更多的 priv esc 选择来向您的学生展示......
您可能还想考虑以下两个管理员错误配置,它们可能会导致 'nix 上的 priv esc(还有许多其他方法可以错误配置 'nix 盒子,从而允许 priv esc,所以请考虑这是一种刺激) ....
find / -uid 0 -perm -4000 -type f 2>/dev/null
root/root 组(和)拥有的 suid 和 GUID 二进制文件find / -uid 0 -perm -2000 -type f 2>/dev/null
,并查看它们是否是全局可写的,以允许低权限用户更改它们;它们所在的文件夹可由低权限用户写入 - 用于可能的库路径注入。他们使用的库怎么样 - 是否可以更改:使用以下命令之一检查二进制文件中的任何DT_RPATH
和ELF 标头的值:DT_RUNPATH
objdump -x
...readelf -a
...scanelf
(来自PaX)elfdump
(来自太阳报)readelf -a binary | grep PATH
sudoers
缺陷NOPASSWD
- 当用户忘记锁定屏幕时,本地攻击者可以使用此访问权限来升级他们在操作系统中的权限Sudoers 中缺少可执行文件 -
/etc/sudoers
文件中的某些可执行文件不存在。如果创建了可执行文件,则可以通过 sudo 作为 root 运行它们,这将允许权限升级。孤立的 Sudoers 条目 -
/etc/sudoers
文件可能包含许多孤立的条目,文件中没有为其配置相应的帐户/etc/passwd
。如果使用其中一个孤立名称创建用户,它将为用户提供一种将权限升级到完全 root 访问权限的方法。有些程序不应该像 sudo 那样
vi
,使用:e
或Ctrl o 并使用:w
来访问/etc/shadow
。sudoers 文件中使用了错误的想法/错误的命令 - 我经常
httpd
在 sudoers 中看到 - 因此尝试以具有 sudo 访问权限的低权限用户运行该命令(sudo -l
或sudo -ll
将显示用户可以执行的操作):sudo /usr/bin/httpd -t /etc/shadow
并查看错误。sudoers 中提到的命令和文件的文件权限很弱 - 请参阅我之前关于 root 拥有的 suid 和 guid 位二进制文件的段落