sqlserver 备份脚本_解决SqlServer 脱裤的一个小问题

作者:Evi1oX

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

a25397f2a21ef50ad290c9e01392a60c.png

例如说绑定一个固定端口

4a4dea8e6ecce1c27d00a93ad954de6c.png

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

想法1:

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

想法2:

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

想法3:

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

想法4:

使用 sqlcmd 导出导入.成功


峰回路转

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

tasklist /svc

sqlservr.exe 6666 MSSQL$SQLEXPRESS

fdlauncher.exe 6667 MSSQLFDLauncher$SQLEXPRESS

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

`netstat -ano |findstr '6666' `

TCP 0.0.0.0:45392 0.0.0.0:0 LISTENING 6666

TCP [::]:45392 [::]:0 LISTENING 6666

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

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

使用sqlcmd备份还原sqlserver数据库

备份:

sqlcmd -S localhost\SQLEXPRESS,45392 -U sa -P sapassword -d dbname -Q"BACKUP DATABASE dbname to disk='c:/backup/dbname.bak'"

还原:

sqlcmd -S localhost\SQLEXPRESS,45392 -U sa -P sapassword -d dbname -Q"RESTORE DATABASE dbname FROM disk='c:/dbname.bak'"

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


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

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

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

sqlcmd -S localhost\SQLEXPRESS,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 失败 ,localhost\SQLEXPRESS 成功 等等…

就这样

作者历史文章赏析:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值