点击上方蓝字“Ots安全”一起玩耍
简介
Windows 允许用户将特定应用程序设置为在用户进行身份验证时自动启动,方法是将其可执行文件放在专门为启动程序设计的目录中。尽管此功能非常方便,但如果启动程序的权限设置不当,则可能允许攻击者提升权限,因为这些程序是在当时登录的用户的上下文中执行的。
识别漏洞
所有用户(包括管理员)认证时执行的启动应用程序通常存放在以下目录中:
C:ProgramDataMicrosoftWindowsStart MenuProgramsStartup
第一步是验证当前用户是否具有对该目录的写访问权限,以便可以在其中放置恶意可执行文件。Icacls 或 Accesschk 可用于识别特定文件夹或文件的权限:
icacls [directory/file]
Accesschk.exe -accepteula -wuqv
从上面命令的输出来看,似乎系统上的每个人都有权写入路径,这意味着它可以被利用。
自动枚举脚本(如 WinPEAS)也可以帮助识别弱自动运行程序。此外,Sysinternals Autorunsc for Windows工具也可用于执行此操作:
利用漏洞
现在剩下的就是在启动目录中放置一个恶意可执行文件,该可执行文件将执行反向 shell,以强制系统在管理员用户下次登录时执行它。
第一步是使用带有以下标志的 MSFvenom 生成一些 shellcode:
-
-p 指定有效负载类型,在本例中为 Windows TCP 反向 shell
-
LHOST 指定要连接的本地主机 IP 地址
-
LPORT 指定要连接的本地端口
-
-f 指定 shell 的格式,在本例中为 exe
然后使用 Python Web 服务器和 Windows Certutil 实用程序将 shell.exe 文件传输到 Windows 受害者计算机,并将其放置在上述目录中:
下一步是设置一个 Netcat 侦听器,它会在受害主机执行时捕获反向 shell,使用以下标志:
-
-l 监听传入的连接
-
-v 用于详细输出
-
-n 跳过 DNS 查找
-
-p 指定要监听的端口
以下屏幕截图显示了使用 FreeRDP 模拟管理员用户登录:
一旦“admin”管理员用户登录,恶意可执行文件就会被执行,因此授予该用户一个反向shell:
结论
尽管启动应用程序可以成为 Windows 中帮助提高效率的绝佳工具,但应谨慎配置它们,仅允许管理员用户编辑存储在启动路径中的文件,因为利用此错误配置可能会导致整个系统受到损害。
本文始发于微信公众号(Ots安全):【漏洞利用】Windows 权限提升 - 启动应用程序
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论