Linux计划任务

本节所讲内容:
• at 定制单次执行的计划任务
• cron定制周期性计划任务
• 配置脚本实现周期性任务
• 实战:找出黑客定时执行的木马程序

计划任务:
at # 只能执行一次
语法:
at 时间
服务:atd 必须开启
[root@xuegod63 ~]# systemctl status atd
atd (pid 2206) is running…
例:

at 20:00

echo date > /tmp/date.txt #输入要执行的命令
^+d #按下Ctrl+D 结束
也可以这样写

at 20:00 2015-2-23

at now +10min

at查询:
[root@xuegod63 ~]# at -l
3 2015-02-03 20:55 a root
2 2015-02-23 20:00 a root
执行成功的at计划任务会在这个目录下成生一个可执行的脚本文件:
[root@xuegod63 ~]# ll /var/spool/at/*
-rwx—— 1 root root 3842 Feb 3 20:45 /var/spool/at/a00002016a5170
-rwx—— 1 root root 3842 Feb 3 20:45 /var/spool/at/a000030169e127
at任务删除:
atrm at序列号
[root@xuegod63 ~]# atrm 2

周期性计划任务:
配置文件:
[root@xuegod63 ~]# vim /etc/crontab
服务:
[root@xuegod63 ~]# systemctl status crond
crond (pid 2195) is running…

针对用户级别的计划任务:
对于root用户:
命令:
针对用户级别的计划任务:
对于root用户:
命令:

crontab –e 创建一个计划任务 edit

crontab –l 显示

crontab –r 删除计划任务

crontab –e #计划任务规范

分 时 日 月 周 谁做后面的事情(用户) 命令
每个取值范围:
分:0-59
小时:0-23
日:1-31
月:1-12
周:0-7 0 7 都是周日

例:
[root@xuegod63 ~]# crontab -e
57 20 * * * echo date > /tmp/date.txt
[root@xuegod63 ~]# date
Tue Feb 3 20:57:11 CST 2015
[root@xuegod63 ~]# cat /tmp/date.txt
Tue Feb 3 20:57:01 CST 2015

例: 特殊写法:

9,18,22这几天的3点1分,开始执行备份脚本

1 3 9,18,22 * * /usr/bin/back.sh

每月9-18日,这几天,3:00执行

1 3 9-18 * * /usr/bin/back.sh

每5分钟,执行一次

/5 * * * /usr/bin/back.sh

使用root身份,给其它普通用户指定crontab:
语法:crontab -u USERNAME -e/-l/-r

• 实战:找出黑客定时执行的木马程序

使用普通用户写一个计划任务:
参数:-u 用户名
[root@xuegod63 ~]# crontab -u bin -e
no crontab for bin - using an empty one
crontab: installing new crontab

排查:
[root@xuegod63 ~]# crontab -u bin -l
1 * * * * echo aaaa

排查:所有用户的计划任务?
[root@xuegod63 ~]# ll /var/spool/cron/
total 8
-rw——- 1 root root 42 Nov 12 10:11 bin
-rw——- 1 root root 19 Nov 12 10:06 root
注:所有的计划任务,都会在/var/spool/cron/下产生对应的文件。

黑客:高级crontab ,篡改一个系统级别的计划任务
[root@xuegod63 bin]# ls /etc/cron #按两下tab键
cron.d/ cron.deny cron.monthly/ cron.weekly/
cron.daily/ cron.hourly/ crontab

注:
cron.d/ #系统级别的定时任务
cron.daily/ #系统每天要执行计划任务
cron.hourly/ #系统每小时要执行计划任务
cron.monthly/ #系统每月要执行计划任务
cron.weekly/ #系统每周要执行计划任务

例:添加系统级别的木马程序

[root@xuegod63 ~]# vim /etc/cron.daily/tmpwatch #在最后添加

测试执行:
[root@xuegod63 ~]# /etc/cron.daily/tmpwatch
aaaa
注:说明添加的木马成功了。
[root@xuegod63 ~]# find /etc/cron* #查看可以添加系统级别的计划任务

排查:
方法1:利用md5sum ,来检验文件的完整性
例:
语法:md5sum 文件
[root@xuegod63 ~]# md5sum /etc/cron.daily/tmpwatch
17856453d7325d7750309910aa64e5ca /etc/cron.daily/tmpwatch

[root@xuegod63 ~]#vim /etc/cron.daily/tmpwatch #在最后,添加一些内容
[root@xuegod63 ~]# md5sum /etc/cron.daily/tmpwatch #再次查看md5值不一样
6152bd26fc26d623eaf9dd551b9faed8 /etc/cron.daily/tmpwatch

测试:
[root@xuegod63 ~]# vim /etc/cron.daily/tmpwatch #在最后添加以下内容:

做对比:
做对比:
[root@xuegod63 ~]# find /etc/cron* -type f -exec md5sum {} \; >/usr/share/file_md5.v2
[root@xuegod63 ~]# diff /usr/share/file_md5.v1 /usr/share/file_md5.v2 #对比
6c6

< 6152bd26fc26d623eaf9dd551b9faed8 /etc/cron.daily/tmpwatch

a34bbcd2c63889ad2a1ab48d751dc974 /etc/cron.daily/tmpwatch

注:如果忘提前生成/usr/share/file_md5.v1?
找一台正常的机器,生成md5值数据库文件。复制到咱们服务器上,再对比。

总结:通过计划任务运行木马程序
1、普通计划任务: crontab
2、高级crontab ,篡改一个系统级别的计划任务

技巧2: 查看开机启动进程
黑客:开机启动脚本中添加
[root@xuegod63 ~]# vim /etc/rc.local #在文档中插入以下红色内容
echo aaaa

[root@xuegod63 ~]# /etc/rc.local #测试执行
aaaaa
[root@xuegod63 ~]# ll /etc/rc.local
lrwxrwxrwx. 1 root root 13 Dec 18 2012 /etc/rc.local -> rc.d/rc.local

排查:
[root@xuegod63 ~]# vim /etc/rc.local #这个脚本就是开机启动后,需要执行的一个脚本文件。

!/bin/sh

#

This script will be executed after all the other init scripts.

You can put your own initialization stuff in here if you don’t

want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
很多空行
echo aaaaa
注:#注一定要cat,不使用vim ,因为有的黑客会故意在rc.local中添加很多空白行,在中间或最后添加一个脚本。
排查:显示时,过滤掉空行
[root@xuegod63 ~]# grep -v ^/etc/rc.local   # ^ /etc/rc.local   # ^ #以空开头以空结尾行,就空行。 -v #表示取反,显示

!/bin/sh

#

This script will be executed after all the other init scripts.

You can put your own initialization stuff in here if you don’t

want to do the full Sys V style init stuff.

touch /var/lock/subsys/local
echo aaaa

黑客:利用开机启动的服务器脚本来加载木马程序
把木马程序脚本写到已经存在的开机启动服务中,例如: httpd (apache web服务器启动脚本)
[root@xuegod63 ~]# ls /etc/init.d/ #这个目录下的脚本文件,都是可以开机启动的脚本文件
abrt-ccpp halt netstat rpcidmapd
[root@xuegod63 ~]# vim /etc/init.d/httpd # 在倒数第二行添加

测试:
[root@xuegod63 ~]# service httpd restart
Stopping httpd: [ OK ]
Starting httpd: [ OK ]
aaaaa
更强的黑客:
自己写一个开机启动程序

总结:
at 定制单次执行的计划任务
cron定制周期性计划任务
配置脚本实现周期性任务
实战:找出黑客定时执行的木马程序

CD讲课风格: 1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值