• 107.网络安全渗透测试—[权限提升篇5]—[Linux Cron Jobs 提权]


    我认为,无论是学习安全还是从事安全的人,多多少少都有些许的情怀和使命感!!!​

    一、LINUX Cron Jobs 提权

    1、计划任务:

           Cron Jobs,顾名思义,是定时/计划任务的意思。root用户通过/etc/crontab文件,可以设定系统定期执行一些预设的任务。特别需要注意的是:crontab 文件只能是在root权限下进行编辑。

    2、漏洞背景:

            当我们得到一个非root权限的远程登录用户的时候,并且可以查看/etc/crontab文件的内容,与此同时/etc/crontab文件中的某个定时任务,存在短期内执行的且是当前非root用户可编辑执行的脚本。假设,我们此时在该脚本文件中给某个shell命令(使用命令cat /etc/shells可以查看当前系统的可用shell命令)赋予suid权限,由于这些shell命令的所有者都默认是root的,所以我们可以直接等待定时任务的自动执行后,即可直接键入shell命令,从而弹出root权限的shell。

    3、漏洞利用:

    (1)实验环境:

    1.靶机环境:
    (1)虚拟机Ubuntu15.04【www.webtester.com】【192.168.97.135】
    (2)脚本语言环境:perl/python/php均存在
    
    2.攻击机:
    (1)虚拟机Win7【192.168.97.130】
    (2)Firefox+Burpsuite+蚁剑+msfconsole
    
    3.网络环境:
    (1)VMware搭建的NAT网络
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    (2)靶机链接:

    URL:http://www.moontester.com/upload.php

    (3)实验步骤:

    前提: 假设此时已经获得靶机的一个webshell,同时通过msf获得了一个meterpreter的shell。
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    第一步:cat /etc/crontab #查看计划任务,发现每一分钟以root身份执行一次cleanup.py脚本文件,功能是删除cleanup目录下全部文件。
    在这里插入图片描述
    附: Crontab文件的格式说明,特别需要注意的是如果没有username字段,则任务不会执行。
    在这里插入图片描述

    第二步:ls -l /tmp/cleanup.py #查看该脚本文件的权限,发现当前用户可读可写可执行。
    在这里插入图片描述

    第三步:cat /tmp/cleanup.py #查看该脚本文件内容。
    在这里插入图片描述
    第四步:cat /etc/shells #查看当前系统可用的shell命令,发现有4个命令可以调出shell
    在这里插入图片描述
    第五步:ls -l /bin/sh #发现sh其实是dash的链接,同样rbash是bash的链接,一般的shell默认使用的bash。
    在这里插入图片描述
    第六步: 使用蚁剑编辑/tmp/cleanup.py文件 #与suid漏洞联动,给/bin/dash赋予suid文件属性
    在这里插入图片描述
    第七步:ls -l /bin/dash #检查是否拥有了suid属性
    在这里插入图片描述
    第八步: cat /var/log/cron.log #查看计划任务的日志,发现确实执行了该任务(由于这个日志功能是实验完成后加的,所以时间对不上。)
    在这里插入图片描述

    第九步: dash #直接键入dash命令,从而以root身份调出shell。
    在这里插入图片描述
    在这里插入图片描述

    (4)附1:靶机提权环境设置

    第一步:su root #切换到root用户
    第二步:vim /etc/cron/ #编辑/etc/cron文件,添加定时任务
    在这里插入图片描述
    第三步:vim /tmp/cleanup.py #编辑文件并保存
    在这里插入图片描述
    第四步:chmod 777 /tmp/cleanup.py #给cleanup.py脚本文件赋予777权限
    图略
    第五步:mkdir /home/moonteam/cleanup #创建cleanup目录
    图略
    第六步:echo this_is_test > /home/moonteam/cleanup/test.txt #创建待删除的测试文件
    在这里插入图片描述

    (5)附2:靶机开启cron日志的方法

    第一步:su root #切换到root用户
    第二步:vim /etc/rsyslog.d/50-default.conf #编辑rsyslog文件
    在这里插入图片描述
    第三步:sudo service rsyslog restart #重启rsyslog
    第四步:tail /var/log/cron.log #查看Cron日志
    在这里插入图片描述
    第五步:chmod o+r /var/log/cron.log #给其他人赋予读权限
    在这里插入图片描述

  • 相关阅读:
    React 全栈体系(十五)
    MLX90640 开发 微型红外成像仪
    编程笔记 Golang基础 020 流程控制
    音视频 ffmpeg命令视频录制(Windows)
    在 CentOS 8.2 上安装 MySQL C/C++ 客户端库 libmysqlclient.so
    热更新的前置模块:AB管理器
    基于AM5708开发板——开箱初探+环境搭建、源码编译
    首款绿色贡献交互应用“i绿信”,亮相深圳引热议!
    Vue3实现组件级基类的几种方法
    深度学习机器学习面试题——自然语言处理NLP,transformer,BERT,RNN,LSTM
  • 原文地址:https://blog.csdn.net/qq_45555226/article/details/125596361