一、什么是Webshell?
顾名思义,“web”的含义是显然需要服务器开放web服务,“shell”的含义是取得对服务器某种程度上操作权限。webshell常常被称为入侵者通过网站端口对网站服务器的某种程度上操作的权限。由于webshell其大多是以动态脚本的形式出现,也有人称之为网站的后门工具。
webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将asp或php后门文件与网站目录下正常的网页文件混在一起,然后就可以使用浏览器来访问asp或者php后门,得到一个命令执行环境,以达到控制网站服务器的目的。
shell是一个人机交互页面,能操控服务器并获取权限。Shell文件有个变态的地方,就是可从服务器那边接收数据并执行、返回结果,也就是说只要把 shell 文件上传到目标服务器,就能操控服务器了。
二、webshell的分类
webshell根据脚本可以分为PHP脚本木马,ASP脚本木马,也有基于.NET的脚本木马和JSP脚本木马。根据时代和技术的变迁,国外也有用python编写的脚本木马,不过国内常用的无外乎三种:大马,小马,一句话木马,具体使用场景和特地如下图:
三、Webshell的作用
一方面,webshell被站长常常用于网站管理、服务器管理等等,根据FSO权限的不同,作用有在线编辑网页脚本、上传下载文件、查看数据库、执行任意程序命令等。
另一方面,被入侵者利用,从而达到控制网站服务器的目的。这些网页脚本常称为WEB脚本木马,比较流行的asp或php木马,也有基于.NET的脚本木马与JSP脚本木马。
四、Webshell的隐蔽性
WebShell后门具有隐蔽性,一般隐藏在正常文件中并修改文件时间达到隐蔽的,还有利用服务器漏洞进行隐藏,如 "..." 目录就可以达到,站长从FTP中找到的是含有“..”的文件夹,而且没有权限删除,还有一些隐藏的WEBSHELL,可以隐藏于正常文件带参数运行脚本后门。
webshell可以穿越服务器防火墙,由于与被控制的服务器或远程过80端口传递的,因此不会被防火墙拦截。并且使用webshell一般不会在系统日志中留下记录,只会在网站的web日志中留下一些数据提交记录,没有经验的管理员是很难看出入侵痕迹的。
五、如何防范Webshell 渗透?
从根本上解决动态网页脚本的安全问题,要做到防注入、防爆库、防COOKIES欺骗、防跨站攻击(xss)等等,务必配置好服务器FSO权限。最小的权限等于最大的安全。
最有效方法就是:可写目录不给执行权限,有执行权限的目录不给写权限。
具体的防范方法(以asp为例子):
1、建议用户通过ftp来上传、维护网页,尽量不安装asp的上传程序。
2、对asp上传程序的调用一定要进行身份认证,并只允许信任的人使用上传程序。
3、asp程序管理员的用户名和密码要有一定复杂性,不能过于简单,还要注意定期更换。
4、到正规网站下载程序,下载后要对数据库名称和存放路径进行修改,数据库名称要有一定复杂性。
5、要尽量保持程序是最新版本。
6、不要在网页上加注后台管理程序登陆页面的链接。
7、为防止程序有未知漏洞,可以在维护后删除后台管理程序的登陆页面,下次维护时再通过上传即可。
8、要时常备份数据库等重要文件。
9、日常要多维护,并注意空间中是否有来历不明的asp文件。
10、尽量关闭网站搜索功能,利用外部搜索工具,以防爆出数据。
11、利用白名单上传文件,不在白名单内的一律禁止上传,上传目录权限遵循最小权限原则。
12、使用防篡改系统工具,或者使用软件监控网站目录文件的操作日志,一发现异常马上处理。