天天看點

DNSCrypt防止DNS竊聽

版權聲明:本文可能為部落客原創文章,若标明出處可随便轉載。 https://blog.csdn.net/Jailman/article/details/77847309

中間人劫持攻擊已經屢見不鮮了,惡意攻擊者可以竊聽路由和交換機,對你目前的操作一清二楚。

除了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可以從以下位址下載下傳:

DNSCrypt和腳本下載下傳位址