iodine是基于C语言开发的,分为服务端和客户端。iodine支持转发模式和中继模式。其原理是:通过TAP虚拟网卡,在服务端建立一个局域网;在客户端,通过TAP建立一个虚拟网卡;两者通过DNS隧道连接,处于同一个局域网(可以通过ping命令通信)。在客户端和服务器之间建立连接后,客户机上会多出一块名为dns0的虚拟网卡,所有指令数据等均可通过dns隧道进行传输。
目录
可参考这篇文章:
Iodine下载地址 GitHub(Kali集成了此工具):
https://link.zhihu.com/?target=https%3A//github.com/yarrick/iodine
需要单独安装此工具可参考这篇文章,有安装过程
https://zhuanlan.zhihu.com/p/158584490
工具使用
参数:
-4 使用IPv4请求
-6 使用IPv6请求
-f 保持前台运行
-r 强制使用DNS隧道进行传输
-P password
-m 最大传输大小
-M 最大传输长度
-T 传输类型
-O 编码类型
iodined -f 192.168.0.1 test.dnsc2.com
# IP为用做dns隧道的单独的IP段,可随意写一个
# 域名为使用DNS服务器配置的测试域名,详细可参考这篇文章:
#密码随便写个,在客户端连接时会用到,比如123456
Listening to DNS for domain test.dnsc2.com,服务端开始监听所有 test.dnsc2.com的DNS请求,所有指令数据等均通过请求域名的子域进行传输,此时网卡处会多一个dns网卡。
iodine -f -r 192.168.203.146 test.dnsc2.com
输入的密码和服务端设置的一样,123456
Connected setup complete, transmitting data,客户端运行后,可以发送指令、连接ssh进行数据传输等等。
客户端的网卡处也新增了一个dns的网卡
新开一个窗口,ssh连接一下服务端dns网卡的IP
ssh kali@192.168.0.1
输入服务端的密码,隧道搭建成功了