2023轻松打造自己的MySQL蜜罐

0x01 前言:


22年1月的时候,我去学习了Mysql蜜罐服务器的原理及流量分析的整个过程,并找了个开源项目简单进行二次开发以获取攻击者个人信息,详情请见:Mysql蜜罐:攻击者信息拿来吧你

今年5月份再度使用时,发现新版微信的配置文件不再包含用户的相关信息,然后想到自己今年也fw很久了,至今还没产出,于是有了本文……

0x02 MysqlHoneypot:


项目地址:https://github.com/qigpig/MysqlHoneypot

MysqlHoneypot是一个用于模拟MySQL服务器的蜜罐程序,至今已经有两年没有更新了。

漏洞利用原理:

MySQL中的load data local infile函数可以读取指定的本地文件内容,并将数据插入到数据库中。该函数通常用于快速、批量地将本地计算机上的数据文件存储到MySQL数据库中。这个函数默认是启用的,可以让客户端允许将本地文件加载到MySQL服务器中。

该项目客户端与服务端交互的过程:

  • 1、模拟伪装成一个Mysql服务器,MySQL蜜罐接受连接请求,并向客户端发送握手信息,包括服务端的版本信息、认证方式等。
  • 2、接着客户端将认证请求发送给服务端。
  • 3、服务端忽略用户输入的用户名密码信息,直接返回认证成功的结果。
  • 4、认证成功后,客户端向服务端发送 SET NAMES 命令,告知服务端使用的字符集类型,从从而在后续的交互过程中能够正确地进行字符编解码。
  • 5、服务端回复Response TABULAR给客户端,指定要读取客户端的某个文件。
  • 6、客户端返回读取文件的内容:

服务端可以在回复任何客户端的请求时返回Response TABULAR响应包,这样就可以在客户端登录成功后,发送Response TABULAR响应包,读取客户端的相关信息。

结合自己之前的使用经验,谈谈这个项目的不足之处:

  • 只能获取微信id以及生成的二维码(早已无任何实际用处)
  • 无论用户输入任意用户名密码都返回认证成功的结果,可信度低
  • 前端Web页面缺少日志记录模块

0x03 二次开发:


之所以选择它是因为之前有读过它的代码,该有的模块基本都有,比如Basic认证、Web前端结果展示、docker等,基本能满足需求,最终实现了以下功能:

  • 交互优化:模拟了错误口令的返回信息,当成功命中用户名密码时读取文件。
  • 读取模块:由原来的微信配置文件改成Chrome的账号、历史记录文件。
  • 捕获模块:对读取模块获取的文件使用正则匹配邮箱和电话,将所有结果展示在前端。
  • 日志模块:记录连接IP、连接次数、连接时间等信息,结果展示在前端。
  • 监控模块:实时更新今日24小时的连接次数及IP、历史连接次数、连接次数最多的10个IP。
  • 交互优化

设置唯一弱口令,当输入错误口令时,自动获取本地局域网IP和用户名,返回正常的认证失败信息:

  • 捕获模块

对读取到的Login Data和History文件内容进行正则匹配,若匹配到邮箱和电话则显示在前端:

  • 日志模块

记录每个连接IP,利用第三方接口查询ISP,记录总连接次数、连接时间和IP归属地,存储到sqlite数据库。

  • 监控模块

实时更新今日连接次数和历史连接次数,24小时内的连接次数及IP的图表以及连接次数最多的10个IP:

0x04 使用演示:


0x05 后续计划:


  • 能够让市面上常见的可用于Mysql爆破的工具成功命中口令,如超级弱口令爆破工具、goby、fscan等
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容