我认为是的,因为必须解析 DNS,而 reverse_tcp 使用 IP 地址。
我想知道它们之间的所有区别,因为虽然我喜欢 reverse_tcp_dns,但如果它更好的话我仍然会选择 reverse_tcp。
答案1
是的,您说得对。reverse_tcp_dns 建立连接的速度比 reverse_tcp 慢。这两个负载之间的唯一区别是,reverse_tcp_dns 由于域名解析需要额外的时间才能重新连接,并且 reverse_tcp_dns 负载比 reverse_tcp 负载大约大 70 字节。
答案2
Metasploit 的reverse_tcp_dns
有效负载不会解析 DNS 查询以连接回攻击者,除非您为其提供了 FQDN 作为 LHOST 值(您也可以提供 IP 地址作为 LHOST)。
相反,它使用 DNS 查询作为受害计算机和攻击者计算机之间的通信模式。您输入的命令meterpreter
会伪装在 DNS 记录中发送到受害计算机,而响应则会伪装成 DNS 查询发送回您的计算机。
总之,在 中数据交换通过 TCP 进行reverse_tcp
,在 中则通过 DNS+TCP 进行reverse_tcp_dns
。因此,在 DNS 数据包中传输数据(随后会将其转换为 TCP 数据包)比通过 TCP 数据包传输数据会产生很大的开销。