解决SqlServer 脱裤的一个小问题

2019-10-15 17:29:22 浏览数 (1)

作者:Evi1oX

sql server配置管理器中, 为了安全设置.server 协议可以禁用固定的端口.采用随机端口运行 mssql

例如说绑定一个固定端口

在成功获取到一个 webshell 的前提下.服务器没有开放1433端口..

想法1:

利用 socks5转发. 使用 navicat 连接服务器..但是发现使用 ashx 脚本 socks5丢失 udp 的数据包. 失败.继而使用了自用的 sock5的程序反向代理到 vps..但是还是失败.

想法2:

查找本地备份sql文件.失败

想法3:

使用aspx大马导出..发现能导出成功.但是文件缺失严重..数据不全..[可能是大马的问题]. 失败

想法4:

使用 sqlcmd 导出导入.成功


峰回路转

通过 tasklist 查看进程中 sql server 的信息发现两个 pid

代码语言:javascript复制
tasklist /svc

通过netstat发现存在端口开放情况

代码语言:javascript复制
`netstat -ano |findstr '6666' `

利用常用的大马中 mssql 管理功能 server=localhost;UID=sa;PWD=;database=master;Provider=SQLOLEDB 变更为 server=localhostSQLEXPRESS;port=45392;UID=sa;PWD=sapassword;database=dbname;Provider=SQLOLEDB

成功连接..但是发现利用导出 backup database 功能实在是不好用…导出继续失败 利用 set 查看到 mssql 有相关环境变量 这里我就不放图了.大家都懂.

使用sqlcmd备份还原sqlserver数据库
代码语言:javascript复制
备份:
代码语言:javascript复制
还原:

至于其中的目录斟酌修改..


导入到本地发现又出现新的问题

问题1.1: RESTORE 无法处理数据库 ‘dbname’,因为它正由此会话使用。建议在执行此操作时使用 master 数据库。

问题1.2: 消息 3013,级别 16,状态 1,服务器 localhostSQLEXPRESS,第 1 行 RESTORE DATABASE 正在异常终止。

sqlcmd -S localhostSQLEXPRESS,45392 -U sa -P sapassword -d dbname -Q"use master; RESTORE DATABASE dbname FROM disk='c:/dbname.bak' with REPLACE"

如果还是不行 说明你的服务器sqlserver版本和对方的服务器版本不同.

解决办法: 升级同级别或者更高版本的环境


结语:

上面的步骤虽然失败.但是给我提供了很大帮助.server 及 port 的指定

例如 navicat 没有指定端口的选项. 就在 server 中填写localhost,port

连接 server 中使用 localhost 失败 ,localhostSQLEXPRESS 成功 等等…

就这样

0 人点赞