n3rada/mssqlclient-ng

GitHub: n3rada/mssqlclient-ng

Impacket mssqlclient.py 的增强版本,通过简洁的语法实现了对 SQL Server 及其链接实例的交互和账户模拟,无需复杂的 T-SQL 查询。

Stars: 2 | Forks: 0

impacket 的 `mssqlclient.py` 的增强版本。它允许你与 Microsoft SQL Server (MS SQL / MSSQL) 服务器及其链接实例进行交互,并在此过程中模拟沿途遇到的任何账户,而无需复杂的 T-SQL 查询。

example

注意:它可以处理 NTLM 中继 🔄 ## 📦 安装说明 要安装 `mssqlclient-ng`,你可以使用 `pip`、`pip3` 或 `pipx`。既可以从 `pypi` 仓库安装,也可以从 `GitHub` 源码安装。建议使用 [`pipx`](https://pypa.github.io/pipx/),因为它会将 Python 应用程序安装在隔离的虚拟环境中。 ### 从 GitHub 安装 这种方式可以确保获取到最新的可用版本。 ``` pipx install 'git+https://github.com/n3rada/mssqlclient-ng.git' ``` ``` pip install 'git+https://github.com/n3rada/mssqlclient-ng.git' ``` ### 从 [PyPI](https://pypi.org/project/mssqlclient-ng/) 安装 ``` pipx install mssqlclient-ng ``` ``` pip install mssqlclient-ng ``` ### 使用 [uv](https://docs.astral.sh/uv/) 安装 该项目使用 `uv_build` 作为其构建后端,因此从源码运行时推荐使用 `uv`: ``` # 如果尚未安装则安装 uv pip install uv # 直接克隆并运行 git clone https://github.com/n3rada/mssqlclient-ng.git cd mssqlclient-ng uv run mssqlclient-ng [options] ``` 首次运行时会自动调用 `uv sync`,解析并安装所有依赖项(包括来自 GitHub 的 impacket)到隔离的虚拟环境中。随后的运行将瞬间完成。 ``` mssqlclient-ng [options] ``` 格式:`server:port/user@database` 或其任意组合形式 `server/user@database:port`。 - `server`(必填)- SQL Server 的主机名或 IP 地址 - `:port`(可选)- 端口号(默认:1433,其他常用:1434、14333、2433) - `/user`(可选)- 要在此服务器上模拟的用户("execute as user") - `@database`(可选)- 数据库上下文(如果未指定,默认为 'master') ### 🔗 链接服务器链 使用 `-l` 标志链接多个 SQL 服务器,并以**分号 (`;`) 作为分隔符**: ``` -l SQL01;SQL02/user;SQL03@database ``` **语法说明:** - **分号 (`;`)** - 用于分隔链中的各个服务器 - **斜杠 (`/`)** - 指定要模拟的用户("execute as user") - **@ 符号 (`@`)** - 指定数据库上下文 - **方括号 (`[...]`)** - 用于保护服务器名称不被我们的分隔符分割 **示例:** ``` # 简单的 chain -l SQL01;SQL02;SQL03 # 使用 impersonation 和 databases -l SQL01/admin;SQL02;SQL03/manager@clients # 服务器名称可以包含连字符、点(不需要括号) -l SQL-01;SERVER.001;HOST.DOMAIN.COM # 仅当服务器名称包含分隔符字符时才需要括号 -l [SERVER;PROD];SQL02;[SQL03@clients]@clientdb ``` ## 🙏 致谢 - 基于 [Impacket](https://github.com/fortra/impacket) 构建,核心依赖于 [tds.py](https://github.com/fortra/impacket/blob/master/impacket/tds.py)。 - 面向对象(OOP)设计与 [MSSQLand](https://github.com/n3rada/MSSQLand) 密切相关。 - 终端界面由 [prompt_toolkit](https://github.com/prompt-toolkit/python-prompt-toolkit) 提供支持。 ## ⚠️ 免责声明 **本工具严格仅用于防御性安全研究、教育和授权的渗透测试。** 在对非您所有的任何系统运行本软件之前,您必须获得**明确的书面授权**。 本工具仅出于教育目的而设计,旨在帮助安全专业人员在授权的测试中理解并测试 SQL Server 环境的安全性。 可接受的环境包括: - 您控制的私有实验环境(本地虚拟机、隔离网络)。 - 获得批准的学习平台(CTF、Hack The Box、OffSec 考试场景)。 - 具有记录在案的客户同意书的正式渗透测试或红蓝对抗演练。 滥用本项目可能会面临法律诉讼。
标签:Impacket, NTLM Relaying, pipx, pypi, Python, SQL Server, T-SQL, uv, XXE攻击, 协议分析, 域渗透, 开源安全工具, 数据库审计, 无后门, 权限提升, 横向移动, 电子数据取证, 编程规范, 网络安全, 账户冒用, 逆向工具, 逆向工程平台, 链式服务器, 隐私保护