Coder Social home page Coder Social logo

network's Introduction

网络实验

主要包含DNS劫持实验以及DNS隧道穿越网关进行免认证上网实验

DNS劫持

•DNS劫持又称域名劫持,是指在劫持的网络范围内拦截域名解析的请求,分析请求的域名,把审查范围以外的请求放行,否则返回假的IP地址或者什么都不做使请求失去响应,其效果就是对特定的网络不能访问或访问的是假网址。本次实验主要使用网络行为管理软件:Panabit来对DNS进行劫持实验。

panabit

Panabit是基于Linux版本FreeBSD操作系统开发的流控系统,具备集成路由,负载均衡,认证,依托N检测,移动终端识别,移动终端识别,DNS管控,HTTP管控,日志审计等功能。

Panabit主要工作在应用层上,采用应用层协议识别的通用技术DPI/DFI。

  • DPI:深度包检测
  • DFI:深度流检测

Panabit采用DPI对应用蹭协议特征进行识别判断,并采用独有的“节点跟踪技术+加密协议深度识别引擎”来探测P2P拓扑结构、识别P2P节点。(特别地,对采用模糊或加密协议的eMule、skype、迅雷、BT等P2P应用,如果单纯地根据协议特征来判断已经难以保证识别的准确性,而Panabit独有的“节点跟踪技术+加密协议深度识别引擎”则可以很好地解决这个问题,对于改变端口、伪装端口、加密通讯的各类P2P应用协议保持极高的识别率和准确性。)

基于特征识别,Panabit使用了两个条件判断:连接建立的过程被监控到、并且特征包能够被监控到,防止判误。

基于Panabit这些优秀的功能,所以Panabit才可以精确地识别流量中的各项信息。

DNS隧道

DNS Tunneling可以分为直连和中继两种。直连也就是Client直接和指定的目标DNS Server(Authoritative NS Server)连接,通过将数据编码封装在DNS协议中进行通信,这种方式速度快,但是隐蔽性比较弱,很容易被探测到,另外限制比较高,很多场景不允许自己指定DNS Server。而通过DNS迭代查询而实现的中继隧道,则更为隐秘,但同时因为数据包到达目标DNS Server前需要经过多个节点,所以速度上较直连慢很多。

关键技术

中继过程中的一个关键点是对DNS缓存机制的规避,因为如果需要解析的域名在Local DNS Server中已经有缓存时,Local DNS Server就不会转发数据包。所以在我们构造的请求中,每次查询的域名都是不一样的或者是已经是过期的。

本次实验主要是基于iodine建立DNS隧道:

iodine支持直接转发和中继两种模式。客户端和服务端建立通信后,可以看到客户机上多出一块名为dns0的虚拟网卡。iodine支持NULL,TXT,SRV,MX,CNAME,A等多种查询请求类型,并且支持EDNS,支持base32,base64,base128等多种编码规范。iodine在直连模式下,速度相当可观,我试过建立隧道后,用ssh做代理转发,可以流畅播放youtube 1080p,原理暂未分析。在中继模式下,使用谷歌的dns,也是Dns Tunneling工具中速度最快的。更多使用方法和功能特性请参考官方文档。

network's People

Contributors

hongziqi avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.