WPAD简介
WPAD全称是网络代理自动发现协议(Web Proxy Autodiscovery Protocol),通过让浏览器自动发现代理服务器,定位代理配置文件,下载编译并运行,最终自动使用代理访问网络
WPAD原理
用户在访问网页时,首先会去查询PAC文件的位置,具体方式如下:
-
DHCP服务器:Web浏览器向DHCP服务器发送DHCP INFORM查询PAC文件位置,DHCP服务器返回DHCP ACK数据包,包含PAC文件位置
-
DNS查询方式:Web浏览器向DNS服务器发起WPAD+X的查询,DNS服务器返回提供WPAD主机的IP地址,Web浏览器通过该IP的80端口下载wpad.dat
-
NBNS查询方式
补充说明:
1、Windows 2K 、XP、2K3只支持DNS和NetBIOS
2、Windows Vista之后(包括 2K8、 Win7、Win8.x、Win 10)支持DNS、NBNS、LLMNR
3、如果DHCP和DNS服务器均没有响应,同时当前缓存没有所请求的主机名,且当前系统支持LLMNR(Link-Local Multicast Name Resolution),则首先发起广播LLMNR查询,如果没有响应再发起广播NBNS查询,如果有主机回应PAC文件位置,Web浏览器通过该IP的80端口下载wpad.dat
WPAD漏洞
根据WPAD的原理,如果被攻击用户发起NBNS查询时伪造NBNS响应,那么就能控制其通过伪造的代理服务器上网,达到会话劫持的目的
WPAD欺骗
Responder
下面使用Responder工具来进行NBNS欺骗攻击:
Step 1:使用以下参数运行Responder实施WPAD欺骗
./Responder.py -I eth0 -w -F
Step 2:之后受害者打开浏览器后访问(清除会话的情况下)会强制认证一次
Step 3:之成功捕获用户的Net-NTLM Hash
Inveigh实现
Inveigh下载地址:https://github.com/Kevin-Robertson/Inveigh
Step 1:使用管理员权限打开攻击机器的powershell依次输入以下命令
. .\\\\Inveigh.ps1
Invoke-Inveigh -ConsoleOutput Y
#PS:如果有执行策略限制再加一条Set-ExecutionPolicy Bypass -Scope Process
Step 2:当用户打开浏览器时会自动进行一次WPAD身份认证(用户之前已清除会话的情况下),而且不验证无法正常访问
Step 3:之后成功捕获到用户Net-NTLM Hash值
InveighZero
项目地址:https://github.com/Kevin-Robertson/InveighZero
Step 1:之用管理员权限打开攻击机器的cmd之后执行以下命令
Inveigh.exe
Step 2:之后进行身份认证
Step 3:成功捕获到用户的Net-NTLM Hash
参考链接
https://max.book118.com/html/2017/1101/138462395.shtm
文末扩展
内网渗透工具持续更新,后续有机会也会对一些工具的使用结合环境进行演示分享:
https://github.com/Al1ex/Pentest-tools
其余的中间人攻击手法后期将会补上~
下期预告:AD CS Realy详解(算是迟来的文章吧,之前没有时间发,后续补)~
原创文章,作者:七芒星实验室,如若转载,请注明出处:https://www.sudun.com/ask/34128.html