【工具使用】应用层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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Visual Studio 2017安装教程

    Visual Studio 2017安装教程下载VS2017组件选择及安装设置激活其它下载VS2017下载VS2017的安装器:http://msdn.itellyou.cn/我的安装版本为:VisualStudio2017(version15.7)VisualStudioProfessional2017(version15.7)(x86andx64)-(MultipleLanguages)下载此安…

    2022年5月26日
    38
  • 记1024

    记1024等我写一个重磅级的博客。。。

    2022年6月24日
    24
  • Android快速转战Kotlin教程「建议收藏」

    Android快速转战Kotlin教程「建议收藏」前言kotlin是啥?这里就不用多说了,想必看这篇文章的童鞋肯定是有所了解的。那么这篇文章你可以收获什么?答:本文主要通过本人如何从java转战到kotlin并应用在实际项目中的个人经历,给大家提供一些学习思路、学习方法以及一些学习资料和个人总结。前提:你的项目(包含个人项目)即将开始用到kotlin(没有项目作为依托你会缺少十足的动力,而且缺少应用场景乘热打铁那也…

    2022年5月25日
    30
  • matlab中interp1什么意思,matlab中interp1函数是什么意思啊?

    matlab中interp1什么意思,matlab中interp1函数是什么意思啊?csape可以选择样条的边界条件,interp1无法使用边界条件;csape只是Cubicspline插值,interp1可以选择几种不同的插值方法。csape函数的用法如下:pp=csape(x,y,conds,valconds)其中(x,y)为数据向量,conds表示变界类型,valconds表示边界值。边界类型(conds)可为:’complete’,给定边界一阶导数.’not-a-…

    2022年6月3日
    66
  • 理解几种常见的进程间通信方式

    理解几种常见的进程间通信方式什么是进程间通信广义上讲,进程间通信(Inter-ProcessCommunication,IPC)是指运行在不同进程(不论是否在同一台机器)中的若干线程间的数据交换。从上面的定义可以得出两点:参与通信的进程即可以运行在同一台机器上,也可以运行在各自的设备环境中(RemoteProcedureCallProtocol,RPC)。如果进程是跨机器运行的,则通常是由网络连接在一起。实现方

    2022年10月9日
    0
  • poj 1028 Web Navigation(模拟)「建议收藏」

    poj 1028 Web Navigation(模拟)

    2022年2月5日
    39

发表回复

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

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