nmapは、特定のポートが開いているホストのみを表示できますか?


18

nmapSSHとHTTPの両方を開いているローカルネットワーク上のすべてのホストを一覧表示できますか?そのためには、次のようなものを実行できます。

nmap 192.168.1.1-254 -p22,80 --open

ただし、これはすべてのポートを開いているホストを一覧表示しますが、すべてのポートを開いているホストを希望します。さらに、出力は非常に詳細です。

# nmap 192.168.1.1-254 -p22,80 --open

Starting Nmap 6.47 ( http://nmap.org ) at 2015-12-31 10:14 EST
Nmap scan report for Wireless_Broadband_Router.home (192.168.1.1)
Host is up (0.0016s latency).
Not shown: 1 closed port
PORT   STATE SERVICE
80/tcp open  http

Nmap scan report for new-host-2.home (192.168.1.16)
Host is up (0.013s latency).
PORT   STATE SERVICE
22/tcp open  ssh
80/tcp open  http

Nmap done: 254 IP addresses (7 hosts up) scanned in 3.78 seconds

私が探しているのは、次のような出力です:

192.168.1.16

上記のホストは、すべてのポートが開いている唯一のホストであるためです。

確かに出力を後処理することはできますが、nmapの出力形式に依存したくはありません。方法があれば、nmapで処理したいです。


1つのポートのみをテストする場合は、「nmap -p 22 | grep -B3 open 'は簡単な方法です。
ルチアーノアンドレスマティーニ

回答:


10

Nmap内でそれを行う方法はありませんが、「nmapの出力形式に依存したくない」というコメントから、Nmapには機械可読解析用の2つの安定した出力形式があることがわかります。古いものはGrepable出力(-oG)で、perl、awk、およびgrepでの処理に適していますが、より高度な出力(NSEスクリプト出力、ポート理由、tracerouteなど)の一部が欠落しています。より完全な形式はXML出力(-oXですが、目的によってはやり過ぎかもしれません。

あなたはどちらかとファイルにこれらの出力保存することができ-oG-oXまたは-oAあなたがstdoutにいずれか1本の直線を送信することができます(両方のフォーマットに加えて、「通常」のテキスト出力)、または:nmap 192.168.1.1-254-p22,80 --open -oG - | awk '/22\/open.*80\/open/{print $2}'


1
それは完璧で、ちょうど私が探していたもの(-oG -
ブライアン

2

このawkワンライナーも検討してください。

nmap -Pn -oG -p22,80,443,445 - 100.100.100.100 | awk '/open/{ s = ""; for (i = 5; i <= NF-4; i++) s = s substr($i,1,length($i)-4) "\n"; print $2 " " $3 "\n" s}'

次のように、指定されたすべての開いたポートを持つすべてのホストが表示されます。

 100.100.100.100 (some-domain.com)
 22/open/tcp//ssh
 80/open/tcp//http
 443/open/tcp//microsoft-ds
 445/open/tcp//https-alt

これをテストした後、-pを追加する必要があります。コマンドラインの「-」は-oGの直後に属します
ウェイン

1

次のコマンドを試してください。

nmap --open -p 22,80 192.168.1.1-254 -oG - | grep "/open" | awk '{ print $2 }'

これにより、範囲内のポートがスキャンされ、出力がgreppable形式でパイプされて開いているポートが検索され、その基準のいずれかに適合するIPアドレスが出力されます。


U&Lへようこそ!ことを注意受け入れ答え〜3年前からは、それはgrepするためにはawkを使用してこれの簡単なバージョンがある、印刷を。
ジェフシャラー

1
ポートオプション以外のポートに余分なデータを追加する必要がないので、私のほうが良いと思います。彼は、各ポートでawkも更新する必要がありますが、これは不必要に冗長です。
マーシャルハレンベック
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.