blogger

柠阿乐の博客

于是,我为之努力
绕过SQL Server的登录触发器限制

看到有一些管理员用LOGON触发器来控制对服务器的访问。

这种情况经常遇到,就写个文章记录一下。

CREATE TRIGGER RestrictAccessPerHostname 
ON ALL SERVER
FOR LOGON
AS
BEGIN
IF
(
HOST_NAME() NOT IN ('tuifei1','tuifei2','tuifei3','tuifei4','tuifei5')
)
BEGIN
RAISERROR('You cannot connect to SQL Server from this machine', 16, 1);
ROLLBACK;
END
END

上面代码检查‘host_name’是否有传入连接,如果不在列表中,则不允许登录。

遇到这种其实真的很简单,我们看一下netspi的一篇文章就写的特别很详细了。

SSMS伪造主机名

在SSMS中打开“Connect Object Explorer”
并导航到“Additional Connection Parameters”选项。
我们可以在这里即时设置连接字符串属性(超酷)。
对于这个例子来说,我们将“Workstation ID”属性设置为“DevBox”,它是白名单中的一个主机名。
注意:稍后我会介绍几种识别白名单中的主机名的方法。

 单击连接按钮进行登录。打开一个查询窗口并重新检查主机名,这时将会变成“DevBox”。这进一步说明我们成功欺骗了主机名检测机制。

SELECT HOST_NAME()  使用连接字符串伪造主机名SSMS伪造主机名 

实际上,SSMS只是使用”workstation id”属性集建立一个连接字符串。下面是一个连接字符串的例子,它会以当前Windows用户的身份连接到远程SQL Server实例,并选择“Master”数据库。



评论(0)

© 2018  柠阿乐の博客  · emlog

蜀ICP备19013579号-柠阿乐   Design by 柠阿乐