天天看点

基于iodine的DNS隧道研究

作者:ailx10
基于iodine的DNS隧道研究

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

基于iodine的DNS隧道研究

ailx10

网络安全优秀回答者

网络安全硕士

去咨询

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

基于iodine的DNS隧道研究

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

基于iodine的DNS隧道研究

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

基于iodine的DNS隧道研究

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

基于iodine的DNS隧道研究

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

基于iodine的DNS隧道研究

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

基于iodine的DNS隧道研究

步骤六:抓包分析

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

基于iodine的DNS隧道研究

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

基于iodine的DNS隧道研究