开始...

这是我的用于进行聊天bot服务的账号,在9月6日弹出了这个提示,但是当时我没在意,只是认为这是Napcat框架的一个小问题而已。

Bot发送的神秘消息

9月8日23:21,Neko(也就是bot)发出了一个不应存在的消息"114514",引起了我的注意,但是当时我只是认为这是Astrbot的某个插件的条件触发导致的消息(因为我也没有完全检查那些插件的功能)。

23:42,Neko再次发送"114514",我于是查看了Astrbot面板,发现控制台日志内并没有关于"114514"的消息发送说明,应为按照常理来讲,机器人消息应当会打印在日志上的,而当时日志并未显示要发送114514,于是我检查了qq的登录设备,发现除了我的手机和linux服务器外没有其他登录痕迹,个人信息和其他东西并未遭到篡改。

但我还是放心不下,于是我撤销了Neko的管理员身份,这样以便半夜的时候使用我的小号进行异常事件的处置。

露出獠牙

9月9日00:01,Neko居然开始自动发送了一些过分危险的涉政与国家方面相关言论(这是比较保守的说法),同时附上了许多张不存在国家的图片,在小号上线后,我立刻撤回消息并把bot踢出群聊,随后进行了更改密码、退出linux设备登录等操作,后续未引发较大影响。

怎么被攻击者利用的?

这位攻击者有非常强的xx政治倾向,在此之前"114514"只是它的试探。

由于应急处置过后,服务器的grub引导也随之破坏,于是我只能进行推论。

首先我的linux服务器及Astrbot服务在公网均设置了密码,且并不是弱口令。

于是真相大概出在NapcatQQ框架上:

注意到我并没有配置WebUI密码,并且公开了Napcat WebUI端口导致了被攻击者利用。

故攻击者操作流程为:

  1. 攻击者在公网一定的ip段进行扫描

  2. 扫描到一定端口后对其进行利用,查找用途

  3. 攻击者找到了Napcat的WebUI网址,并使用默认口令成功登录

  4. 利用接口进行消息的发送

  5. 最终实现危险言论的发送

总结

不要随便开放端口,也不要设置弱口令或默认密码!

关于这位攻击者,还有许多的谜团...

  • 为什么它选择在9月9日这个特殊日子发送这些言论?

  • 为什么它的言论如此的可笑?

  • 为什么它盯上了我的bot?

总之:吸取教训,端正态度。

Just do it