Windows では tcptraceroute みたいなツールが無さそう
トラブルシュートで nmap の -ttl オプションと wireshark で頑張ろうと思っていた矢先、
nmap --traceroute オプションを発見!
試してみたら簡単に使えました。
Windows への nmap のインストール
nmap.org のサイト (以下 URL) から Latest stable release self-installer の exe をダウンロードし、実行 (インストール) します。
インストールは成り行きで OK。インストール後は再起動は求められませんでした。また、パスも自動で付きました。
コマンドプロンプトを起動し、nmap と打ち、以下のようなヘルプが出てくれば、インストール完了、パスも張られた状態です。
C:\Users\test> nmap
Nmap 7.92 ( https://nmap.org )
Usage: nmap [Scan Type(s)] [Options] {target specification}
TARGET SPECIFICATION:
Can pass hostnames, IP addresses, networks, etc.
~~~
EXAMPLES:
nmap -v -A scanme.nmap.org
nmap -v -sn 192.168.0.0/16 10.0.0.0/8
nmap -v -iR 10000 -Pn -p 80
SEE THE MAN PAGE (https://nmap.org/book/man.html) FOR MORE OPTIONS AND EXAMPLES
nmap の --traceroute オプションで tcp/udp の traceroute を実行する
TCP 443 port で traceroute を実行
以下に実行例を示します。-p でポート番号を指定しています。-n は表示された IP アドレスの逆引きをしない設定です。なお、ここで -sT を指定してしまうと、icmp での traceroute になってしまいました。
C:\Users\test> nmap --traceroute -p 443 -n 1.1.1.1 Starting Nmap 7.92 ( https://nmap.org ) at 2022-01-21 12:27 東京 (標準時) Nmap scan report for 1.1.1.1 Host is up (0.011s latency). PORT STATE SERVICE 443/tcp open https TRACEROUTE (using port 443/tcp) HOP RTT ADDRESS 1 42.00 ms 192.168.0.1 2 11.00 ms 192.168.1.1 3 ... 5 6 13.00 ms 210.130.142.93 7 13.00 ms 58.138.88.38 8 13.00 ms 58.138.112.142 9 ... 10 11 33.00 ms 1.1.1.1 Nmap done: 1 IP address (1 host up) scanned in 3.14 seconds
UDP 53 port で traceroute を実行
以下に実行例を示します。-sU で UDP を指定、-p でポート番号を指定しています。-n は表示された IP アドレスの逆引きをしない設定です。
C:\Users\test> nmap --traceroute -sU -p 53 -n 1.1.1.1 Starting Nmap 7.92 ( https://nmap.org ) at 2022-01-21 10:39 東京 (標準時) Nmap scan report for 1.1.1.1 Host is up (0.0089s latency). PORT STATE SERVICE 53/udp open domain TRACEROUTE (using port 53/udp) HOP RTT ADDRESS 1 3.00 ms 192.168.0.1 2 2.00 ms 192.168.1.1 3 5.00 ms 210.148.147.106 4 7.00 ms 210.148.147.65 5 6.00 ms 210.130.183.245 6 7.00 ms 210.130.142.93 7 6.00 ms 58.138.80.198 8 7.00 ms 58.138.114.134 9 10.00 ms 210.173.176.127 10 7.00 ms 172.70.120.2 11 ... 30 Nmap done: 1 IP address (1 host up) scanned in 6.20 seconds
nmap --traceroute はターゲット IP への到達性が無いと traceroute できない
試していて気付いたのですが、指定した IP への、指定したポート宛での疎通性が無いと途中経路を表示しないことが分かりました。
そこで最終的には結局、--ttl を 1 ずつ増やしていくことに。。。
C:\Users\test> nmap -n -Pn -sU -p 53 --packet-trace 4.4.4.4 --ttl 3 Starting Nmap 7.92 ( https://nmap.org ) at 2022-01-21 14:34 東京 (標準時) SENT (0.0910s) UDP 192.168.0.28:51154 > 4.4.4.4:53 ttl=3 id=4833 iplen=40 SENT (0.0920s) UDP 192.168.0.28:51154 > 4.4.4.4:53 ttl=3 id=4833 iplen=58 RCVD (0.0960s) ICMP [210.148.147.106 > 192.168.0.28 TTL=0 during transit (type=11/code=0) ] IP [ttl=253 id=0 iplen=56 ] Nmap scan report for 4.4.4.4 Host is up (0.0050s latency). PORT STATE SERVICE 53/udp filtered domain Nmap done: 1 IP address (1 host up) scanned in 0.10 seconds C:\Users\test> nmap -n -Pn -sU -p 53 --packet-trace 4.4.4.4 --ttl 4
おまけ Linux の場合
traceroute パッケージをインストールすれば OK。
traceroute パッケージのインストール
RHEL 系 (CentOS/Rocky Linux/Almalinux) への traceroute インストール
[root@localhost ~]# dnf install -y traceroute
Debian 系 (Ubuntu) への traceroute インストール
test@ubuntu:$ sudo apt install -y traceroute
TCP 443 の traceroute
traceroute ではなく tcptraceroute を使います。traceroute パッケージに含まれています。
# tcptraceroute -n 1.1.1.1 443
UDP 53 の traceroute
こちらは純粋な traceroute を使います。
# traceroute -n -U 1.1.1.1 53
コメント
-Pnで、対象がOpenかどうか関係なく、実行するかもしれない。