下图为心跳包
下图为执行命令
流程图
No.3 利用SOA记录作为通道
看一个正常的SOA请求
cmd里非权威应答下的baidu.com,表示区域根是baidu.com。 primary name server 表示负责解析该域名的主dns服务器; responsible mail addr 表示该区域管理人的邮箱,sa.baidu.com等价于sa@baidu.com; Serial number 反映域名信息变化的序列号,每次域名信息变化该项数值需要增加,从服务器将检查主服务器的区域序列号是否大于它们在系统上的序列号,如果是,它请求新的区域文件(区域文件是存储在 DNS 服务器中的纯文本文件,其包含区域的实际表示,并且包含区域内每个域的所有记录,区域文件必须始终从区域根开始),如果不是,它继续使用原始文件。 Refresh Number 从DNS服务器隔一定时间会查询主DNS服务器中的序列号是否增加,即域文件是否有变化。这项内容就代表这个间隔的时间,单位为秒 Retry Interval 表示如果备用服务器无法连上主服务器,过多久再重试,单位为秒 Expire limit 当备用DNS服务器无法联系上主DNS服务器时,备用DNS服务器可以在多长时间内认为其缓存是有效的,并供用户查询 Minimum TTL 缓存DNS服务器可以缓存记录多长时间,单位为秒
其中,primary name server和responsible mail addr可以作为携带数据的载体,从而替换TXT记录请求。Serial number这些记录则可以作为标志位来指示客户端这个应该是心跳应答还是需要执行命令的应答
demo