Linux提权手法整理

这篇具有很好参考价值的文章主要介绍了Linux提权手法整理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

之前写过了windows提权小结,这下一篇水什么就有了嘛,于是有了这篇水文,整理一下Linux提权

前篇windows提权小结 ,链接送上 https://www.cnblogs.com/lcxblogs/p/14163338.html

Linux提权手法整理

 

 0x00 前言

同windows提权的目的,也是从普通用户权限提升到管理员权限,以便实现读写敏感文件、横向移动进一步控制、执行一些需要权限的命令之类的要求

仍然是思路总结性质的文章,具体操作不展开介绍

具体如何做,应该注意哪些细节,请参考网上其他师傅们的复现操作

本文不涉及第三方提权

 

 

0x01 系统内核漏洞

 按照windows那篇与这篇两篇文章相互对应的关系,我就也把系统内核漏洞放在第一个位置(事实上能不用就不最先用内核漏洞,未经测试的内核漏洞可能产生意外的结果,比如系统崩溃啦、蓝屏啦、连接GG啦......)

还是,同windows内核提权一样,我们需要知道有哪些可以利用的Linux内核漏洞?

推荐几个脚本

(1)LinEnum

下载链接: https://github.com/rebootuser/LinEnum

使用方法在链接里有,能搜集出很多信息

 

(2)linuxprivchecker

 下载链接:https://github.com/sleventyeleven/linuxprivchecker

 

(3)linux-exploit-suggester2

 下载链接:https://github.com/jondonas/linux-exploit-suggester-2

 

利用内核漏洞,需要目标系统没打有关此漏洞的补丁,然后我们把利用脚本exp往目标机器上传,传了之后要能执行

当然除了上面介绍的几个信息收集工具之外,也可以手动搜集内核相关信息,前提是你记得住命令

比如uname -a  看一下内核版本

cat /etc/issue

cat /etc/*-release     看下发行版本

然后用kali的searchsploit查询exploitdb ,找一下此版本下,哪些内核漏洞可以利用,具体呢要看exp的说明,都是有要求的不是很随便的exp,注意不要被坑了

 

给你一个眼神:

Linux提权手法整理

 

 

 

言归正传

首先,如果提到Linux提权,绝对绕不过著名的脏牛漏洞,即CVE-2016-5195

Linux内核>=2.6.22(2007年发行)开始受影响,直到2016年10月18日修复

其危害就是与低权限用户可提权相关的

至于为什么叫做dirty COW(脏...牛?)?

大致原因是内核函数处理Copy-on Write(即COW)时存在条件竞争造成COW过程被破坏,出现一些问题,原理分析看这里 https://www.anquanke.com/post/id/84851

 网上有此漏洞提权的exp,c的,下载后编译成可执行文件,然后执行

 

其他类型的内核漏洞也是怎么个思想去寻找,不要怂就是干

 Linux内核的一些exp合集:  https://github.com/SecWiki/linux-kernel-exploits

 

 

0x02 钻空子提权

 

利用root权限运行的服务钻空子

这个其实并不算一种办法,只是一种朴素的想法

如果找到某服务以root用户身份运行,并且这是一个我们可以执行命令的程序相关的服务,那我们是不是可以钻个空子,用这个程序执行一些命令,变相地实现“提权”

ps -aux | grep root  找到root运行的服务

比较常用的例子就是:数据库服务是root权限运行的,那么我们可以通过在数据库shell中执行一些本来普通权限执行不了需要系统高权限才能执行的系统命令,这也是一种提权......吧

 

或者

查找敏感文件,比如passwd和shadow

/etc/passwd  存了一些用户信息。正常来说此文件是全用户可读,root可写的

/etc/shadow  存密码hash。仅仅root可读写的

cd /etc  然后  ls -l passwd shadow

看一下文件权限

如果passwd是普通用户可写的(梦里啥都有),可以把root的密码字段换成一个已知密码的hash

如果shadow是普通用户可读的(洗洗睡吧),可以读取root的hash密码,爆破之

 

或者

是不是存在一些密码复用的情况,root密码和其他你找到的密码一样......呢

 

可以尝试,但是不要对这种办法报太大希望

 

0x03 定时任务提权

又名cronjobs提权,如果配置不当就能加以利用(都比较看脸)

主要思想是:计划任务如果被设置是以root权限执行的,且可以修改定时(计划)任务中定义的脚本或文件,就能在root权限下执行任意代码

 例子请参考  https://www.freebuf.com/articles/system/175453.html

 (例子中的dash、nano可以根据实际情况选择其他的shell和编辑器)

 

 

0x04 SUID提权

 SUID---set user ID 

顺便讲一下Linux中文件权限的表示方法,啊懂的都懂,有不懂的兄弟我就自告奋勇一下了

 

类UNIX系统下可以通过  ls -l  查看文件权限

表示方法是一种十位表示法,类似:

-  r w  x r  w x r  w  x

1 2 3 4 5 6 7 8 9 10

 

2-10位展示的 r w x 分别是readable 、writable、 executable权限 或者说可读、可写、可执行 或者说4、2、1,没有相应权限的位置写-

属主(u)2-4位;属组(g)5-7位; 其他(o)8-10位

第一位可以是:p 管道文件; d 目录文件 ;l 符号连接文件;- 普通文件;s socket文件;c 字符设备文件;b 块设备文件

 

除此之外,还有三种特殊权限:SUID、SGID、sticky

s或S(SUID--set user ID )占据4号位,对应值为4

s或S(SGID-set group ID)占据7号位,对应值为2

t或T(sticky)占据10号位,对应值为1

 

于是给文件加减权限就有:

chmod u+s filename

chmod g+s filename

chmod o+t filename   (取消权限顺理成章+换成-即可)

或用数字表示

chmod 4755 filename  代表-rwsr-xr-x  (-rwxr-xr-x  这是原来的755,赋了SUID=4权限)

chmod 7755 filename  代表-rwsr-sr-t  (-rwxr-xr-x  这是原来的755,赋了SUID、GUID、sticky=4+2+1=7权限)

chmod 7666 filename       代表-rwSrwSrwT  (-rw-rw-rw-  这是原来的666,赋了SUID、GUID、sticky=4+2+1=7权限)

chmod 0755 filename   去掉所有特权

 

看出来点区别没?

小写s或s或t是取代了原来的x的,但如果原来没有x,就会表示为大写的S或S或T

 

SUID作用于文件(二进制程序):用户将继承文件所有者的权限(root用户创建一个文件并加上SUID,其他用户使用这个文件时就是具有root权限的)

GUID作用于文件(二进制程序)和目录:对于文件,用户将继承文件所属组的权限;对于目录,此目录下的所有新建目录、文件都自动继承此目录的属组权限

sticky作用于目录:粘滞键,目录中的用户只能删除、移动、更改自己的文件或目录(比如创建一个公共目录,管理员不希望a用户能修改b用户创建的、放在公共目录中的文件,反之b用户也不能修改a用户创建的、放在公共目录中的文件,那就把公共目录设定一个sticky位,定住)

 

 

讲了这么多废话,这和提权有啥关系啊?

 别急,原理懂了就好说了

首先找目标系统上,所有运行中的且有SUID的、都以root用户权限运行的可执行文件(3种命令,不同系统不一样,都试试):

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

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

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

Linux提权手法整理

找到的这些都是以root权限运行的,包含SUID的‘s’的,属主是root的文件

 随便找一个试一下(只是演示)

Linux提权手法整理

 

 可以看到是root的SUID,都红了

 

我这里没有好的命令,实际上最好找到有nmap、vim、find、more、less、bash、cp、Nano、mv、awk、man、weget之类的且用了SUID的命令

这些命令都是可以在root权限下运行,对于SUID提权有帮助的

具体提权方法可以参考 https://pentestlab.blog/2017/09/25/suid-executables/

https://blog.csdn.net/fly_hps/article/details/80428173

 

实际上,基本没有人很nice又非常可爱的小运维会把这些文件加SUID的,相信我

所以就当复习一下Linux的小知识吧,不说了

 

0x05 环境变量操作

一种与SUID提权 结合+操作 的手段

 

Linux中环境变量是PATH,echo $PATH  查看当前环境变量

Linux提权手法整理

 

 如果在PATH变量中发现“.”,表示用户可以从当前目录执行二进制文件脚本

 

举个简单的例子,仅供演示不代表实操:

我新建一个ls的可执行文件,里面写着  whoami

Linux提权手法整理

 

 PATH没加.之前是这样的

Linux提权手法整理

 

 加个.     (关于Linux环境变量配置请参考:https://www.cnblogs.com/youyoui/p/10680329.html)

Linux提权手法整理

 

 再来ls

Linux提权手法整理

 

 

可见执行结果不是原来的ls 产生的列表效果了,而是变成执行了我ls文件中的whoami了

 

那么你讲这些对提权有啥用啊?辅助理解,辅助理解

举一反三,我原来有个可执行的A文件,运行这个A文件可以实现某种功能,比如查看系统进程或者其他什么东西

诶好巧不巧,这个A文件是个有root的SUID的可执行文件(但除了管理员其他人无修改此文件的w权限,只是可读可执行  -rwsr-xr-x)

一个普通用户,在目标Linux中为了提权,想利用我上一点说的搜索root权限的有SUID的文件(find / -user root -perm -4000 -print 2>/dev/null)时,啪地一下发现了这个A文件,很快啊

比如执行A文件叫shell,是通过gcc demo.c -o shell生成的,demo.c这个C文件中调用了系统命令ps,于是./shell效果和执行ps效果是一样的,会显示当前进程信息

cp /bin/sh /tmp/ps

把/bin/sh脚本执行命令文件复制到/tmp路径下,新文件起个名也叫ps

export PATH=/tmp:$PATH

($PATH处写echo $PATH的结果)在原有的环境变量基础上,加上新文件ps(其实内容也就是/bin中的sh)所在的路径

再次./shell的时候,也就是执行ps的时候!!!

 

这次执行的并不是原有的显示进程信息的操作,由于加入了环境变量,而是执行了/tmp路径下的新文件ps,即执行了sh命令,会出现执行sh的脚本执行命令效果!

在sh命令下,执行whoami查看权限是root,提权成功,是因为SUID提权原理,shell文件本身是有root的SUID的,配合本小点讲的环境变量的操作实现提权+任意命令执

行(ps可以换其他的,/tmp路径可以换其他的,/bin/sh也可以换其他的),这个方法本质上还是需要SUID提权的,算是一种操作的延展,鸡肋+1 get

 

参考过这篇被翻译烂了、讲的比较全的文章:https://xz.aliyun.com/t/2767

就能更好理解一下上述内容了

 

 

 其他还有一些方法,比如CVE-2019-14287

请参考文章:https://www.freebuf.com/vuls/217089.html

 嗯......不做评论,感兴趣可以看一下

 

各位师傅还有哪些最新的好办法,求分享

随便转载,请标明作者出处文章来源地址https://www.toymoban.com/news/detail-711266.html

到了这里,关于Linux提权手法整理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • windows提权-绕过UAC提权

    目录 windows提权-绕过UAC提权 一、UAC概述 二、MSF和CS过UAC 三、基于白名单AutoElevate绕过UAC 四、基于白名单DLL劫持绕过UAC提权 五、CVE-2019-1388 UAC提权 六、Windows令牌概述和令牌窃取攻击 UAC(User Account Control),中文翻译为用户帐户控制,是微软在Windows Vista和Windows7中引用的新技术

    2024年02月04日
    浏览(31)
  • windows提权-系统错误配置提权

    目录 windows提权-系统错误配置提权 一、错误配置提权介绍 二、Tusted Service Paths提权 三、PATH环境变量提权 四、不安全的服务提权 五、不安全注册表提权 六、注册表键AlwaysInstall提权 七、泄露敏感信息提权 八、计划任务提权 九、启动项提权 随着网络安全的发展和普及,不打补

    2024年02月03日
    浏览(30)
  • Windows提权

    目录 一、Windows内核溢出漏洞ATSCPS提权 1.基于WEB环境下的权限提升    windows内核溢出漏洞提权 2.基于本地环境下的权限提升-ATSCPS命令 AT SC PS 二、数据库提权 1.Mysql udf提权 MOF提权 2.SQL Server xp_cmdshell提权 xp_oacreate+sp_oamethod提权 sandbox沙盒提权 3.Oracle提权 三、RedisPostgre令牌窃取进

    2024年02月02日
    浏览(32)
  • Windows机器的udf提权

    前提条件 (1)需要拿到mysql的权限 (2)mysql有写入文件的权限 实验步骤 (1)拿到数据库操作页面 (2)查询mysql版本,不同版本dll文件位置不同 (3)查询是否有写入文件权限 (4)查询plugin文件路径 (5)将udf文件内容转换成16进制 (6)将本地udf64.dll文件以16进制数据上传

    2024年02月08日
    浏览(31)
  • Windows系统内核溢出漏洞提权

    目录  Windows内核溢出漏洞原理 溢出漏洞简介 什么是缓冲区 缓冲区溢出 缓冲区溢出目的 Windows内核溢出漏洞利用流程 提权实战思路 手工提权测试 辅助提权 EXP如何寻找 使用MSF提权 关于提权时可能遇到的问题 如果提权的时候发现无法执行命令的话,可以上传一个cmd.exe到可读

    2024年02月07日
    浏览(34)
  • 【内网安全】——Windows提权姿势

    作者名:白昼安全 主页面链接: 主页传送门 创作初心: 一切为了她 座右铭: 不要让时代的悲哀成为你的悲哀 专研方向: web安全,后渗透技术 每日emo: 不悲伤,不彷徨,有风听风,有雨看雨 在内网阶段,假如我们通过了外部打点拿到了 webshell 怎么来进行 权限提升 呢。

    2024年02月06日
    浏览(26)
  • Windows之任意文件删除到提权

    ZDI 发表过从任意文件夹删除到提权的利用过程,还提供了任意文件删除到提权的利用过程,所以一字之差但是漏洞利用方式也是有细微偏差的。 这里把任意文件删除和任意文件夹删除漏洞提权结合起来分析,是因为其最后的利用过程是一样的,通过不同的CVE漏洞利用过程来

    2024年01月18日
    浏览(28)
  • 提权 - Windows 烂土豆/ dll劫持 /服务权限

    烂土豆结合令牌窃取进行提权,WEB权限提权到system权限。 1.原理 1.欺骗“NT AUTHORITYSYSTEM”账户通过NTLM认证到控制的TCP终端 2.对这个认证过程使用中间人攻击(NTLM重放),为“NT AUTHORITYSYSTEM”账户本地协商一个安全令牌。这个过程通过一系列的Windows API调用实现的。 3.模仿这

    2024年01月19日
    浏览(48)
  • 内网安全—Windows系统内核溢出漏洞提权

    系统内核溢出漏洞提权         往缓冲区中写入超出限定长度的内容,造成缓冲区溢出,从而破坏程序的堆栈进而运行自己精心准备的指定代码,达到攻击的目的。 分类:         堆溢出         栈溢出 查找补丁的方法          1、手工查找补丁情况      

    2024年02月03日
    浏览(41)
  • 【linux提权】利用setuid进行简单提权

    首先先来了解一下setuid漏洞: SUID (Set UID)是Linux中的一种特殊权限,其功能为用户运行某个程序时,如果该程序有SUID权限,那么程序运行为进程时,进程的属主 不是发起者 ,而是 程序文件所属的属主 。但是SUID权限的设置只针对二进制可执行文件,对于非可执行文件设置SUID没

    2024年02月04日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包