Windows安全认证机制——Windows常见协议

一.LLMNR协议

1.LLMNR简介

链路本地多播名称解析(LLMNR)是一个基于域名系统(DNS)数据包格式的协议,使用此协议可以解析局域网中本地链路上的主机名称。它可以很好地支持IPv4和IPv6,是仅次于DNS解析的名称解析协议。

2.LLMNR解析过程

LLMNR解析前提是本地hosts和DNS解析失败时,会使用LLMNR解析。LLMNR解析过程如图1-1所示。

1)主机在本地NetBIOS缓存名称中进行查询。

2)如果缓存名称中没有查询到,则以此向配置的主备DNS服务器发送解析请求。

3)如果主备DNS服务器没有回复,则向当前子网域发送多播,获取对应的IP地址。

4)本地子网域的其他主机收到并检查多播包,如果没有响应则请求失败。

从以上工作过程可以明白LLMNR是以多播形式进行查询的,类似于ARP通过MAC寻找IP地址。这样就存在一个欺骗攻击问题。

绘图2

绘图2

3.LLMNR欺骗攻击

假设用户访问一个域名xxx,如图1-2所示,在hosts文件和DNS解析失败,此时会通过LLMNR协议进行广播请求,攻击者利用该广播请求时间向请求用户回复响应IP地址,这时xxx映射的IP就是攻击者IP,当用户访问xxx域名就会解析到攻击IP,进而攻击者便可以拿到net-ntlm hash。

绘图2_backup_311867

绘图2_backup_311867

4.LLMNR防御措施

1)点击开始——运行——输入命令——打开本地组策略管理器,如图1-3所示。

gpedit.msc

图1-3 打开本地组策略管理器

图1-3 打开本地组策略管理器

2)打开计算机配置——管理模版——网络——DNS客户端,如图1-4所示。

图1-4 打开配置DNS客户端

图1-4 打开配置DNS客户端

3)双击打开“关闭多播名称解析”,如图1-5所示。

图1-5 打开“关闭多播名称解析”

图1-5 打开“关闭多播名称解析”

4)将关闭多播名称解析中的状态改为“已禁用”,如图1-6所示。

图1-6 将关闭多播名称解析中的状态改为“已禁用”

图1-6 将关闭多播名称解析中的状态改为“已禁用”

二.NETBIOS协议

1. NETBIOS简介

NetBIOS是Network Basic Input/Output System(网上基本输入输出系统)的缩写,它是一种接入服务网络的接口标准,主机系统通过WINS服务、广播及Lmhost文件等多种模式,把NetBIOS名解析成对应的IP地址,实现信息通讯。因其占用资源小、传输快的特点,广泛应用于局域网内部消息通信及资源的共享。

2.NETBIOS服务类型

NetBIOS支持面向连接(TCP)和无连接(UDP)通信。它提供三个分开的服务:命名(NetBIOS names)、会话(NetBIOS sessions)、数据报(NetBIOS datagrams)。NetBIOS names为其他两个服务的基础。

NetBIOS服务类型在TCP/IP上的基本架构如图1-7所示。

IMG_295

IMG_295

下面我们针对三种常见的NetBIOS服务类型进行详细说明,如表1-1所示。

表1-1 三种常见的NetBIOS报文类型

服务类型

端口

具体描述

Net BIOS names(NetBIOS名称服务)

UDP 137

鉴别资源。程序、主机都有独特的NetBIOS名称

Net BIOS datagrams(Net BIOS数据报)

UDP 138

无连接的将数据报发送到特定的地点、组、整个局域网。

Net BIOS sessions(Net BIOS会话服务)

TCP 139

提供给面向连接,可靠的,完全双重的信息服务。

3. NETBIOS解析过程

NetBIOS 协议进行名称解析的过程如下。

1)首先主机先检查本地NetBIOS缓存。

2)如果缓存中没有请求的名称,但是配置类WINS服务器,则向WINS服务器发送请求。

3)如果没有配置WINS服务器或WINS服务器无响应时,则和LLMNR一样向当前子网域发送广播。

4)如果子网域其他主机无响应,则读取本地的lmhosts(C:\Windows\System32\drivers\etc\)文件。

NetBIOS协议是发送UDP广播包进行解析,如果不配置WINS服务器,则和LLMNR一样会有欺骗攻击问题。

4. NETBIOS防御措施

1)输入命令ncpa.cpl,打开网络连接,如图1-33所示。

图1-8 输入命令ncpa.cpl打开网络连接

图1-8 输入命令ncpa.cpl打开网络连接

2)通过“本地连接——属性—Internet协议版本4——属性——高级”来配置,如图1-9、图1-10、图1-11所示。

图1-9 打开网络连接属性

图1-9 打开网络连接属性

图1-10 配置TCP/IPV4

图1-10 配置TCP/IPV4

图1-11 配置IP地址

图1-11 配置IP地址

3)在WINS标签栏的NetBIOS设置中禁用NetBIOS,如图1-12所示。

图1-12 在WINS标签栏中的NetBIOS设置中禁用NetBIOS

图1-12 在WINS标签栏中的NetBIOS设置中禁用NetBIOS

三.WPAD协议

1.Windows WPAD 简介

WPAD全称Web Proxy Auto-Discovery Protocol,也就是WEB代理自动发现协议(这里的代理就是我们在渗透中常用BURP的时候修改的代理设置)。它的作用是让局域网浏览器自动发现内网中的代理服务器,并且自动设置成该代理进行连接企业内网或者互联网。若系统开启了WPAD,那么主机就会在当前连接的局域网中去寻找代理服务器,找到之后会在代理服务器中下载PAC(Proxy Auto-Config)的配置文件(其实我们在日常中经常能看见当我们使用SSR的时候就会看见PAC自动模式),这个PAC文件会定义用户在访问什么地址的时候,使用什么代理进行访问,举一个常见易懂的例子,有些公司会对访问谷歌浏览器有一定的需求,那么他们就会搭建一个代理服务器,里面的PAC文件就会配置当访问谷歌浏览器的时候web代理自动使用到那个代理服务器上,同时浏览器将下载并解析该文件,将相应的代理服务器设置到浏览器中。

2.WPAD实现方式

我们前面说过主机会在当前连接的局域网中自动寻找代理服务器,它的实现方式主要分为两种。

(1)DHCP

在DHCP服务器中,DHCP服务器的252选项是被当作查询或者注册使用的指针,我们可以在DHCP服务器中添加一个用于查找WPAD主机的252项,内容是部署在WPAD主机上的PAC文件的URL,当客户端Web浏览器要访问某个地址时,Web浏览器会向DHCP服务器发送DHCP INFORM数据包来查询PAC文件的位置,DHCP服务器收到请求以后会返回DHCP ACK数据包进行响应,其中包含了选项和配置列表,在这些返回选项中的252选项就是代理自动配置文件的位置,Web浏览器就可以执行下载PAC文件请求。如图1-1所示,这是以DHCP的方式获取PAC示意图。

IMG_310

IMG_310

目前大多数内网中已经不再使用DHCP服务器对客户端的WPAD进行配置,而是逐渐采用较为简单的DNS服务器方式。

(2)DNS

第二种是目前使用最广泛的方式,通过DNS方式实现WPAD的原理是:先由Web浏览器向DNS服务器发起WPAD+X查询,DNS服务器接收到查询请求后返回提供WPAD主机的IP地址,Web浏览器通过该IP的80端口下载wpad.dat(浏览器配置用文件)和wspad.dat(防火墙配置用文件)以实现自动配置。例如:用户的计算机网络名称为test.xx.example.com,浏览器将依次尝试下列URL,以期成功在客户端的域中找到一个代理配置文件。如图1-2所示。

IMG_311

IMG_311

3.PAC文件内容

PAC文件最主要的作用是可以控制浏览器如何处理使用HTTP/HTTPS的流量,其实在每个PAC文件中都会包含一个FindProxyForURL函数,用来定义Web浏览器是直接将流量发送到Internet,还是将流量发送到代理服务器的规则,以下是PAC文件的具体配置内容。

代码语言:bash

复制

function FindProxyForURL(url, host) {   if (shExpMatch(host, "*.example.com")){return "DIRECT";}if (isInNet(host, "10.0.0.0", "255.255.248.0")){return "PROXY fastproxy.example.com:8080";}return "PROXY proxy.example.com:8080; DIRECT";
}

1)shExpMatch将尝试将主机名或URL与指定的shell表达式匹配,如果匹配则返回true。

2)isInNet 此函数判断主机名的IP地址,如果在指定的子网内则返回true。如果传递了主机名,该函数会将主机名解析为IP地址。

代码语言:bash

复制

	if (shExpMatch(host, "*.example.com")){return "DIRECT";}

3)如果在host中匹配到了.example.com,就会返回true,DIRECT的意思是直连,那么这句话就是:如果访问了.example.com的URL那么就会直接连接,不走代理。

代码语言:bash

复制

	if (isInNet(host, "10.0.0.0", "255.255.248.0")){return "PROXY fastproxy.example.com:8080";}

4)如果host在指定的IP范围内,那么就会通过代理fastproxy.example.com:8080进行访问。

作者:一只特立独行的兔先生

原文:Windows安全认证机制之Windows常见协议-腾讯云开发者社区-腾讯云


 

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

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

相关文章

代谢组数据分析(十三):评估影响代谢物的重要临床指标

欢迎大家关注全网生信学习者系列: WX公zhong号:生信学习者Xiao hong书:生信学习者知hu:生信学习者CDSN:生信学习者2介绍 相关性分析是通过计算两个变量之间的相关系数来评估它们之间线性关系的强度和方向。最常用的是皮尔逊相关系数(Pearson correlation coefficient),…

软件测试常见的面试题(46道)

01、您所熟悉的测试用例设计方法都有哪些?请分别以具体的例子来说明这些方法在测试用例设计工作中的应用。 答:有黑盒和白盒两种测试种类,黑盒有等价类划分法,边界分析法,因果图法和错误猜测法。白盒有逻辑覆盖法&…

VBA通过Range对象实现Excel的数据写入

前言 本节会介绍通过VBA中的Range对象,来实现Excel表格中的单元格写入、区域范围写入,当然也可以写入不同类型的数据,如数值、文本、公式,以及实现公式下拉自动填充的功能。 一、单元格输入数据 1.通过Value方法实现输入不同类型…

Windows上使用Navicat连接ubuntu上的mysql8报错:10061和1130

问题一:can’t connect to mysql server on ‘192.168.xxx.xxx’(10061) 解决: sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf,bind-address绑定了登陆的IP,把这两行代码注释掉,然后重启mysql。 问题二:1…

Swift 定制 Core Data 迁移

文章目录 前言什么是 Core Data 迁移?示例更新模型创建一个新的模型版本创建映射模型编写自定义迁移策略总结 前言 随着应用程序和用户群的增长,你需要添加新功能,删除其他功能,并改变应用程序的工作方式。这是软件开发生命周期的…

底层软件 | 十分详细,为了学习设备树,我写了5w字笔记!

0、设备树是什么?1、DTS 1.1 dts简介1.2 dts例子 2、DTC(Device Tree Compiler)3、DTB(Device Tree Blob)4、绑定(Binding)5、Bootloader compatible属性 7、 #address-cells和#size-cells属性8…

动态规划入门,从简单递归到记忆化搜索到动态规划

动态规划入门&#xff0c;从简单递归到记忆化搜索到动态规划 打家劫舍 class Solution {private int nums[];public int rob(int[] nums) {this.nums nums;return dfs(nums.length - 1);}public int dfs(int i){if (i < 0){return 0;}int res Math.max(dfs(i - 1), dfs(i…

预制菜工厂MES系统:具体功能与应用场景

在现代化食品工业中&#xff0c;预制菜&#xff08;Ready-to-Eat, RTE&#xff09;因其方便快捷、卫生安全及营养均衡的特点&#xff0c;迅速在餐饮行业中占据重要地位。为了进一步提升预制菜工厂的生产效率、保障产品质量并降低生产成本&#xff0c;制造执行系统&#xff08;M…

ffmpeg将多个yuv文件编码为MP4视频文件

一、编码方案 在视频录制时&#xff0c;每一帧保存为一个yuv文件&#xff0c;便于纠错和修改。在编码为MP4文件时&#xff0c;我的方案是将所有yuv文件先转码为单个MP4文件&#xff0c;然后使用ffmpeg的concat功能拼接为完整的视频。 二、shell脚本 #!/bin/bash# 检查参数数量…

MYSQL8.0环境部署

创建用户 groupadd mysql useradd -g mysql mysql 删除原来的包 # rpm -qa|grep mysql # rpm -qa|grep mari mariadb-libs-5.5.68-1.el7.x86_64 # rpm -e --nodeps mariadb-libs-5.5.68-1.el7.x86_64 解压 cd /usr/local & mkdir mysql cd mysql # cp mysql-8…

Ubuntu 22.04 安装中文字体

笔者在用OpenCV4.9处理图片加水印时&#xff0c;中文乱码。原来是Ubuntu 22.04发行版缺少中文字体支持&#xff0c;因此&#xff0c;笔者就找资料安装了需要的中文字体&#xff0c;特此记录&#xff0c;以备后查。 1、打开终端&#xff1a; 2、更新软件包列表&#xff1a; su…

水利行业的智慧化转型实践:结合具体案例,探讨智慧水利在提升水资源利用效率、改善水生态环境方面的实际效果

目录 一、引言 二、智慧水利的定义与意义 三、智慧水利在提升水资源利用效率方面的实践 1. 智慧灌溉系统 2. 智慧供水系统 3. 智慧水务管理平台 四、智慧水利在改善水生态环境方面的实践 1. 智慧水质监测系统 2. 智慧水生态修复系统 3. 智慧防洪减灾系统 五、具体案例…

如何在 Odoo 16 中添加计算字段的搜索过滤器

首先&#xff0c;了解 Odoo 使用计算字段的原因很重要。当我们需要从其他字段获取计算值或计算值时&#xff0c;就会使用计算字段。换句话说&#xff0c;不是从数据库中检索值&#xff0c;而是可以使用函数计算字段的值。计算字段的一个例子是产品总金额&#xff0c;即通过将产…

EtherCAT通讯介绍

一、EtherCAT简介 EtherCAT&#xff08;Ethernet for Control Automation Technology&#xff09;是一种实时以太网技术&#xff0c;是由德国公司Beckhoff Automation在2003年首次推出的。它是一种开放的工业以太网标准&#xff0c;被设计用于满足工业自动化应用中的高性能和低…

汇聚荣拼多多评价好不好?

汇聚荣拼多多评价好不好?在探讨电商平台的口碑时&#xff0c;用户评价是衡量其服务质量和商品质量的重要指标。拼多多作为国内领先的电商平台之一&#xff0c;其用户评价自然成为消费者选择购物平台时的参考依据。针对“汇聚荣拼多多评价好不好?”这一问题&#xff0c;可以从…

vue css 链式布局模式

<div class"pp-wrap"> <div class"pp-left"><!--跳活动反思--><div class"even-box" v-for"(item,index) in trackingPtoPLeftList" :key"index" click"jumpReview(item)"><div …

echarts柱状选中shadow阴影背景宽度设置

使用line&#xff0c;宽度增大到所需要的宽度&#xff0c;设置下颜色透明度就行 tooltip: {trigger: axis,//把阴影的层级往下降z:-15,axisPointer: {type: line,lineStyle: {color: rgba(150,150,150,0.3),width: 44,type: solid,},}, }, series: [{type: bar,barWidth:20,//…

python自动化办公之BeautifulSoup爬取并解析html文本

用到的库&#xff1a;BeautifulSoup 实现效果&#xff1a;爬取网站内容&#xff0c;拿到html文本并解析html文本 代码&#xff1a; 先爬取 # 先导入requests包 import requests urlhttps://www.baidu.com responserequests.get(url) # 做1个断言&#xff0c;如果执行成功&a…

【C语言】—— 文件操作(上)

【C语言】—— 文件操作&#xff08;上&#xff09; 一、 为什么使用文件二、 什么是文件2.1、 程序文件2.2、 数据文件2.3、 文件名2.4、二进制文件与文本文件 三、 文件的打开和关闭3.1、流和标准流&#xff08;1&#xff09;流&#xff08;2&#xff09;标准流 3.2、文件指针…

64.函数参数和指针变量

目录 一.函数参数 二.函数参数和指针变量 三.视频教程 一.函数参数 函数定义格式&#xff1a; 类型名 函数名(函数参数1,函数参数2...) {代码段 } 如&#xff1a; int sum(int x&#xff0c;int y) {return xy; } 函数参数的类型可以是普通类型&#xff0c;也可以是指针类…