前言
上篇文章通过dns2tcp实验,学习了绕过防火墙53端口udp协议限制出站策略的原理。但由于dns2tcp是一款在类unix操作系统上使用的工具,并不具有跨平台性。在渗透测试中,我们经常会遇到windows操作系统,因此,在原理相同的条件下,一款跨平台的软件就急需我们掌握,这里我们通过实验配置快速学习一下iodine这款dns隧道软件。
一、实验拓扑
如上图,其原理与dns2tcp基本相同。
二、服务配置
1、服务端
iodined -f -P 123456 -DD 10.0.0.1 test.redwand.com
-P 设置密码
-f 前台运行
-DD 高级debug
10.0.0.1 在本地新生成网卡dns0上分配的ip地址
运行结果如下
2、客户端
a.安装虚拟网卡
由于windows环境下不能像linux下一切皆文件,通过一个文件虚拟出一个网卡来,因此必须先安装TAP Virtual Ethernet Adapter软件以及相关依赖的dll文件,我们可以通过下图来实现
安装成功后,会在网络连接里出现一块新的网卡
b.下载客户端并运行
可以去github上下载源码编译,也可以去下载编译好的二进制可执行程序,这里是我从官网下载好的二进制文件。【下载连接】
下载完毕,在客户端运行命令
iodine.exe -P 123456 -f -r test.redwand.com
运行结果如下
最后,我们可以使用putty实现动态转发,从而实现了实验拓扑中的dns隧道嵌套ssh隧道的情景。
总结
以下是通过dns2tcp和iodine两款软件学习对比,总结出iodine的优缺点。
1、优点
- 对下行数据不进行编码,性能优
- 支持多平台:linux、windows、macos、BSD
- 最大支持16个并发链接
- 强制使用密码
- 支持多种DNS记录类型
- 通讯质量检测优
- 支持同网段隧道ip(不同于客户端、服务器网段)
2、缺点
- 客户端需要安装虚拟网卡才能使用
- 实战环境中容易暴露