63权限提升-Linux脏牛内核漏洞SUID信息收集

今天讲到的方法是suid和内核漏洞

案例一Linux 提权自动化脚本利用-4 个脚本 

两个信息收集:LinEnum、linuxprivchecker

两个漏洞探针:linux-exploit-suggester、linux-exploit-suggester2

信息收集有什么用? 

信息收集就能判断能否进行suid和内核漏洞的提取,

漏洞探针主要应用在内核上面的差异,判断出在这个操作系统上面可能存在的漏洞,帮你尝试用这个漏洞去提权。

演示四个脚本的解释,

信息收集

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
————————————————
版权声明:本文为CSDN博主「貌美不及玲珑心,贤妻扶我青云志」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_61553520/article/details/130974974

信息收集脚本演示

LinEnum

把脚本上传到tmp目录,因为tmp是个临时目录,在服务器重启之后会清空,一般这个目录是可以写入的,别的目录可能会因为权限不够无法写入的情况,或者执行不了脚本,

将下载好的脚本上传到tmo目录下

如果不能运行就用chomd +x 脚本名字 赋予一个可执行的权限

内核和发行版详细信息
系统信息:
    主机名
    网络详情
    当前IP
    默认路由详情
    DNS 服务器信息
用户信息:
    当前用户详细信息
    最后登录的用户
    显示登录到主机的用户
    列出所有用户,包括 uid/gid 信息
    列出 root 帐户
    提取密码策略和哈希存储方法信息
    检查 umask 值
    检查密码哈希是否存储在 /etc/passwd
    提取“默认”uid 的完整详细信息,例如 0、1000、1001 等
    尝试读取受限文件,即 /etc/shadow
    列出当前用户历史文件(即 .bash_history、.nano_history 等)
    SSH 基础检查
特权访问:
    哪些用户最近使用过 sudo
    确定 /etc/sudoers 是否可访问
    确定当前用户是否在没有密码的情况下具有 Sudo 访问权限
    是否可以通过 Sudo(即 nmap、vim 等)获得已知的“good”突破二进制文件
    是否可以访问 root 的主目录
    列出 /home/ 的权限
环境:
    显示当前 $PATH
    显示环境信息
工作/任务:
    列出所有 cron 作业
    找到所有全局可写的 cron 作业
    找到系统其他用户拥有的 cron 作业
    列出活动和非活动的 systemd 计时器
服务:
    列出网络连接 (TCP & UDP)
    列出正在运行的进程
    查找和列出进程二进制文件和相关权限
    列出 inetd.conf/xined.conf 内容和相关的二进制文件权限
    列出 init.d 二进制权限
版本信息(以下):
    Sudo
    MYSQL
    Postgres
    Apache
        检查用户配置
        显示启用的模块
        检查 htpasswd 文件
        查看 www 目录
默认/弱凭据:
    检查默认/弱 Postgres 帐户
    检查默认/弱 MYSQL 帐户
搜索:
    找到所有 SUID/GUID 文件
    找到所有全局可写的 SUID/GUID 文件
    找到 root 拥有的所有 SUID/GUID 文件
    找到“有趣”的 SUID/GUID 文件(即 nmap、vim 等)
    使用 POSIX 功能定位文件
    列出所有全局可写文件
    查找/列出所有可访问的 *.plan 文件并显示内容
    查找/列出所有可访问的 *.rhosts 文件并显示内容
    显示 NFS 服务器详细信息
    找到包含在脚本运行时提供的关键字的 *.conf 和 *.log 文件
    列出所有位于 /etc 的 *.conf 文件
    .bak 文件搜索
    查找邮件
平台/软件特定测试:
    检查以确定是否在 Docker 容器中
    检查主机是否安装了 Docker
    检查以确定是否在 LXC 容器中

主要就是查看这个suid的信息,通过这些信息判断suid是否存在提权的可能性

linuxprivchecker

如果目标主机上没有python脚本运行不了,

用python运行,如果没有运行权限,chmod +x 脚本名字  加上运行权限即可

收集出来的信息也是差不多的

工具脚本演示

linux-exploit-suggester

上传tmp目录下面来,

添加上运行的权限

执行出来就会显示很多的信息,

漏洞相应的下载地址和漏洞利用的poc都会给出,

linux-exploit-suggester2

用perl去运行这个文件

他这个就比较简介,直接告诉我们可能存在的漏洞,以及下载的地址。

案例二Linux 提权 SUID 配合脚本演示-Aliyun 

suid 全称 set user id 

通过设置这个东西,能给用户操作的权限

漏洞成因:chmod u+s基于了suid,u-s删除了suid

没有赋予suid之前,查看文件的权限都是这样的

这里服用给sh脚本一个suid权限

脚本名字也被标红了,标红的意思就是他在运行的会调用的用户的权限,

suid提权原理;一个文件在被运行的时候会被root用户去调用执行它,我们是普通用户去调用这个脚本,但是会以root权限去运行他,

过程,先探针目标上是否有suid(脚本或者手动),再利用特定的suid进行提权

参考:SUID Executables – Penetration Testing LabSUID (Set User ID) is a type of permission which is given to a file and allows users to execute the file with the permissions of its owner. There are plenty of reasons why a Linux binary can have this type of permission set. For example the ping utility require root privileges in order to…icon-default.png?t=N7T8https://pentestlab.blog/2017/09/25/suid-executables/

已知的可用来提权的程序如下:nmap、vim、find、bash、more、less、nano、cp(看这些命令有没有配置root权限) 

比如给予了find执行命令,find就是系统自带查找命令,

在这个目录就有find,打出find目录就会默认的在目录下调用find文件,这里添加上了suid,就算是普通用户去运行find,也会以root用户去运行他。存不存在提权就是检测上面那几个文件

这里用冰蝎作为测试后门,使用冰蝎的反弹shell功能

根据冰蝎的提示设置好payload和监听ip和端口就行了

之后点给我连就行

查看当前权限

正常的通过冰蝎或者命令upload 上传的文件路径 目标主机的要上传路径以及命令

正常留下执行信息收集的sh脚本

对比有没有

map、vim、find、bash、more、less、nano、cp 这些关键字

这里看到了一个find,看到了就存在suid提权,

参考上面发的那个链接有提权的教程

find就是调用这个命令,调用这个命令就会被root执行,-exec就会用root命令去执行后面的命令,后面是反弹shell的命令。

操作过程就是,先touch 一个文件,创建一个文件就是

之后在用find 文件执行whoami的命令看一下权限

为什么find后面要跟个文件是因为要让find命令调用起来查找一些东西,才能调用出root权限

find pentestlab -exec whoami \;

看返回的权限就是root

之后在借助命令执行反弹shell

自己再去链接那个端口就拿下root权限了

Linux 提权本地配合内核漏洞演示-Mozhe

这个是本地提权,因为webshell提不了内核的漏洞

打开墨者的靶场

提权过程,先进性普通用户建立一个连接,获取到可以利用的漏洞,去下载exp,也可以在在会话上下载,exp大部分都用c语言开发的,linux的内核也是c,借助上面的编译去编译exp,给予执行的权限,

打开靶场

上传上去检测内核漏洞的脚本,执行脚本

给出了四个漏洞,

在github搜索漏洞编号,找到了45010c,利用脚本,下载下来

上传上去之后,对他进行编译

编译和之后赋予执行权限

发现是root权限 作者:沙漠里的鲸 https://www.bilibili.com/read/cv16845884/

执行脚本,直接就变成了root权限

Linux 提权脏牛内核漏洞演示-Aliyun,Vulnhub

vulnhub过程,下载出来靶机之后,要先判定出来自己的目标,自己去扫描,找到存活的ip地址,然后在目标上面找漏洞,利用漏洞成功拿到webshell权限,再利用脚本探针内核提权漏洞,然后利用内核提权成功,拿到root权限。

打开靶机是没有密码的,靶机的ip和我是同一个ip端,直接扫描就行、

扫描结果有80端口

打开网站啥都没有,继续扫描指定ip的开发端口

在看这个1898

这就是一个web界面

这个图标一眼就认出来那个cms,在msf上试试能不能直接用

搜索到了

配置好攻击信息直接拿下

上传漏洞验证脚本

查看结果

这个漏洞就是我们熟悉的脏牛漏洞,可以直接借助webshell权限提升,

这就可以直接利用url后面的链接下载地址,直接下载到靶机上

但是这样下载到靶机命名不好,不是.c文件,还是建议exp,上传到靶机上去

脏牛漏洞原理

这个漏洞的exp已经出现了二版,二版更简单一些,下载地址gbonacini/CVE-2016-5195:CVE-2016-5195 漏洞利用示例。 (github.com)

这个二版是用make编译的,所以在命令上有一些差异

上传到靶机的tmp文件夹

编译exp(将40847.cpp文件编译为dcow)并且查看:

g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow 40847.cpp -lutil

成功编译

这个漏洞再利用的时候,必须要开一个模拟终端,不然就利用不了。

这个终端是什么,现在我们是个shell会话,开一个终端就是交互式的shell,什么是交互式终端,比如在创建用户的会弹窗让输出密码,在命令里面是会给一个提出输入密码才可以继续执行,一条命令输出去如果没有交互式就会一直卡在那里,有些命令执行还要交互式再问一下是否继续,所以这个就利用到交互式,这个提权就必须弄一个交互式才能正常成功。

这里就用python做一个伪终端

python -c 'import pty; pty.spawn("/bin/bash")' 

伪终端就出来了

他已经成功了,把root密码修改了,

直接切换用户拿下root权限

aliyun

这个直接反弹shell

直接到已经找到脏牛漏洞,然后上传exp利用

上传之后,创建shell会话,

执行之后等待他返回结果

失败了。

fa

cai

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

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

相关文章

无人叉车驻车定位RFID传感器CNS-RFID-01|1S的CAN总线通信连接方法

无人叉车驻车定位RFID传感器CNS-RFID-01|1S支持CAN总线通信方式,广泛应用于智能仓库,AGV |RGV小车,无人叉车,搬运机器人定位,驻车等领域,本篇幅主要介绍器CNS-RFID-01|1S RFID传感器的CAN总线通信连接方法。…

re模块(正则)

【 一 】 re模块概述 在线测试工具 正则表达式在线测试 - 站长工具 随着正则表达式越来越普遍,Python 内置库 re 模块也支持对正则表达式使用 Python 提供了re模块可以支持正则表示表达式使用,re模块提供了9个常量、12个函数 使用方法: re…

leetcode 38. 外观数列(medium)(优质解法)

链接:力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台 代码: class Solution {public String countAndSay(int n) {//要进行 n - 1 次描述才能得到结果// last 代表当前要描述的字符串String last"1";// ret 代表描述…

【Git】fatal: bad boolean config value ‘true~‘ for ‘core.longpaths‘

windwos操作系统git config设置错了参数值,解决方法。 出现原因 在拉取代码时,仓库中存在文件名过长得文件,拉取报错了“filename too long” 解决 git config --system core.longpaths true结果在复制命令时,粘贴到命令行多了一…

git 使用方法自用(勿进)本地开发分支推上线上开发分支

一、//查看状态 1.git status 二、//查看改了哪个文件夹 1.git diff 2.//会出现改了哪个文件夹src/components/partials/Slider.js 三、//查看改了的文件夹里面具体改了啥内容 1.git diff src/components/partials/Slider.js 四、提交所有 1. git add . 五、写备注…

【C++】零碎知识点

类对象不能直接访问类的私有成员,不能在类外访问类的私有成员。只有基类的成员函数能访问私有成员,不能被派生类的成员函数访问。 如果在类声明时没有给出成员访问限定符,则默认的成员访问属性是私有的。 常成员函数的定义:int …

Redis数据库——键过期时间

一.设置键的生存时间或者过期时间 我们可以在Redis客户端输入命令,可以以秒或者毫秒精度为数据库中的某个键设置生存时间,在指定秒数或者毫秒数之后,服务器会自动删除生存时间为0的键。 1.1 设置过期时间 Redis有四个不同的命令可以用于设置键…

浅学JWT跨域认证

Json Web令牌简称JWT 由HeaderPayloadSignature组成 Header JWT头是一个描述JWT元数据的JSON对象,alg属性表示签名使用的算法,默认为HMAC SHA256(写为HS256);typ属性表示令牌的类型,JWT令牌统一写为JWT。…

AI技术迅猛发展,视频智能化给人类带来了哪些便利?

随着AI技术的迅猛发展,视频智能化也逐渐普及。在我们常见的生产工作和日常生活中,视频智能化都为人类带来了许多便利。今天小编就和大家探讨一下智能化监控带来了哪些便利。 1、安全监控 视频智能化可以实现智能安防监控,例如智慧安防系统Ea…

【并发设计模式】聊聊 基于Copy-on-Write模式下的CopyOnWriteArrayList

在并发编程领域,其实除了使用上一篇中的属性不可变。还有一种方式那就是针对读多写少的场景下。我们可以读不加锁,只针对于写操作进行加锁。本质上就是读写复制。读的直接读取,写的使用写一份数据的拷贝数据,然后进行写入。在将新…

Linux怎么解压zip格式文件?

Linux解压命令zip是一种常见的文件压缩格式,用于把文件打包成一个zip文件,当我们需要共享或是发送时,能够更快速的发送,储存起来能够减少储存空间。那我们在Linux上怎么使用解压命令zip来解压zip格式文件呢?我们一起来…

Web前端VScode/Vue3/git/nvm/node开发环境安装

目录 1 基本配置 2 安装vscode 3 安装vue 4 配置bash 5 安装nvm 6 安装node 7 安装yarn 8 新建项目 9 运行helloworld 1 基本配置 本篇是为了做前端开发的环境而写。使用的操作系统是windows 10 64位 2 安装vscode 现在做vue和node基本就是vscode和webstorm&#x…

入门级:用devEco Studio创建一个鸿蒙APP

文章概叙 本文主要讲的是如何在鸿蒙的开发工具devEco Studio新建一个项目,全文很水,只适合新手!! 开始贴图 假设当前你已经下载好了devEco Studio,但是还没正式开始安装,此时你点击安装包,你会发下如下页面,只需要点…

043、循环神经网络

之——RNN基础 杂谈 第一个对于序列模型的网络,RNN。 正文 1.潜变量自回归模型 潜变量总结过去的信息,再和当前信息一起结合出新的信息。 2.RNN 循环神经网络将观察作为x,与前层隐变量结合得到输出 其中Whh蕴含了整个模型的时序信息&#xf…

10-让Java性能提升的JIT深度剖析

文章目录 JVM的语言无关性解释执行与JITC1、C2与Graal编译器C1编译器C2编译器 分层编译(了解即可)热点代码热点探测方法调用计数器回边计数器 编译优化技术方法内联锁消除标量替换逃逸分析技术逃逸分析的原理逃逸分析 JVM的语言无关性 跨语言(语言无关性&#xff0…

【各种**问题系列】Java 数组集合之间的相互转换

📌 问题点: 在 Coding 过程中经常会遇到数组、List、Set、Map 之间的相互转换......这里记录一下转换的几种方式。😶😶😶 目录 📌 集合转换 1.数组 转 List: 2.List 转 数组: 3…

【DevOps 工具链】软件版本号命名规范 - 3种规则(读这一篇就够了)

文章目录 1、简述2、常见软件的版本号命名规则3、版本号命名规范整理3.1、XYZ/MMP3.1.1、规则3.1.2、确定3.1.3、举例3.1.4、详细规则 3.2、XYZD/MMPD3.3、VRC3.3.1、规则3.3.2、对"Vxxx"的说明3.3.3、对"Rxxx"的说明3.3.4、对"LLL"的说明3.3.5、…

Databend 开源周报第 125 期

Databend 是一款现代云数仓。专为弹性和高效设计,为您的大规模分析需求保驾护航。自由且开源。即刻体验云服务:https://app.databend.cn 。 Whats On In Databend 探索 Databend 本周新进展,遇到更贴近你心意的 Databend 。 密码策略 Data…

8.21 PowerBI系列之DAX函数专题-帕累托分析

需求 实现 1 按商品小类累积 var rollup_sales calculate(//计算当前累计销售额 [销售额], filter(allselected(order_2[产品小类]),sum(order_2[订单金额])<[销售额]) ) //按小类累积金额,filter内的销售额为选中的各小类的销售额 //金额从大到小累积&#xff0c;用&l…

RabbitMQ如何做到不丢不重

目录 MQTT协议 如何保证消息100%不丢失 生产端可靠性投递 ​编辑 RabbitMQ的Broker端投 &#xff08;1&#xff09;消息持久化 &#xff08;2&#xff09;设置集群镜像模式 &#xff08;3&#xff09;消息补偿机制 消费端 ACK机制改为手动 总结 MQTT协议 先来说下MQTT…