iodine可以通过一台dns服务器制造一个IPv4数据通道,特别适合在目标主机只能发送dns请求的网络中环境中使用。iodine是基于C语言开发的,分为服务端程序iodined和客户端程序iodine。iodine支持EDNS、base32,base64,base128等多种编码规范。
  
  
  iodine支持直接转发和中继两种模式,其原理是通过TAP虚拟网卡,在服务端建立一个局域网;在客户端,通过TAP建立一个虚拟网卡;两者通过DNS隧道连接,处于同一局域网(可以通过ping命令通信)。在客户端和服务端之间建立连接后,客户机上会多出一块“dns0”的虚拟网卡。
  
  DNS隧道流程:iodine客户端->DNS服务商->iodined服务端,由于客户端和服务端都在同一个局域网,那么只需要直接访问服务端,如3389,就直接mstsc、10.0.0.1:3389。
更多使用方法和功能特性请参考官方文档https://code.kryo.se/iodine/
 
 
(1)安装服务端
首先设置域名,要尽可能的使用短域名,域名越短,隧道的带宽消耗就越小。设置A记录iodine服务器的IP地址,将NS记录指向此子域。
 
  安装iodine服务端,如果是在windows中,需要安装编译好的对应版本的iodine。
    apt-get install iodine
 
  运行iodine服务端iodined
    iodined -f -c -P Micr067 192.168.0.1 vpn.abc.com -DD
    -f:在前台运行
    -c:禁止检查所有传入请求的客户端IP地址。
    -P:客户端和服务端之间用于验证身份的密码。
    -D:指定调试级别,-DD指第二级。“D”的数量随级别增加。
    这里的192.168.0.1是自定义的局域网虚拟IP地址。
 
(2)安装客户端
 linux环境:
    iodine -f -P Micr067 vpn.payload.ltd -M 200
    -r:iodine有时会自动将DNS隧道切换为UDP隧道,该参数的作用是强制在任何情况下使用DNS隧道
    -M:指定上行主机的大小。
    -m:调节最大下行分片的大小。
    -T:指定DNS请求类型TYPE,可选项有NULL、PRIVATE、TXT、SRV、CNAME、MX、A。
    -O:指定数据编码规范。
    -L:指定是否开启懒惰模式,默认开启。
    -I:指定两个请求之间的时间间隔。
 
 windows环境:
  windows客户端可以直接使用编译好的windows版本,同时需要安装TAP网卡驱动程序。也可以下载OpenVPN,在安装时仅选择TAP-Win32驱动程序,安装后服务器上就会多出一块“TAP-Wndows ADApter V9”的网卡。
  运行客户端程序iodine,如果出现提示“Connection setup complete, transmitting data”,就表示DNS隧道已经建立。
  iodine -f -P Micr067 vpn.abc.com
 
此时,TCP over DNS已经建立,在客户端执行“ping 192.168.0.1”测试是否连通。
 
(3)使用DNS隧道
  DNS隧道的使用方法比较简单,由于客户端和服务端在同一局域网中,只要直接访问服务端即可,例如,登录目标主机的3389端口,就可以直接执行 mstsc 10.0.0.1:3389。同样,目标主机也可以直接通过ssh登录服务端。
 
(4)防御DNS隧道攻击的方法
  1.禁止网络中任何人向外部服务器发送DNS请求,只允许与受信任的DNS服务器通信。
  2.虽然没有人会将TXT解析请求发送给DNS服务器,但是邮件服务器/网关会这样做,因此,可以将邮件服务器/网关列入白名单并阻止传入和传出流量中的TXT请求。
  3.跟踪用户的DNS查询次数,如果达到阈值,就生成相应的报告。

DNS隧道工具:iodine使用的更多相关文章

  1. DNS隧道工具iodine

    DNS隧道工具iodine   在受限制的网络中,如果DNS请求没有被限制,就可以通过DNS请求建立隧道而突破网络限制.iodine是Kali Linux提供的一款DNS隧道工具.该工具分为服务器端i ...

  2. DNS隧道工具dns2tcp

    DNS隧道工具dns2tcp   在很多网络环境中,防火墙会限制出站流量,主机往往只能访问外网主机有限的几个端口,如DNS的53端口.这时,就可以通过DNS请求和响应机制,建立通信隧道.Kali Li ...

  3. DNS隧道工具使用 不过其网络传输速度限制较大

    DNS隧道工具使用 http://www.freebuf.com/sectool/112076.html http://netsec.ccert.edu.cn/zhengming/2011/11/01 ...

  4. DNS隧道工具汇总——补充,还有IP over DNS的工具NSTX、Iodine、DNSCat

    github上有一堆的工具:https://github.com/search?utf8=%E2%9C%93&q=DNS+tunnel+&type= DNS隧道大检阅 研究了一天的DN ...

  5. dns隧道攻击原理及常用工具流量分析

    DNS协议是一种请求应答协议,也是一种可用于应用层的隧道技术.虽然DNS流量的异常变化可能会被发现,但是在基于传统socket隧道已经濒临淘汰,TCP.UDP通信大量被安全设备拦截的大背景下,DNS. ...

  6. DNS隧道和工具

    DNS Tunneling及相关实现 转自:http://www.freebuf.com/sectool/112076.html DNS Tunneling,是隐蔽信道的一种,通过将其他协议封装在DN ...

  7. DNS隧道 iodns

    通过iodns这个工具也能搭建DNS隧道 iodns的优点: 对下行数据不进行编码,速度快 支持多平台 最大16个并发连接 强制密码设定 iodns创建的DNS隧道网段不能喝服务器,客户端同一网段,比 ...

  8. DNS隧道之DNS2TCP实现——dns2tcpc必须带server IP才可以,此外ssh可以穿过墙的,设置代理上网

    我自己的命令: server端: dns2tcpd -F -d 1 -f ./dns2tcpd.conf 输出: 09:08:59 : Debug options.c:97 Add resource ...

  9. 2016.6.17 kali Linux 隧道工具

    隧道工具的基本概念: 1.在计算机网络中,隧道工具是指使用一种网络协议去封装另一种网络协议的技术. 2.通常用来数据伪装或者穿越防火墙,在入侵目标系统后,可用来提升权限和权限维持. Kali中的隧道工 ...

随机推荐

  1. IPv4数据报格式及其语义

    一.IP数据报的格式如下图所示 版本 首部长度 服务类型 数据报长度 16比特标识 标志 13比特片偏移 寿命 上层协议 首部检验和 32比特源IP地址 32比特目的IP地址 选项(如果有的话) 数据 ...

  2. 泛圈科技Yottachain区块链云存储打破传统云迎来价值数据存储

    随着物联网时代的发展,更多的数据随之产生.从智能设备到电脑再到视频游戏机,各种各样的信息从不同的电子产品源源不断地涌入.通常,人们将数据存储在本地驱动器中.但是,由于产生的数据量是无限的,超过了本地存 ...

  3. 使用spring boot中的JPA操作数据库

    前言 Spring boot中的JPA 使用的同学都会感觉到他的强大,简直就是神器一般,通俗的说,根本不需要你写sql,这就帮你节省了很多时间,那么下面我们来一起来体验下这款神器吧. 一.在pom中添 ...

  4. maven常用标签

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  5. JavaScript中浅拷贝和深拷贝的区别

    JavaScript数据类型 基础数据类型:保存在栈内存中的简单数据段 ,有undefined,boolean,number,string,null 引用数据类型:Array,object,Funct ...

  6. python之面向对象中的多态

    直接看代码: class Dog: def __init__(self,name): self.name = name def play(self): print("%s在汪汪汪" ...

  7. centos下MySQL登录1045问题解决

    由于需要在centos下部署整个应用,自然少不了对数据库的操作.但很多人可能会遇到一些问题,比如创建用户成功,但是却无法登录. 无法登陆一般就两个原因.第一,远程访问端口没开,第二个原因就是密码错误了 ...

  8. realme X2谷歌套件

    目前市面上的很多手机是不支持谷歌相关组件的,经过不断的测试成功适配realme X2(真机测试完美适配) 为框架的GMS是用户想要体验整套Google服务不可绕开的一环,Google地图.Play商店 ...

  9. 【转】JavaScript 3D图表

    文章系本人原创,转载请保持完整性并注明出自<四火的唠叨> 在说3D图表以前,首先要明确两个概念,一个是数据的维度,一个是呈现数据载体的维度.对于数据的维度,一维的数据呈现,但是呈现的载体是 ...

  10. 正则表达式grep命令

    grep命令 作用:文本搜索工具,根据用户指定的“模式”对目标文本逐行进行匹配检查:打印匹配到的行. 模式::由正则表达式字符及文本字符所编写的过滤条件 语法:grep [OPTIONS] PATTE ...