V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
Hanbuger
V2EX  ›  Linux

Linux 云服务器中毒了

  •  
  •   Hanbuger ·
    hambuger · 2019-04-08 13:14:06 +08:00 · 7318 次点击
    这是一个创建于 2038 天前的主题,其中的信息可能已经有所发展或是发生改变。

    最近买的云服务器中毒了,起因是安装 redis 的时候默认安装,没有进行安全配置。过了一个晚上就被入侵了,好像是挖矿病毒。症状就是每天 1 点中会跑很多的定时任务,造成服务器内存溢出。定时任务会运行 ftpdns 和 ftphttp 两个文件,具体代码就不传播了。有遇到的麻烦提供一下解决方法。

    40 条回复    2019-04-10 11:28:26 +08:00
    goodryb
        1
    goodryb  
       2019-04-08 13:21:19 +08:00
    有快照就回滚,没有就重装吧,以免后患
    defunct9
        2
    defunct9  
       2019-04-08 13:25:05 +08:00   ❤️ 1
    开 ssh,让我上去看看。
    claysec
        3
    claysec  
       2019-04-08 13:33:34 +08:00
    #1 +1
    pynix
        4
    pynix  
       2019-04-08 13:35:04 +08:00
    你干嘛把入网端口打开呢?
    jjc27017
        5
    jjc27017  
       2019-04-08 13:37:38 +08:00
    如果没有重要资料在上面就直接删掉重新安装系统就可以了,redis / mongo 这种全部按默认,然后暴露公网的最容易被搞
    Hanbuger
        6
    Hanbuger  
    OP
       2019-04-08 13:38:10 +08:00
    @pynix 把 redis 安服务器上
    Hanbuger
        7
    Hanbuger  
    OP
       2019-04-08 13:38:50 +08:00
    @jjc27017 改了用户名试试,不行就重装
    javashell
        8
    javashell  
       2019-04-08 13:39:57 +08:00 via Android
    猜测 redis 未授权导致的,看看定时任务和进程有没有挖矿程序运行
    Hanbuger
        9
    Hanbuger  
    OP
       2019-04-08 13:42:38 +08:00
    @javashell 有定时任务,会从 https://pastebin.com/上 down 程序,每天一点运行
    pynix
        10
    pynix  
       2019-04-08 13:46:23 +08:00
    @Hanbuger 那也不要开公网端口啊,你还本地机器链接远程 redis ?你连接的时候没有想过不需要密码这件事?
    Hanbuger
        11
    Hanbuger  
    OP
       2019-04-08 13:51:04 +08:00
    @pynix 之前都是在内网用 redis,在外网是第一次,不知道这个漏洞...
    javashell
        12
    javashell  
       2019-04-08 13:51:35 +08:00 via Android
    @Hanbuger 如果不是你设置的定时任务,先删掉定时任务在 kill 进程,关闭公网 redis 端口或设置密码再看看
    1O
        13
    1O  
       2019-04-08 13:53:45 +08:00
    你这没啥损失重装就行了,以前我有一台机器中招了流量给我跑超了 2000 多块钱,钱被扣了才发现,肠子都悔青了。
    Hanbuger
        14
    Hanbuger  
    OP
       2019-04-08 13:54:38 +08:00
    @javashell 定时任务删了,过一会又会有。redis 端口已经关了,还换了系统用户名。现在就是纳闷是在哪里生成的定时任务
    Hanbuger
        15
    Hanbuger  
    OP
       2019-04-08 13:55:23 +08:00
    @1O 我还好,这是我个人的
    javashell
        16
    javashell  
       2019-04-08 13:56:51 +08:00 via Android
    @Hanbuger 进程一般有守护程序的
    Hanbuger
        17
    Hanbuger  
    OP
       2019-04-08 14:10:07 +08:00
    @javashell 有办法找出来或者阻止吗
    52coder
        18
    52coder  
       2019-04-08 14:33:28 +08:00
    问题解决了吗,你指的 redis 默认安装存在问题,需要如何避免? 刚好最近在看 redis,我安装就是 make make install
    luanluan
        19
    luanluan  
       2019-04-08 14:34:38 +08:00
    开 SSH 我来给你弄
    wzaqqq
        20
    wzaqqq  
       2019-04-08 14:44:23 +08:00   ❤️ 1
    重装吧,估计很多基础命令都被换了
    wesall100200
        21
    wesall100200  
       2019-04-08 14:45:29 +08:00
    @defunct9 哥们这句话好眼熟哈哈
    huiyifyj
        22
    huiyifyj  
       2019-04-08 14:48:09 +08:00 via Android
    用着 win server2012 正常。
    aulia
        23
    aulia  
       2019-04-08 14:54:58 +08:00 via Android
    妥妥的 redis 开默认没密码
    abc12524
        24
    abc12524  
       2019-04-08 14:58:50 +08:00
    让我康康!
    jjc27017
        25
    jjc27017  
       2019-04-08 15:52:19 +08:00
    最好是直接删了重开一个吧,那些脚本做了什么排查起来很耗时间的,改了底层的话你继续用又不知道。之后注意高危软件的配置就好了(不使用默认端口,账号密码认证登录,最好能指定源 ip 地址访问)
    recall704
        26
    recall704  
       2019-04-08 16:52:12 +08:00
    之前我的云服务器也中毒了,分析一波发现是挖矿的。

    skill -STOP 15753

    你可以通过上面这个命令,冻结进程,让后慢慢分析。
    tomczhen
        27
    tomczhen  
       2019-04-08 16:53:47 +08:00
    改本地 host 让脚本更新地址失效就好 :doge:
    Jblue
        28
    Jblue  
       2019-04-08 17:29:33 +08:00
    我也遇到过,最好的方法还是重装。舍不得的话看看 redis 里面有没有奇怪的数据多出来,看看服务器上有没有多出用户。
    jhsea3do
        29
    jhsea3do  
       2019-04-08 17:52:20 +08:00
    重装吧,保险点, 安全组只开 ssh / http(s)
    lrh3321
        30
    lrh3321  
       2019-04-08 18:01:02 +08:00 via Android
    重装保险点。以前也碰上过,后来 redis 就老老实实跑 docker 里了
    cnzjl
        31
    cnzjl  
       2019-04-08 18:01:27 +08:00
    nickfan
        32
    nickfan  
       2019-04-08 18:14:58 +08:00
    公司老服务器中过同样的枪,给你个方案参考一下:

    1. 改 /etc/hosts 先屏蔽 pastebin.com
    2. 清理各个用户下的 crontab 中的自动下载脚本
    3. 用 ll -rt 在 /etc/init.d/下看一下最近添加的启动脚本
    4. 用 lsof -p 看内存中这些垃圾进程打开的文件句柄关联的文件,并清理之。
    5. 确认没问题,取消 pastebin.com 的屏蔽
    6. 重启过一段时间确认没有问题。
    done.
    catalina
        33
    catalina  
       2019-04-08 18:20:42 +08:00 via Android
    我都是开在 loopback 接口上,然后需要调试的时候直接 ssh 本地映射过来(这样在机器上看过去就是 localhost 连接到服务器上的)弄的。。。
    bk201
        34
    bk201  
       2019-04-08 18:20:55 +08:00
    这时候就体现容器化的好处了
    hxz0803
        35
    hxz0803  
       2019-04-08 18:43:07 +08:00
    我也中了这个病毒,crontab -l 的输出如下
    https://pastebin.com/pUdCnuT4
    大概看了下,base64 编码,作者邮箱(自称) [email protected]
    mikeguan
        36
    mikeguan  
       2019-04-09 00:41:17 +08:00 via Android
    1. 不用 root 启动 Redis
    2. 可以的话不用默认端口
    3. 开启授权认证,密码建议 32 位以上
    akira
        37
    akira  
       2019-04-09 00:57:24 +08:00
    重新开一台 数据导过来以后 原来的直接废弃
    linnil
        38
    linnil  
       2019-04-09 08:40:19 +08:00
    很久没关注`redis`的挖矿木马了,解决方案参考:[对抗这种 rootkit 难度爆表,,回滚更划算,]( https://www.v2ex.com/t/537457?p=1)
    Hanbuger
        39
    Hanbuger  
    OP
       2019-04-09 10:28:14 +08:00
    改了用户名,好像运行的代码里会判断用户名是否等于 root,过了一天发现定时任务里没有增加,再等等看好不好使
    rootit
        40
    rootit  
       2019-04-10 11:28:26 +08:00
    这种问题 直接回滚或重装系统,别想能清理干净 rootkit,别报一丝希望
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3047 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 13:45 · PVG 21:45 · LAX 05:45 · JFK 08:45
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.