2020年3月4日,发现公司官网第一次访问后跳转到腾讯云的付款界面,见图1,之后再次访问,页面正常,不再跳转(看来木马还想隐蔽),处于职业警觉性,怀疑网站被挂马,于是开始了分析之路。为了还原过程,下述内容均在测试环境中运行。
1、由于服务器近日有外人登录做部署,怀疑服务器被黑,于是登录服务器检查,一切正常,查看站点下其他网站,没有发现此类现象,于是排除服务器被挂马,IIS站点正常,排除IIS被挂马。
2、重点检查异常站点,分析挂马网站。
1)、只有在第一次访问主页时,出现跳转,以后不再跳转,说明木马程序有逻辑判断,可以排除arp欺骗挂马、篡改Header来跳转等方式。
2)、怀疑木马写入了Cookie来做记录判断是否跳转,打开页面Debug查看,见图2,于是看到了有http://che0.com写入的两个Cookie。。
清除Cookie,访问站点网站,出现跳转,再次访问,不跳转,证明分析正确。继续调试,查看Sources,发现top下多了一个cs5.html的子页面,这显然不是我们的站点,子页面地址是che0.com,与Cookie的地址对上,没错就是它了。
继续分析,che0.com站点下发现了q.js,见图4,发现了跳转腾讯云的地址(cloud.tencent.com/act/cps/redirect)见图5,现象也对上了。
3)、基本确定是XSS跨站脚本攻击,查看主页和其他html静态均有此现象,确定并不是单单主页被篡改,怀疑某个共同引用的js文件被篡改挂马,于是调试页面,body下发现了iframe,src为http://che0.com/cs5.html,宽高为0的子页面,继续分析页面,iframe后面跟着script,但是原始文件中的script并不在body中,而是在head中,查看head,发现jquery.min.js下的所有script标签均移到的body中,确定此文件有问题,于是替换此文件,站点恢复正常。
4)、分析木马jquery.min.js,这是一个被压缩的js,将文件格式化便于阅读,分析文件,在文件底部发现了eval,同样发现了iframe、cs5、che0,等关键字,没错就是这段代码篡改了我们的文件。
总结:
1、这是一次XSS跨站脚本攻击。
2、js文件被挂马篡改。
3、木马很小心,只在第一次跳转,很容易忽略,虽然只跳转危害性不太大,但是谁知道以后它会干什么坏事,同样要警惕。
4、由于我们的站点后台有些年头了,怀疑是后台的漏洞造成的,被人利用上传挂马文件,所以还是要及时更新。