MSSQL绕过微软杀毒提权案例

简介: MSSQL绕过微软杀毒提权案例

0x01 前言

朋友发来的是一个支持外链的MSSQL,未做站库分离处理,且可以直接通过xp_cmdshell执行命令,但是由于目标系统为Windows 2019,自带的有微软的Windows Defender防病毒,他在执行PowerShell攻击命令时被拦截后不知道要怎么绕过,所以让我帮着给看下。

0x02 信息搜集

目标机器基本信息:

    目标系统:Windows Server 2019(10.0.17763 暂缺 Build 17763)
    数据库版本:Microsoft SQL Server 2014 - 12.0.2000.8 (X64) 
    当前权限:nt service\mssqlserver
    开放端口:80、135、445、1433、2383(ssas)、3389......
    进程名称:Ssms.exe、sqlwriter.exe、sqlservr.exe、MsMpEng.exe、chrome.exe......

    有实战经验的老哥在看到“此脚本包含恶意内容,已被你的防病毒软件阻止。”提示时就知道是Windows Defender拦截的,我们拿目标机器上的进程列表到“Windows杀软在线对比辅助”上对比了一下发现确实存在


    0x03 实战提权过程

    现在已经确定存在Windows Defender,那么我们就先来绕过它获取一个MSF会话,经过测试发现MSF的web_delivery模块直接就可以绕过了,但是不能在SSMS和Navicat Premium中执行这个Payload,会出现“开头的 标识符 太长。最大长度为 128”的报错。

    因为这是一个支持外链的MSSQL,所以我们还可以换其他的MSSQL连接工具试一下,这里我直接用的MSF中的mssql_exec模块执行的Payload,可以看到已经成功获取到目标机器会话

    这里我们先尝试了利用MS16-075模块来进行权限提升,但是由于目标机器上的Windows Defender防病毒软件原因利用失败了,而且会话还掉了几次,如果有免杀EXP可以试一下

    MS16-075模块利用失败了,但是我们在前期的信息搜集中有发现目标机器上还运行着一个Ssms.exe进程,这个进程是MSSQL客户端连接工具,全称为SQL Server Management Studio

    我们在《站库分离常规渗透思路总结》这篇文章中也有提到过这个提权方法,当目标机器有在使用Windows身份验证连接MSSQL数据库时就会保留当前登录用户的令牌,所以可以直接利用MSF中的Incognito扩展来进行权限提升,可以看到已经成功提升至Administrator权限

    注:为什么拿到Administrator后不直接进入cmdshell添加管理员用户呢?因为动静太大了,在进行远程桌面连接时会产生大量日志,这样容易被管理员发现,所以个人建议不到万不得已时不要直接去添加管理员用户和连接远程桌面,尽可能的都在命令行下执行相关操作。

    虽然已经得到目标机器的Administrator权限,但是Windows Defender还拦截了一些命令的执行,如:执行getsystem会一直卡着不动,所以目前无法得到SYSTEM以及HASH和明文。


    经过测试发现可以使用migrate命令将当前会话进程迁移至其他SYSTEM权限运行的进程中去,这里我迁移的是PID为7008的GoogleCrashHandler.exe进程,但还是不能使用hashdump命令抓取hash,kiwi也抓取不到明文密码,以前没有测试过Windows 2019,不知道能不能通过修改WDigest注册表的方式来抓取明文密码。

    因为我们现在已经是SYSTEM最高权限了,具备SAM注册表的完全控制权限,所以现在是可以直接利用post/windows/gather/hashdump模块抓取HASH,但是解密不了

    思路小结:

    • 1. 利用mssql_exec模块执行powershell payload绕过Windows Defender获取MSF会话;
    • 2. 利用kiwi扩展“通过MSSQL客户端连接工具的Ssms.exe进程”模拟Administrator令牌;
    • 3. 利用migrate进程迁移命令绕过Windows Defender得到SYSTEM以及HASH和明文密码;


    0x04 其他绕过思路

    当目标机器存在Windows Defender防病毒软件时,即使已经拿到了Administrator会话后仍然无法执行getsystem、hashdump、list_tokens等命令和一些后渗透模块,除了上边已测试的migrate进程迁移方法外还可以尝试以下三个思路。尽可能的拿到目标机器的SYSTEM以及HASH和明文密码,在内网环境中可能会有其他用途,这里仅为大家扩展几个绕过思路,就不截图了

    (1) 直接添加管理员用户

    使用shell命令进入cmdshell后直接利用net命令来添加一个管理员用户,然后远程桌面连接进去关闭Windows Defender防病毒软件的实时保护,最后尝试抓取目标机器HASH和明文密码

      net user test xxxasec!@#!23 /add
      net localgroup administrators test /add


      (2) 修改SAM注册表权限

      使用regini命令修改SAM注册表权限,然后利用post/windows/gather/hashdump模块抓取目标机器HASH,最后再利用135/445等支持哈希传递的工具来执行命令。

        echo HKLM\SAM\SAM [1 17]>C:\ProgramData\sam.ini
        regini C:\ProgramData\sam.ini


        (3) 关闭杀毒软件实时保护

        使用Windows Defender防病毒软件中自带MpCmdRun.exe程序来关闭它的实时保护,然后再利用hashdump命令或模块抓取目标机器HASH。MSF中的rollback_defender_signatures模块也可以用来关闭实时保护,但是需要SYSTEM权限才能执行。

          C:\PROGRA~1\WINDOW~1>MpCmdRun.exe -RemoveDefinitions -all
          MpCmdRun.exe -RemoveDefinitions -all
          Service Version: 4.18.1812.3
          Engine Version: 1.1.17600.5
          AntiSpyware Signature Version: 1.327.2026.0
          AntiVirus Signature Version: 1.327.2026.0
          NRI Engine Version: 1.1.17600.5
          NRI Signature Version: 1.327.2026.0
          Starting engine and signature rollback to none...
          Done!


          0x05 注意事项

          记得前几年在测试Windows Defender时好像几乎所有获取MSF会话的方式都是会被拦截的,但是不知道为什么在这个案例中就没有拦截web_delivery模块中的Powershellhta_server模块是会被拦截的,MSF或Windows Defender版本原因吗?这里我也没有再去深究这个问题,所以大家在实战测试中还是得自己多去尝试,说不定哪种方法就成功了呢!!!

          相关文章
          |
          安全 Shell Windows
          【权限提升】WIN本地用户&BypassUAC&DLL劫持&引号路径&服务权限
          【权限提升】WIN本地用户&BypassUAC&DLL劫持&引号路径&服务权限
          492 2
          |
          监控 安全 Linux
          如何利用Kali Linux进行网站渗透测试:最常用工具详解
          如何利用Kali Linux进行网站渗透测试:最常用工具详解
          1149 6
          |
          数据采集 搜索推荐 JavaScript
          禁止搜索
          【7月更文挑战第9天】
          841 1
          |
          安全 网络安全
          技巧!通过360卫士白名单绕过查杀
          技巧!通过360卫士白名单绕过查杀
          2008 0
          |
          Kubernetes 安全 Cloud Native
          云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
          本文介绍了云原生环境下Kubernetes集群的安全问题及攻击方法。首先概述了云环境下的新型攻击路径,如通过虚拟机攻击云管理平台、容器逃逸控制宿主机等。接着详细解释了Kubernetes集群架构,并列举了常见组件的默认端口及其安全隐患。文章通过具体案例演示了API Server 8080和6443端口未授权访问的攻击过程,以及Kubelet 10250端口未授权访问的利用方法,展示了如何通过这些漏洞实现权限提升和横向渗透。
          2002 0
          云上攻防-云原生篇&K8s安全-Kubelet未授权访问、API Server未授权访问
          |
          域名解析 负载均衡 网络协议
          信息收集——绕过CDN查找真实IP(最实用的方法)
          信息收集——绕过CDN查找真实IP(最实用的方法)
          8274 0
          信息收集——绕过CDN查找真实IP(最实用的方法)
          |
          应用服务中间件 数据库连接 数据安全/隐私保护
          MSSQL绕过360提权实战案例
          MSSQL绕过360提权实战案例
          633 2
          |
          运维 关系型数据库 MySQL
          绕过360安全卫士提权实战案例
          绕过360安全卫士提权实战案例
          1107 1
          |
          机器学习/深度学习 存储 人工智能
          算法金 | 一个强大的算法模型,GP !!
          高斯过程是一种非参数机器学习方法,利用高斯分布描述数据,并通过核函数衡量相似性。它在小样本和不确定性估计上有优势,常用于回归、分类和优化。高斯过程基于函数分布,通过核函数(如线性、RBF、多项式)捕捉数据关系。与传统方法相比,它在处理不确定性和非线性问题时更具灵活性。虽然计算复杂度高、内存需求大,但通过稀疏高斯过程等方法可改善。高斯过程还可扩展到非平稳和多任务场景。本文通过代码示例展示了高斯过程在战斗胜率预测中的应用。
          595 11
          算法金 | 一个强大的算法模型,GP !!
          |
          监控 安全 测试技术
          ms17-010(永恒之蓝)漏洞复现
          ms17-010(永恒之蓝)利用的端口是445端口。 本文主要讲解ms17-010(永恒之蓝)漏洞复现,分为四个部分:了解渗透测试流程,使用nmap工具对win7进行扫描,尝试ms17-010漏洞利用,结果展示。第一部分“了解渗透测试流程”可以略过,可以直接从第二部分“使用nmap工具对win7进行扫描”开始看起。
          3525 5
          ms17-010(永恒之蓝)漏洞复现

          热门文章

          最新文章

          下一篇
          开通oss服务