入侵网站

去年冬天,入侵网站一个做外贸的入侵网站朋友半夜给我打电话,说网站首页被换成了一面黑底红字的入侵网站旗子,下面还挂着一行阿拉伯文。入侵网站他不懂技术,入侵网站只知道客户发邮件问“你们是入侵网站不是倒闭了”。我让他先别急,入侵网站登录服务器看了一眼——后台日志里多出一个从拉脱维亚IP登入的入侵网站账号,权限是入侵网站管理员。

入侵网站这事,入侵网站多数时候不像电影里那样敲几行代码就黑进五角大楼。入侵网站它更像溜门撬锁:先找没关严的入侵网站窗户,再试哪把钥匙能转动。入侵网站朋友那台服务器跑的入侵网站是三年前装的WordPress,插件版本停留在4.2,入侵网站而当时最新版已经到5.8。漏洞就藏在那个旧插件里——一个文件上传接口没做类型校验,攻击者传了个伪装成图片的PHP脚本,然后访问它,拿到shell,再提权。整个过程不到二十分钟。

我后来帮他重装系统,顺手扫了一遍同网段的其他机器。结果发现隔壁一台测试服务器更离谱:MySQL的root密码是“123456”,而且3306端口直接暴露在公网。这等于把保险柜钥匙插在锁孔上,还贴了张纸条写着“欢迎光临”。

很多人以为入侵需要多高深的技术。其实大量案例里,攻击者用的就是公开工具。比如sqlmap,一个自动SQL注入脚本,输入网址后它自己探测参数、猜表名、拖数据。还有Nmap扫端口,dirsearch扫后台路径。这些工具在GitHub上免费下载,教程一搜一大把。真正需要点经验的是“提权”那一步——从普通用户变成root,或者从Web目录跳到系统盘。常见手法包括利用内核漏洞、配置错误的SUID文件、计划任务里可写的脚本。我见过最离谱的一个:服务器上装了某国产面板,面板自身有个命令执行漏洞,攻击者直接通过它添加了一个UID为0的用户。

入侵成功后,攻击者通常不会立刻搞破坏。他们先留后门——可能是Web目录里一个不起眼的.jpg文件,实际是PHP webshell;也可能在/etc/passwd里加个隐藏账号;或者写个crontab,每十分钟回连一次C2服务器。然后开始“内网漫游”:扫内网其他机器,找数据库、找域控、找备份文件。朋友那台机器被入侵后,攻击者没动数据,只是把首页改了——这种叫“涂鸦”,通常是为了炫耀或者传递政治信息。更危险的是“挖矿”和“勒索”。挖矿会吃满CPU,服务器风扇狂转;勒索会加密所有文件,留个README要比特币。

怎么防?说几个实在的。第一,别用盗版或者来路不明的主题插件,很多后门就藏在里面。第二,后台路径别用/admin,改个复杂点的,再上双因素认证。第三,服务器防火墙只开必要端口,SSH别用密码登录,换成密钥。第四,定期看日志,尤其是/var/log/auth.log和Web访问日志里那些POST请求带奇怪参数的。第五,也是最容易被忽略的——备份。离线备份,别放在同一台机器上。

我那个朋友后来把网站迁到了托管平台,每年多花两千块,但再没出过事。他说:“专业的事交给专业的人。”这话没错,但前提是你得知道“专业”长什么样。入侵网站的门槛在降低,防御的门槛却没怎么变。很多中小站长还停留在“装个安全插件就万事大吉”的阶段,而攻击者已经在用自动化工具批量扫描全网了。

凌晨三点,我关掉终端,看到朋友发来消息:“首页恢复了,客户说能打开了。”我回了个“嗯”,然后把他服务器上的旧插件全删了。