2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

nmap のイメージが変わった Nmap Scripting Engine (NSE)

2
Posted at

はじめに

nmap というとポートスキャンを行う、サーバー・ネットワークのポートレベルのチェック行うツールという認識でした。 しかし Nmap Scripting Engine という仕組みを知って、TLS/SSL やその他のアプリケーション通信のチェックを行う機能も持っているということを知れたので、この記事で紹介します。

Nmap Scripting Engine (NSE) とは

Nmap Scripting Engine (NSE) とは、Lua 言語で記載されたスクリプトを利用して、様々なネットワーク関連タスクを自動化することができる仕組みです。 自前でスクリプトを記載して拡張することも、汎用的な機能は nmap をインストールした段階で利用することもできます。

公式サイトからダウンロードできるスクリプトにも多種多様なものがあります。

Scriptの具体例

ポートスキャンとはあまり関係のないスクリプトの具体例として、SSL/TLS 関連のチェックスクリプトを紹介します。

ssl-enum-ciphers

TLS/SSL 通信で利用可能な暗号スイートの一覧を出力できます。
利用方法としては以下の通りです。

$ nmap --script ssl-enum-ciphers -p 443 www.example.com

# 実行結果は www.example.com ではなく
# CloudFront Distibution (TLSv1.2_2021) 設定のもの
PORT    STATE SERVICE
443/tcp open  https
| ssl-enum-ciphers:
|   TLSv1.2:
|     ciphers:
|       TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
|       TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
|       TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 (ecdh_x25519) - A
|     compressors:
|       NULL
|     cipher preference: server
|   TLSv1.3:
|     ciphers:
|       TLS_AKE_WITH_AES_128_GCM_SHA256 (ecdh_x25519) - A
|       TLS_AKE_WITH_AES_256_GCM_SHA384 (ecdh_x25519) - A
|       TLS_AKE_WITH_CHACHA20_POLY1305_SHA256 (ecdh_x25519) - A
|     cipher preference: server
|_  least strength: A

ssl-cert

証明書情報をチェックします。
curl -v などを使えば同様の表示も可能ですが、より簡潔に証明書だけを表示できます。

$ nmap --script ssl-cert -p 443 www.example.com

PORT    STATE SERVICE
443/tcp open  https
| ssl-cert: Subject: commonName=*.example.com/organizationName=Internet Corporation for Assigned Names and Numbers/stateOrProvinceName=California/countryName=US
| Subject Alternative Name: DNS:*.example.com, DNS:example.com
| Issuer: commonName=DigiCert Global G3 TLS ECC SHA384 2020 CA1/organizationName=DigiCert Inc/countryName=US
| Public Key type: ec
| Public Key bits: 256
| Signature Algorithm: ecdsa-with-SHA384
| Not valid before: 2025-01-15T00:00:00
| Not valid after:  2026-01-15T23:59:59
| MD5:   c339:79ff:8bc1:9a94:820d:6804:b368:1881
|_SHA-1: 310d:b7af:4b2b:c904:0c83:4470:1aca:08d0:c693:81e3

まとめ

他にもスクリプト一覧のページを見ると、有名な ssl 脆弱性や、HTTPヘッダ、ドメイン関連のチェックや、mysql や redis などのデータベース関連のチェックを行うスクリプトが提供されています。
もちろん、不要なチェックは攻撃と見做される可能性があるため、むやみやたらにチェックを行うべきではないですが、自分で構築したシステムのセキュリティチェックの一環として NSE を利用するという方法は有用そうです。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?