权限提升
权限提升
xxshhLinux权限提升
1. 内核提权
相关命令及脚本
- 信息收集
|
|
- 内核漏洞筛选
|
|
MSF
MSF(Metasploit Framework) 是一款非常流行的开源渗透测试框架,提供了大量的工具和模块,用于发现漏洞、开发攻击载荷(payload)、漏洞利用(exploit)、后渗透攻击等,是网络安全领域的强大工具。
|
实例演示 - dirtycow(CVE-2016-5159)
https://www.vulnhub.com/entry/lampiao-1,249/
- 信息收集
|
先用浏览器访问 http://192.168.46.136 ,没发现有用信息:
然后访问 1898 端口:
通过搜索,得知该 CMS 目前有被公开的漏洞,接下来就是漏洞利用阶段。
其它环境如果没有明显信息,要想到用 Wappalyzer 搜集信息。
- Web漏洞利用-MSF对CMS已公开漏洞的利用
- 输入命令
msfconsole
,打开msf框架。 - 输入
search drupal
搜索相关漏洞:
发现个可以利用的漏洞:Drupalgeddon 2 通过 Forms API 属性注入漏洞,攻击者可以在无需身份验证的情况下,直接远程执行任意代码。
- 使用该漏洞利用模块:
|
设置目标 ip 地址及端口:
|
成功获得 Web 权限:
Meterpreter 是 MSF 的一种高级动态扩展payload,用于远程访问和控制受害者主机。它以稳定性和隐蔽性而闻名,并提供了一系列强大的功能。
- 升级临时shell:
首先输入shell
起一个终端,然后利用 htb 靶场用过的升级shell的命令:
|
或者利用 Python 升级shell:
|
- 内核提权
首先信息收集:
利用提权脚本。这里我们还是使用 htb 靶场用过的 linPEAs 自动查找内核漏洞。
在 linpeas.sh 所在目录起一个 http.server,方便目标机器下载:
让目标主机获取 linpeas.sh,并将通过管道传输到 bash 直接执行它:
|
检测到目标主机极易受到脏牛漏洞的攻击,并且给出了 exp 的下载地址(exp要多找多试,每个人写的功能不一样,这里给出的就不合适):
用这个exp : https://github.com/gbonacini/CVE-2016-5195 ,它将强制修改 root 密码为 “dirtyCowFun” 。
相同操作让目标主机获取 dcow.cpp:
|
编译:
|
执行生成的可执行文件:
提权成功:
实例演示 - Pwnkit(CVE-2021-4034)
https://www.vulnhub.com/entry/darkhole-1,724/
- 信息收集
|
- Web 漏洞利用-逻辑漏洞及文件上传漏洞
访问 http://192.168.46.137 ,注册个账号,登录:
提供的是修改密码的功能,url 处有个 get 参数 id=2,将其修改为 1 试试:
抓个包,看到两个 post 参数:
那么把 id 改为1是不是就能修改管理员密码了?
成功登录管理员账号:
接下来就是考察文件上传漏洞了。
后端语言是 PHP:
哥斯拉生成个shell:
有黑名单限制,fuzz 之后发现可以将后缀名改为 phtml 绕过。
连接后门:
虽然哥斯拉有命令执行功能,可以直接上传脚本,但是执行后的响应不太好看。最好还是利用哥斯拉的PMeterpreter 模块反弹 shell 到 msf:
反弹成功:
- 内核提权
步骤和上一个实例相同,详细文字就不写了,直接放图片:
|
但是进行到一步的时候,发现目标系统没有这个工具,安装又需要 root 权限,只能换个 exp:
https://github.com/arthepsy/CVE-2021-4034
|
实例演示 - DirtyPipe(CVE-2022-0847)
https://www.vulnhub.com/entry/matrix-breakout-2-morpheus,757/
- 信息收集
- Web漏洞利用-敏感文件和后门
扫目录看看有没有敏感文件:
|
找到个能操作的页面:
抓包分析一下:
输入的内容被写进 txt 文件里了:
那么可以把这两个参数改成木马和后门文件:
|
|
提示 Usage: ./dirtypipez SUID
常见的 SUID 文件包括 /bin/su
或 /usr/bin/passwd
,这些是提权的潜在目标。
2. 根据 Linux 特性提权
SUID&SUDO
SUID 是一种文件权限设置。用户在执行程序/文件/命令的时候,将获取文件所有者的权限以及所有者的UID和GID。之前的 HTB-Oopsie 靶场就是利用 SUID 特性提权。
|
SUDO 权限是 root 把本来只能超级用户执行的命令赋予普通用户执行。SUDO有两个CVE漏洞(CVE-2019-14287,CVE-2021-3156)。
|
通俗来讲就是当 root 用户赋予一个文件 SUID、SUDO 权限时,这个文件被调用的时候就会享有 root 权限。具体如何利用可以在这个项目里查找对应二进制文件的命令: GTFOBins。例如利用 find 提权:
|
NFS
NFS是一种网络文件共享协议,用于访问远程服务器中的共享资源,默认端口 2049,原生支持类 UNIX/Linux 系统。前面 HTB 靶场遇到过 SMB 协议,也是网络文件共享协议,默认端口 445,原生支持 Windows 系统。
|
既然文件能够同步,那么就可以配合 SUID 提权,例如把本地具有 SUID 权限的 find 上传到共享目录:
但如果双方系统不同,则会报错。解决办法是找一个与目标版本相似的系统,上传这个系统的find,或者自己写一个c语言去调用命令:
|
PATH 变量
参考 HTB-Oopsie 靶场。在执行具有 SUID 权限的/usr/bin/bugtracker 时,发现它会使用 cat 命令,于是插入我们自己构造的 cat 命令,赋予执行权限并将其添加到环境变量中,这样 cat 命令就会以 root 身份执行。
下例相同:
strings
查看具有 SUID 权限的二进制文件,发现里面有 curl 命令。于是在 /tmp 下新建一个 curl 文件,执行 /bin/sh
:
Cron 计划任务
Cron 是 Linux 系统中用于定期执行任务的守护进程。
|
|
|
Capabilities
在 Linux 中,传统的权限管理是基于用户和组的(例如,root用户拥有所有权限),而 Capabilities 机制的引入,将权限分解为多个独立的“能力”,每个能力代表操作系统中特定的权限。每个进程拥有一组“能力”,这些能力决定了它能够执行的操作,而无需赋予进程 root 用户的所有权限。
当拿到权限后要先看下有哪些程序有能力,再对这些能力进行筛选利用。在之前的 HTB-Cap 靶场中,/usr/bin/python3.8
拥有 cap_setuid
权限,因此可以切换到 root 身份。
[!NOTE] cap_setuid
- 文件 cap_setuid 的 capabilities 和文件的 suid 标志位之间是没有关系的。
- 设置了 cap_setuid 的 capability 的文件并没有设置 suid。
- 设置了 suid 的程序也不拥有 cap_setuid 的 capability。
|
LD_Preload
LD_Preload 是 Linux 系统中的一个环境变量,它允许用户在运行一个程序时,指定额外的共享库(动态链接库)。这些共享库会在程序启动时首先被加载,并覆盖程序原本需要使用的库。
利用 LD_Preload 在程序运行前优先加载攻击者自定义的so文件,从而达到提权效果。
打开/etc/sudoers
文件:
|
一旦这样设置就会有两个安全问题:sudo提权和 LD_Preload 提权。
在/tmp目录中生成一个 shell.c:
|
|
类似于 Windows dll劫持,linux是执行so文件,Windows是执行dll文件。
Windows权限提升
工具提权
MSF、CS
windows权限提升-WIN提权 - FreeBuf网络安全行业门户
权限提升-Windows权限提升篇&溢出漏洞&宝塔面板Bypass&CS插件化&MSF模块化_windows权限提升-溢出漏洞-宝塔面板-bypass-cs插件化-msf模块化-CSDN博客
DAY136权限提升-Win系统权限提升篇&计算机管理用户&进程注入&令牌窃取&服务启动&远程控制-CSDN博客
人工提权
优点:解决工具或插件无法实时更新的EXP。
缺点:操作繁琐,需要各种复现调试。