$ time nmap -q -sV -P0 -p80 google.com | fgrep '80/tcp open'
80/tcp open http Google httpd 2.0 (GFE)
real 0m6.563s
user 0m0.280s
sys 0m0.016s
$
お持ちですか?急いでWebサーバーに関する情報を取得するには?
Google httpd 2.0(GFE)で十分です。
答え1
まあ、それはあなたが探している「情報」によって異なります。実行しているHTTP(S)サービスとバージョン(IIS / Apache / nginx)がわかっていると仮定すると、基本的なオペレーティングシステムが何であるかを理解できます。
より多くの情報が見つかるほど、検索に時間がかかります(IDSを実行すると検索に時間がかかることがあります)。
nmapを使用する(高速):
$ nmap -PN -sV -n -T4 --host-timeout 20s -p80 www.website.tld
nmapを使用する(遅いがより有益)
$ nmap -PN -n -sU -sS -A www.website.tld
-Aは-sV -O -T4(バージョン検出/OS検出/攻撃的なタイミング)と同じです。
答え2
ほとんどのHTTPサーバーでは、Nmapはサーバーヘッダーのみを取得するため、これで十分です。この情報を入手するには、以下を試してください。
printf "HEAD / HTTP/1.0\r\nHost: $TARGET\r\n\r\n" | nc $TARGET 80 | awk '$1=="Server:"{$1="";print}'
そうではなく、Nmapを使用したい場合は、作業を高速化する方法がいくつかあります。
-n
名前解決を避けるために使用されます。- 送信されるプローブの数を減らすには、または
--version-light
を使用します。--version-intensity 0
デフォルトのプローブは通常一致するため、これはほとんどのHTTPサーバーには影響しません。 -Pn
ホスト検索をスキップするために使用されます。すでにこれを持っていて-P0
動作しますが、構文は古いです。
全体的に数ミリ秒を節約できます。残念ながら、あなたが見る6秒は、Nmapがサーバーが最初にデータを送信するのを待つ時間です。 Nmap は特定の順序でサービス検出プローブを試みます。最初にNULLプローブ(サーバーが最初にそれを送信するのを待つ)、スキャンしているポートのすべてのプローブ、次にバージョン強度(デフォルト)よりも希少度が低い他のプローブnmap-service-probes
)あるファイルで定義されています。ただし、これはグローバル設定なので、編集すると通常のバージョン検出にNmapの使い勝手が悪くなります。そのProbe TCP NULL
行を見つけて、totalwaitms
その下の値を小さい値(たとえば)に変更します100
。次のようにする必要があります。
# This is the NULL probe that just compares any banners given to us
##############################NEXT PROBE##############################
Probe TCP NULL q||
# Wait for at least 6 seconds for data. It used to be 5, but some
# smtp services have lately been instituting an artificial pause (see
# FEATURE('greet_pause') in Sendmail, for example)
totalwaitms 100
他のすべてのNmapスキャンが複雑にならないようにするには、ファイルをコピーしてnmap-service-probes
このオプションを使用してその場所を参照してください--datadir
。これが私が得た結果です:
$ time nmap -Pn -sV -n -p80 $TARGET --datadir=. | grep '^80/tcp'
80/tcp open http Google httpd 2.0 (GFE)
real 0m0.753s
user 0m0.472s
sys 0m0.032s
答え3
どうですか?
wget -q -O /dev/null -S www.google.com