点击此处查看本系列的前几部分
在本系列的这一部分中,我将介绍另外 3 种技术。
注意:这是Linux 权限提升系列的最后一部分,因为我涵盖了几乎所有重要的攻击向量(A/C 到 OSCP),但如果我发现任何新的向量/技术,我肯定会更新本系列。
13 权限提升:本地用户帐户暴力破解
用户是Linux 操作系统中的一个实体,可以操纵文件并执行其他一些操作。每个用户都被分配一个唯一的 ID 和属性。Linux中每个用户的密码以hash格式存储在/etc/shadow中。
理论
利用此方法提权很简单;(仅当没有其他攻击媒介可行时才使用此技术,因为此技术需要时间/资源,创建大量日志并且基于运气)
1. 查看系统当前所有用户。
2. 收集有关目标密码策略的所有可能信息(这部分是可选的,但很有用,因为我们可以缩小第3部分中字典/单词列表的搜索范围)
3. 对系统上的特定用户发起攻击。
实践
场景设定:系统中发现1个用户“luke”
此外,目标文件服务器上有一个文件,它向我们提供了目标网络中的密码策略的提示。
现在让我们尝试暴力破解用户“luke”的密码。这里用来暴力破解本地用户“luke”账户的工具是sucrack。
https://github.com/hemp3l/sucrack
现在我们可以切换到Luke用户来进一步将我们的权限提升到root或其他用户。
14 权限提升:二进制文件
二进制包是包含(预构建)可执行文件的应用程序包,从源代码构建,并且不可逆。
利用此方法提权很简单;
-
搜索系统中所有已安装的二进制文件
2. 检查更容易出现漏洞的二进制版本,例如 exim、pkexec、su 等。
3. 查找或编写漏洞利用代码以获得该二进制文件所有者权限。
实践
在这里,我发现了一个 pkexec 程序,默认情况下具有 root 的 suid 位,但在这里我们不想滥用 suid,而是让我们检查这个 pkexec 二进制文件,因为这个二进制文件过去出现过漏洞。
我使用工具自动检查当前的 pkexec 二进制文件是否存在任何漏洞,或者是否容易受到CVE-2021–4034 的攻击。(最流行的 CVE 被称为“Pwnkit”,它影响了几乎所有 Linux 机器。此漏洞发生在 polkit 重,出现在所有Linux系统上默认安装的polkit实用程序pkexec中。
https://github.com/cyberark/PwnKit-Hunter
我使用这个漏洞利用代码来利用这个漏洞。
https://github.com/arthepsy/CVE-2021-4034
我们就获得了Root权限。同样,我们可以利用 Linux 中安装的其他易受攻击的二进制文件,例如 su、adduser、sudo、mount 等。
15 权限提升:共享对象注入
理论
利用共享对象注入方法提权很简单;
1. 使用 ltrace 或 strace 检查使用任何共享对象 (.so) 库的程序或服务(这两个程序都允许我们监视/跟踪该执行程序调用的所有系统调用或共享对象库)。
2. 如果找到任何共享对象库,则使用相同的库名称创建有效负载。
3. 再次执行该程序,这次它将调用您的有效负载共享对象而不是原始对象。
实践
场景设定:在这里,我们发现了一个具有 root suid 的二进制文件(但同样不需要在这里滥用 suid,因为我们要寻找共享对象)。
所以我们在后台运行这个二进制文件并跟踪进程。
我们发现一个共享对象(libcalc.so)正在被二进制文件(suid-so)访问,另一件好事是这个.so没有打开,因为它不存在于系统中。因此,让我们创建一个名为libcalc.so 的有效负载。
创建有效负载,之后只需编译它并再次执行二进制文件(suid-so)。
这次二进制文件 (suid-so) 将调用我们的有效负载(它会生成一个 shell),但该 shell 将是 root,因为二进制文件 (suid-so) 设置了 root suid 位,因此它以 root 权限运行。
参考及来源:
https://medium.com/bugbountywriteup/privileges-escalation-techniques-basic-to-advanced-in-linux-46ee0d67118d
16 免责&版权声明
原文始发于微信公众号(安全小白团):Linux权限提升(基础到高级)0x5(终章)
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论