NmapでテストしたいラウンドロビンDNSレコードがありますが、現在は1つのIPのみを試行します(ループを実行すると、それぞれが順番にチェックされます)。
dnsレコードからすべてのA/AAAAレコードをnmapでテストする方法はありますか?
例:nmap -p25 rr-test.jacobdevans.com
ループなしでは無理だと思います。 nping
の代わりにnmap
を使用してみてください。 IPv4の例:
$ Host -t MX gmail.com | awk '{print $NF}' | xargs -I{} Host -t A {} | awk '{print $NF}' | xargs -e nping -c 1 -p 25,465 | grep -P "(SENT)|(RECV)"
SENT (0.0014s) Starting TCP Handshake > 74.125.204.26:25
RECV (0.3228s) Handshake with 74.125.204.26:25 completed
SENT (1.0036s) Starting TCP Handshake > 74.125.201.26:25
RECV (1.1765s) Handshake with 74.125.201.26:25 completed
SENT (2.0065s) Starting TCP Handshake > 74.125.28.26:25
RECV (2.2137s) Handshake with 74.125.28.26:25 completed
SENT (3.0086s) Starting TCP Handshake > 173.194.222.26:25
RECV (3.0475s) Handshake with 173.194.222.26:25 completed
SENT (4.0116s) Starting TCP Handshake > 74.125.30.27:25
RECV (4.1853s) Handshake with 74.125.30.27:25 completed
SENT (5.0142s) Starting TCP Handshake > 74.125.204.26:465
SENT (6.0163s) Starting TCP Handshake > 74.125.201.26:465
SENT (7.0184s) Starting TCP Handshake > 74.125.28.26:465
SENT (8.0196s) Starting TCP Handshake > 173.194.222.26:465
SENT (9.0217s) Starting TCP Handshake > 74.125.30.27:465
IPv6の場合、コマンドを使用します。
$ Host -t MX gmail.com | awk '{print $NF}' | xargs -I{} Host -t AAAA {} | awk '{print $NF}' | xargs -e nping -c 1 -6 -p 25,465 | grep -P "(SENT)|(RECV)"
Nmapは、 resolveall
NSEスクリプトを使用してこのようなことを実行できます。他のアドレスをリストするだけでなく、実際にスキャンキューに追加するには、 newtargets
スクリプト引数を設定する必要があります。したがって、ソリューションは次のようになります。
nmap --script resolveall --script-args newtargets -p25 rr-test.jacobdevans.com
これは、複数のA(またはAAAA、-6
option)レコード。これらはすべて、単一のクエリへの応答として返されます。ラウンドロビンDNSは、各クエリに応答してプールから単一のAレコードを返すことで実装できます。 resolveall
スクリプトは、クエリを1つしか送信しないため、これを検出できません。
編集:これがNmap 7.40の新機能であることを忘れたため、以前のバージョンは同じように機能しません。これらのバージョン(バージョン5.50に戻る)では、次の構文を使用する必要があります。
nmap --script resolveall --script-args "newtargets,resolveall.hosts={rr-test.jacobdevans.com}" -p25