内网攻防

2023轻松打造自己的MySQL蜜罐

2023-06-14  本文已影响0人  book4yi

0x01 前言:


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

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

0x02 MysqlHoneypot:


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

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

漏洞利用原理:

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

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

服务端可以在回复任何客户端的请求时返回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等
上一篇下一篇

猜你喜欢

热点阅读