Nmapの使い方
ここでは、ポートスキャンの代表的なツールであるnmapの原理・使い方・対策についてまとめてみました。ポートスキャンはセキュリティの基本ですが、とても奥が深いです。
nmapの書式は以下の通りです。
nmap [Scan Type...] [Options] {target specification}
スキャンタイプおよびオプションは任意、ターゲットは必須になります。
TCPのステルススキャン
ステルススキャン(TCPセッションを確立しないことで対象となるサーバにログが残りにくい形で行うポートスキャン)としてnmapでは以下のものが利用できます。
例 ACKスキャン 3ウェイハンドシェイクを経ずしてACKパケットを送信していることに注目!
オプション名 | 実行時の動作 |
---|---|
-sS | SYNスキャン(SYNパケットを送信する、特権ユーザでのデフォルトのスキャン。別名ハーフオープンスキャン) 大量に送信した場合は、そのままSYNフラッド攻撃になる。 |
-sA | ACPスキャン(最初からACPパケットを送信する) |
-sF | FINスキャン(最初からFINパケットを送信する) |
-sX | Xmasスキャン(すべてのビットを有効になったパケットを送信する) |
-sN | Nullスキャン(全てのビットを無効にしたパケットを有効にする) |
その他のスキャンオプション
オプション名 | 実行時の動作 |
---|---|
-p | 指定したポートに対してのみスキャンを実行する。 -p 0-65535で全ポートのスキャンが可能だが、2時間程度はかかる。 |
-sC | コネクトスキャン(正常に3ウェイハンドシェイクを完了する、非特権ユーザでのデフォルトのスキャン。別名バニラスキャン) |
-sU | UDPスキャン(UDPのポートを対象とする) |
下書き
オプション名 | 実行結果 | wireshark上での動作 |
---|---|---|
-sL | ターゲットのホスト名を表示 | DNSサーバにターゲットの名前解決のみを行いスキャンは実行しない |
-sP | ホストが存在するかどうかのみを確認する | DNSに名前解決を行う |
-P0 | DNS解決を行わずにポートスキャンを行う | DNSに名前解決を省略してポートスキャンを行う |
-n | DNS解決を行わずにポートスキャンを行う | DNSに名前解決を省略してポートスキャンを行う |
iptablesの設定
ホスト名がバレた時点で負け
iptablesでDROPしたポートに対しては、filteredという結果が返ってくる
他と違ってクリスマスツリースキャンのみ、open|filteredという結果になった。
REJECTの場合は、unreachableエラーメッセージが送信される。
スキャンまでの流れは以下のようになります。
1.ARP解決 → 2. DNS解決(正引き・逆引き) 3. → 4.スキャン実行
試験環境
192.168.1.0/24内のホストのnmapのインストールされたホストから同一サブネットに対してスキャンしました。