服务器提权常见方法介绍


很多时候渗透测试人员,在做渗透的时候,拿到了网站权限,会发现,网站的权限调用的CMD命令,其实只是网站的权限,并不是服务器管理员权限,因此只能控制这个网站,而实际的目标是控制目标服务器,这时候就需要去想办法提升自己的权限,只有自己的权限够了,才可以去更好的展开后续的渗透测试。
通过本文的阅读,读者可了解到:常见提权方法、提权辅助页面的使用、获取服务器system权限的方法、以及提权辅助工具的使用。


一、服务器提权常见方法

Windows常用的提权方式有:内核提权、数据库提权、系统配置错误提权、组策略首选项提权、Bypass UAC提权、令牌窃取提权等姿势。
Linux操作系统常见的提权方式有:find命令提权、vi 命令逃逸、git 命令提权、teehee 命令提权、nmap 提权、mysql数据库提权等。
实际上将上述方法归类总结以后,主要是以下三种类型:

(一)系统漏洞提权

查看系统是什么版本、打了什么补丁,然后去网上找存在什么样的漏洞,然后找对应的提权工具。

(二)服务组件漏洞提权

服务组件本身就可能存在漏洞(比如redis软件漏洞),而不同服务组件用了不同权限。例如网站权限低,数据库权限高,那么我们就可以想办法从数据库入手,进行SQL注入提升权限。再例如:目标机器上运行了一些其他的服务,然后这些服务只能从内部访问,然后我们也可以调用过来用。(例如:FTP、Redis等等) (这个需要一定的知识和经验的积累,初期渗透测试人员不推荐)

(三)利用高权限网站写webshell提权

目标上开了两个网站,然后A、B网站权限不同,利用高权限的网站来写webwhell,就能拿到高的权限。


二、提权的具体过程

限于个人时间精力,我这里主要介绍windows操作系统提权的方法,关于linux操作系统提权的方法可参考这篇文章(直接点标题即可自动跳转):
Linux提权的N个方法

(一)提权辅助页面

读者可能有一点疑惑,Windows是什么版本,打了补丁,有什么漏洞我又不清楚,我怎么找它的漏洞?
大家试想,什么时候需要提权?是不是在你已经获得了webshell的情况下才需要提权?假如你无法打开目标的cmd窗口,你不会需要提权。因此我们可以首先利用webshell管理工具连接目标网站的木马,然后在低权限的状态下打开目标的cmd窗口,输入:
systeminfo
查看目标的信息,比如这里:
在这里插入图片描述
看到目标的操作系统为windows server 2008 R2,打了两个补丁,分别为:
KB2999226和KB976902
接下来访问提权辅助页面:https://i.hacking8.com/tiquan
把补丁号贴上去,接着点击查询:
在这里插入图片描述
在查询结果结果中寻找操作系统版本对应的payload,可以直接按ctrl+f搜索2008,比如:
在这里插入图片描述
点击右侧的链接:
在这里插入图片描述
可以看到漏洞的复现过程和利用工具。有兴趣的话可以去手动复现一下漏洞的利用过程,当然也可以直接点击链接从git hub上下载漏洞利用工具,对目标进行提权。

(二)烂土豆提权神器(改进版)

读者从刚才的操作中相信已经看出来了,从查找目标信息到提权辅助页面,再到工具的下载使用,过程还是比较繁琐的,而且对于不同的漏洞,需要下载不同的利用工具,因此并不能做到一劳永逸的解决问题。那么有没有一款工具,能够实现对windows操作的漏洞进行通杀,完成提权的过程呢?答案是肯定的。
烂土豆工具是一个完全开源又非常好用的windows提权工具(win10版本及以下的操作系统基本通杀),关于其中的原理就不分析了,因为提权有各种各样的工具,而且Windows操作系统的漏洞,如果不是专门研究的,很难分析讲解清楚,毕竟对于我个人以及绝大多数渗透测试人员而言,基本是挖不到windows的操作系统漏洞的,因此我们只需要知道这款工具怎么使用即可。
烂土豆提权神器下载地址:https://github.com/ohpe/juicy-potato/releases
原版的烂土豆提权神器使用的时候需要输入复杂的命令,里面又是涉及很多东西,而且运行了cmd,还是出现在管理员界面,去操作特别麻烦。比如:

JuicyPotato.exe -t * -p c:\windows\system32\cmd.exe -l 1111 -c {9B1F122C-2982-4e91-AA8B-E071D54F2A4D}

大括号中的内容是clsid码,用于告诉工具,操作系统的版本以及想要获得的权限,这个后面我会说,这里先卖个关子。
这里我使用改进版的烂土豆提权神器(我会分享出来,不用担心),一条简单的命令就可以了。先把该工具上传到目标网站的根目录,为了方便输入命令,先把文件名改为1.exe,然后打开虚拟终端窗口。现在,比如我想知道当前账户的权限,可以输入:
1.exe -p “whoami”
在这里插入图片描述
可以看到,这条命令不但查询了系统的信息,而且还获得了system权限。

(三)创建管理员账号

在获得system权限之后,通常情况下是不需要创建管理员账号的,因为这样做的动静太大,毕竟渗透测试讲究的是“润物细无声”,但假如真想创建一个管理员账号,该如何操作呢?输入命令:
1.exe -p "net user qwe Z1X2C3!.Aa /add"
在这里插入图片描述
现在这个账号实际上还不是管理员账号,只是一个普通用户账号。接下来将该账号添加到管理员的组里,就自动升级为管理员账号了:
1.exe -p "net localgroup administrators qwe /add"
在这里插入图片描述
成功实现创建管理员账号。

(四)什么是clsid?

刚才用的这款烂土豆提权工具(改进版)默认情况下是针对windows server 2008 R2使用的,那么用在其他操作系统上无法提权是什么原因?其实这个是clsid的问题,只要指定clsid就可以了。因为这里的烂土豆提权工具默认的情况下是给windows 2008 R2使用的,其他的版本需要手动指定clsid。

1、什么是clsid?

CLSID是一个随机数,是指windows系统对于不同的应用程序,文件类型,OLE对象,特殊文件夹以及各种系统组件分配一个唯一表示它的ID代码,用于对其身份的标示和与其他对象进行区分。
先说下GUID,它是Globally Unique Identifier的简称,中文翻译为“全局唯一标识符”,在Windows系统中也称之为ClassID,缩写为CLSID。
ID是英文IDentity的缩写,是身份标识号码的意思,就是一个序列号,也叫帐号,是一个具有唯一性的编码。class是对某种类型的对象定义变量和方法的原型,是ID的样式或属性的补充。因此CLSID就像人的身份证一样,是唯一的类标识符。

2、如何查询clsid?

其实CLSID的定义了解即可,我们需要知道的是,如何查询clsid。
可以在这个地址上查询windows所有版本的clsid:https://github.com/ohpe/juicy-potato/tree/master/CLSID
在这里插入图片描述
根据不同的权限需求,可以使用不同的clsid:
在这里插入图片描述

3、如何指定clsid值

查询到和操作系统对应的clsid值以后,就可以用-c命令来指定clsid值了,命令如下(假设已改名为1.exe):
1.exe -p "要执行的系统命令" -c 后面接指定的clsid值
举例:
获取Windows Server 2012的system权限:
1.exe -p "whoami" -c {e60687f7-01a1-40aa-86ac-db1cbf673334}
获取Windows Server 2012的user权限
1.exe -p "whoami" -c {F87B28F1-DA9A-4F35-8EC0-800EFCF26B83}


三、小结

提权是渗透测试人员不可避免会遇到的问题,本文通过分享提权的一些常见方法,重点针对windows操作系统的漏洞介绍了提权的具体操作,以及分享了一个提权工具的使用方法。烂土豆提权神器(改进版)我会单独分享出来,有需要的可自行下载使用。

  • 3
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值