現役ペンテスト技術者が選ぶ 使えるセキュリティツール(15) 「tcptraceroute」 | ScanNetSecurity
2021.06.20(日)

現役ペンテスト技術者が選ぶ 使えるセキュリティツール(15) 「tcptraceroute」

このコーナーでは、現役のペネトレーションテスト技術者が、使えるセキュリティツールを、ペンテストの現場の視点から紹介します。

特集 特集
このコーナーでは、現役のペネトレーションテスト技術者が、使えるセキュリティツールを、ペンテストの現場の視点から紹介します。

・名称 …… tcptraceroute
・配布制限 …… フリーウェア
・商用版の有無 …… 無
・類似ツール …… tracetcp
・DL URL …… http://michael.toren.net/code/tcptraceroute/
・対応OS …… Unix系OS
・分野 …… 経路調査
・コマンド一覧

(1) 基本項目と概要

この記事を読まれている方の中では「traceroute」という言葉をご存知の方が殆どだろう。「traceroute」とはホスト間のネットワーク上の経路を調査するコマンドで、ホスト間に存在するルータやフィアウォールなどのネットワーク機器をリストアップすることができる。Windows系OSやLinux系OSにも標準で付属しているコマンドバイナリであり、主にネットワークのトラブルシューティングに用いられる。
(Linux系OSのコマンド名は「traceroute」Windows系OSの場合は「tracert」であるが本稿では「traceroute」と統一する。)

今回は、このOS標準で付属しているものから一歩発展した「tcptraceroute」を紹介する。

(2) コマンドサンプル

本題の「tcptraceroute」の説明に入る前に、前提として「traceroute」の仕組みを簡単ではあるが解説したい。

「traceroute」は、TTL(Time To Live)というパケットの生存時間を利用している。

例えば、TTLに1という値をセットしたパケットを送出し、一つ目のネットワーク機器がそのパケットを受信した段階で1つTTLが減らされ0となり、そのネットワーク機器からは通常(*1)、ICMP Time ExceededというTTLの超過によるパケットの破棄報告のパケットが返される。そして、次にTTLに2という値をセットしたパケットを送出し、二つ目のネットワーク機器の結果を得る。
「traceroute」は目的のホストに辿り着くまで、これを繰り返すことで経路情報をリストアップすることを実現している。

ご存知の方もいるとは思うが、「traceroute」は、Windows系OSとLinux系OSとでデフォルトで用いられる方法が異なっている。

Windowsでは、ICMP Echo Request(Ping)の送出、Linux系OSでは、ハイポートへのUDPパケットの送出で行っている。(Linux系OSでは「-I」オプションを用いることでICMPでの「traceroute」を行うことが可能である。)

それでは、本題に入ろう。

「traceroute」はICMPとUDPのみと思われがちだが、今回紹介するツール名にもあるように「tcptraceroute」を使用することでTCPにおける「traceroute」を行うことも可能である。

インストールには、libnetとlibpcapが事前にインストールされている必要があるが、インストール自体は非常に簡単なので割愛させていただく。

libnet:
http://www.packetfactory.net/libnet
libpcap:
http://www.tcpdump.org/

HELPは以下のようになっている。

・tcptraceroute

tcptraceroute 1.5beta7
Copyright (c) 2001-2006 Michael C. Toren
Updates are available from
http://michael.toren.net/code/tcptraceroute/

Usage: tcptraceroute [-nNFSAE] [-i ] [-f ]
[-l ] [-q ] [-t ]
[-m ] [-pP] ] [-s ]
[-w ] [destination port] [packet length]


いくつかのオプションが存在するが、特に必要ない場合は、以下のように実行するとよいだろう。

・tcptraceroute <対象アドレス> <ポート>

ポートの指定は、その対象上でオープンしているポート番号を指定する。以下はWebサーバに対して「tcptraceroute」を実行した結果である。

・tcptraceroute -n zz.zz.zz.zz 80
Selected device eth0, address xx.xx.xx.xx port 32780 for outgoing packets
Tracing the path to zz.zz.zz.zz on TCP port 80 (http), 30 hops max
1 aa.aa.aa.aa 2.014 ms 0.799 ms 1.030 ms
2 bb.bb.bb.bb 2.855 ms 4.766 ms 3.262 ms
3 cc.cc.cc.cc 4.750 ms 5.433 ms 5.774 ms
4 dd.dd.dd.dd 8.098 ms 8.415 ms 10.174 ms
5 ee.ee.ee.ee 6.768 ms 6.911 ms 5.298 ms
6 ff.ff.ff.ff 9.122 ms 3.879 ms 3.884 ms
7 gg.gg.gg.gg 3.710 ms 3.813 ms 3.777 ms
8 hh.hh.hh.hh 26.527 ms 7.288 ms 7.805 ms
9 ii.ii.ii.ii 6.499 ms 3.864 ms 2.914 ms
10 jj.jj.jj.jj 7.682 ms 6.463 ms 4.389 ms
11 kk.kk.kk.kk 3.817 ms 3.791 ms 3.783 ms
12 ll.ll.ll.ll 5.066 ms 3.827 ms 3.750 ms
13 mm.mm.mm.mm 5.173 ms 5.131 ms 5.799 ms
14 zz.zz.zz.zz [open] 5.209 ms 9.157 ms 4.986 ms

(*1)ネットワーク機器によっては対応していない、返答しない設定にしている、なんからの障害が発生しているなどの理由からICMP Time Exceededを得られない場合もある。

(3) 使用例とTIPS、検査者の視点から

ペネトレーションテストでは、「traceroute」を実行した結果によっては低危険としてではあるが指摘する場合がある。

指摘の内容としては…

【執筆:NTTデータ・セキュリティ株式会社 辻 伸弘】
──
※ この記事は Scan購読会員向け記事をダイジェスト掲載しました
購読会員登録案内 http://www.ns-research.jp/cgi-bin/ct/p.cgi?w02_ssw

《ScanNetSecurity》

PageTop

特集

アクセスランキング

  1. スポーツクラブNASへランサムウェア攻撃、会員管理システムに障害発生

    スポーツクラブNASへランサムウェア攻撃、会員管理システムに障害発生

  2. パラマウントベッド従業員の仮想デスクトップ環境がウイルス感染、過去のやりとりを装った不審メールを確認

    パラマウントベッド従業員の仮想デスクトップ環境がウイルス感染、過去のやりとりを装った不審メールを確認

  3. 富士通のプロジェクト情報共有ツールへの不正アクセス、総務省でも被害確認

    富士通のプロジェクト情報共有ツールへの不正アクセス、総務省でも被害確認

  4. 「糖質制限ドットコム」に不正アクセス、1年分の決済情報が流出

    「糖質制限ドットコム」に不正アクセス、1年分の決済情報が流出

  5. 富士フイルムへのランサムウェア攻撃、外部への情報流出の痕跡は確認されず

    富士フイルムへのランサムウェア攻撃、外部への情報流出の痕跡は確認されず

  6. クラウドの脅威はプロバイダ起因から利用者起因にシフト…CSAJの11大脅威

    クラウドの脅威はプロバイダ起因から利用者起因にシフト…CSAJの11大脅威

  7. やけど虫の駆除方法、体液が皮膚に付いてしまった場合の対策について

    やけど虫の駆除方法、体液が皮膚に付いてしまった場合の対策について

  8. イトーヨーギョーのサーバにランサムウェア攻撃、現時点で情報流出は確認されず

    イトーヨーギョーのサーバにランサムウェア攻撃、現時点で情報流出は確認されず

  9. 病院向け情報管理システム OpenClinic GA に複数の脆弱性

    病院向け情報管理システム OpenClinic GA に複数の脆弱性

  10. かくれ脱水から脱水状態に進行したときに起こるサインを解説(「教えて!「かくれ脱水」委員会)

    かくれ脱水から脱水状態に進行したときに起こるサインを解説(「教えて!「かくれ脱水」委員会)

ランキングをもっと見る