提权总结以及各种利用姿势

来源:岁月联盟 编辑:猪蛋儿 时间:2020-01-29

本文章适合正在学习提权的朋友,或者准备学习提权的朋友,大佬就可以绕过了,写的比较基础。我也是一个小白,总结一下提权的姿势和利用,也分享一些自己觉得好用的方法给大家,欢迎大家帮我补充,有什么好用的提权的方法也可以分享一下,大家共同进步。本篇有自己的理解,如果有什么不对的或者不好的地方希望大家不要喷我,但是欢迎帮我指正。
提权的含义:
提权,顾名思义就是提升权限,当我们getshell一个网站之后,大部分情况下我们的权限是非常低的(一般只是一个apache权限)。这时候为了“扩大战果”,就需要利用提权,来让原本的低权限(如只允许列目录)–>高权限(拥有修改文件的能力),提升一下权限,有助于我们继续往下渗透。
提权的方式有以下几种:
Linux:
本地提权
数据库提权
第三方软件提权
Windows:
本地提权
数据库提权
第三方软件提权
是的你没看错,Linux跟Windows都有三种,而且都是一样的,原来准备给大家画一个图更直观,因为时间原因就没画,如果大家喜欢这篇文章的话,我会下次补上。
0×01 windows本地提权
在windows中本地提权分为两种,一种是本地服务提权,比如iis6 iis5 ftp smb。另一种是系统内核提权漏洞,比如比较火的ms07-010提权,445端口存在漏洞,利用系统漏洞提权。为了让大家更直观的看到提权步骤,我决定用“啊保“的环境进行测试(至于啊保是谁当然不告诉你们啦),贴图给大家。首先我们进入getshell的主机,然后执行‘systeminfo’命令,看一下这台主机的基本信息,还有哪些漏洞没有修复。

查找有哪些可以提权的漏洞,查看目标机的版本号(比如这个主机是x64的还是x86的),然后查找有哪个漏洞可以利用。
windows版提权下载的话一般都会有一个exe脚本,下载这个exe程序,但是不一定会提权成功。所以我们要自己先搭建一个跟目标机一样的环境先进行测试,测试成功之后,再将程序放到目标机中进行提权。这里我就直接演示我测试好的脚本进行提权。
Windows本地提权步骤:
首先getshell,怎么getshell我就不说了,提权肯定是要在getshell之后的,如果看到有数据库的话,可以猜到数据库账号密码的话那就不用getshell了(但是一般是猜不到的-。-),就用数据库提权,数据库提权后面再说。把咱们测试好的x64.exe脚本上传到目标机

我们可以看到没执行这个脚本之前还不是system权限

接下来我们执行这个x64.exe脚本,也就是MS16-032漏洞,可以看到权限变成了system权限,提权成功。
但是要注意几点,因为我们用菜刀或者蚁剑连接之后执行命令不是交互式的shell,至于什么是交互式的shell,可以去百度一下。所以我们用脚本的时候需要在后面输入命令才可以执行。如果是交互式的shell的话,比如用msf,就会弹出一个对话框,只要在这个对话框里执行命令,不管什么命令都是以system权限执行。其他的脚本也是可以提权的,需要大家去挖掘了。当然也可以用msf生成的脚本来提权,msf反弹回来是交互式的shell后面我们会说到。
Windows提权脚本运行方式(总结):
1.直接执行exe程序,成功后会打开一个cmd窗口,在新窗口中权限就是system。
2.在webshell中执行exe程序,执行方式为x64.exe whoami,成功后直接执行命令,再修改命令内容,可以执行不同的命令。
3.利用msf等工具。
4.特殊的,c++源码,python脚本,powershell脚本。
0×02 Linux本地提权
Linux安装好系统后里面自带的软件或者内核存在的漏洞,比较流行的“脏牛“提权,也可以使用vim提权,sudo提权等。linux内核提权跟windows是一样的,都要下载对应漏洞的脚本进行提权,只不过下载的linux提权脚本需要编译一下才可以使用,编译的方法很简单,后面再说。
Linux本地提权步骤:
getshell之后一般是apache用户,然后进入命令栏,输入uname -a 命令可以查看内核版本,利用内核版本提权。我们还是用“啊保“的环境进行演示。这两个都可以查看内核版本
看redhat系列的系统版本,可以看到是cento 6.5的

然后查找相关版本的漏洞,进行提权,还是为了不把系统搞崩,我们要安装相应版本的系统,先在本地进行测试,以免把目标系统搞崩(我已经搞崩好几回了,崩溃)一般来说linux提权脚本都是一个.c的文件,所以需要linux里面有gcc才可以进行编译,如果目标机没有gcc,那么我们就只能搭建一个相同的环境,然后装上gcc进行编译,编译方法脚本里一般都有。
我们以测试好的脏牛脚本为例,首先我们上传一个脏牛脚本,然后进行编译

多了一个脚本,我们执行脚本,必须在后面加上密码,管理员跟我们都不知道密码就会连不上,然后系统崩溃,后面的事我就不说了,且行且珍惜呀。

我们查看passwd文件,可以看到root用户变成了firefart,然后我们可以用ssh进行连接。

[1] [2] [3]  下一页