0*1 基本情况
偶然发现一台 web 服务器很怪异, 其网站页面上增加了一堆外文的页面链接, 点击一篇进去之后, 内容如下图所示:
该网站是中文网站, 绝不可能存在上述的页面内容, 同时页面中嵌入一堆的 JS 代码. 很明显, 该网站已经被黑, 未避免遭受进一步的危害, 紧急采取措施让服务器下线. 由于该台服务器部署于单位异地远程机房, 下线后无法直接对服务器进行分析, 只是采取远程协同分析日志文件的方式 (拿到一些 Web 日志文件, 以及一些异常 PHP 文档), 因此无法实施深入分析.
服务器是 Windows 系统, 使用 Apache 作为 Web 服务器, 网站基于 PHP+WordPress 开发. 服务器基本情况:
0*2 页面简单分析
上图中的 JS 代码如下表所示:
经过简单分析, 很明显上表中的这段代码应该是攻击者的 XSS 跨站漏洞利用代码, 主要用于获取访问该页面的用户的 cookie 信息, 根据函数名称 getCookie 也很容易得知其功能.
上述代码中 base64 加密部分解密后后内容如下:
可知, 攻击者 XSS 服务器为 193.238.46.57, 地址查询如下图所示, 目前该页面无法访问.
0*3 日志分析
1,access.log 日志
分析该日志, 发现了密码暴力猜解记录, 漏洞攻击历史记录, WordPress 登陆操作, 网页爬虫等记录.
a) 大量暴力破解或 DDOS 攻击报文
通过查看日志发现, 每天有大量的 IP 访问 WordPress 网站 xmlrpc.PHP 文件. 利用 POST 方式提交发送数据, 由于日志中无法看到 POST 数据报文内容, 猜测应该是用于暴力密码穷举; WordPress 管理登陆接口做了防暴力破解防护, 利用 xmlrpc.PHP 接口可以绕过上述登陆限制, 可以通过 post 数据到 xmlrpc.PHP 进行密码破解尝试, 该行为也导致服务器资源损耗严重.
b) 大量漏洞攻击记录
日志中同样发现大量的漏洞攻击记录, 尤其是对 ThinkPHP5 远程代码执行漏洞的利用尝试, 说明恶意网络攻击行为很频繁. 下表是服务器一天中遭受漏洞攻击的情况:
提取恶意 URL 列表如下:
c) WordPress 登陆操作
从 access.log 中发现了一些 WordPress 后台管理成功登陆的操作, 说明 WordPress 的账户密码已失陷, 根据时间和登陆 IP 判断不属于管理员. 同时这些操作重复次数多, 且发生操作的 IP 也不定, 因此怀疑本台服务器的攻击者不止一个, 可能是遭受多个自动化的网络攻击行动所致.
[03/Mar/2020:00:45:53 +0800] “GET /wp-login.php HTTP/1.1″ 302 6 “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/537.36 (Khtml, like Gecko) Chrome/32.0.1664.3 Safari/537.36″ |
---|
[03/Mar/2020:00:45:55 +0800] “GET /wordpress/wp-login.php HTTP/1.1″ 200 3129 “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36″ |
[03/Mar/2020:00:45:57 +0800] “POST /wordpress/wp-login.php HTTP/1.1″ 200 4116 “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36″ |
[03/Mar/2020:00:45:59 +0800] “GET /wp-admin/post-new.php HTTP/1.1″ 404 17318 “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36″ |
[03/Mar/2020:00:46:00 +0800] “GET /wp-admin/plugin-install.php?tab=upload HTTP/1.1″ 404 17318 “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36″ |
[03/Mar/2020:00:46:05 +0800] “GET /wp-admin/theme-editor.php HTTP/1.1″ 404 17318 “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/32.0.1664.3 Safari/537.36″ |
[03/Mar/2020:00:48:11 +0800] “GET /administrator/index.php?option=com_content&view=article&layout=edit HTTP/1.1″ 301 6 “-” “Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.47 Safari/537.36″ |
d) 网页爬虫记录
分析一天的日志文件, 从中发现了如下的爬虫信息, 如下表所示, 其中 SEMrushBot 和头条爬虫在这一天中最为活跃.
SEMrushBot | Mozilla/5.0 (compatible; SemrushBot/6~bl;+ http://www.semrush.com/bot.html ) |
---|---|
百度爬虫 | Mozilla/5.0 (compatible; Baiduspider/2.0; + http://www.baidu.com/search/spider.html ) |
头条爬虫 | Mozilla/5.0 (Linux; Android 5.0) AppleWebKit/537.36 (KHTML, like Gecko) Mobile Safari/537.36 (compatible; Bytespider; https://zhanzhang.toutiao.com/ ) |
Bing 爬虫 | Mozilla/5.0 (compatible; bingbot/2.0; + http://www.bing.com/bingbot.htm ) |
谷歌爬虫 | Mozilla/5.0 (Linux; Android 6.0.1; Nexus 5X Build/MMB29P) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.92 Mobile Safari/537.36 (compatible; Googlebot/2.1; + http://www.google.com/bot.html ) |
Moz 爬虫 | Mozilla/5.0 (compatible; DotBot/1.1; http://www.opensiteexplorer.org/dotbot, help@moz.com) |
神马搜索 | Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.81 YisouSpider/5.0 Safari/537.36 |
对于网站运营者来说, 发现网站被黑后采取措施对被黑服务器系统进行清理. 但是其实由于 "搜索引擎爬虫" 的不辞辛劳的卖力干活, 其实网站被黑的页面已被爬取并留存证据.
2,error.log 日志
查看 error.log 发现了一些问题, 比如大批量的错误提示在一堆怪异英文名字命名的 PHP 文件中 "找不到"check_is_bot.PHP" 文件, 最早出现的提示是 2018 年 1 月 20 日, 说明服务器早在 2 年前就已经被黑, 如下表:
于是, 跑到 C:\phpStudy\WWW\wordpress2\wp-content\plugins\anything-order-by-terms\modules\, 发现目录下确实多了一堆怪异英文名字的 PHP 文件.
anything-order-by-terms 是一个 WordPress 插件, 通过该插件, 可以在管理屏幕上的内置列表中轻松拖放来安排任何帖子类型和术语.(使用者已不知道是否自己安装)
改名下总共有 430 多个 PHP 文件以及几十个 PHP.suspected 文件, 一些 PHP 文件名列表如下图所示:
同时, 发现这些文件的生成时间是: 2018 年 1 月 12 日 15:29 分钟.
于是到往前追溯, 发现 1 月 12 日 13:33 有异常的错误日志, 关联到 404.PHP
此外, 在这些目录下面, 确实发现 check_is_bot.PHP 相关的文件: check_is_bot.PHP.suspected, 同时在目录下也发现了其他的一堆以 PHP.suspected 结尾的文件, 如下图所示, 判断应该是被杀毒软件重命名了.
check_is_bot.PHP 的文件内容如下:
解码后的 PHP 代码如下图所示:
打开任意一个怪异英文名 PHP 文件, 发现其实是一个 HTML 页面, 其中每个页面首部都添加了一段 PHP 代码, 用于包含 check_is_bot.PHP, 并且执行一段 JS 代码. 如下表所示:
jscs.min.JS 的内容查看如下:
简单分析代码, 先对 M5s 字符串进行处理, 处理的代码如下, 即每隔 2 个字节经过 parseInt 转换, 再转换成字符串, 接着调用 setTimeout 执行.
0*4 小结
本次分析只是简单记录服务器被黑的情况, 由于网站本身对外提供服务功能有限, 日常访问使用人数不多, 导致运营者基本没有维护管理, 从几年都没有发现问题可以看出. 相信这种情况, 很多单位都存在, 有些小网站系统由于一时的业务需要, 利用开源框架架设完毕后, 功能能用就放着不管了, 后续不会投入资源进行更新, 维护和管理, 甚至都不记得有这个网站系统. 随着网络安全监督力度加大, 这些容易被忽视的网站很容易出现违法违规情况, 如果遭受网络攻击后造成不良影响, 可能影响企业的正常经营活动, 建议必须投入资源关注:
, 汇总摸清单位所有对外服务器的情况;
, 明确各个服务器使用和管理责任部门和人员;
, 实施网站日常巡查制度;
, 勤更新升级补丁;
, 限制网站后台管理;
, 定期实施网络安全评估;
, 投入资源建设, 升级网站安全防护软硬件系统.
来源: http://www.tuicool.com/articles/Yzymiu7