AI摘要:作者在端午节期间遭遇了勒索病毒的攻击,导致服务器上的文件被加密并要求支付赎金。通过排查,发现病毒是通过PHP的一个漏洞(CVE-2024-4577)进入的。作者采取了一系列措施来处理这个问题,包括关闭Apache服务器、升级PHP版本、清理被加密的文件,并从网络备份中恢复数据。这次事件让作者深刻认识到了多备份的重要性,以防止类似情况再次发生。
本应愉快的端午假期,随着最后一天发现自家服务器里中了勒索病毒而悻悻结束。
过程
6月9日上午10点UptimeRobot发邮件提示博客503,当时没有引起注意,以为只是网络波动。等到晚上随手看了下博客,提示数据库连接不上了,远程到主机发现mysql服务端口冲突被停掉了,并且桌面右下角有一个未响应的程序窗口,没注意是什么就直接强杀了(回来复盘回想,那应该就是勒索病毒在运行加密时的窗口),重启mysql服务恢复博客访问,没有意识到异常。
6月10日晚,Sonarr中扫描到大批量的文件删除,感觉不对劲,进到文件目录中发现视频图片类文件均变为后缀名.locked,且在同目录下有RED_ME10.html网页文件,里面大意为给指定的钱包打0.1 BTC才能解锁,很标准的勒索病毒症状。
经过排查,因为我之前强杀了那个程序,所以病毒并没有最终完成全盘加密,受害的文件主要是NAS中的动画剧集,大约被锁了1T左右。
原因分析
经过一番搜索和日志排查,确认了勒索病毒的进入途径。
Windows平台限定,利用PHP最新修复的漏洞(编号:CVE-2024-4577)远程下载执行TellYouThePass勒索病毒对受害者文件进行加密,要求获得赎金(即使真打了钱也不一定能解)。php官方在6月6日发布了修复该漏洞的新版本8.3.8/8.2.20/8.1.29。
我这里apache日志涉及漏洞的最早的一条:
192.168.0.128 - - [08/Jun/2024:17:03:59 +0800] "POST /php-cgi/php-cgi.exe?%add+cgi.force_redirect%3d0+%add+allow_url_include%3d1+%add+auto_prepend_file%3dphp://input HTTP/1.1" 500 641 "-" "Mozilla/5.0 (Windows NT 6.2; Win64; x64; rv:16.0) Gecko/16.0 Firefox/16.0"
处理
我是按照如下流程处理的:
- 杀掉病毒进程
- 关闭涉及PHP的Apache服务器
- 升级php版本到8.3.8/8.2.20/8.1.29
- 使用Everything全盘搜索、清理电脑中被加密锁定的文件,以及病毒在文件目录中生成的勒索网页READ_ME10.html
- 从网络备份中取回未被加密污染的源文件,恢复服务
总结
经历过了这一遭,使我更加认识到了多备份的重要性,因为被勒索病毒加密过的文件,大概率是没法再解开的,如果没有额外的干净备份,损失肯定很惨重。平时本地冷备和云备份都要多存一个,以防不时之需。