其实应该不是被黑。。
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 这点印象更深刻了)
1
iConnect 2018-10-23 11:14:19 +08:00
自动端口扫描,人家不是故意来黑你的,只是路过你家发现门开着
|
2
p2pCoder 2018-10-23 11:16:28 +08:00
昨年 redis 也没设密码,被挖矿了
|
3
Molita 2018-10-23 11:17:33 +08:00
门上没锁还不关门=。=
|
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!
还好数据不重要。看到这个提醒莫名想笑,臭不要脸的。 |
5
ChristopherWu OP |
6
ChristopherWu OP @baicheng10 可能就算是数据重要,我第一次这样子搭服务,还是会栽这个坑上 -_-
|
7
lhx2008 2018-10-23 11:24:16 +08:00
mongo 默认允许外网访问吗,我还一直没调,不过调了只开 80 和 443
|
8
baicheng10 2018-10-23 11:24:54 +08:00
扫描的网段,那些不要脸的,反正肉鸡多,慢慢搞。
还会不断进行暴力破解,烦得要死。 |
9
ChristopherWu OP @lhx2008 是啊。
当然,这个可能也正常,因为 psql 这些估计也是允许外网访问的,不过他们强制要你设置账号密码。 |
10
lhx2008 2018-10-23 11:25:16 +08:00
看了下默认是本机的啊
# network interfaces net: port: 27017 bindIp: 127.0.0.1 |
11
ChristopherWu OP @baicheng10 所有网段的 ip,不停的遍历?
|
12
Molita 2018-10-23 11:27:18 +08:00
有 IP 段吧,大概就这些遍历呗。猜测
|
13
xavier007 2018-10-23 11:30:39 +08:00
有 IP 段,比如这个 IP 段是 A 云,那个是 T 云,每天遍历扫一遍总有新收获
|
14
xavier007 2018-10-23 11:31:15 +08:00
以前内网没有隔离的时候,内网还可以自己扫
|
15
LittleDust 2018-10-23 11:34:13 +08:00
小鸡子🐤。。小鸡子🐥。。好萌
|
16
bankroft 2018-10-23 11:36:29 +08:00 via Android
ipv4 拢共就那么多 ip,而且这种情况肉鸡应该很多,就算扫全 ip 也要不了多少时间吧。最重要的是服务提供商一般都有 B 类地址吧,扫循环扫一些 b 类地址总能扫到。v6 覆盖起来之后应该会好些
|
17
flowfire 2018-10-23 11:36:30 +08:00
0.6 BTC,一点都不贪 hhhh
|
18
wildcat007 2018-10-23 11:38:27 +08:00
redis mysql 都有的
mysql 直接删库,然后警告你 一定时限支付,否则彻底删除数据(其实已经删除了) redis 直接拿权限 写 crontab,继续自动扫描攻击 + 挖矿 |
19
GrahamACER 2018-10-23 11:39:10 +08:00
遭遇一模一样的现象……勒索的价格都一样
最重要的是,腾讯没有自动备份,隔壁就有…… 当天晚上把所有服务都迁移到隔壁去了,开了防火墙做了登录 IP 限制 mongo 上密码其实很麻烦,我用的方法是只有指定的 IP 能访问 mongo |
20
ChristopherWu OP @bankroft 全扫描感觉不现实,25 亿呢。 所以会不会是扫描知名云的网段而已呢。
|
21
kkhaike 2018-10-23 11:40:25 +08:00
腾讯云的 安全组 呢
|
22
ChristopherWu OP @GrahamACER 其实生产环境就直接限制内网访问(本来数据库这些东西就不用暴露出去)
|
23
ChristopherWu OP @kkhaike 木有用,是怎么样的呢?
|
24
likuku 2018-10-23 11:43:32 +08:00
|
25
likuku 2018-10-23 11:44:45 +08:00
@ChristopherWu 快速扫描全网并不是听起来那般不可能...
|
26
ChristopherWu OP @likuku 默认把用户当傻蛋其实挺好的-_-
|
27
GrahamACER 2018-10-23 11:49:05 +08:00
而且当时并不全是 mongo 的锅,整个环境下所有的东西都没了
我就发了个工单问腾讯对方是怎么拿到我的 root 权限的 腾讯一直在强调 redis 的漏洞问题,回避这个 root 的问题…… |
28
likuku 2018-10-23 11:49:17 +08:00
@ChristopherWu 不不,默认把当前网络环境当作家门口就恶魔成堆的凶险之地,挺好的。
|
29
congeec 2018-10-23 11:51:40 +08:00 via iPhone 1
|
30
fchypzero 2018-10-23 11:54:23 +08:00
@ChristopherWu 在不保证准确率的情况下,PING 就完事了。
|
31
mytsing520 2018-10-23 11:58:07 +08:00
1 小时就能扫遍全网所有 IP 地址的端口一次
|
32
ChristopherWu OP 大佬们顺便回答一哈:
我的 mongo 是 9 月 30 号 就开了的,为什么昨天我把 python 后台跟 simple server 启动起来,才被人扫 |
33
y10210118 2018-10-23 12:14:50 +08:00
自建 MongoDB 存在空密码或弱口令很容易被入侵,如果有备份数据或者快照可以恢复,做关键还是提前做好安全防护,看到有个挺好的文档可以参考下: http://bbs.qcloud.com/thread-42928-1-1.html。
|
34
Les1ie 2018-10-23 13:05:20 +08:00 1
|
35
Les1ie 2018-10-23 13:06:41 +08:00
@ChristopherWu 被入侵是随机事件, 并不是你一打开就能够通知到别人你这里有未授权的
|
36
PulpFunction 2018-10-23 14:14:02 +08:00
想问一下数据库也是在本地服务器(本小鸡上)的吗
|
37
FakeLeung 2018-10-23 14:17:51 +08:00 via iPhone
是的,我的小博客也是因为芒果没有密码,导致所有博文丢失了。
这些人是真的闲啊。。。。 |
38
opengps 2018-10-23 14:23:10 +08:00 1
这么说吧,不是有些人闲的,在以前互联网起步时候,只能用本办法全网扫描抓肉鸡,之后经过了 idc 时代,现在云时代,普遍就多了个特征“机房流量”,对于机房的网段,已经被大量扫描器来来回回的扫描了,一旦有漏洞甚至是自动入侵的。根本不是人在盯着你机器是否有漏洞。
所以很多服务器使用习惯已经需要变革了,最典型的就是外网端口,能不开就不开,必须开则尝试下修改,例如最基本的 22,3389 修改掉 |
39
faceRollingKB 2018-10-23 14:25:58 +08:00
第一次租服务器的时候,一觉起来 ssh 有 2000+failed login,从那以后我都是直接防火墙设置 ip 白名单的
|
40
faceRollingKB 2018-10-23 14:27:40 +08:00
80、443 开放,其他所有端口白名单
|
41
ThirdFlame 2018-10-23 14:29:38 +08:00
就是 一轮一轮扫出来的。时间上仅是一个巧合。
另外 上来的人直接清空了数据库,并没有做任何备份。 及时给钱 也不会恢复。(你这也不需要恢复,无所谓) |
42
ChristopherWu OP @PulpFunction 是的。本机上。
|
43
ChristopherWu OP @opengps 恩~这个在公司里,用服务器时大概清楚~ 感谢回复
|
44
Daming 2018-10-23 14:39:02 +08:00
你居然把自己的 IP 放出来了,不怕 ddos 吗
|
45
ChristopherWu OP @Daming 我是做给自己用的小网站。。。ddos 我没有任何价值啊 -_- ,除非是恶趣味
|
46
Daming 2018-10-23 14:54:30 +08:00
|
47
ChristopherWu OP @Daming 谢谢哈~ 被 ddos 了也没关系,正好可以学习一下 XD
|
48
jinggoing 2018-10-23 17:20:11 +08:00
我早上起来也发现被删库了,留了一个 warn 库 里面也是勒索信息。直接把 MongoDB 重装设置成仅本地连接
|
49
lllllliu 2018-10-23 17:34:35 +08:00
1. 安全组配置
2. 防火墙配置 3. Redis,Memcache 等记得要 auth,或者只允许 localhost 链接 4. mysql 这种可以试着 ssl 链接 |
50
Kaiv2 2018-10-23 17:55:22 +08:00
腾讯云有安全组的吧?
我用的阿里云需要手动进官网开启端口,还需要手机验证码 |
52
moresteam 2018-10-23 19:38:49 +08:00 via Android
在我们的方言中,小鸡子指的是第三条腿
|
53
lycc 2018-10-24 01:16:13 +08:00 via Android
我觉得价格设为 0.01btc 或者更小倒是更有可能骗到人??
|