Windows backdoor之隐藏计划任务

admin 2022年6月7日00:21:14评论177 views字数 2306阅读7分41秒阅读模式

令她反感的,远不是世界的丑陋,而是这个世界所戴的漂亮面具。  《不可承受的生命之轻》

01
简介

Windows计划任务是攻击者常用的权限维持技术之一,主要是因为普通用户和管理员用户都可以创建计划任务,而且支持多种触发器自动执行指定的程序。


常规方式创建的计划任务很容易使用任务计划程序或者Autoruns这些工具检测到,但前几天应急过程发现有挖矿程序使用隐藏计划任务进行防御规避,在应急过程花了较长时间才定位到问题。后面发现微软最近分析的Tarrask恶意程序也使用相同的技术。


所里这里分享下这种技术,RedTeam可以使用这种技术,避免留的后门很快被清理掉,BlueTeam也可以对这种技术进行了解,并针对性地检测和响应。


02
隐藏计划任务实现

我们首先创建一个测试计划任务CalcTest,每3分钟运行一次计算器:

schtasks /create /TN CalcTest /SC MINUTE /MO 3 /TR "c:windowssystem32calc.exe" /ST 22:39 /F

Windows backdoor之隐藏计划任务


但默认情况下,很容易使用任务计划程序或者autoruns工具查看到:

Windows backdoor之隐藏计划任务


此时我们可以通过删除注册表

HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionScheduleTaskCacheTree

下的SD记录,隐藏计划任务。


但是如果直接使用命令reg delete删除这个值,会提示权限拒绝错误,我们需要system权限才能删除这个记录。

Windows backdoor之隐藏计划任务


这里可以使用psexec获得一个system权限的cmd,然后执行删除操作。

psexec64.exe -i -s cmd.exe

reg DELETE "HKLMSOFTWAREMicrosoftWindows NTCurrentVersionScheduleTaskCacheTreetest" /v SD /f

Windows backdoor之隐藏计划任务


在删除后,我们用任务计划程序或者autoruns查看,都无法看到对应的计划任务:

Windows backdoor之隐藏计划任务


但计划任务实际还会运行:

Windows backdoor之隐藏计划任务


此时,有两个地方可以看到计划任务存在,一是在C:windowssystem32Tasks目录下会有计划任务的配置文件,如下:

Windows backdoor之隐藏计划任务


二是在注册表中也能看到,在Tree下面对应计划任务的名称和ID,在Tasks下面为计划任务的实际配置信息:

Windows backdoor之隐藏计划任务

Windows backdoor之隐藏计划任务


这里即使我们删除了磁盘上的配置文件,重启后计划任务仍会运行,要想找到计划任务,只能在注册表里面查找


从攻击方的角度,我们可以将计划任务名称伪装成常见的合法的计划任务,迷惑防守方,然后删除计划任务对应的SD记录和C:Windowssystem32Tasks下面对应的配置文件,极大地提升检测和响应难度。


03
检测及响应

1、查看恶意进程父进程是否为计划任务进程,计划任务进程一般为svchost.exe -k netsvcs:

Windows backdoor之隐藏计划任务


2、查看日志文件Microsoft-Windows-TaskScheduler%4Operational.evtx中事件ID 200/201关于计划任务的执行和完成情况:

Windows backdoor之隐藏计划任务

如果没有日志,可以在任务计划程序里面临时开启(应急完成后,如果不需要可以关掉,但建议开启):

Windows backdoor之隐藏计划任务


3、使用工具autoruns或者任务计划程序查看是否存在恶意计划任务,有的话提取相关证据后删除,没的话继续下一步:

Windows backdoor之隐藏计划任务


4、检查在C:windowssystem32Tasks下是否存在执行恶意文件的计划任务配置文件,有的话提取相关证据后删除,如果没有,我们只能在注册表中进行搜索。


5、检查注册表如下2个键:

  • HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionScheduleTaskCacheTasks

  • HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionScheduleTaskCacheTree

首先搜索我们发现的恶意计划任务的名称:

Windows backdoor之隐藏计划任务

Windows backdoor之隐藏计划任务

也可以在Tree下面找到恶意计划任务名称后,根据ID的值在TaskCacheTasks下面找实际的配置数据。提取相关证据后删除上面2个记录。


6、重启计划任务服务或者系统。如果要重启计划任务服务,需要以system权限操作,管理员无权限:

Windows backdoor之隐藏计划任务

以管理员运行cmd,然后利用psexec打开一个system权限的cmd:

psexec -i -s cmd.exe

Windows backdoor之隐藏计划任务


在系统或者服务重启后,将会完全清理计划任务。对于运行恶意exe的计划任务,也可以直接删除可执行程序,这样即使计划任务可以运行,但是进程也执行不了。但对于使用powershell 无文件运行恶意进程,只能通过重启服务或者系统实现完全清理。


04
总结

使用计划任务进行权限维持之前使用已经比较多了,但创建隐藏计划任务目前使用的还比较少,对于攻击方,可作为权限维持和防御规避的手段之一,作为防守方我们也需要了解如何对这种攻击手段进行检测和响应。


另外,上面介绍的使用psexec重启系统服务的方式,大家也可以举一反三,使用这种方式,结束一些即使管理员也无权限结束的进程。


希望这篇文章对大家有所帮助,如果有任何疑问或者建议,可在后台给我留言


参考资料


https://www.microsoft.com/security/blog/2022/04/12/tarrask-malware-uses-scheduled-tasks-for-defense-evasion/

https://attack.mitre.org/techniques/T1053/005/


Windows backdoor之隐藏计划任务
转载是一种动力 分享是一种美德

原文始发于微信公众号(学安全在路上):Windows backdoor之隐藏计划任务

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月7日00:21:14
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Windows backdoor之隐藏计划任务http://cn-sec.com/archives/1090024.html

发表评论

匿名网友 填写信息