关于Mysql蜜罐的具体技术细节,网上文章介绍的太多了,大家可以自己从网上搜索文章,我写一个简介吧:mysql中有一个load data local infile函数能够读取本地文件到mysql数据库中。当攻击者用爆破mysql密码的扫描器扫描到我们的mysql并连接上的时候(注,这里我纠正一下,只要连接一下蜜罐mysql,就可以被蜜罐读取到本地配置文件,不需要提供正确的用户名密码),客户端(攻击者)会自动发起一个查询,我们(服务端)会给与一个回应,我们在回应的数据包中加入load data local infile读取攻击者的本地文件到我们数据库中,达到反制的目的。(以下图片来源于网络搜索)
只要是使用cs客户端连接过cs服务端的电脑,cs客户端都会在固定的文件夹下生成一个.aggressor.prop配置文件。如果是Windows系统,那么文件位置是:C:\Users\Administrator\.aggressor.prop,这个配置文件里面就包含了cs远控的ip地址、端口、用户名及密码,而且都是明文的!如下图所示:
每次打开cs都会显示出曾经登录后的ip地址、端口、用户名、密码等信息,这些信息都是存储在本地.aggressor.prop文件中的,大致内容如下图所示:
因此我们得到结论,搭建一个mysql蜜罐,一旦攻击者连接这个蜜罐,那么这个蜜罐利用msyql本地文件读取漏洞去自动读取C:\Users\Administrator\.aggressor.prop这个文件内容,蜜罐就可以成功得到攻击者的cs服务端ip地址、端口、用户名密码。
为了验证一下上述猜测,还是要实战测试一下的,从github上找到一个python写的mysql蜜罐脚本,本地简单修改一下,将文件读取的路径改为C:\Users\Administrator\.aggressor.prop,将脚本运行起来。如下图所示,一个监听本地端口3306的mysql蜜罐就搭建好了。
为了模拟红队人员连接mysql的行为,使用navicat远程连接一下这个蜜罐的ip地址。(再次强调一下,无需知道mysql的用户名密码即可,输入一个错误的用户名密码,mysql蜜罐同样可以读取本地文件)
如下图所示,mysql蜜罐在当前目录的日志文件中给出base64加密后的cs配置文件内容。
Base64解密之后结果如下:
·
成功使用蜜罐获取到的ip地址、端口、用户名及密码连上cs服务端(以下图片来源于网络)
Windows下,微信默认的配置文件放在C:\Users\username\Documents\WeChat Files\
中,在里面翻翻能够发现 C:\Users\username\Documents\WeChat Files\All Users\config\config.data
中含有微信ID
C:\Users\backlion\Documents\WeChat Files\All Users\config\config.data