V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
rivercherdeeeeee
V2EX  ›  程序员

黑客反反复复入侵

  •  1
     
  •   rivercherdeeeeee · 345 天前 · 8599 次点击
    这是一个创建于 345 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

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

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

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