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

我的腾讯云小鸡子被黑了-_-

  •  1
     
  •   ChristopherWu · 2018-10-23 11:02:44 +08:00 · 6974 次点击
    这是一个创建于 2224 天前的主题,其中的信息可能已经有所发展或是发生改变。

    其实应该不是被黑。。

    mongo 默认没有账号密码,而且允许外网访问; 这个『漏洞』我之前一直有看新闻意识到,但这是腾讯云很便宜买的小鸡子,而且目前没有啥重要东西放上面,改了 ssh 端口跟不允许密码账号登录后,就轻视了。

    知道之前需要测试 mongo 的东西时,9.30 号 在小机子上面把 mongo 启动起来,然后没有关。

    昨天晚上因为做给自己用的一个小网站( http://119.29.78.110:8000/books.html),凌晨 3 点才搞完,赶着先出样品,就用 python 的 simple server ( emm..那时急着睡觉,没有用 nginx,也因为机器不重要。。),用作前端的服务器; 然后 Flask 直接启动了一个后端服务,就先启起来了,然后睡觉了~

    今天早上上去一看,发现 mongo 数据库空了(反正抓来的数据,没影响 @——@),下面有一个 Warn 库

    > db.Warn.find()
    { "_id" : ObjectId("5bce24b3e581f3bc95d75f07"), "BitCoin" : "3P4hnQNpEpKPL1x3kKcwGcB5UUmZdRF2Um", "eMail" : "[email protected]", "Exchange" : "https://localbitcoins.com/", "Solution" : "Your Database is downloaded and backed up on our secured servers. To recover your lost data: Send 0.6 BTC to our BitCoin Address and Contact us by eMail with your server IP Address and a Proof of Payment. Any eMail without your server IP Address and a Proof of Payment together will be ignored.You are welcome!" }
    

    刚开始以为是 python simple server 的锅,然后就意识到,我外网可以直接连自己的 mongo 啊....

    以上,报告完毕。

    #明明我还吐槽过很多次 mongo 允许外网访问以及默认没有密码的-_-

    请问诸位还有啥漏洞要注意的吗? python simple server 应该没这么容易被攻破吧? 我要检查上面有没有挂马之类的,除了看 top,ps aux 之类的异常进程,还有啥办法吗~ (知道大佬都说被搞过,直接重装最安全;但上面没有敏感数据,先不重装,这样玩着:P, 像这样我对 mongo 这点印象更深刻了)

    53 条回复    2018-10-24 01:16:13 +08:00
    iConnect
        1
    iConnect  
       2018-10-23 11:14:19 +08:00
    自动端口扫描,人家不是故意来黑你的,只是路过你家发现门开着
    p2pCoder
        2
    p2pCoder  
       2018-10-23 11:16:28 +08:00
    昨年 redis 也没设密码,被挖矿了
    Molita
        3
    Molita  
       2018-10-23 11:17:33 +08:00
    门上没锁还不关门=。=
    baicheng10
        4
    baicheng10  
       2018-10-23 11:19:02 +08:00
    Your Database is downloaded and backed up on our secured servers. To recover your lost data: Send 0.6 BTC to our BitCoin Address and Contact us by eMail with your server IP Address and a Proof of Payment. Any eMail without your server IP Address and a Proof of Payment together will be ignored.You are welcome!

    还好数据不重要。看到这个提醒莫名想笑,臭不要脸的。
    ChristopherWu
        5
    ChristopherWu  
    OP
       2018-10-23 11:20:08 +08:00
    @Molita @iConnect @p2pCoder

    !!!!!!!!!!!!!

    我忘了说我的疑问了:
    1. 我知道是网络脚本扫描通用『漏洞』做的, 我是想知道, 脚本是如何获取所有新出现的 ip 的?
    2. 我的 mongo 是 9.30 就开了的,为什么昨天我把 python 后台跟 simple server 启动起来,才被人扫到?
    ChristopherWu
        6
    ChristopherWu  
    OP
       2018-10-23 11:21:26 +08:00
    @baicheng10 可能就算是数据重要,我第一次这样子搭服务,还是会栽这个坑上 -_-
    lhx2008
        7
    lhx2008  
       2018-10-23 11:24:16 +08:00
    mongo 默认允许外网访问吗,我还一直没调,不过调了只开 80 和 443
    baicheng10
        8
    baicheng10  
       2018-10-23 11:24:54 +08:00
    扫描的网段,那些不要脸的,反正肉鸡多,慢慢搞。
    还会不断进行暴力破解,烦得要死。
    ChristopherWu
        9
    ChristopherWu  
    OP
       2018-10-23 11:25:15 +08:00
    @lhx2008 是啊。
    当然,这个可能也正常,因为 psql 这些估计也是允许外网访问的,不过他们强制要你设置账号密码。
    lhx2008
        10
    lhx2008  
       2018-10-23 11:25:16 +08:00
    看了下默认是本机的啊

    # network interfaces
    net:
    port: 27017
    bindIp: 127.0.0.1
    ChristopherWu
        11
    ChristopherWu  
    OP
       2018-10-23 11:25:47 +08:00
    @baicheng10 所有网段的 ip,不停的遍历?
    Molita
        12
    Molita  
       2018-10-23 11:27:18 +08:00
    有 IP 段吧,大概就这些遍历呗。猜测
    xavier007
        13
    xavier007  
       2018-10-23 11:30:39 +08:00
    有 IP 段,比如这个 IP 段是 A 云,那个是 T 云,每天遍历扫一遍总有新收获
    xavier007
        14
    xavier007  
       2018-10-23 11:31:15 +08:00
    以前内网没有隔离的时候,内网还可以自己扫
    LittleDust
        15
    LittleDust  
       2018-10-23 11:34:13 +08:00
    小鸡子🐤。。小鸡子🐥。。好萌
    bankroft
        16
    bankroft  
       2018-10-23 11:36:29 +08:00 via Android
    ipv4 拢共就那么多 ip,而且这种情况肉鸡应该很多,就算扫全 ip 也要不了多少时间吧。最重要的是服务提供商一般都有 B 类地址吧,扫循环扫一些 b 类地址总能扫到。v6 覆盖起来之后应该会好些
    flowfire
        17
    flowfire  
       2018-10-23 11:36:30 +08:00
    0.6 BTC,一点都不贪 hhhh
    wildcat007
        18
    wildcat007  
       2018-10-23 11:38:27 +08:00
    redis mysql 都有的
    mysql 直接删库,然后警告你 一定时限支付,否则彻底删除数据(其实已经删除了)
    redis 直接拿权限 写 crontab,继续自动扫描攻击 + 挖矿
    GrahamACER
        19
    GrahamACER  
       2018-10-23 11:39:10 +08:00
    遭遇一模一样的现象……勒索的价格都一样
    最重要的是,腾讯没有自动备份,隔壁就有……
    当天晚上把所有服务都迁移到隔壁去了,开了防火墙做了登录 IP 限制
    mongo 上密码其实很麻烦,我用的方法是只有指定的 IP 能访问 mongo
    ChristopherWu
        20
    ChristopherWu  
    OP
       2018-10-23 11:40:00 +08:00
    @bankroft 全扫描感觉不现实,25 亿呢。 所以会不会是扫描知名云的网段而已呢。
    kkhaike
        21
    kkhaike  
       2018-10-23 11:40:25 +08:00
    腾讯云的 安全组 呢
    ChristopherWu
        22
    ChristopherWu  
    OP
       2018-10-23 11:40:55 +08:00
    @GrahamACER 其实生产环境就直接限制内网访问(本来数据库这些东西就不用暴露出去)
    ChristopherWu
        23
    ChristopherWu  
    OP
       2018-10-23 11:42:45 +08:00
    @kkhaike 木有用,是怎么样的呢?
    likuku
        24
    likuku  
       2018-10-23 11:43:32 +08:00
    @kkhaike 腾讯云 有 安全组 这种云防火墙吗?

    想来 aws ec2 默认就是 安全组封锁一切通讯,保守但的确保证了默认安全,给的最佳实践也是首先从安全组开始,真是避免了很多踩坑。
    likuku
        25
    likuku  
       2018-10-23 11:44:45 +08:00
    @ChristopherWu 快速扫描全网并不是听起来那般不可能...
    ChristopherWu
        26
    ChristopherWu  
    OP
       2018-10-23 11:46:44 +08:00
    @likuku 默认把用户当傻蛋其实挺好的-_-
    GrahamACER
        27
    GrahamACER  
       2018-10-23 11:49:05 +08:00
    而且当时并不全是 mongo 的锅,整个环境下所有的东西都没了
    我就发了个工单问腾讯对方是怎么拿到我的 root 权限的
    腾讯一直在强调 redis 的漏洞问题,回避这个 root 的问题……
    likuku
        28
    likuku  
       2018-10-23 11:49:17 +08:00
    @ChristopherWu 不不,默认把当前网络环境当作家门口就恶魔成堆的凶险之地,挺好的。
    congeec
        29
    congeec  
       2018-10-23 11:51:40 +08:00 via iPhone   ❤️ 1
    @ChristopherWu 快速遍历全球 ipv4 地址
    https://zmap.io
    fchypzero
        30
    fchypzero  
       2018-10-23 11:54:23 +08:00
    @ChristopherWu 在不保证准确率的情况下,PING 就完事了。
    mytsing520
        31
    mytsing520  
       2018-10-23 11:58:07 +08:00
    1 小时就能扫遍全网所有 IP 地址的端口一次
    ChristopherWu
        32
    ChristopherWu  
    OP
       2018-10-23 12:04:40 +08:00
    大佬们顺便回答一哈:


    我的 mongo 是 9 月 30 号 就开了的,为什么昨天我把 python 后台跟 simple server 启动起来,才被人扫
    y10210118
        33
    y10210118  
       2018-10-23 12:14:50 +08:00
    自建 MongoDB 存在空密码或弱口令很容易被入侵,如果有备份数据或者快照可以恢复,做关键还是提前做好安全防护,看到有个挺好的文档可以参考下: http://bbs.qcloud.com/thread-42928-1-1.html。
    Les1ie
        34
    Les1ie  
       2018-10-23 13:05:20 +08:00   ❤️ 1
    Les1ie
        35
    Les1ie  
       2018-10-23 13:06:41 +08:00
    @ChristopherWu 被入侵是随机事件, 并不是你一打开就能够通知到别人你这里有未授权的
    PulpFunction
        36
    PulpFunction  
       2018-10-23 14:14:02 +08:00
    想问一下数据库也是在本地服务器(本小鸡上)的吗
    FakeLeung
        37
    FakeLeung  
       2018-10-23 14:17:51 +08:00 via iPhone
    是的,我的小博客也是因为芒果没有密码,导致所有博文丢失了。

    这些人是真的闲啊。。。。
    opengps
        38
    opengps  
       2018-10-23 14:23:10 +08:00   ❤️ 1
    这么说吧,不是有些人闲的,在以前互联网起步时候,只能用本办法全网扫描抓肉鸡,之后经过了 idc 时代,现在云时代,普遍就多了个特征“机房流量”,对于机房的网段,已经被大量扫描器来来回回的扫描了,一旦有漏洞甚至是自动入侵的。根本不是人在盯着你机器是否有漏洞。
    所以很多服务器使用习惯已经需要变革了,最典型的就是外网端口,能不开就不开,必须开则尝试下修改,例如最基本的 22,3389 修改掉
    faceRollingKB
        39
    faceRollingKB  
       2018-10-23 14:25:58 +08:00
    第一次租服务器的时候,一觉起来 ssh 有 2000+failed login,从那以后我都是直接防火墙设置 ip 白名单的
    faceRollingKB
        40
    faceRollingKB  
       2018-10-23 14:27:40 +08:00
    80、443 开放,其他所有端口白名单
    ThirdFlame
        41
    ThirdFlame  
       2018-10-23 14:29:38 +08:00
    就是 一轮一轮扫出来的。时间上仅是一个巧合。
    另外 上来的人直接清空了数据库,并没有做任何备份。 及时给钱 也不会恢复。(你这也不需要恢复,无所谓)
    ChristopherWu
        42
    ChristopherWu  
    OP
       2018-10-23 14:31:39 +08:00
    @PulpFunction 是的。本机上。
    ChristopherWu
        43
    ChristopherWu  
    OP
       2018-10-23 14:33:26 +08:00
    @opengps 恩~这个在公司里,用服务器时大概清楚~ 感谢回复
    Daming
        44
    Daming  
       2018-10-23 14:39:02 +08:00
    你居然把自己的 IP 放出来了,不怕 ddos 吗
    ChristopherWu
        45
    ChristopherWu  
    OP
       2018-10-23 14:49:21 +08:00
    @Daming 我是做给自己用的小网站。。。ddos 我没有任何价值啊 -_- ,除非是恶趣味
    Daming
        46
    Daming  
       2018-10-23 14:54:30 +08:00
    ChristopherWu
        47
    ChristopherWu  
    OP
       2018-10-23 15:01:29 +08:00
    @Daming 谢谢哈~ 被 ddos 了也没关系,正好可以学习一下 XD
    jinggoing
        48
    jinggoing  
       2018-10-23 17:20:11 +08:00
    我早上起来也发现被删库了,留了一个 warn 库 里面也是勒索信息。直接把 MongoDB 重装设置成仅本地连接
    lllllliu
        49
    lllllliu  
       2018-10-23 17:34:35 +08:00
    1. 安全组配置
    2. 防火墙配置
    3. Redis,Memcache 等记得要 auth,或者只允许 localhost 链接
    4. mysql 这种可以试着 ssl 链接
    Kaiv2
        50
    Kaiv2  
       2018-10-23 17:55:22 +08:00
    腾讯云有安全组的吧?
    我用的阿里云需要手动进官网开启端口,还需要手机验证码
    SCaffrey
        51
    SCaffrey  
       2018-10-23 19:37:17 +08:00 via Android
    @y10210118 #33 404 了
    moresteam
        52
    moresteam  
       2018-10-23 19:38:49 +08:00 via Android
    在我们的方言中,小鸡子指的是第三条腿
    lycc
        53
    lycc  
       2018-10-24 01:16:13 +08:00 via Android
    我觉得价格设为 0.01btc 或者更小倒是更有可能骗到人??
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2768 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 38ms · UTC 06:15 · PVG 14:15 · LAX 22:15 · JFK 01:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.