测试环境:

Windows Server 2003 + phpstudy

首先在win2003里运行phpstudy,这里注意需要选择应用系统服务模式,应用之后重启phpstudy。

打开系统服务(开始>>管理工具>>服务),出现Apache2a这个服务就成功了。

Apache降权和禁用PHP危险函数-LMLPHP

然后打开我们上传的PHP大马进行测试,正常情况下的权限为administrator。

Apache降权和禁用PHP危险函数-LMLPHP

环境测试正常,开始我们今天的学习目的。系统的权限分为system、admin和user权限。前两个都拥有较高权限,因为我们需要进行降权。

1、新建一个普通用户,命令如下。

net user yu 123qwe /add

打开服务界面,右键点击Apache2a服务,属性>>安全>>此账户,添加我们新建好的用户。这里注意密码需要重新输进去。设置完成后重启服务。

Apache降权和禁用PHP危险函数-LMLPHP

重启时会出现如下错误:

Apache降权和禁用PHP危险函数-LMLPHP

我们打开日志看一下是什么原因。我的电脑>>管理>>事件查看器>>应用程序。

Apache降权和禁用PHP危险函数-LMLPHP

由日志可以发现是error.log文件拒绝访问,缺失权限。因此我们对此文件进行权限设置,重新添加我们新建用户的权限。

Apache降权和禁用PHP危险函数-LMLPHP

这里由于是日志文件,我就直接给了完全控制权限。(不是因为懒)

Apache降权和禁用PHP危险函数-LMLPHP

重新启动Apache2a服务,成功启动。在webshell上查看当前用户,成功降为普通用户。

Apache降权和禁用PHP危险函数-LMLPHP

2、进行目录访问限制。将网站根目录WWW设置为只读权限,禁止创建文件和修改文件。

将mysql目录下的data文件夹权限只给:遍历文件夹和列出文件夹。

Apache降权和禁用PHP危险函数-LMLPHP   Apache降权和禁用PHP危险函数-LMLPHP

权限设置成功。

Apache降权和禁用PHP危险函数-LMLPHP

Apache降权和禁用PHP危险函数-LMLPHP

Apache降权和禁用PHP危险函数-LMLPHP

至此。我们的权限设置就差不多完成了,其他目录的权限设置也大同小异,大家可以自行修改。

最后,我们还希望最好能够直接K掉webshell的命令执行功能,进一步降低风险,怎么做呢?

打开php.ini文件,找到 disable_functions =,将PHP危险函数添加进去。如下:

disable_functions = phpinfo,eval,passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,pfsockopen,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,fsocket,fsockopen,popen

保存之后重启。再次执行命令,没有出现结果,成功完成。

Apache降权和禁用PHP危险函数-LMLPHP

笨鸟先飞早入林,笨人勤学早成材。

转载请注明出处:
撰写人:fox-yu http://www.cnblogs.com/fox-yu/
04-28 09:38