Metasploit の river_tcp_dns meterpreter は接続を確立する際に river_tcp よりも遅いですか?

Metasploit の river_tcp_dns meterpreter は接続を確立する際に river_tcp よりも遅いですか?

そうだと思います。DNS は解決する必要があるのに対し、reverse_tcp は IP アドレスを使用するからです。

私は、reverse_tcp_dns が好きですが、より優れている場合は、reverse_tcp を選択するので、それらの違いをすべて知りたいです。

答え1

はい、その通りです。reverse_tcp_dns は、接続を確立するのに、reverse_tcp よりも時間がかかります。これら 2 つのペイロードの唯一の違いは、reverse_tcp_dns はドメイン名解決のために接続し直すのに余分な時間がかかり、reverse_tcp_dns ペイロードは、reverse_tcp ペイロードよりも約 70 バイト大きいことです。

答え2

Metasploit のreverse_tcp_dnsペイロードは、LHOST 値として FQDN を指定しない限り、DNS クエリを解決して攻撃者に接続しません (LHOST として IP アドレスを指定することもできます)。

代わりに、被害者のマシンと攻撃者のマシン間の通信手段として DNS クエリを使用します。入力したコマンドはmeterpreterDNS レコード内に偽装されて被害者のマシンに送信され、応答は DNS クエリに偽装されて攻撃者のマシンに返されます。

要約すると、データ交換は では TCP 経由で行われreverse_tcp、 では DNS+TCP 経由で行われますreverse_tcp_dns。つまり、データを TCP パケット経由で送信するのではなく、DNS パケット (次に TCP パケットに変換されます) 内で送信すると、かなりのオーバーヘッドが発生します。

関連情報