2016年1月22日金曜日

nmap パケットをフラグメント化

パケットをフラグメント化して調べます。目的はIDS回避ですが、さて実際には・・・・・
ログに残ったりしますので、まぁ、このようなオプションもあることを知って頂ければと思います。
もっとも、このログを見ても分からない場合は、可能性としてありますので、その意味では有用かも。

# nmap -f 192.168.XXX.XXX

Starting Nmap 6.40 ( http://nmap.org ) at 2016-01-DD 17:53 JST
Nmap scan report for 192.168.XXX.XXX
Host is up (0.0067s latency).
Not shown: 998 closed ports
PORT      STATE SERVICE
80/tcp    open  http
49152/tcp open  unknown
MAC Address: YY:YY:YY:YY:YY:YY (Unknown)

Nmap done: 1 IP address (1 host up) scanned in 33.59 seconds


XX : IPをマスキングさせて頂いています。
YY : MACアドレスをマスキングさせて頂いています。

ここで

-f : キャンパケットをフラグメント化して送信します。

【nmapの詳細説明】
-fオプションを指定すると、要求されたスキャン(pingスキャンを含む)は小さく断片化されたIPパケットを利用するようになる。これを行う目的は、TCPヘッダを複数のパケットに分割することで、パケットフィルタや侵入検知システム(IDS)などの厄介なセキュリティ策にスキャンを検知されにくくすることである。ただし、以下の点には注意が必要だ。すなわち、プログラムのなかには、このような小さなパケットの処理によって問題を生じるものがあることだ。旧式のスニファ「Sniffit」は、最初のフラグメントを受信した瞬間にセグメンテーション障害を起こした。このオプションを一度指定すると、NmapはIPヘッダを8バイトかそれ以下の大きさのパケットに分割する。つまり、20バイトのTCPヘッダは3つのパケットに分割されることになる。8バイトのパケットが2つと、残りの1つが4バイトになる。もちろん、各フラグメントにもIPヘッダがある。-fを再度指定すると、フラグメントあたり16バイトが使われる(フラグメントの数は減る)。あるいは、--mtuオプションで、ユーザ独自の分割サイズを指定することもできる。--mtuを使う場合は、同時に-fは指定しないこと。分割サイズは8の倍数にする必要がある。断片化されたパケットは、すべてのIPフラグメントを待ち行列に入れるパケットフィルタやファイアウォール(例えば、LinuxカーネルのCONFIG_IP_ALWAYS_DEFRAGオプションなど)を通り抜けることはできないが、ネットワークによっては、この断片化によって生じるパフォーマンスの低下に耐えきれないために、これを無効にしているところがある。またそれ以外にも、各フラグメントがそれぞれ異なる経路を通ってネットワークに至る可能性があるために、この機能を有効にできないところもある。一部の発信元システムでは、カーネルで発信パケットのフラグメント化を解消するものもある。コネクション追跡モジュールの「iptables」を備えるLinuxなどがこれにあたる。送信パケットがきちんとフラグメント化されていることを確認するために、Etherealなどのスニファを実行しながら、スキャンを行うようにすること。自身のホストのOSが原因で問題が生じる場合は、IP層を回避して「生」イーサネット フレームを送るために、--send-ethを試してみるとよい。

さて、どうでしょうか。

まだまだたくさんのオプションが用意されていますので、これらを使いこなしてnmapマスターになってみてください。


新品価格
¥1,540から
(2016/1/18 18:15時点)

0 件のコメント: