V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
rivercherdeeeeee
V2EX  ›  程序员

黑客反反复复入侵

  •  1
     
  •   rivercherdeeeeee · 2023-05-09 10:11:46 +08:00 · 9157 次点击
    这是一个创建于 598 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

    第 1 条附言  ·  2023-05-09 11:43:26 +08:00
    项目运行了七八年了,项目积累了很多东西,升级项目系统或重置操作系统不现实,服务器上还有 40 多个 G 的邮件,邮件很重要,不方便迁移。ssh 查看了登录日志,没发现异常,网站后面也买了 bluehost 的扫描软件 sitelock ,发现了病毒但没发现后门,现在每天晚上都会被入侵一次更改文件内容更改文件权限,大家还有什么好办法吗
    yulgang
        1
    yulgang  
       2023-05-09 10:17:46 +08:00
    网站所有文件和目录设置成只读 且不可修改。然后再看他从哪儿进来的😁
    hefish
        2
    hefish  
       2023-05-09 10:18:37 +08:00
    这个。。上个 waf 吧。。。硬件 waf ,或者云 waf 。。 能挡住 90%以上的扫描。
    价格 10-15w 不等,硬件是一次性的,云 waf 是按月收费的,看适合哪种。
    现在搞个网站,万一被盯上,没有 waf 几乎都是秒被黑的。
    proxytoworld
        3
    proxytoworld  
       2023-05-09 10:19:25 +08:00
    明显是站点由漏洞
    rivercherdeeeeee
        4
    rivercherdeeeeee  
    OP
       2023-05-09 10:24:53 +08:00
    @proxytoworld 不知道漏洞在哪啊,愁死个人
    rivercherdeeeeee
        5
    rivercherdeeeeee  
    OP
       2023-05-09 10:25:27 +08:00
    @yulgang 他能修改文件权限
    lindas
        6
    lindas  
       2023-05-09 10:26:43 +08:00
    有重装系统过吗
    Heisenhower
        7
    Heisenhower  
       2023-05-09 10:28:11 +08:00
    illl
        8
    illl  
       2023-05-09 10:29:02 +08:00 via iPhone
    @rivercherdeeeeee 查日志哇 长亭出了个免费的 waf 装上
    rivercherdeeeeee
        9
    rivercherdeeeeee  
    OP
       2023-05-09 10:29:20 +08:00
    @lindas 没有,用的是 bluehost 服务器,服务器上有 2 个网站,不方便重置,2 个网站都被入侵了
    rivercherdeeeeee
        10
    rivercherdeeeeee  
    OP
       2023-05-09 10:30:07 +08:00
    @illl 查 apache 日志吗
    frankies
        11
    frankies  
       2023-05-09 10:33:41 +08:00
    开源框架由于代码开源,只要合格的黑客想搞你研究一下都是很容易入侵的。不太懂你们行业,外贸不都是 shopify 用的多嘛,花点小钱把安全这事交给 shopify 去整,有的钱不能省
    lindas
        12
    lindas  
       2023-05-09 10:34:16 +08:00   ❤️ 1
    @rivercherdeeeeee 系统上会不会还有黑客开的后门你们没发现
    Felldeadbird
        13
    Felldeadbird  
       2023-05-09 10:34:39 +08:00
    1. 把整个项目目录打包下载到本地电脑。 例如你保存的是 /var/www/website 。你就把整个 website 打包下载到本地电脑。
    2. 拿本地开发的代码 和线下对比。 确认本地和线上代码不存在差异。
    3. 确认代码无误后,找出资源库中,可能涉及到的.php 文件,这玩意一般都是图片木马。
    4. 排查完网站存在图片木马,修复安全漏洞后,将整个项目迁移到新服务器。新服务器请确保 web 运行只有最低限度的运行权限。

    上面 4 点只是一个典型的方案,具体你要找到代码中的漏洞并修复,其次就是挖掘站内被部署的 getshell 文件,否则漏洞修复了,getshell 文件还在,新服务器还是会被提权。
    rm0gang0rf
        14
    rm0gang0rf  
       2023-05-09 10:36:24 +08:00
    已经脏了,产品 客户迁移吧,有技术部就用别的 magento ,woo ,没有就用 shopfiy
    ohwind
        15
    ohwind  
       2023-05-09 10:36:43 +08:00
    端口全关,黑客犯难,禁用密码,黑客没法
    rivercherdeeeeee
        16
    rivercherdeeeeee  
    OP
       2023-05-09 10:37:04 +08:00
    @lindas 估计是有后门,找不到
    rivercherdeeeeee
        17
    rivercherdeeeeee  
    OP
       2023-05-09 10:37:34 +08:00
    @frankies shopify 还在研究
    rivercherdeeeeee
        18
    rivercherdeeeeee  
    OP
       2023-05-09 10:39:30 +08:00
    @Felldeadbird 该删的都删了,感觉就是有漏洞才造成的提权,技术有限,就是找不到,急死了
    aaa5838769
        19
    aaa5838769  
       2023-05-09 10:52:15 +08:00
    可以使用 AWVS 这些扫一下你的网站。
    yaott2020
        20
    yaott2020  
       2023-05-09 10:55:31 +08:00 via Android
    有没有可能是某些脚本运行机制导致的问题,并不存在所谓的“黑客”。。。。
    yaott2020
        21
    yaott2020  
       2023-05-09 10:56:23 +08:00 via Android
    @yaott2020 纯猜测
    rivercherdeeeeee
        22
    rivercherdeeeeee  
    OP
       2023-05-09 10:56:25 +08:00
    @yaott2020 并不是
    yaott2020
        23
    yaott2020  
       2023-05-09 10:58:36 +08:00 via Android
    @rivercherdeeeeee 重装系统呗,实在找不到的话。把不需要的端口全关了,ssh 登录用私钥。做好权限管理。开个日志,看看有没有可疑 ip 入侵。
    garlics
        24
    garlics  
       2023-05-09 10:58:37 +08:00
    找人 ssh 上去看看
    illl
        25
    illl  
       2023-05-09 11:00:12 +08:00 via iPhone
    @rivercherdeeeeee web 日志,具体取决于你用的是什么,不过分析的话还需一点的专业知识
    colorfulberry
        26
    colorfulberry  
       2023-05-09 11:02:57 +08:00
    这玩意儿 大概率 ssh 密码登录被暴力破解了
    illl
        27
    illl  
       2023-05-09 11:04:23 +08:00 via iPhone
    prestashop 这个好像网上就有披露历史漏洞,看看是不是最新版本或者受影响版本
    leoleoleo
        28
    leoleoleo  
       2023-05-09 11:06:30 +08:00
    系统的定时任务和可以的服务啥的都检查了吗,有些基础的后门留存就是写个定时任务或者做个自启的服务,发现后门文件没了,重新去拉一份这种。另外有些更搞的,会直接修改系统的动态链接库,导致很多系统命令查看文件,是不显示恶意文件的,可以找 BusyBox 工具再检查一遍,有没有恶意的动态链接库文件。被黑过的系统,在我们公司默认都是不干净的,都是备份了数据重新装一台新的服务器。

    应用本身的漏洞,如果没法定位和修复,就上个 waf 呗,另外如果是上了云的,可以用公有云自带的安全能力,安全上的事,还是需要找专业的人,你们公司看着就是没有安全团队的,不如找个安全服务的公司啥的,如果业务挺赚钱的,安全上的钱别省,如果中了勒索,真的是后悔都来不及。
    hermithacker
        29
    hermithacker  
       2023-05-09 11:09:35 +08:00
    如果已经提权的话,系统可能被污染了
    defunct9
        30
    defunct9  
       2023-05-09 11:12:48 +08:00   ❤️ 2
    开 ssh ,让我上去看看
    proxytoworld
        31
    proxytoworld  
       2023-05-09 11:15:05 +08:00
    不会溯源嘛。。从最开始的日志追溯攻击路径
    nkidgm
        32
    nkidgm  
       2023-05-09 11:15:41 +08:00   ❤️ 1
    中过一次招,还不赶紧把数据导出来,然后重装系统?
    gowk
        33
    gowk  
       2023-05-09 11:28:07 +08:00
    @defunct9 #30
    虽迟但到
    BeautifulSoap
        34
    BeautifulSoap  
       2023-05-09 12:01:31 +08:00
    先得确定到底是哪些进程和用户在哪个时间点修改了文件权限啊。找几个监控文件修改的工具,看看是哪个进程干的
    thinkwei2012
        35
    thinkwei2012  
       2023-05-09 12:07:07 +08:00
    上 waf ,ip 加白,程序运行权限和 root 隔离
    yulgang
        36
    yulgang  
       2023-05-09 12:16:13 +08:00
    @rivercherdeeeeee #5 那就说明你的权限配置有问题
    yulgang
        37
    yulgang  
       2023-05-09 12:18:38 +08:00
    @rivercherdeeeeee #5 把你的线上程序和官方提供的对比一下差异,看看是不是还有后门没清理干净。然后暂时关掉不必要的上传功能,比如相关文件临时改名,等它更新修复后再恢复。
    l2d
        38
    l2d  
       2023-05-09 13:19:55 +08:00   ❤️ 1
    既然不是 ssh ,那就是通过服务入侵的。
    php 写的,排除内存马,基本确定是文件马。这一类漏洞有两个入口,一个是文件上传,一个是文件包含。
    用 webshell 扫描工具排查一下吧,多用几个工具。
    web 目录下可以查看最近修改的文件,find . -type f -mtime 1
    或者排查 php ,find . -name '*.php' -mtime 1
    最后记得排查 rootkit 。排查完把后门删了,记得打备份。下次被入侵打一份新的环境,把旧的恢复了,分析入侵的环境
    bjzhush
        39
    bjzhush  
       2023-05-09 13:23:39 +08:00
    每个页面显示两边并不能证明被黑了
    自己搞不定就花钱找靠谱的人解决
    qfdk
        40
    qfdk  
       2023-05-09 14:07:41 +08:00 via iPhone
    简单啊 初始化个 git init 然后推送到 git 私人仓库. 被 x 了之后 git status 查看修改就好了……
    dif
        41
    dif  
       2023-05-09 14:13:50 +08:00
    很明显,你这项目的病毒并没有清理完成,后门一直开着。
    看下有没有不认识的 ssh-key ,对外端口留个 80 和 443 就行了。其他的都关闭了。
    实在不行就挂个反向代理上去,把 nginx 暴漏出去,应用程序的服务器隐藏在局域网中。
    为了避免暴力破解,你搞一个权限的机器,通过 ssh-key 访问,另外也要保证员工的电脑里没有破解软件。见过很多网络工程师用盗版 CRT 的。
    sam0ple
        42
    sam0ple  
       2023-05-09 14:18:43 +08:00   ❤️ 1
    如果不能上 waf 的话试试手动解决:
    1. 查看访问日志,看有没有类似 VPS 的访问记录
    2. 如果是 Linux ,试试用 BPF 之类的工具监控文件被哪个进程修改的,再通过进程反推是那个程序出现问题,Windows 的话试试 sysmon 或者 procmon 之类的进行监控
    Moofeng
        43
    Moofeng  
       2023-05-09 14:21:50 +08:00
    如果是阿里云的服务器倒是可以帮你看看
    SleipniR
        44
    SleipniR  
       2023-05-09 14:41:00 +08:00
    公司应该考虑增加网络安全预算了,目前只是改改文件权限,哪天给你加锁要赎金,代价可高多了。
    westoy
        45
    westoy  
       2023-05-09 14:55:45 +08:00
    首先你这个环境是不能要了, 把数据、文件备份后, 彻底重做。 有条件最好不要用虚拟主机, 现在虚拟主机这块用户少, 不像以前那样舍得砸钱赞助 grsecurity 之类的项目做安全, 搞不好就有跨站方面的 0day , 你防护再好也没用

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

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

    最后能迁移到容器尽量迁移到容器。
    cnbatch
        50
    cnbatch  
       2023-05-09 15:27:40 +08:00
    如果不能重装系统,那就单独开一台新机器用来运行 Web 服务
    superliy
        51
    superliy  
       2023-05-09 15:29:29 +08:00
    外贸站点 现在还是都用 php 吗
    rivercherdeeeeee
        52
    rivercherdeeeeee  
    OP
       2023-05-09 15:44:56 +08:00
    @dif 怎么分辨不认识的 ssh-key 。。。。。
    vipdog73
        53
    vipdog73  
       2023-05-09 16:18:40 +08:00
    这是留了登录密钥了吧?在怎么修改密码也不行啊
    rivercherdeeeeee
        54
    rivercherdeeeeee  
    OP
       2023-05-09 16:21:44 +08:00
    @vipdog73 默认是密码登录的吧,密钥登录不了的吧
    vipdog73
        55
    vipdog73  
       2023-05-09 16:30:24 +08:00
    @rivercherdeeeeee 密钥登陆的了
    daxin945
        56
    daxin945  
       2023-05-09 16:43:48 +08:00
    装个 osquery 或者 sysmon 吧 排查网络、进程、文件、自启动项、定时任务
    网络主要是一些奇怪请求 尤其境外的 IP
    然后从端口反推进程 进程推文件 然后干掉
    rivercherdeeeeee
        57
    rivercherdeeeeee  
    OP
       2023-05-09 16:47:40 +08:00
    @vipdog73 确定吗
    lmhsmart
        58
    lmhsmart  
       2023-05-09 17:14:31 +08:00
    如果真想解决问题,你在 V2EX 问再多也没用的,实际点要做的事情:
    1. 找网络安全工程师或者买外部安全公司的安全服务
    2. 审日志,排查站点漏洞,全部修掉
    3. 服务器应急处置
    4. 部署安全设备
    vivisidea
        59
    vivisidea  
       2023-05-09 18:02:54 +08:00
    不重装系统?这个必须重装吧,趁机把业务整到容器里去跑
    cnbatch
        60
    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 的大小只能是零。如果大小不为零,打开后直接删掉所有内容然后保存(同样地,可以下载回来做个备份,顺便检查一番)
    zlowly
        61
    zlowly  
       2023-05-09 19:35:06 +08:00
    用 Prestashop CVE 关键字 google 一下吧,例如 CVE-2020-4074 这些都完全可以进行 RCE 。
    crab
        62
    crab  
       2023-05-09 19:39:19 +08:00
    写个监视页面出现这问题的时间点,再回去看这时间点前的操作日志。
    shangyu7
        63
    shangyu7  
       2023-05-09 19:40:06 +08:00
    加个堡垒机,服务端口通过堡垒机出去,其他端口都禁止连外网
    huangzxx
        64
    huangzxx  
       2023-05-09 20:13:46 +08:00
    叫老板招个运维
    ugpu
        65
    ugpu  
       2023-05-09 22:32:16 +08:00
    加个网关(和 63 楼所说一样)
    服务器对应端口只可网关访问 转发.
    网关转发规则内数据. 服务器所有端口禁止访问外网. 所有权限修改为可读.
    greatbody
        66
    greatbody  
       2023-05-09 23:11:48 +08:00
    1 ,迁移到容器
    2 ,使用 CDN 隐藏服务器真实 IP
    3 ,数据库和应用在服务器层面上分离,不要数据库和应用代码都在一台服务器上
    4 ,严格限制权限,禁用密码登录,关掉所有非必要端口,禁用 IPv6.
    businessch
        67
    businessch  
       2023-05-10 06:55:01 +08:00 via iPhone
    直接跟入侵的人留言咨询试试,花钱解决。
    montaro2017
        68
    montaro2017  
       2023-05-10 08:31:20 +08:00
    aino
        69
    aino  
       2023-05-10 09:38:10 +08:00
    整个蜜罐,来个瓮中抓鳖
    rivercherdeeeeee
        70
    rivercherdeeeeee  
    OP
       2023-05-10 10:00:43 +08:00
    @aino 具体怎么操作
    1nclude
        71
    1nclude  
       2023-05-10 10:12:25 +08:00
    开 ssh ,或是域名发出来🐶
    arvinsilm
        72
    arvinsilm  
       2023-05-10 10:18:24 +08:00
    很好奇不迁移走,不怕黑客删除或者加密数据吗?如果有邮件服务,不怕黑客用来做黑产吗?
    evilStart
        74
    evilStart  
       2023-05-10 12:14:59 +08:00 via Android
    连升级项目系统都不愿意做,这种几年前的系统早就有一大堆漏洞了。像这种毫不在意安全的公司只能说是活该了。祝你们服务器上的数据早日删光。
    AIyunfangyu
        75
    AIyunfangyu  
       2023-06-30 13:23:22 +08:00
    @rivercherdeeeeee 可以联系我们处理,不用迁移源服务器,直接对接 VX:with--tea
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2838 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 14:07 · PVG 22:07 · LAX 06:07 · JFK 09:07
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.