【工具使用】应用层DNS协议工具—iodine

【工具使用】应用层DNS协议工具—iodine0x01iodine 工具介绍 iodine 工具是基于 C 语言开发的 分为服务端程序 iodined 和客户端 iodine iodine 支持 EDNS base32 base64 base128 等多种编码规范 iodine 支持转发模式和中继模式 iodine 原理 通过 TAP 虚拟网卡 在服务端建立一个局域网 在客户端 通过 TAP 建立一个虚拟网卡 两者通过 DNS 隧道连接 处于同一局域网 可以通过 ping 命令通信 在客户端和服务端之间建立连接后 客户机上会多出一块 dns0 的虚拟网卡 DNS 隧道

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

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • soapUI使用教程[通俗易懂]

    soapUI使用教程[通俗易懂]SoapUI使用1.什么是soapUI由于Web服务是被程序调用的,一般不会提供界面让最终用户或测试人员直接使用,soapUI是针对这种情况开发的一个工具,用户可以在soapUI中通过简单的操作完成复杂的测试。目前我们系统中电子渠道接口、充值卡接口都是用WebService实现的,因此需要用到SoapUI进行测试。SoapUI不仅可以简单地执行测试,而且可以自动运行已经准备

    2022年6月15日
    94
  • vultr服务器win系统怎么重置密码,Windows RT 重置登录密码操作方法图文教程

    vultr服务器win系统怎么重置密码,Windows RT 重置登录密码操作方法图文教程

    2021年8月16日
    76
  • Skeleton Screen — 骨架屏–应用

    Skeleton Screen — 骨架屏–应用Skeleton Screen — 骨架屏–应用

    2022年4月21日
    85
  • pytest报错_eclipse提交代码到git

    pytest报错_eclipse提交代码到git前言我们每天写完自动化用例后都会提交到git仓库,随着用例的增多,为了保证仓库代码的干净,当有用例新增的时候,我们希望只运行新增的未提交git仓库的用例。pytest-picked插件可以

    2022年7月29日
    7
  • CSS简单入门

    CSS简单入门

    2021年10月2日
    47
  • java线程池参数详解

    java线程池参数详解java线程池参数详解核心线程数corePoolSize最大线程数maximumPoolSize空闲线程存活时间及单位keepAliveTime、unit工作队列新任务被提交后,会先进入到此工作队列中,任务调度时再从队列中取出任务。jdk中提供了四种工作队列:①ArrayBlockingQueue基于数组的有限阻塞队列,按照FIFO排序。新任务进来后,会放到该队列队尾线程工厂创建一个新线程时使用的工厂,可以用来设定线程名,是否为daemon守护线程等等。拒绝策略…

    2022年6月28日
    32

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号