站点被入侵、服务器被黑等情况每隔一段时间就会有客户遇到。这里对常见的入侵方式、木马清理、安全加固做一个介绍。

5.jpg

        上图为流传多年的渗透测试三字经。

        服务器系统和桌面版的差别我们不做深层次的解读,这里从用途来说明。

        服务器系统用途比较单一:跑网站、数据库或者erp运用,一般都暴露在外网,以网络途径为入口进行入侵。

        个人电脑则需要安装运行各种日常工具,攻击面更广同时风险也更大,主要中毒途径为页面挂马、软件漏洞、来路不明的软件携带木马程序。

        基于上面的原因,很多时候我们会看到服务器已经被黑客入侵,但是服务器上的360杀毒软件还在未知未觉。所以服务器上一般都是以主动防御为主,比如安装服务器安全狗、IIS安全狗、云锁等进行请求拦截和系统账户加固。

        上面提到,服务器被入侵一般都是通过网络层面,那么当我们在维护一台服务器的时候,首先就需要熟悉其运行的业务,对外开放了哪些端口和服务,哪些途径能和服务器交互。

        目前我们业务内服务器80%都是做网站服务器,同时常被入侵的服务器也是web服务器。这里以web服务器为例进行说明。

对于web服务器,一般来说对外开放的服务有远程管理服务(例如windows下的远程桌面\telnet、linux下的SSH\vnc)、网站服务(IIS\apache\nginx\tomcat等)、FTP服务、数据库服务(mysql\sqlserver\redis等)。

        每个对外开放的服务,都相当于房子多了一道门或者一扇窗,对外开放的越多,风险越大。所以我们在维护的时候都建议开启系统防火墙,只开放必要的端口(比如不需要数据库外链的情况,1433、3306等数据库服务端口不对外开放,减少暴力破解的风险)。

接下来我们进入正题,分析一个网站是如何被攻破。

网站放在服务器上,能进行站点文件交互的途径一般两个:

①http请求访问站点。

②通过ftp方式对站点文件进行上传、下载、修改。

http请求也就是直接访问你的站点,通过漏洞上传webshell达到控制网站的目的。

常见web入侵利用方式有:sql注入、xss跨站脚本攻击、上传漏洞、命令执行、网站旁注。

  • sql注入,通过正常的http请求,把sql语句拼接到网址中进行请求,达到对数据库进行恶意查询,从而获取到敏感信息。一般动态站点管理员信息都是存在数据库,所以通过sql注入就能获取到管理员的账户和密码。

如下图所示,我们在一个百度出来的站点网址后面加了一些sql语句后整个页面提示了数据库语句错误。通过一些分析和拼接或者直接用注入工具进行注入,就可以获取到其账户密码。

6.jpg

        如果数据库不是配置的root账户而且数据库服务经过降权处理,通过注入是不能直接写入文件到网站目录的。这个时候黑客通常会用获取到的账户信息进行后台登录,尝试进一步利用。

需要登录后台,就需要知道后台地址,黑客一般通过猜目录、爆破后台,找到后台后登录地址然后进行登录。

        登录后再尝试进一步利用,利用方式主要有:通过后台编辑器上传利用上传漏洞上传脚本文件、后台数据库备份功能(比较古老的asp站点常存在这个功能)备份指定文件为脚本文件、直接修改编辑站点文件插入恶意代码(dedecms\wordpress\ecshop都有后台直接编辑文件的功能)、编辑站点设置写入恶意代码(例如aspcms站点设置是直接存入asp文件中,导致可以通过后台)。总之就是通过后台的功能把webshell写入站点目录下,再通过访问webshell对站点进行控制和对服务器进一步的渗透。

  • xss跨站脚本攻击。通过站点交互的地方(比如留言板、工单等)提交特定的js脚本,达到插入到页面的效果,当管理员查看留言或者工单时候,在页面执行了指定的js脚本,通过js获取到管理员的cookies信息之后伪造该信息登录到受害者访问的页面(这里为查看了含有xss内容页面的管理员),从而实现获取后台并登录后台的目的。登录后进一步操作和上面提到的sql注入后获取站点权限大同小异。

  • 上传漏洞。上面已经提到,xss\sql注入等最终目的要么是获取你的数据要么是想获取管理信息通过后台利用后台功能进行getshell.上传漏洞就是常用的一种手法,通过后台编辑器验证不全上传asp\php\aspx等文件。也有部分编辑器本身就存在漏洞导致不需要进入后台即可进行上传(例如fck编辑器)

  • 命令执行。这种漏洞就比较厉害了,不需要千方百计进行注入、xss、文件上传利用,直接通过http请求执行系统命令,从而达到写入文件、操作服务器的目的。例如下图通过struts2命令执行漏洞执行whoami命令查看当前站点运行账户。可以看到请求后下载了一个文件,文件内容为执行的结果。这里运行账户为a1281这个用户,权限是比较低的,所以这个漏洞只影

7.jpg

  • 网站旁注。这个就很简单了,和追女孩子一个道理,很多人都会通过小姑娘的好朋友去进一步接触。一样的道理,当一个站点比较难搞各种方法都试了,还是没有什么进展的时候,如果服务器上海存在其他站点,黑客就会尝试扫描同服务器站点,从一个比较好入侵的入手,然后再通过该站点上传webshell,利用webshell去列目标站点目录文件、搜寻备份文件、提权服务器等方式一步一步接近目标站点并最终搞定。所以在我们为客户建立站点时候一直强调站点权限控制、站点权限隔离、磁盘权限设置。就是为了防止通过一个有弱点的站点把同服务器其他站点入侵掉。

针对第二种:FTP篡改。这种情况为通过暴利破解FTP账户和密码,猜解到匹配密码后进行登录修改。这种情况只需要把FTP用户名和密码设置复杂,不要存在弱口令基本可以杜绝被FTP爆破后篡改文件的情况。

通过以上简单分析一些常见的入侵方式,我们可以发现大致的途径都是千方百计获取账户密码和后台地址,登录后台进行恶意文件写入。最终的目的,都是获取你的数据库内容或者写入恶意文件。对于我们的客户,大部分为企业站点,数据库内容价值不大,所以一般都是为了写入恶意文件达到控制站点的目的。

作为维护人员,我们是基本不能帮客户修改代码堵住漏洞的。

针对这个情况,我们能做的内容:

  • 站点后台可以更改的情况下更改复杂

  • 账户密码修改复杂不要存在弱口令

  • 控制上传目录的脚本执行权限(上传目录去除脚本执行权限)

  • 对站点运行账户进行权限隔离和目录隔离

  • 数据库服务\web服务降权处理

  • 站点中不要直接配置sa\root这种超级用户使用

  • 防火墙禁止不需要开放的服务、杜绝弱口令。


网站被入侵如何处理

如果一个网站已经被入侵了,我们常用D盾_Web查杀进行扫描。下载地址:http://www.d99net.net/

扫描过程中可以看到写入的webshell文件,通过文件的路径、文件名结合上面提到的常见入侵手法,基本可以判断黑客是如何把恶意文件传上来的。分析出可能的途径后进行针对性加固。例如一个基于dedecms的站点被黑了,通过搜索可以发现dedecms的漏洞都是sql注入,那么在清理完恶意文件后,协助客户对程序进行升级,升级到到最新版本,同时修改后台路径、修改复杂管理密码、上传目录\data目录取消执行脚本权限、不需要写入的目录比如include\templates目录取消写入权限。

遵循的一个思想:

从哪里进来就把哪里堵住,加固弱点规避风险。

可行的情况下可写入的目录不让它执行脚本,可执行脚本的目录不让它写入文件。

同时,作为主动防御,利用服务器安全软件对站点请求进行过滤,限制特定目录可写入的文件后缀,都可以极大程度上杜绝站点被入侵和篡改。

下图为在客户不能修复漏洞的情况下,通过服务器安全狗限制存在命令执行的站点目录禁止写入JSP文件,避免站点被篡改:

8.jpg

下图为拦截恶意写入日志:

9.jpg

站点被入侵篡改每天都在发生,遇到这种情况积极为客户处理并协助分析存在的弱点,给出针对性的建议和加固措施。

一个站点不会无缘无故被入侵,被入侵了说明肯定存在程序或设置上的问题,在日常处理中务必多思考问题所在然后进行整改