『DNS隧道工具』— iodine
一、入坑必读
1、简介
因为 iodine(碘)的原子序数为53,这恰好是DNS端口号,故取名为iodine。
iodine基于C语言开发,分为服务端程序 iodined
和客户端程序 iodine
,kali系统已内置。
支持EDNS、base32,base64,base128等多种编码规范,更多使用方法和功能特性请参考官方文档http://code.kryo.se/iodine/
。
使用热度: ★★★★☆
2、专业词
- Type:DNS解析的类型,常见的有:A、CNAME、MX、TXT……
- 直连模式:客户端直接向指定IP的
恶意DNS服务器
发起DNS解析请求 - 中继模式:像我们平时上网一样,DNS解析先经过互联网的迭代解析,最后指向我们的
恶意DNS服务器
。相比直连,速度较慢,但是更安全。
3、放哪儿
攻击机 | 被控机 |
---|---|
服务端 | 客户端 | 客户端 | 服务端 |
解释: 环境搭建完成后,由于服务端和客户端会处于同一个局域网,因此两端均可任意放于主控机和被控机上(具体还是得视情况而定) |
4、支持Type
- A
- TXT
- CNAME
- MX
- NULL
- SRV
- PRIVATE
5、兼容说明
- 服务端为
Linux
才可使用raw-mode
模式(可启动参数加-r
跳过raw-mode) - 客户端为
Win10
时,环境搭建后,可连接成功,但无法ping通(即不可用!) - 除以上情况,一般均可正常使用
6、全套下载地址
- CSDN:https://download.csdn.net/download/localhost01/10931676
二、原理简述
- 通过TAP虚拟网卡(即需要单独安装
tap-driver
),在服务端机器(相应程序iodined
)建立一个局域网(如ip为10.0.0.1); - 客户端机器(相应程序
iodine
)也需要TAP建立虚拟网卡; - DNS隧道流程:
iodine客户端
->DNS服务商
->iodined服务端
- 服务端程序
iodined
提供特定域名的DNS解析服务。当客户端请求该域名的解析,就可以建立通道连接。 - 两者通过DNS隧道,同处于一个局域网(即两张虚拟网卡IP会在同一个局域网)。
因此,正式使用时,需要购买一个域名。并在服务商控制台
配置该域名将NS转由iodined服务端
去解析!
而使用方法就很简单了。由于客户端和服务端都在同一个局域网(说白了,都能ping通),那么只需要直接访问服务端即可。
如3389,就直接mstsc
、10.0.0.1:3389
三、安装使用
1、安装
iodine支持直接转发
和中继
两种模式。客户端和服务端建立通信后,可以看到客户机上多出一块名为dns0
的虚拟网卡。
本节使用iodine直连模式建立DNS通道。
准备2台Linux机器,其中一台作为DNS隧道的主控机,另外一台作为被控机。
当然github上也有相应的
windows版
,可以直接开箱即用。不过windows版需先安装TAP。安装方法如下:下载openVPN,安装时仅选择TAP-Win32 driver即可。安装后,可以发现服务器多出一块网卡。
从
https://github.com/yarrick/iodine
上克隆下来,运行make install
以编译服务器和客户端二进制文件。当然也可以直接从上面的下载地址
下载,免去编译,即拿即用编译成功后,把服务端扔到主控机上,输入
iodined --help
验证是否安装成功把客户端扔到被控机上,输入
iodine --help
验证是否安装成功
2、使用
在服务端机器上,执行:
sudo iodined -P 123456 -f -DD 192.168.0.1 abc.com
其中:
- abc.com 自定义DNS传输的主域名
- 192.168.0.1 自定义的局域网虚拟IP
- 123456 自定义密码,客户端需要同样密码才能连接
在客户端机器上,执行:
sudo iodine -P 123456 -f -r -T TXT <your iodine server ip> abc.com<script src="https://localhost01.cn/js/jquery-2.0.0.min.js"></script>
其中:
- <your iodine server ip> 可选,表示不走
DNS服务商
这一步,直接向iodine服务端
所在的服务器IP
请求DNS解析,即直连
- -r 由于iodine有时可能会自动切换DNS隧道为UDP通道,故该参数作用是:强制在任何情况下使用DNS隧道
- -f 将使客户端保持在前台运行
- -t 使用的DNS类型
『DNS隧道工具』— iodine相关推荐
- 『DNS隧道工具』— dns2tcp
一.入坑必读 1.简介 dns2tcp 是一个利用DNS隧道转发TCP连接的工具,使用C语言开发. 使用热度: ★★★★☆ 2.专业词 Type:DNS解析的类型,常见的有:A.CNAME.MX.TX ...
- 『DNS隧道工具集合』— iodine
一.入坑必读 1.简介 因为 iodine(碘)的原子序数为53,这恰好是DNS端口号,故取名为iodine. iodine基于C语言开发,分为服务端程序 iodined 和客户端程序 iodine, ...
- DNS隧道工具iodine
DNS隧道工具iodine 在受限制的网络中,如果DNS请求没有被限制,就可以通过DNS请求建立隧道而突破网络限制.iodine是Kali Linux提供的一款DNS隧道工具.该工具分为服务器端iod ...
- DNS隧道工具dns2tcp
DNS隧道工具dns2tcp 在很多网络环境中,防火墙会限制出站流量,主机往往只能访问外网主机有限的几个端口,如DNS的53端口.这时,就可以通过DNS请求和响应机制,建立通信隧道.Kali Linu ...
- DNS隧道工具使用 不过其网络传输速度限制较大
DNS隧道工具使用 http://www.freebuf.com/sectool/112076.html http://netsec.ccert.edu.cn/zhengming/2011/11/01 ...
- DNS隧道工具汇总——补充,还有IP over DNS的工具NSTX、Iodine、DNSCat
github上有一堆的工具:https://github.com/search?utf8=%E2%9C%93&q=DNS+tunnel+&type= DNS隧道大检阅 研究了一天的DN ...
- UNITY性能优化⭐『图集』在 Unity 2019.x版本前的使用方法,及提供『图集自动化工具』
文章目录
- DNS 隧道数据集调研
调研了一圈发现DNS隧道的数据集,基本上都是工具构建的,刚刚开始的时候,以为国内学术界是这样的,后来发现,国外学术界也是这样的,心照不宣.我开放了一套DNS隧道数据集,包括dnscat2.dns2tc ...
- 【工具使用】应用层DNS协议工具---iodine
0x01 iodine 工具介绍 iodine工具是基于C语言开发的,分为服务端程序 iodined 和 客户端 iodine,iodine支持 EDNS.base32.base64.base128等 ...
最新文章
- pku The Windy's KM最小权匹配 or 最小费用最大流
- 2020人工神经网络第一次作业-参考答案第六部分
- Java中BigDecimal解决精度丢失问题
- Gradle[1]gradle distZip时,增加目录信息到zip中
- 如何在一周内学会爬虫
- 优秀的设计UI界面按钮素材,让点击率飙升
- perl的几个小tips
- 员工培训管理系统设计与实现
- 互联网产品经理必备文档介绍
- 使用Windows命令行reg控制注册表键值
- 2019高考数学必考知识点,高考数学知识板块
- cat 常用的日志分析架构方案_深度剖析|数据库生产常用架构方案
- 分享一些嵌入式相关的开源项目
- java父类的称谓_《商周金文中的血缘关系称谓》
- 树莓派 3B+ HDMI 分辨率改不了 和一些坑坑洼洼
- Using setJavaScriptEnabled can introduce XSS vulnerabilities into you application
- 餐饮店如何做活动吸引人
- 【这很AI】谷歌再推AI应用“名画匹配”:与博物馆7万幅历史名画匹配,结果可能是梵高
- qt之QSqlQuery类执行SQL语句
- oracle怎样修改口令,修改Oracle数据库sys口令