DNSCrypt防止DNS窃听

简介: 版权声明:本文可能为博主原创文章,若标明出处可随便转载。 https://blog.csdn.net/Jailman/article/details/77847309 中间人劫持攻击已经屡见不鲜了,恶意攻击者可以窃听路由和交换机,对你目前的操作一清二楚。
版权声明:本文可能为博主原创文章,若标明出处可随便转载。 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和脚本下载地址

目录
相关文章
|
11月前
|
机器学习/深度学习 运维 算法
遥感数据类型:高光谱遥感图像
高光谱遥感图像(Hyperspectral Remote Sensing Images)是一种非常重要的遥感数据类型,它在许多应用领域具有重要作用。高光谱图像的特点是每个像素包含几十到几百个连续的光谱波段信息,这使得它能够提供丰富的光谱细节,从而识别和区分地表物质的精细差异。
252 2
|
JavaScript 前端开发 API
浅谈Vue3——父子组件传值
浅谈Vue3——父子组件传值
570 0
freeradius部署及挑战模式配置
freeradius部署及挑战模式配置
6143 1
freeradius部署及挑战模式配置
|
9月前
|
人工智能 前端开发 IDE
通义灵码 2.0 全新升级发布会:你的 AI 程序员来了!
「飞天发布时刻」通义灵码 2.0 发布专场来啦。
|
前端开发 应用服务中间件 数据库
Docker-docker-compose学习笔记(yaml,实战)
Docker-docker-compose学习笔记(yaml,实战)
881 0
|
关系型数据库 MySQL
解决MySQL insert出现Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘xxx‘ at row 1
解决MySQL insert出现Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘xxx‘ at row 1
966 2
|
缓存 JavaScript 前端开发
三分钟,带你学会 Vue3 加载远程组件
三分钟,带你学会 Vue3 加载远程组件
|
Rust 安全 程序员
揭秘Rust语言的内存安全秘籍:如何构建坚不可摧的系统级应用?
【8月更文挑战第31天】Rust语言凭借其独特内存安全机制在编程领域脱颖而出,通过所有权、借用与生命周期等概念,在保证高性能的同时避免了缓冲区溢出等常见错误。本文深入探讨Rust的内存安全机制,并通过示例代码展示如何利用这些机制构建高效且可靠的系统。尽管这些机制增加了学习难度,但为软件开发奠定了坚实基础,使Rust成为系统、嵌入式及网络编程的理想选择。随着社区的发展,Rust将在未来软件开发中扮演更重要角色。
352 0
|
网络协议 算法 网络性能优化
探索HTTP/3.0:下一代网络协议的前沿
探索HTTP/3.0:下一代网络协议的前沿
940 0
|
Go
Go语言type关键字终于被玩明白了 类型别名的秘密都在这里
Go语言type关键字终于被玩明白了 类型别名的秘密都在这里
459 0