Mitre ATTCK攻击技术-权限维持-定时任务
本文从理论层次介绍一下Mitre ATT&CK矩阵中关于定时任务技术点,该技术点通常可以被攻击者用于权限维持等阶段,通过对于该技术的介绍,了解该功能的特点,熟悉攻击者的套路,为后续针对该技术点的分析提供支撑。
背景介绍
定时任务顾明思议就是在计算机上设置的需要定时执行的程序或脚本。定时任务是Windows,Linux等操作系统的功能特性之一,该功能在正常情况下可能用于执行软件的定时更新,定期检查脚本任务等。
但该功能也往往被攻击者滥用执行恶意的任务。攻击者在获取一台主机的权限之后不想丢失对于该主机的权限,往往需要采用权限维持的战术,定时任务经常被攻击者用来进行权限的维持。
从检测角度来看,由于攻击者或者恶意软件设置的定时任务和正常操作系统,用户,合法应用程序设置的定时任务并没有明显的区别。因此对于定时任务,很难像反病毒软件直接检测恶意软件一样进行检测非法定时任务。这也是360等安全软件无法直接检测的方面,因此需要人为的根据经验以及对于系统的认识进行确认,也就是所谓的威胁狩猎。关于对于定时任务进行实战分析详见我的威胁狩猎专栏,这里。
技术点
由于目前存在的操作系统平台的不同,包括windows,Linux,MAOS,container等,不同平台对于定时任务的实现各不不相同,因此针对定时任务这个技术点分成了如下若干个子技术点。
Windows
Windows的定时任务技术点,见这里。Windows定时任务可以通过 win+R键输入taskschd.msc打开任务计划程序,如下图1所示:
图1
图1可以看到百度的更新功能会定时的触发更新检查程序。试想一下,如果将该程序替换成为对应额恶意程序,则恶意程序会定时执行。
Linux
Linux的定时任务技术点,见这里。Linux定时任务存在于/etc/systemd/system/ 和 /usr/lib/systemd/system 文件路径对应的timer和Service文件中 ,如下图2所示:
图2
图2中可以看到Timer文件对应的是定时任务相关信息,例如执行周期是每小时执行一次,service文件对应的是待执行的内容,可以看到执行的是docker删除命令。每个timer文件都会有对应的service文件。同理service文件中的命令是可以换成恶意命令的,那么该定时任务就是恶意的定时任务。
MACOS
Macos的定时任务技术点,见这里。Macos定时任务存在/etc/cron对应的目录下,如下图3所示:
图3
可以看到图3中Cron目录对应的Sysstat定时任务会每天执行sa2程序,生成对应的进程报告。当然cron功能不仅适用于MACOS是适用于多数源于Unix的系统,也适用于多数的linux系统。
除了上述各个系统常见的定时任务功能,如果windows,linu,macos安装了at功能,也是可以通过at功能组件实现定时任务功能,详见这里。
Container
Container的定时任务技术点,见这里。容器的定时任务功能主要指的是容器编排工具提供的能力,关于容器定时任务的示例,详见这里,不在赘述。
定时任务的artifact
上述只是提到了定时任务存在于各个操作系统存在的文件目录。事实上,除了定时任务本身对应的文件之外。定时任务从创建到执行,整个生命周期过程中会产生命令,文件,进程,定时任务等多种artifact。因此这些artifact都是在分析定时任务时候,操作系统能够提供的线索,用来帮助我们判定定时任务的是否存在问题。
基于命令的检查
定时任务往往是通过命令行或者脚本的方式进行创建。windows/linux/macos都可以使用命令创建定时任务,例如Macos通过crontab -e编辑定时任务,因此在Macos的历史命令中搜索命令相关记录,查找是否存在定时任务的创建记录。
基于文件的检查
定时任务的记录是以文件形式存在的,如上述的图1,2,3所示,因此检查定时任务的所有记录对应的程序和脚本,确定是否存在可疑的定时任务。如上述图2中的sevice文件内容。
基于进程的检查
定时任务的执行往往是特定进程创建。例如linux上是由systemd唤醒定时任务,因此注意观察systemd的子进程中是否存在可疑脚本和程序。
基于eventlog的检查
eventlog是Windows特有的artifact,Windows下的定时任务的创建往往会产生对应的eventlog,对应的ID为4698。可以检查eventlog中定时任务对应的程序或者脚本是否可疑。
基于注册表的检查
注册表是Windows特有的artifact,Windows下的定时任务的创建往往会产生对应的注册表记录,对应的目录为%HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tasks
。可以检查定时任务对应的程序或者脚本是否可疑。
虽然上述artifact中存储的信息可能存在重复,但是在不同的场景下,能够获取artifact的种类是有限的,因此了解上述artifact中存储定时任务的相关信息对于调查分析是必要的。
本文为CSDN村中少年原创文章,未经允许不得转载,博主链接这里。