Windows 安全基础——Windows WPAD篇

Windows 安全基础——Windows WPAD篇

WPAD全称Web Proxy Auto-Discovery Protocol, 也就是Web代理自动发现协议。(这里的代理就是我们在渗透中使用BURP的时候修改的代理设置。)它的作用是让局域网浏览器自动发现内网中的代理服务器,并且自动设置成该代理来连接企业内网或者互联网。

若系统开启了WPAD,那么主机就会在当前连接的局域网中寻找代理服务器,找到之后再代理服务器中下载PAC(Proxy Auto-Config,代理自动配置)文件。这个PAC文件会定义用户在访问什么地址的时候使用什么代理。

1. WPAD实现方式

主机会在当前连接的局域网中自动寻找代理服务器,而它的实现方式主要有两种。

(1)DHCP

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

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

DHCP

(2)DNS

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

DNS

2. PAC文件内容

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

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地址。

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

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

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

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

相关文章

Stability.ai开源ChatGPT基因的大模型

12月8日,著名开源生成式AI平台stability.ai在官网开源了,30亿参数的大语言模型StableLM Zephyr 3B。 Zephyr 3B专用于手机、笔记本等移动设备,主打参数小、性能强、算力消耗低的特点,可自动生成文本、总结摘要等,可与…

【Python】手把手教你用tkinter设计图书管理登录UI界面(三)

上一篇:【Python】手把手教你用tkinter设计图书管理登录UI界面(二)-CSDN博客 下一篇: 紧接上一篇文章,继续完善项目功能:用户登录。由于老王的注册部分有亿点点复杂,还没完成,但是…

一款基于ESP32的迷你四足机器人

一、软件介绍 增加自定义动作模式,可以在小程序中自定义一个最多10个步骤的动作。 附件中:带自定模式固件bin.zip esp32c3固件文件 烧录下图设置 无串口版本esp32c3开发板烧录前先按住BOOT键再插线进入烧录模式,LoadMode选择USB。 二、AP…

第 375 场 LeetCode 周赛题解

A 统计已测试设备 模拟&#xff1a;记录当前已测试设备数量 class Solution { public:int countTestedDevices(vector<int> &batteryPercentages) {int res 0;int s 0;for (auto x: batteryPercentages) {if (x - s > 0) {res;s;}}return res;} };B 双模幂运算 …

Promise与async/await的简单介绍

在 JavaScript 中&#xff0c;处理异步操作一直是开发者们面临的挑战之一。传统的回调函数方式往往导致代码难以维护、可读性差、易产生回调地狱等问题。为了解决这些问题&#xff0c;出现了 Promise 和 Async/Await 这两种处理异步操作的方式。 一、异步产生问题示例 当我们…

Gilisoft Video Editor——迈出剪辑的第一步

今天博主分享的是又一款剪辑软件——视频剪辑手&#xff08;GiliSoft Video Editor&#xff09;&#xff0c;对剪辑视频感兴趣的小伙伴千万不要错过。这是一款专门用于视频剪辑的软件&#xff0c;功能比较简单&#xff0c;相比于专业的pr是比不了的&#xff0c;但是制作一些简单…

Vue 创建虚拟DOM元素的几种方式和实际应用。

目录 创建虚拟DOM元素的方式 创建一个简单的元素&#xff1a; 创建一个带有属性的元素&#xff1a; 创建一个带有子元素的元素&#xff1a; 创建一个带有事件监听器的元素&#xff1a; 创建一个Vue组件 创建一个带Props的组件 创建一个带Slot的组件 实际应用 创建虚…

gma 空间绘图实战(1):绘制多个子图,连接并展示局部放大区域

安装 gma&#xff1a;pip install gma 本文基于&#xff1a;gma 2.0.3&#xff0c;Python 3.10 本文用到的矢量数据为&#xff1a;CTAmap 1.12。来源于 https://www.shengshixian.com/ 。&#xff08;感谢锐多宝&#xff09; 绘图目标 参考代码 import matplotlib.pyplot as p…

jQuery 选择器全部详细笔记

目录 JQuery全部详细笔记-上 jQuery 选择器 jQuery 选择器介绍 jQuery 选择器的优点 代码演示 基本选择器 ● 基本选择器应用实例 程序运行图 层次选择器 ● 层次选择器应用实例 代码演示 表单选择器 ● 表单选择器基本介绍 代码演示 综合代码示例 网页中所有的…

【FMCW毫米波雷达设计 】 — FMCW波形

原书&#xff1a;FMCW Radar Design 1 引言 本章研究驱动FMCW雷达的主要波形:线性调频(LFM)波形。我们研究信号的行为及其性质。随后&#xff0c;本章讨论了匹配滤波理论&#xff0c;并研究了压缩这种波形的技术&#xff0c;特别是所谓的拉伸处理&#xff0c;它赋予FMCW雷达极…

【网络奇缘系列】计算机网络|数据通信方式|数据传输方式

&#x1f308;个人主页: Aileen_0v0&#x1f525;系列专栏: 一见倾心,再见倾城 --- 计算机网络~&#x1f4ab;个人格言:"没有罗马,那就自己创造罗马~" 这篇文章是关于计算机网络中数据通信的基础知识点&#xff0c; 从模型&#xff0c;术语再到数据通信方式&#…

小目标检测模型设计的一点思考

1. 小目标的特性 目标之间的交叠概率比较低&#xff0c;即使有交叠&#xff0c;其IoU多数情况下也是比较小的 AI-TOD Tiny Person Dateset 小目标自身的纹理显著度有强弱区别&#xff0c;但是总体来说纹理特征都较弱&#xff0c;很多时候需要借助一定的图像上下文来帮助确认 …