我的博客被黑了

七月二十二号上午,我在阿里云控制台看到两条红色的”紧急”告警——”发现后门(Webshell)文件”。第一反应是误报。我的博客就是个人站,一共没几篇文章,谁会来黑它?

不是误报。往下查了两个小时,把攻击链从头到尾翻了出来。记录一下,因为踩出来的坑,形状比我想的要普遍得多。

四天

事后回看服务器日志,时间线是这样的:

七月十八号晚上九点五十二分,有人拿着一个有效的管理员密码,一次登录成功。不是暴力破解——日志里只有一条 POST 请求,直接 302 跳转进了后台。这个密码是对的,他知道。

两天后,七月二十号晚上,后台被偷偷建了一个管理员账户,名字叫 wpenginebot——伪装成 WordPress 官方服务的样子,邮箱也编得像模像样。如果我不是刚好点进用户列表,大概很长时间都不会注意到多了一个管理员。

又两天,七月二十二号早上九点,另一个 IP 登录(用那个假管理员),通过”上传插件”功能传了一个叫”WP Maximum Upload File Size”的插件包。名字很正常,但里面藏了两个 PHP 文件——不是插件代码,是后门。

这两个文件就是阿里云报警的 Webshell:能在服务器上执行任意代码、读写任意文件。从十八号到二十二号,攻击者在我的服务器上待了四天。

他们想要什么

查完之后我最想知道的是:图什么?一个月访问量三位数的个人博客,有什么好黑的?

答案让我意外又不意外:他们要的不是我的内容,是我的服务器。

一台被控制的、带着正规域名和有效 HTTPS 证书的服务器,本身就是地下市场上的商品。常见的变现方式包括:往你的网页里塞隐藏的赌博外链,蹭你域名的信誉给垃圾网站刷搜索排名;借你这个”看起来正规”的地址托管钓鱼页面;或者更简单粗暴——拿你的服务器去挖矿、发垃圾邮件、当 DDoS 跳板。

我查了入侵这四天里有没有被塞过东西:全站扫了一遍暗链、隐藏脚本、SEO 垃圾词,都没有。结论是他们刚把后门装好、还没来得及干活,就被阿里云的扫描揪出来了。运气不错。但换个角度想——如果阿里云没报警,这两个后门可能安安静静躺在那里很久。

不是被盯上,是被扫到

最初几分钟的紧张,来自一个错误的假设:有人在针对我。

实际情况是:互联网上有大量自动化的扫描程序,二十四小时不停地扫全网的 WordPress 站点,逐个尝试常见密码。WordPress 驱动着全球超过百分之四十的网站,是最大的靶面。我的服务器日志里,SSH 端口有两万五千多次失败的登录尝试,WordPress 后台被字典攻击的记录更是密密麻麻——全是机器人,来自全球各地的 IP,试的用户名是 admin、root、test 这类。

它们不认识我,也不关心我写了什么。它们只是在扫网,碰巧我的密码挡不住。

密码是怎么被知道的

这是整件事里我最不舒服的部分,因为答案大概率指向自己:密码要么太弱被猜出来,要么在别处泄露过、被拿来撞库试中了。日志显示攻击者一次登录成功,没有反复试的痕迹,这说明他手上拿到的就是对的——很可能我在某个别的网站用了同一个密码,那个网站的数据库泄露了,密码被整理进了地下交易的”社工库”。

做完清理之后我干了三件事:换了一个不跟任何其他地方重复的强密码,开了两步验证(TOTP,每次登录要输手机上的动态码),装了登录限速插件(连续错四次锁二十分钟)。这三件事任何一件在位,十八号那次登录都不会成功。

一点感想

做医生的,见过太多”没症状所以不检查、等出了症状已经晚了”。这次的体验几乎是一模一样的剧本——个人博客、没什么流量、觉得不会有人来碰,于是密码随便设、后台裸奔。直到控制台亮了红灯。

WordPress 不像人体,它没有免疫系统。你给它什么密码,它就用什么密码守门;你不装两步验证,它就只有一道门。而门外的扫描器不分大站小站,二十四小时在试。

如果你也有一个自己的小站,不管流量多少,花五分钟做三件事:把密码换成不重复的强密码,开两步验证,装个登录限速。不是因为你重要到会被盯上——恰恰相反,正因为攻击是不挑目标的自动化撒网,每个人都在网里。


了解 创见思考 的更多信息

Subscribe to get the latest posts sent to your email.


已发布

分类

来自

标签:

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

了解 创见思考——怎样度过这一生 的更多信息

立即订阅以继续阅读并访问完整档案。

继续阅读

开往