現役ペンテスト技術者が選ぶ 使えるセキュリティツール(15) 「tcptraceroute」 | ScanNetSecurity[国内最大級のサイバーセキュリティ専門ポータルサイト]
2018.09.21(金)

現役ペンテスト技術者が選ぶ 使えるセキュリティツール(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》

Scan PREMIUM 会員限定記事

もっと見る

Scan PREMIUM 会員限定記事特集をもっと見る

カテゴリ別新着記事

★★Scan PREMIUM 会員限定コンテンツにフルアクセスが可能となります★★
<b>★★Scan PREMIUM 会員限定コンテンツにフルアクセスが可能となります★★</b>

経営課題としてサイバーセキュリティに取り組む情報システム部門や、研究・開発・経営企画に携わる方へ向けた、創刊19年のセキュリティ情報サービス Scan PREMIUM を、貴社の事業リスク低減のためにご活用ください。

×