中间人劫持攻击已经屡见不鲜了,恶意攻击者可以窃听路由和交换机,对你目前的操作一清二楚。
除了ssl/tsl加密通信的窃听难度较高外,其他的访问地址,内容等攻击者都可以了如指掌。
DNS抓包是了解你访问地址的一个重要途径,然而DNS是基于UDP,几乎是公开透明的通信。
为了防止DNS被攻击者抓包从而获取我们的操作行为,我们可以使用dnscrypt来对DNS进行加密。
我们首先下载dnscrpt,地址:
https://github.com/opendns/dnscrypt-win-client.git
这个软件的功能就是将DNS的请求通过代理本地的53端口,再通过加密通信给远程DNS服务器的443端口处理。所以这个软件启动后我们要将DNS设置为127.0.0.1才能生效
为了方便需要时切换内网DNS,写两个切换脚本。
切换默认DNS
@echo off rem 管理员权限运行 mode con lines=30 cols=60 %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit cd /d "%~dp0" taskkill /IM dnscrypt-proxy.exe netsh interface ip set dns name="以太网" source=dhcp使用加密DNS
@echo off rem 管理员权限运行 mode con lines=30 cols=60 %1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit cd /d "%~dp0" start dnscrypt-proxy.exe netsh interface ip set dns name="以太网" source=static addr=127.0.0.1 register=primary由于win10的限制比较严格,所以我们需要脚本中有以管理员身份运行的代码。
之后我们启动dns加密通信,然后对53的udp端口抓包就会发现没有通信了,然后对远程服务器的443抓包就会发现每次访问都有数据包产生,是ssl加密的,说明DNS加密通信已经生效了。
脚本和DNSCrypt可以从以下地址下载: