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

服务器被人挂了一个脚本

  •  2
     
  •   xiaolajiao · 2022-10-27 12:06:13 +08:00 · 5809 次点击
    这是一个创建于 757 天前的主题,其中的信息可能已经有所发展或是发生改变。

    长话短说.

    请教高手解释解释脚本做了什么.

    看得出来 zzh 是挖矿的,但是 newinit.sh 里面的一堆操作是啥呀?

    昨天就操作了adduser postgres sudo.但是随后就deluser postgres sudo.

    但还是被攻击进来了.

    我该怎么修复漏洞?

    攻击者暴露了自己的服务器地址,欢迎品玩.

    两个脚本

    第 1 条附言  ·  2022-10-28 10:39:26 +08:00

    目前做的措施是:

    1. 删除了postgres用户: deluser postgres
    2. 重置了systemd: systemctl revert name.service

    观察下来情况还可以,没到重装系统的程度.

    接下来重装一下postgres,再观察观察.

    第 2 条附言  ·  2022-10-28 14:44:05 +08:00

    大概知道被攻入的原因的,修改pg_hba.conf的时候不小心改了host那一行的认证方法,原本应该是修改local那行的.

    但是有一点很奇怪,即使这样,我没有开远程端口,怎么进来的呢?

    之前配置:

    # Database administrative login by Unix domain socket
    local   all             postgres                                peer
    
    # TYPE  DATABASE        USER            ADDRESS                 METHOD
    
    # "local" is for Unix domain socket connections only
    local   all             all                                     scram-sha-256
    # IPv4 local connections:
    host    all             all             127.0.0.1/32            md5
    # IPv6 local connections:
    host    all             all             ::1/128                 md5
    # Allow replication connections from localhost, by a user with the
    # replication privilege.
    local   replication     all                                     peer
    host    replication     all             127.0.0.1/32            scram-sha-256
    host    replication     all             ::1/128                 scram-sha-256
    

    修改配置:

    # Database administrative login by Unix domain socket
    local   all             postgres                                trust
    
    # TYPE  DATABASE        USER            ADDRESS                 METHOD
    
    # "local" is for Unix domain socket connections only
    local   all             all                                     md5
    # IPv4 local connections:
    host    all             all             127.0.0.1/32            reject
    # IPv6 local connections:
    host    all             all             ::1/128                 reject
    # Allow replication connections from localhost, by a user with the
    # replication privilege.
    local   replication     all                                     peer
    host    replication     all             127.0.0.1/32            reject
    host    replication     all             ::1/128                 reject
    

    被搞了一次,怕了,怕了,直接拒绝所有的远程连接!!!

    第 3 条附言  ·  2022-10-28 15:23:54 +08:00

    新增一条规则

    host    all            postgres   0.0.0.0/0                  reject
    

    修改一条规则

    host    all             all             127.0.0.1/32            scram-sha-256
    
    29 条回复    2022-10-28 17:34:04 +08:00
    masker
        1
    masker  
       2022-10-27 12:12:23 +08:00 via Android
    估计被提权了
    xiaolajiao
        2
    xiaolajiao  
    OP
       2022-10-27 12:22:53 +08:00
    昨天把 Postgres10 升到了 15,难不成版本有漏洞?
    maskerTUI
        3
    maskerTUI  
       2022-10-27 12:29:57 +08:00
    重装吧,挖矿脚本真像牛皮藓一样,各种骚操作黏在系统里,搞过两三次太头疼了。
    gowk
        4
    gowk  
       2022-10-27 12:31:25 +08:00
    ssh 给我我上去看看 ( doge:
    SunsetShimmer
        5
    SunsetShimmer  
       2022-10-27 12:38:33 +08:00   ❤️ 1
    看了一下 newinit.sh ,我能识别出的操作有:
    删系统日志
    关掉 SELINUX
    把 wget 和 curl 改名(避免被用户 /自动识别?)
    把 zzh 写入 cron
    卸载阿里云的 aegis 和腾讯云的什么东西(安全 /监控软件?)
    杀死一些安全类进程
    破坏 /usr/bin/下的几个可执行
    干掉其他的挖矿进程 /Docker
    删缓存(?),干掉 /usr/lib/systemd/systemd-update-daily
    给 ssh 加入公钥
    在结尾好像又运行了什么
    xiaolajiao
        6
    xiaolajiao  
    OP
       2022-10-27 12:40:04 +08:00
    @maskerTUI 用的是 postgres 用户操作的,先删掉 postgres user 看看.这狗屎代码写了一堆进 systemd.
    codingBug
        7
    codingBug  
       2022-10-27 16:06:13 +08:00
    系统重装,仅使用密钥连接
    vagusss
        8
    vagusss  
       2022-10-27 16:12:48 +08:00
    之前 redis 没设置密码中过一次
    xboxv
        9
    xboxv  
       2022-10-27 16:42:36 +08:00
    @vagusss 你是端口暴漏在公网吗?
    DiaosSama
        10
    DiaosSama  
       2022-10-27 16:51:10 +08:00   ❤️ 1
    zzh 是一个很老牌的门罗挖矿蠕虫了,Cleanfda 家族的,之前分析的时候是用的 Redis 未授权,Docker API 未授权和 SSH 爆破实现蠕虫传播的,看起来现在多出一个 Postgres 的传播方式。
    网上分析还是蛮多的,可以看看这篇 [Redis 未授权访问漏洞分析 cleanfda 脚本复现漏洞挖矿]( https://www.renfei.net/posts/1003501)
    DiaosSama
        11
    DiaosSama  
       2022-10-27 17:11:33 +08:00
    看了一下你发出来的代码,横向移动的脚本 rs.sh 里没看到有对 postgresql 漏洞的利用,只是用 masscan 和 pscan 对网段里的 6379 进行了批量扫描。你机器上是不是启动了一个 Redis 服务并且没上密码就对外开放了 6379 端口?
    CoderLife
        12
    CoderLife  
       2022-10-27 17:16:37 +08:00
    postgres 被挂过码, 端口外放的原因
    vagusss
        13
    vagusss  
       2022-10-27 17:20:18 +08:00
    @xboxv 是的,云服务器
    DiaosSama
        14
    DiaosSama  
       2022-10-27 17:22:13 +08:00
    还有一种可能就是...你的 postges 用户是弱密码并且支持远程登录被爆破了
    xiaolajiao
        15
    xiaolajiao  
    OP
       2022-10-27 17:33:53 +08:00
    @DiaosSama 这个代码是后来一个 PR 合进来的 主要是两个脚本 new_init.sh 和 zzh.

    postgres 和 redis 的远程端口都没有开放.
    wshhfy
        16
    wshhfy  
       2022-10-27 17:35:06 +08:00 via Android
    我之前也是 pg 端口暴露到公网被挖矿了。最后一劳永逸还是加了白名单
    xiaolajiao
        17
    xiaolajiao  
    OP
       2022-10-27 17:38:24 +08:00
    脚本都是用 postgres 用户操作的,postgres 就昨天做了手动升级 10 --> 15.
    这个怎么用 postgres 用户进来的日志都没找到,很无语.
    Vegetable
        18
    Vegetable  
       2022-10-27 17:43:57 +08:00
    @SunsetShimmer shit ,还干掉其他挖矿进程,太卷了
    nmap
        19
    nmap  
       2022-10-27 17:59:41 +08:00
    云服务器的话对你使用没影响的,不用管它,大家都不容易
    q1angch0u
        20
    q1angch0u  
       2022-10-27 18:25:09 +08:00
    @nmap #19 ?????????????????????????
    xiaolajiao
        21
    xiaolajiao  
    OP
       2022-10-27 18:49:03 +08:00 via iPhone
    @q1angch0u 哈哈 欢迎 @nmap 老哥下源码去自己服务器玩玩
    blankmiss
        22
    blankmiss  
       2022-10-27 21:06:05 +08:00
    @nmap ????????
    kangkang
        23
    kangkang  
       2022-10-27 21:31:24 +08:00
    @nmap 哈哈哈哈哈哈 xswl
    Jaron0608
        24
    Jaron0608  
       2022-10-27 21:36:05 +08:00 via Android   ❤️ 2
    @nmap 你这波和名字配合的不是很好
    nightRainAnnoy
        25
    nightRainAnnoy  
       2022-10-28 09:21:36 +08:00
    @nmap 老哥都不带手动狗头保命吗, 哈哈哈哈
    wtfedc
        26
    wtfedc  
       2022-10-28 11:39:52 +08:00
    @nmap 严重怀疑是你写的脚本😄
    zhang77555
        27
    zhang77555  
       2022-10-28 17:13:27 +08:00
    @nmap 用服务器挖矿属于违约,运营商可以停掉你服务器
    neochen13
        28
    neochen13  
       2022-10-28 17:15:49 +08:00
    大佬怎么发现的
    gaochuax
        29
    gaochuax  
       2022-10-28 17:34:04 +08:00
    @nmap 你太可爱啦🤣。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3458 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 10:28 · PVG 18:28 · LAX 02:28 · JFK 05:28
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.