黑客反反复复入侵

2023-05-09 10:11:46 +08:00
 rivercherdeeeeee

公司独立站是用 prestashop 做的,老是被黑客入侵,更改文件内容和文件权限,让每个页面都重复显示二遍,密码什么的都改了还是不行,网站页面也扫过病毒,扫描到木马也清除了,但第二天还是被黑客入侵,一直反反复复,有大佬能提供解决方案吗

9149 次点击
所在节点    程序员
75 条回复
dif
2023-05-09 14:13:50 +08:00
很明显,你这项目的病毒并没有清理完成,后门一直开着。
看下有没有不认识的 ssh-key ,对外端口留个 80 和 443 就行了。其他的都关闭了。
实在不行就挂个反向代理上去,把 nginx 暴漏出去,应用程序的服务器隐藏在局域网中。
为了避免暴力破解,你搞一个权限的机器,通过 ssh-key 访问,另外也要保证员工的电脑里没有破解软件。见过很多网络工程师用盗版 CRT 的。
sam0ple
2023-05-09 14:18:43 +08:00
如果不能上 waf 的话试试手动解决:
1. 查看访问日志,看有没有类似 VPS 的访问记录
2. 如果是 Linux ,试试用 BPF 之类的工具监控文件被哪个进程修改的,再通过进程反推是那个程序出现问题,Windows 的话试试 sysmon 或者 procmon 之类的进行监控
Moofeng
2023-05-09 14:21:50 +08:00
如果是阿里云的服务器倒是可以帮你看看
SleipniR
2023-05-09 14:41:00 +08:00
公司应该考虑增加网络安全预算了,目前只是改改文件权限,哪天给你加锁要赎金,代价可高多了。
westoy
2023-05-09 14:55:45 +08:00
首先你这个环境是不能要了, 把数据、文件备份后, 彻底重做。 有条件最好不要用虚拟主机, 现在虚拟主机这块用户少, 不像以前那样舍得砸钱赞助 grsecurity 之类的项目做安全, 搞不好就有跨站方面的 0day , 你防护再好也没用

程序升级到最新版, 同时审计下最近插入的数据和文件, 看看有没有包含什么显性的执行程序方面语句, 防止万一程序里有 0day 可以提权
pinkbook
2023-05-09 14:56:20 +08:00
聘请网络安全工程师( x )
v2ex 发帖(√)
这种被持续黑了,没有勒索你,最好评估一下是否有公司数据被窃取了
sam0ple
2023-05-09 14:56:33 +08:00
如果系统不支持 bpf 进行监控,使用 auditd 进行监控也是可行的
dedemao
2023-05-09 14:57:01 +08:00
重装系统意义不大,很有可能是网页程序上的漏洞。宝塔面板有防篡改的插件,可以试试。
nkidgm
2023-05-09 15:20:29 +08:00
@dedemao 重装还是有意义的,干净的环境可以排除很多隐患(防埋雷),应用层的漏洞可以在外层用 WAF 堵住。

但其实还是建议先做数据备份,这永远都是摆在第一位的。

最后能迁移到容器尽量迁移到容器。
cnbatch
2023-05-09 15:27:40 +08:00
如果不能重装系统,那就单独开一台新机器用来运行 Web 服务
superliy
2023-05-09 15:29:29 +08:00
外贸站点 现在还是都用 php 吗
rivercherdeeeeee
2023-05-09 15:44:56 +08:00
@dif 怎么分辨不认识的 ssh-key 。。。。。
vipdog73
2023-05-09 16:18:40 +08:00
这是留了登录密钥了吧?在怎么修改密码也不行啊
rivercherdeeeeee
2023-05-09 16:21:44 +08:00
@vipdog73 默认是密码登录的吧,密钥登录不了的吧
vipdog73
2023-05-09 16:30:24 +08:00
@rivercherdeeeeee 密钥登陆的了
daxin945
2023-05-09 16:43:48 +08:00
装个 osquery 或者 sysmon 吧 排查网络、进程、文件、自启动项、定时任务
网络主要是一些奇怪请求 尤其境外的 IP
然后从端口反推进程 进程推文件 然后干掉
rivercherdeeeeee
2023-05-09 16:47:40 +08:00
@vipdog73 确定吗
lmhsmart
2023-05-09 17:14:31 +08:00
如果真想解决问题,你在 V2EX 问再多也没用的,实际点要做的事情:
1. 找网络安全工程师或者买外部安全公司的安全服务
2. 审日志,排查站点漏洞,全部修掉
3. 服务器应急处置
4. 部署安全设备
vivisidea
2023-05-09 18:02:54 +08:00
不重装系统?这个必须重装吧,趁机把业务整到容器里去跑
cnbatch
2023-05-09 18:51:13 +08:00
「怎么分辨不认识的 ssh-key 」

既然提出了这个问题,结合后面的两个提问,我猜测 OP 的服务器应该从未设置过密钥登录(至少公司内的人从未设置过)。
那就可以先问问同事,有没有人用过密钥登录,如果得到的答案全都是“没用过”,那就可以这样排查:

1. 进入这台服务器,查看每个用户的 Home 目录(包括 root 的一样要查,也就是 /root )有没有 .ssh 文件夹
2. 如果有,那就进去看看有没有留下其它文件(不包括 authorized_keys 、known_hosts 、known_hosts.old 这 3 个文件,后边会提到)
3. 如果有文件,打开来看看是不是 ssh 密钥。不过无论是不是密钥,都可以直接删掉(毕竟公司内没人这样用过,那么删掉并没什么关系)稳妥起见的话,可以先下载来做个备份
4. 检查下 authorized_keys 的大小是否为零,如果公司内从未有人用过密钥登录,那么 authorized_keys 的大小只能是零。如果大小不为零,打开后直接删掉所有内容然后保存(同样地,可以下载回来做个备份,顺便检查一番)

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/938497

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX