NSEスクリプトでApacheのバージョンを取得する

提供: セキュリティ
2014年7月18日 (金) 01:33時点におけるDaemon (トーク | 投稿記録)による版

(差分) ←前の版 | 最新版 (差分) | 次の版→ (差分)
移動: 案内検索
スポンサーリンク

nmapのNSEスクリプトで、Apache HTTP Server(httpd)のバージョンを調べるスクリプトのサンプルコードを紹介します。Apache のバージョンを調べることは、既存のスクリプトで出来ることで特別なことではありません。

読み方

NSEスクリプト
えぬえすいー すくりぷと

概要

NSEスクリプトの書き方については、はじめてのNSEスクリプトの説明を参考にしてください。 Apache がレスポンスにサーバーのバナーを返すことが前提です。

NSEスクリプトの主なアクション関数の動作は、以下の通りです。

  • Apache HTTP Serverの適当なエントリーポイントに対して、HTTPリクエストを送信します。
  • アクション関数は、HTTPレスポンスのヘッダを返す

HTTPリクエストを送信するには、NSEライブラリのhttpを使用します。

使い方

nmap --script ./glab-apache.nse localhost -p 80

glab-apache.nse

description = [[
Glab Apache Version
]]
 
author = "Kaoru";
license = ""
categories = {"default,safe"}
 
local shortport = require "shortport"
local http = require "http"
local stdnse = require "stdnse"
 
portrule = shortport.port_or_service ({80,443}, {"http","https"})
 
action = function (host, port)
        local response = http.get (host, port, "/status.html")
        return response.header ["server"]
end

実行例

$ nmap --script ./glab-apache.nse localhost -p 80
 
Starting Nmap 6.46 ( http://nmap.org ) at 2014-07-18 01:20 JST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00081s latency).
PORT   STATE SERVICE
80/tcp open  http
|_glab-apache: Apache/2.4.9 (FreeBSD) OpenSSL/1.0.1e-freebsd PHP/5.5.12
 
Nmap done: 1 IP address (1 host up) scanned in 0.16 seconds

関連項目




スポンサーリンク