1. 极安网首页
  2. 网络安全技术

MSSQL利用CLR技术执行系统命令

在某项目外围打点的过程中,通过文件上传拿到一个 WebShell。

通过 WebShell 能够执行大多数的命令,且直接是 System 权限,但却无法执行 dir 进行列目录,导致冰蝎和蚁剑都无法使用。使用冰蝎进行命令行下的操作,回显极其的慢。通过 netstat,观察到站点连接内网中某台的服务器的 1433 端口,判断是站库分离的情形,于是决定建立隧道对数据库服务器进行渗透。而稍微大一点点的文件,都无法通过网站业务的上传功能进行上传,于是通过 WebShell 写入文件的方式,写入 reGeorg 隧道文件,快速建立起代理。

障碍

通过搜寻站点的数据库配置文件,得到了数据库的用户名和密码。通过 SSMS 远程连接进内网的数据库服务器,得到的用户有sysadmin的权限。但不幸的是无法执行xp_cmdshell,似乎该存储过程被删了。

突破-通过 CLR 进行命令执行

CLR 简介

CLR(公共语言运行时)提供了 .NET Framework 的代码执行环境,可以通过 .NET Framework 来编写存储过程、触发器等功能 。简单说,通过 CLR 能够在 SQLServer 中注册一套程序集,实现执行任意的 .NET 代码。既然可以执行代码,此时就可以实现很多功能。

编写一个 CLR

首先,在 visual studio 中创建一个 SQLSever 项目

MSSQL利用CLR技术执行系统命令-极安网

然后,添加一个存储过程项目

MSSQL利用CLR技术执行系统命令-极安网

原创文章,作者: Admin ,转载请注明出处:https://secvery.com/3611.html