美文网首页内网攻防
2023轻松打造自己的MySQL蜜罐

2023轻松打造自己的MySQL蜜罐

作者: book4yi | 来源:发表于2023-06-14 22:33 被阅读0次

    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等

    相关文章

      网友评论

        本文标题:2023轻松打造自己的MySQL蜜罐

        本文链接:https://www.haomeiwen.com/subject/kzbuedtx.html