亲历的一次 Mongodb 攻击

亲历的一次 Mongodb 攻击

2019-06-24 17:09:44
上海

项目需要,在腾讯云上部署了 Yapi 来管理接口。今天同学突然跟我说 Yapi 上不去了。检查一下发现,账号都被删了。再检查一下发现,整个数据库都被删了,僵硬。

于是打开 Mongodb 日志查看操作记录。

默认在 /var/log/mongodb/mongod.log 位置,然后

cat mongodb.log |grep dropDatabase

然后发现有许多条删库的记录。

2019-06-24T10:46:23.117+0800 I COMMAND  [conn116] dropDatabase account-db - starting
2019-06-24T10:46:23.117+0800 I COMMAND  [conn116] dropDatabase account-db - dropping 0 collections
2019-06-24T10:46:23.244+0800 I COMMAND  [conn116] dropDatabase account-db - finished

时间在十点多,那时我还在睡觉😁

锁定这个连接 [conn116] 然后

cat mongodb.log |grep "[conn116]"

结果如下:

2019-06-24T10:46:23.117+0800 I COMMAND  [conn116] dropDatabase account-db - starting
2019-06-24T10:46:23.117+0800 I COMMAND  [conn116] dropDatabase account-db - dropping 0 collections
2019-06-24T10:46:23.244+0800 I COMMAND  [conn116] dropDatabase account-db - finished
2019-06-24T10:46:23.244+0800 I COMMAND  [conn116] command account-db appName: "robo3t" command: dropDatabase { dropDatabase: 1, writeConcern: { w: 0, wtimeout: 0 }, $db: "account-db" } numYields:0 reslen:62 locks:{ Global: { acquireCount: { r: 2, w: 1, W: 1 } }, Database: { acquireCount: { W: 1 } } } storage:{} protocol:op_msg 127ms
2019-06-24T10:46:26.281+0800 I COMMAND  [conn116] dropDatabase analysis-db - starting
2019-06-24T10:46:26.281+0800 I COMMAND  [conn116] dropDatabase analysis-db - dropping 0 collections
2019-06-24T10:46:26.294+0800 I COMMAND  [conn116] dropDatabase analysis-db - finished
2019-06-24T10:46:28.813+0800 I COMMAND  [conn116] dropDatabase movie - starting
2019-06-24T10:46:28.813+0800 I COMMAND  [conn116] dropDatabase movie - dropping 0 collections
2019-06-24T10:46:28.832+0800 I COMMAND  [conn116] dropDatabase movie - finished
2019-06-24T10:46:31.369+0800 I COMMAND  [conn116] dropDatabase config - starting
2019-06-24T10:46:31.369+0800 I COMMAND  [conn116] dropDatabase config - dropping 0 collections
2019-06-24T10:46:31.382+0800 I COMMAND  [conn116] dropDatabase config - finished
2019-06-24T10:46:34.208+0800 I COMMAND  [conn116] dropDatabase yapi - starting
2019-06-24T10:46:34.208+0800 I COMMAND  [conn116] dropDatabase yapi - dropping 0 collections
2019-06-24T10:46:34.544+0800 I COMMAND  [conn116] dropDatabase yapi - finished
2019-06-24T10:46:34.544+0800 I COMMAND  [conn116] command yapi appName: "robo3t" command: dropDatabase { dropDatabase: 1, writeConcern: { w: 0, wtimeout: 0 }, $db: "yapi" } numYields:0 reslen:56 locks:{ Global: { acquireCount: { r: 2, w: 1, W: 1 } }, Database: { acquireCount: { W: 1 } } } storage:{} protocol:op_msg 335ms
2019-06-24T10:46:42.841+0800 I COMMAND  [conn116] dropDatabase local - starting
2019-06-24T10:46:42.841+0800 I COMMAND  [conn116] dropDatabase local - dropping 0 collections
2019-06-24T10:46:42.866+0800 I COMMAND  [conn116] dropDatabase local - finished
2019-06-24T10:47:45.544+0800 I STORAGE  [conn116] createCollection: admin.RECOVERY with generated UUID: 764e8a75-d5f5-44da-aa01-89035f820b7d
2019-06-24T10:48:35.495+0800 I NETWORK  [conn116] end connection 207.148.13.163:40264 (8 connections now open)

一顿操作行云流水,肯定是机器人操作,删完还不忘创建一个 admin.RECOVERY ,留下一个联系恢复的邮箱。

{
  "_id": {
    "$oid": "5d1039f3a6d39755438bc654"
  },
  "recovery": "email whitx@gmx.com"
}

查了一下这个地址,是美国的一台 vultr 的 vps ,很难找到是谁。而且仔细看一下日志,美国加拿大的很多陌生 IP 都造访过我的 Mongodb,真实流泪。

于是我就给mongodb加上了密码,换了端口,并且养成了经常备份的好习惯。

在 GitHub 上查看本页