Centos7 SElinux下nginx+php渗透提权测试

一、安装Nginx服务

1、安装nginx源

rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 
yum install -y nginx

2、启动Nginx

systemctl restart nginx 
systemctl enable nginx

3、测试web服务,默认页面

4、查看默认Type类型

ll -Z /usr/share/nginx/html

SELinux的三种模式

enforcing  强制模式 
permissive  宽容模式 
diabled   关闭

5、获取当前SELinux的模式

getenforce
临时生效:
usage: setenforce [ Enforcing | Permissive | 1 | 0 ]   0宽容模式,1强制

6、Nginx修改web目录路径测试

将默认路径/usr/share/nginx/html 更改为/var/www ,重启后出现403页面
location / {
root /var/www;
index index.html index.htm;

7、异常问题排查

经排查,发现默认目录和新添加的目录,可执行文件类型不太一样
ll -Z /usr/share/nginx/html
ll -Z /var/www/

8、权限异常问题解决

将设置目录文件类型为:
chcon -Rt httpd_sys_content_t /var/www/
已经可以正常访问了。

二、安装PHP服务

1、安装 php源

yum install epel-release 
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm 
yum -y install php72w php72w-cli php72w-fpm php72w-common php72w-devel

2、服务启动

systemctl enable php-fpm
service php-fpm restart
vim /etc/php-fpm.d/www.conf   //将apache改为nginx
测试php服务,发现一切正常。

三、提权测试

1、SELinux开启时webshell后门上传测试

结论:经测试,发现创建失败。
结论:测试上传功能,依然失败。

2、SELinux关闭时webshell后门上传测试

将SELinux修改为宽容模式,再测试。
[root@localhost abc]# setenforce 0
[root@localhost abc]#
[root@localhost abc]# getenforce
Permissive
结论:测试发现,上传文件、新建文件均成功。

3、SELinux开启关闭时,测试端口扫描服务

端口扫描测试:
结论:经测试,SELinux关闭和开启,扫描结果存在严重误差。

4、SELinux关闭时,测试NC反弹提权测试

结论: NC反弹成功!

5、SELinux开启时,测试NC反弹提权测试

结论:NC反弹失败!

6、总结

测试证明:当SELinux开启时,想获取webshell、漏洞利用等黑客攻击行为很难成功。即便能够获取到webshell,但是无法利用其上传、创建、篡改文件;以及端口扫描、NC反弹提权等操作,均失败。说明是SELinux是一个非常强大和安全的策略控制系统,当selinux功能开启时,能够防御一定程度的黑客攻击,在生产环境中,可以大大降低被入侵攻击的风险。