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.rhkb.cn/news/214215.html

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

相关文章

高效利用内存资源之动态内存管理详解

目录 一、为什么存在动态内存分配 二、动态内存函数的介绍 2.1malloc 2.2free 2.3calloc 2.4realloc 三、常见的动态内存错误 3.1对NULL指针的解引用操作 3.2对动态开辟空间的越界访问 3.3对非动态开辟内存使用free释放 3.4使用free释放一块动态开辟内存的一部分 3.…

RocketMq集成SpringBoot(待完善)

环境 jdk1.8, springboot2.7.3 Maven依赖 <parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.3</version><relativePath/> <!-- lookup parent from…

读书笔记:《股票量化交易的七个策略》

从长远来看&#xff0c;基本面最重要&#xff1b;从短期来看&#xff0c;价格和情绪最重要。在别人贪婪时恐惧&#xff0c;在别人恐惧时贪婪。 相对强弱指数策略【趋势反转】 相对强弱指数&#xff08;Relative Strength Index&#xff0c;RSI&#xff09; RSI的取值范围在0到…

机器学习基本概念介绍 2023

笔记来源于&#xff1a; https://www.youtube.com/watch?vphQK8xZpgoU&t172s https://www.youtube.com/watch?vXLyPFnephpY&t645s Machine/Deep Learning 机器学习概况来说&#xff0c;让机器具备自动找函式的能力 &#xff08;Machine Learning 约等于 Looking …

[足式机器人]Part2 Dr. CAN学习笔记-数学基础Ch0-6复数Complex Number

本文仅供学习使用 本文参考&#xff1a; B站&#xff1a;DR_CAN Dr. CAN学习笔记-数学基础Ch0-6复数Complex Number x 2 − 2 x 2 0 ⇒ x 1 i x^2-2x20\Rightarrow x1\pm i x2−2x20⇒x1i 代数表达&#xff1a; z a b i , R e ( z ) a , I m ( z ) b zabi,\mathrm{Re}…

Vue脚手架 生命周期 组件化开发

Vue脚手架 & 生命周期 & 组件化开发 一、今日目标 1.生命周期 生命周期介绍生命周期的四个阶段生命周期钩子声明周期案例 2.综合案例-小黑记账清单 列表渲染添加/删除饼图渲染 3.工程化开发入门 工程化开发和脚手架项目运行流程组件化组件注册 4.综合案例-小兔…

计算机网络之IP篇

来源自小林Coding博客&#xff0c;阅读后部分精简笔记 目录 一、IP 的基本认识 二、DNS 三、ARP 四、DHCP 五、NAT 六、ICMP 七、IGMP 七、ping 的工作原理 ping-----查询报文的使用 traceroute —— 差错报文类型的使用 八、断网了还能 ping 通 127.0.0.1 吗&…

十一、了解分布式计算

1、什么是&#xff08;数据&#xff09;计算&#xff1f; 2、分布式(数据)计算 &#xff08;1&#xff09;概念 顾名思义&#xff0c;分布式计算&#xff0c;即以分布式的形式完成数据的统计&#xff0c;得到需要的结果。 分布式数据计算&#xff0c;顾名思义&#xff0c;就是…

基于PLC的锅炉燃烧控制系统设计 (论文+源码)

1.系统设计 由图3.1可以看出&#xff0c;煤炭进入煤炭输送装置&#xff0c;直接落入缓慢移动的炉排中的燃烧室。对流烟道被烟雾隔离。对流烟道设置有加热表面&#xff0c;例如对流管束。对流管是连接到上部和下部气缸的一束管。管道中的水吸收烟道中的热量并加热。在上鼓中加热…

VINS-MONO代码解读5----vins_estimator(marginalization部分)

文章目录 0. 前言1.1 Marginalization Pipiline 1. marg factor构建1.1 变量及维度理解1.2 IMUFactor1.3 ProjectionTdFactor(ProjectionFactor)1.4 MarginalizationFactor( e p e_p ep​推导更新&#xff0c;FEJ解决的问题)1.4.1 先验残差的更新1.4.2 先验Jacobian的更新 2. R…

Java网络通信-第21章

Java网络通信-第21章 1.网络程序设计基础 网络程序设计基础涵盖了许多方面&#xff0c;包括网络协议、Web开发、数据库连接、安全性等。 1.1局域网与互联网 局域网&#xff08;LAN&#xff09;与互联网&#xff08;Internet&#xff09;是两个不同的概念&#xff0c;它们分…

Redis Reactor事件驱动模型源码

前置学习&#xff1a;Redis server启动源码-CSDN博客 Redis采用单线程Reactor模型 三个关键角色&#xff0c;即 reactor、acceptor、handler 三类处理事件&#xff0c;即连接事件、写事件、读事件。 建立连接&#xff08;Acceptor&#xff09;、监听accept、read、write事件…

测试命题 cuda kernel 和 cudaMemcpy 是异步执行

前置命题&#xff0c;保序的命题&#xff1a; 同一个任意的stream中的gpu操作&#xff08;memcpy和kernel&#xff09;&#xff0c;在gpu内部都是严格保序的&#xff0c;即&#xff0c;前一个gpu任务结束后才会执行下一个任务。 测试两个命题&#xff1a; 1&#xff0c;cuda …

python画动漫形象(魔法少女小圆晓美焰,super beautiful)

1.源代码 import turtle as te import time WriteStep 15 # 贝塞尔函数的取样次数 Speed 5 Width 600 # 界面宽度 Height 500 # 界面高度 Xh 0 # 记录前一个贝塞尔函数的手柄 Yh 0 def Bezier(p1, p2, t): # 一阶贝塞尔函数 return p1 * (1 - t) p2 * t def Bezier_2(x1…

JVM 性能调优及监控诊断工具 jps、jstack、jmap、jhat、jstat、hprof 使用详解

目录 一. 前言 二. jps&#xff08;Java Virtual Machine Process Status Tool&#xff09; 三. jstack 四. jmap&#xff08;Memory Map&#xff09;和 jhat&#xff08;Java Heap Analysis Tool&#xff09; 五. jstat&#xff08;JVM统计监测工具&#xff09; 六. hpro…

MySQL系列(一):索引篇

为什么是B树&#xff1f; 我们推导下&#xff0c;首先看下用哈希表做索引&#xff0c;是否可以满足需求。如果我们用哈希建了索引&#xff0c;那么对于如下这种SQL&#xff0c;通过哈希&#xff0c;可以快速检索出数据&#xff1a; select * from t_user_info where id1;但是这…

logback日志框架使用

依赖引入 <dependency><groupId>ch.qos.logback</groupId><artifactId>logback-classic</artifactId><version>1.1.7</version> </dependency> 使用logback日志框架只需要引入以上即可&#xff0c;(我们平时使用较多的Slf4j…

Python爬虫-实现批量抓取王者荣耀皮肤图片并保存到本地

前言 本文是该专栏的第12篇,后面会持续分享python爬虫案例干货,记得关注。 本文以王者荣耀的英雄皮肤为例,用python实现批量抓取“全部英雄”的皮肤图片,并将图片“批量保存”到本地。具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。注意,这里抓取的图片…

SpringMVC修炼之旅(3)REST风格与拦截器

一、概述 1.1简介 Restful就是一个资源定位及资源操作的风格。不是标准也不是协议&#xff0c;只是一种风格。基于这个风格设计的软件可以更简洁&#xff0c;更有层次&#xff0c;更易于实现缓存等机制。 1.2功能 资源&#xff1a;互联网所有的事物都可以被抽象为资源 资源操作…

ELK 日志解决方案

ELK 是目前最流行的集中式日志解决方案&#xff0c;提供了对日志收集、存储、展示等一站式的解决方案。 ELK 分别指 Elasticsearch、Logstash、Kibana。 Elasticsearch&#xff1a;分布式数据搜索引擎&#xff0c;基于 Apache Lucene 实现&#xff0c;可集群&#xff0c;提供…