Linux crontab使用及注意事项
渗透测试中,经常会用到crontab来执行计划任务,从而实现后门程序的隐藏,但crontab有几个坑点还是需要记录一下,方便日后使用时及时查询
1、crontab配置格式
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
如果配置每天在12:00时,使用root账户执行/tmp/shell.py 脚本
则需要配置为0 12 * * * root python /tmp/shell.py
这里需要注意:
1、第一个字段不能配置为* ,否则在十二点的每一分钟都会执行一次这个脚本,严重消耗资源,而且如果需要用该脚本发送数据,会让自己侧收到的数据严重重复和顺序错乱,形成脏数据
2、shell.py脚本在编写时,如果有用到其他文件中的数据,切记:所有路径使用绝对路径,因为crontab在执行脚本时,环境变量可能不是平时使用的shell的环境变量,在近期使用时,默认shell为bash,但crontab执行时选用了sh,造成脚本路径错误,不能执行。