私は、さまざまなポートを介してアクセスできるさまざまなHTTP(S)サービスを備えた複数のサーバーを持っています。どのホストとポートでどのサービスが利用可能かを追跡することは非常に困難です。通常私はブラウザの履歴にのみ依存します。
特定のサーバーでWebページを提供するすべてのポートを一覧表示できるいくつかのシェルコマンド(netcatのいくつかのバリエーション)またはスクリプトがありますか?それとも、すべてのポートでHTTPまたはHTTPSを使用しますか?
答え1
特定のスクリプトではありませんが、その情報を取得する方法があります。いくつかの方法があります。これから始めますnetstat -tuln
。これにより、どのポートに接続されているリスニングサービスがあるかを知らせます。その後、特定のポートでリッスンしているPIDを知らせるなど、いくつかの情報を見ると、fuser -n tcp <port num>
そのPIDに関連付けられているデーモン/プロセスがわかります。
しかし、真剣に、この問題を完全に解決してから完全なバカになり、文書を最新の状態に保つ方が良いでしょう。それが自分を打つか、他の人 - 繰り返し - 1/4で勝つことを意味するかどうかは関係ありません。手がかり。
答え2
ホストにログインして実行中のプロセスを表示できると仮定すると、最も簡単な方法はnetstatを使用することです。
netstat -lnp | grep <apache|httpd>
Debian は Apache を使用し、cent/rhel は httpd を使用します。このオプションがない場合は、特定のポイントで接続を閉じるIDS / IPSがない場合は、nmapを使用してサービスを検索できます。
または、ブラウザのブックマークまたはシェルエイリアスを使用してください。
答え3
nmap
aとスクリプトを使用してこれを行うことができます。http-get.nse*
$ nmap -p* --open --script http-get.nse --script-args http-get.path=/,http-get.match="downloads" 192.168.13.2
Starting Nmap 6.40 ( http://nmap.org ) at 2015-05-13 23:09 CEST
Nmap scan report for 192.168.13.2
Host is up (0.029s latency).
Not shown: 4235 closed ports
PORT STATE SERVICE
22/tcp open ssh
53/tcp open domain
80/tcp open http
| http-get:
|_ GET / -> 200 OK
5050/tcp open mmcc
| http-get:
|_ GET / -> 200 OK
5051/tcp open ida-agent
| http-get:
|_ GET / -> 303
5055/tcp open unot
| http-get:
| GET / -> 200 OK
|_ Matches: downloads
8118/tcp open privoxy
| http-get:
|_ GET / -> 400
8200/tcp open trivnet1
| http-get:
|_ GET / -> 200 OK
Nmap done: 1 IP address (1 host up) scanned in 17.31 seconds 192.168.1.1
http-get.path=
見つかった各開いているポートに対してhttpリクエストを行い、指定されたパスのページをリクエストし、--script-args
次に定義された一致するキーワードへの応答を調べます。http-get.match=
開いているポートが見つかると、GET要求のステータスコードと可能なキーワード一致が報告されます。
5055/tcp open unot
| http-get:
| GET / -> 200 OK
|_ Matches: downloads
スクリプトに追加の調整が必要な場合があります。まだhttpsサポートをテストしていません。しかし、始める必要があります。
*修理をフォークして調整しました。スクリプトクレジットは次のとおりです。デビッド・ホイットマン。