基于iodine的DNS隧道研究

基于iodine的DNS隧道研究时隔 3 年再次拿起 iodine 做研究 有了新的理解 iodine 的 DNS 隧道非常不一样 刚刚开始建立隧道的时候用的是迭代型 DNS 隧道 用的操作码是 0 表示正常 DNS 请求 后续进行 C amp C 数据通信的时候用的是直连型 DNS 隧道 用的操作码是 3 表示未分配的 DNS 通信 而且都是应答 交易 ID 还都是一样的 利用大量异常操作码通信的 DNS 报文 应该被及时的注意 而不是直接忽略 步骤一 在 A 记录里面添加 C

时隔3年再次拿起iodine做研究,有了新的理解,iodine的DNS隧道非常不一样,刚刚开始建立隧道的时候用的是迭代型DNS隧道,用的操作码是0,表示正常DNS请求。后续进行C&C数据通信的时候用的是直连型DNS隧道,用的操作码是3,表示未分配的DNS通信,而且都是应答,交易ID还都是一样的。利用大量异常操作码通信的DNS报文,应该被及时的注意,而不是直接忽略。


步骤一:在A记录里面添加C&C服务器(c2.hackbiji.top)的IP地址

c6d8f3fa905a5215f9c8d633b5d25c9d.png

步骤二:在NS记录里面添加一条记录,表示任意僵尸域名(bot.hackbiji.top)都由C&C服务器解析

29e8e755b72c9894638a57dbb30c2953.png

步骤三:在C&C服务器上运行iodine服务端程序

4be05f2465d04a047c74edb397610d38.png

步骤四:在bot主机上运行iodine客户端程序

2f679b6943430899c3e9ec1947981aa0.png

步骤五:在C&C主机上ssh登陆bot主机,需要知道bot的用户名和密码

6234c75d9a5f4080717f1862e8d6102b.png

同样,也可以在bot主机上ssh登陆C&C服务器,需要C&C服务器的用户名和密码

4e49d263d20d18e9aa1fc81c69590027.png

步骤六:抓包分析

发现只有在构建DNS隧道的过程时,能够抓到我的DNS隧道域名,这个时候属于迭代型DNS隧道

fb6961460645c3ba7b872d96823c33c8.png

而在后面的ssh隧道通信的时候,虽然走的是DNS隧道,但是抓到的DNS都是异常的,无法解析的未知操作,并且是直接和C&C服务器进行DNS通信,属于直接型DNS隧道,交易ID全部都是一样的,而且全部都是应答类型的DNS数据包

8e721e0cf1bdb8be0ee95d9f69cf2413.png

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/228921.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午5:53
下一篇 2026年3月16日 下午5:53


相关推荐

发表回复

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

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