Windows 系统提权方式汇总
在渗透测试中,提升自己的权限是经常遇到的问题,往往在渗透中最容易获取的权限就是一个webshell,如果网站是架设在Windows系统上的,这时就可能遇到这样的问题,还有一种情况是在做横向渗透的时候,收集到一些可以远程连接桌面的帐号,这是也需要,在实际的渗透中有很多的地方会需要这个操作,这个系列就主要介绍各种提权的方式。
提权基础
在提权之前首先要做的是对系统的操作系统信息做一些信息收集,关于信息收集的介绍请看之前的文章《Windows环境下的信息收集》,这里简单提一下这几条命令:
systeminfo | findstr OS #获取系统版本信息
hostname #获取主机名称
whomai /priv #显示当前用户的安全特权
quser or query user #获取在线用户
netstat -ano | findstr 3389 #获取rdp连接来源IP
dir c:\programdata\ #分析安装杀软
wmic qfe get Caption,Description,HotFixID,InstalledOn #列出已安装的补丁
REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber #获取远程端口
tasklist /svc | find "TermService" + netstat -ano #获取远程端口
溢出提权
溢出提权是在提权过程中最通用的,但是其利用的关键点在于目标系统安全补丁打的不够及时,才会让攻击者有机可乘,这里大概列一下比较新的溢出exp。
WINDOWS错误系统配置
有时候由于运营者的错误配置可能给我们提权提供便利,提高我们的提权成功率,下面就对这个方面的提权方法做一个简单的介绍。
可信任服务路径
“Trusted Service Paths”漏洞是由系统中的“CreateProcess”函数引起的,利用了windows文件路径解析的特性,并涉及了服务路径的文件/文件夹权限,存在缺陷的服务程序利用了属于可执行文件的文件/文件夹权限。如果权限合适,我们可以上传恶意可执行文件。简单讲就是查找系统服务文件中存在非引用路径。如果一个服务调用可执行文件,没有正确处理引用的全路径名,就可以利用这个漏洞。metasploit集成了trusted_service_path(http://www.zeroscience.mk/codes/msfsession.txt)漏洞利用模块。
产生原因
windows服务通常都是以System权限运行的,所以系统在解析服务的二进制文件对应的文件路径中的空格的时候也会以系统权限进行解析。如果我们能利用这一特性,就有机会进行权限提升。例如,有如下的文件路径:
C:\Program Files\Some Folder\Service.exe
对于上面文件路径中的每一个空格,windows都会尝试寻找并执行名字与空格前的名字相匹配的程序。操作系统会对文件路径中空格的所有可能进行尝试,直到找到一个匹配的程序。以上面的例子为例,windows会依次尝试确定和执行下面的程序:
C:\Program.exeC:\Program Files\Some.exeC:\Program Files\Some Folder\Service.exe
所以如果我们能够上传一个适当命名的恶意可执行程序在受影响的目录,服务一旦重启,我们的恶意程序就会以system权限运行(大多数情况下)。
利用步骤
1.检测目标主机是否存在该漏洞
wmic service get name,displayname,pathname,startmode|findstr /i "Auto" |findstr /i /v "C:\Windows" |findstr/i /v """
如果存在以下结果则表示存在:
FABS - Helping agent for MAGIX media database Fabs C:\Program Files (x86)\Common Files\MAGIX Services\Database\bin\FABS.exe /DisableUI Auto
