0x01 iodine 工具介绍
iodine工具是基于C语言开发的,分为服务端程序 iodined 和 客户端 iodine,iodine支持 EDNS、base32、base64、base128等多种编码规范。
iodine支持转发模式和中继模式;
iodine原理:通过TAP虚拟网卡,在服务端建立一个局域网;在客户端,通过TAP建立一个虚拟网卡;两者通过DNS隧道连接,处于同一局域网(可以通过ping命令通信),在客户端和服务端之间建立连接后,客户机上会多出一块 “dns0” 的虚拟网卡。
DNS隧道流程:iodine客户端 -> DNS服务商 -> iodined服务端,由于客户端和服务端都在一个局域网,那么只需要直接访问服务端,如 3389 (直接使用 mstsc) 、22 (ssh 建立连接) 。
与同类工具相比,iodine具有如下几种特点:
->不会对下行数据进行编码 ->支持多平台(Linux、Windows、MacOS) ->支持16个并发连接 ->支持强密码机制 ->支持同网段隧道IP低质(不同于服务器——客户端网段 ->支持多种DNS记录类型 ->提供了丰富的隧道质量检测措施
0x02 使用iodine搭建隧道
一、部署域名解析
首先,需要有一台公网VPS作为 C&C 服务器,并准备一个域名,去配置域名的记录, 先创建一个 “A” 记录,将自己的域名(NS记录类型的记录值)解析到VPS服务器地址,然后创建NS记录,将NS的主机记录名指向记录值。
再来测试NS类型解析是否可用,在VPS上使用tcpdump进行监听
命令:tcpdump -n -i eth0 udp dst port 53
二、安装iodine服务端并启动
执行以下命令启动服务端
iodined -f -c -P password 192.168.100.100 xxx.xxx.xyz -DD -f:在前台运行 -c:禁止检查所有传入请求的客户端IP地址 -P:指定密码 -D:指定调试级别。-DD 指第二级,D的数量随等级增加 这里的192.168.100.100是自定义的局域网虚拟IP地址
启动完后,可以通过iodine检查页面:[[点击前往]]](https://code.kryo.se/iodine/check-it/)检查配置是否正确,如下表示配置成功!
这时,回到服务端可以看到VPS上多了一块网卡(dns0),ip是我们设置的 192.168.100.100
三、安装iodine客户端并启动
以Windows系统为例
以Linux系统为例
执行以下命令:iodine -f -P password xxx.xxx.xyz
0x03 使用DNS隧道
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/233787.html原文链接:https://javaforall.net