freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

MySQL蜜罐获取攻击者微信ID
FreeBuf_347714 2020-08-26 20:47:14 537591

本文原载于公众号:零队

作者:归零

前言

前些日子有人问到我溯源反制方面的问题,我就想到了MySQL任意文件读取这个洞,假设你在内网发现或扫到了一些MySQL的弱口令,你会去连吗?

原理

MySQL中 load data local infile '/etc/passwd' into table test fields terminated by '\n';语句可以读取客户端本地文件并插进表中,那么我们可以伪造一个恶意的服务器,向连接服务器的客户端发送读取文件的payload。这个技术并不新鲜,但是合理利用就能起到一些不错的成果。

利用

抓个包看看连MySQL时客户端和服务端通信的两个关键点:

服务端先返回了版本、salt等信息:

客户端向服务端发送账号密码信息后,服务端返回了认证成功的包:

至此,我们只需等待客户端再发一个包,我们就能发送读取文件的payload了,再看看读取文件这个包:

这里000001是指数据包的序号,fb是指包的类型,最后一个框是指要读取的文件名,而最前面的14是指文件名的长度(从fb开始,16进制),所以payload则是chr(len(filename) + 1) + "\x00\x00\x01\xFB" + filename

在能够实现任意文件读取的情况下,我们最希望的就是能读到与攻击者相关的信息。日常生活中,大家几乎都会使用微信,而如果攻击者没有做到办公—渗透环境分离的话,我们就有希望获取到攻击者的微信ID

Windows下,微信默认的配置文件放在C:\Users\username\Documents\WeChat Files\中,在里面翻翻能够发现 C:\Users\username\Documents\WeChat Files\All Users\config\config.data中含有微信ID:

而获取这个文件还需要一个条件,那就是要知道攻击者的电脑用户名,用户名一般有可能出现在一些日志文件里,我们需要寻找一些比较通用、文件名固定的文件。经过测试,发现一般用过一段时间的电脑在C:\Windows\PFRO.log中较大几率能找到用户名。

伪装

攻击者进入内网后常常会进行主机发现和端口扫描,如果扫到MySQL了,是有可能进行爆破的,如果蜜罐不能让扫描器识别出是弱口令,那就没啥用了,所以还需要抓下扫描器的包。

这里以超级弱口令检查工具为例,首先在本地起一个正常的MySQL服务,wireshark抓包看看扫描器有哪些请求:

可以看到,这款工具在验证完密码后还发了5个查询包,如果结果不对的话,是无法识别出弱口令的,那么我们将服务器的响应数据提取出来,放进程序里,当收到这些请求后,就返回对应的包:

这样就能让扫描器也可以正常识别:

效果

当攻击者发现存在弱口令的时候,大概率会连上去看看,如果使用navicat的话,就能读取到文件:

写了个简单的web来显示攻击者的微信ID,扫一扫就能加上TA

思考

除了获取微信ID,我们还能获取哪些有价值的东西呢?

  • chrome的login data,虽然无法解密出密码,但是还是可以获取到对方的一些账号的

    'C:/Users/' + username + '/AppData/Local/Google/Chrome/User Data/Default/Login Data'

  • chrome的历史记录

    'C:/Users/' + username + '/AppData/Local/Google/Chrome/User Data/Default/History'

  • 用户的NTLM Hash(Bettercap + responder)

    \\ip\test

详情:https://www.colabug.com/2019/0408/5936906/

……

待解决问题:

  • 同一出口IP的不同攻击者的信息如何区分

  • 读取的文件较大时,客户端会分段传输,如何完整获取

  • 前端有点bug,不管了,能用就行了

    关于其他可利用的点和以上待解决问题欢迎大家留言讨论,最后,源码我上传到GitHub了,有需要的朋友请自取:

    https://github.com/qigpig/MysqlHoneypot

参考链接

[1] https://www.colabug.com/2019/0408/5936906/

[2] https://github.com/ev0A/Mysqlist

# mysql # 蜜罐
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 FreeBuf_347714 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
攻防演练进阶
蜜罐
FreeBuf_347714 LV.6
这家伙太懒了,还未填写个人描述!
  • 15 文章数
  • 104 关注者
蜜罐如何在攻防演练中战术部防?
2021-03-25
2021攻防演练行动之蓝军经验总结
2021-03-25
防守方须排查的57个安全漏洞与解决方案
2021-03-17
文章目录