NTLM(エヌティーエルエム)とは?Kerberosの代わりに今も動く古い認証¶
最終確認: 2026-10-28
30秒で復習¶
- NTLM=Windows の古い認証の仕組み。 サーバーが出す問題(チャレンジ)に、パスワードから作った答えを返してログインする。今の標準は Kerberos だが、使えないときの予備として今も動いている。
- Kerberos が使えないと、自動で NTLM に切り替わる:IPアドレスで接続、SPN がない・重複、DC に届かない、ドメインに入っていない PC、ローカルアカウントなど。
- サーバーに接続したときのパスワード入力画面は、NTLM そのものではない。「自動ログイン(SSO)ができなかった」合図で、NTLM に切り替わる場面(IP 接続・ドメイン外など)と重なりやすい。
- 弱点は3つ:Pass-the-Hash(パスワードの代わりにハッシュで入れる)、NTLM リレー(答えを横流しして別のサーバーに入る)、総当たり(盗んだ答えから元のパスワードを解く)。
- 守り方:NTLMv1 と LM を禁止、SMB 署名・LDAP 署名・EPAでリレーを防ぐ、LLMNR・NBT-NS を止める、どこで NTLM が使われているか監査して減らす。
- Microsoft は NTLM を非推奨にしていて、NTLMv1 は Windows 11 24H2・Windows Server 2025 で削除された。今のうちに Kerberos へ寄せる。
- 覚え方:「Kerberos はチケットを見せる、NTLM は合言葉の問答。問答は横流しできてしまう」
こんな場面で出会う¶
\\192.168.x.x\shareのように IP アドレスで共有フォルダーを開いたら、パスワードを聞かれた → Kerberos が使えず NTLM に切り替わった場面- 監査やセキュリティ診断で「NTLMv1 が使われています」「SMB 署名が無効です」と指摘される
- 古い複合機・NAS の「AD 連携」設定に NTLM の文字がある
用語の正式名称と読み方¶
| 用語 | 読み方・正式名称 | 意味 |
|---|---|---|
| NTLM | NT LAN Manager | Windows NT 時代からある、チャレンジ/レスポンス型の認証 |
| LM | LAN Manager | NTLM よりさらに古い方式。とても弱く、今は使わない |
| NTLMv1 / NTLMv2 | — | NTLM の版。v1 は弱く削除済み、今使うなら v2 だけ |
| NT ハッシュ | NT hash | パスワードから作る値(MD4)。ソルトがないので、同じパスワードなら誰でも同じ値になる |
| チャレンジ/レスポンス | challenge / response | サーバーが乱数(問題)を出し、クライアントがパスワード由来の値で答えを計算して返す方式 |
| Negotiate | SPNEGO | 「Kerberos を試して、だめなら NTLM」と自動で選ぶ仕組み。IIS・Kestrel の Windows 認証もこれ |
| Netlogon | ネットログオン | サーバーが「この答えで合ってる?」と DC に確かめるときの通り道 |
| EPA | Extended Protection for Authentication | 認証を TLS の通信に結び付けて、リレーを防ぐ仕組み(Webサーバー向け) |
質問:NTLMとは? どんな流れでログインする?¶
答え: サーバーが毎回ちがう乱数(チャレンジ)を出し、PC はパスワードから作った NT ハッシュでその乱数を計算して返す。サーバーは自分では答え合わせができないので、DC に「この答えで合ってる?」と聞く。
- NEGOTIATE:PC が「NTLM でログインしたい」と伝える
- CHALLENGE:サーバーが乱数(問題)を返す
- AUTHENTICATE:PC は NT ハッシュと乱数から答えを計算して返す。パスワードそのものは送らない
- サーバーは、問題と答えを DC に送って確かめてもらう(Netlogon)。ローカルアカウントなら、サーバーが自分で確かめる
- DC が「合っている」と返せば、ログイン成功
イメージ(たとえ話)¶
- Kerberos=受付で入館証(チケット)をもらい、各部屋で見せる。 入館証には「どの部屋用か」が書いてあり、部屋も本物か確かめられる。
- NTLM=部屋の前で、合言葉の問答をする。 番人が毎回ちがう問題を出し、答えを本部に電話して確かめる。
- 問答の弱点は、相手が本物の番人か確かめないこと。偽の番人が、本物の番人の問題をそのまま横流しして答えさせれば、偽の番人が中に入れてしまう(=リレー)。
質問:Kerberosとは何が違う?¶
| 観点 | Kerberos | NTLM |
|---|---|---|
| しくみ | DC が発行したチケットを見せる | サーバーの問題に答える(チャレンジ/レスポンス) |
| サーバーが本物か | 確かめられる(相互認証) | 確かめない → リレーされやすい |
| DC への問い合わせ | チケットがあれば不要 | ログインのたびにサーバーが DC に聞く |
| 必要なもの | DC に届く(88番)、名前(FQDN)での接続、SPN | ほぼ何もいらない(だから予備として残っている) |
| 委任(代理でアクセス) | できる | できない(ダブルホップで失敗する) |
| 暗号 | AES | NT ハッシュ(MD4)+HMAC-MD5(v2) |
| 主な攻撃 | Kerberoasting、Golden Ticket | Pass-the-Hash、リレー、総当たり |
質問:どんなときにNTLMに切り替わる?¶
答え: Windows 認証は Negotiate で、まず Kerberos を試し、だめなら黙って NTLM に切り替える。利用者からは違いが見えないので、「Kerberos のつもりが実は NTLM」がよく起きる。
| 原因 | 例 | 直し方 |
|---|---|---|
| IPアドレスで接続 | \\10.0.0.5\share、http://10.0.0.5/ |
名前(FQDN)で接続する。IP に SPN を付ける方法もあるが、まず名前で |
| SPN がない・重複している | Webアプリを gMSA で動かしたが SPN 未登録 | setspn -Q で確かめて登録する(→Kerberosとは) |
| DC に届かない | 88番ポートが FW で閉じている、VPN の外から | 経路を開ける。在宅なら VPN・クラウド Kerberos |
| ドメイン外の PC | ワークグループの PC、取引先の PC | ドメインに参加させる、またはクラウドの認証(OIDC)へ |
| ローカルアカウント | .\Administrator、サーバー名\user |
ローカルアカウントは Kerberos を使えない。ドメインアカウントか LAPS で管理 |
| アプリが NTLM 決め打ち | 古い業務アプリ、古い NAS・複合機 | 製品の更新、設定で Negotiate/Kerberos に変える |
質問:サーバーに接続したときにパスワードを聞かれるのは、NTLMのせい?¶
答え: 半分正解。あの画面(Windows セキュリティの資格情報の入力画面)は NTLM そのものではなく、「自動ログイン(SSO)ができなかった」合図。ふだんは Kerberos でも NTLM でも、Windows にログオンしたときの情報を自動で渡すので、画面は出ない。ただ、画面が出るのは IP アドレスで接続・ドメイン外の PC・別ドメインのサーバーなど、NTLM に切り替わる場面と重なりやすい。だから「NTLM=パスワードを聞かれるもの」という印象になりやすい。
| よくある場面 | 何が起きている | 直し方 |
|---|---|---|
\\10.0.0.5\share のように IP で開くと聞かれる |
Kerberos が使えず NTLM に切り替わり、さらにサーバーが別ドメイン・ワークグループなので、今の資格情報が通らない | 名前(FQDN)で接続する。サーバーをドメインに参加させる |
| 社内の Webアプリで、ブラウザが聞いてくる | ブラウザがそのサイトをイントラネット扱いしていないので、資格情報を自動で渡さない(app.corp.example.com のようにドットを含む名前や IP は、インターネット扱いになりやすい) |
グループポリシーでサイトをイントラネット ゾーンに登録する。Edge・Chrome は AuthServerAllowlist ポリシーでも指定できる |
| 自宅の PC・ドメイン外の PC から | 自動で渡せるドメインの資格情報が、そもそもない | 毎回の入力になる。会社の PC+VPN、またはクラウドの認証(OIDC)へ |
| パスワードを変えたあとから聞かれる | 資格情報マネージャーに古いパスワードが保存されている | 「資格情報マネージャー」で、そのサーバーの保存情報を消す |
| 入力しても何度も聞かれる | アクセス権がない、または Kerberos も NTLM も失敗している(SPN の重複、時刻のずれ、NTLM の制限など) | アクセス権を確認。klist、イベント 4625(ログオン失敗)・4771(Kerberos の事前認証失敗)で理由を見る |
| サイトが Basic 認証 | NTLM ですらなく、パスワードがほぼそのまま(Base64)送られる。F12 で WWW-Authenticate: Basic と見える |
HTTPS は必須。できれば Windows 認証や OIDC へ |
Kerberos か NTLM かを見分ける小ワザ
ブラウザの開発者ツール(F12)→「ネットワーク」で、要求の Authorization ヘッダーを見る。Negotiate YII… で始まれば Kerberos、Negotiate TlRMTVNT… や NTLM TlRMTVNT… で始まれば NTLM(TlRMTVNT は「NTLMSSP」を Base64 にしたもの)。ファイル共有なら、接続したあとに klist で、そのサーバーの cifs/ のチケットがあるかを見る。
質問:NTLMは何が危ない?(攻撃者の視点)¶
| 攻撃 | 何をする | 対策 |
|---|---|---|
| NTLM リレー | 攻撃者が中継役になり、被害者の PC に来た問題と答えを別のサーバーへ横流しして、被害者として入る。ファイルサーバー(SMB)、AD の LDAP、証明書サービスの Web 登録(ADCS)が狙われやすい | SMB 署名を必須、LDAP 署名+チャネルバインディング(→LDAPとは)、Web は EPA と HTTPS |
| 認証の強制(コアーション) | PetitPotam・PrinterBug などで、DC やサーバー自身に攻撃者のところへ NTLM 認証させ、それをリレーする | 不要な Print Spooler を DC で止める、上のリレー対策、パッチ |
| Pass-the-Hash | PC から盗んだ NT ハッシュをそのまま使ってログインする。パスワードを知らなくてよい | ローカル管理者のパスワードを PC ごとに変える(LAPS)、Credential Guard、管理者は Protected Users(NTLM を使わない) |
| 答えの盗み聞き+総当たり | 社内で LLMNR・NBT-NS の名前解決に偽の返事をして(Responder など)、NTLM の答えを集め、持ち帰ってパスワードを解く | LLMNR・NBT-NS を止める、長いパスワード |
| NTLMv1・LM のダウングレード | 弱い v1 で答えさせ、短時間で解く | 「NTLMv2 応答のみ送信、LM と NTLM を拒否」(LmCompatibilityLevel=5) |
Pass-the-Hash がやっかいな理由
NT ハッシュにはソルトがなく、パスワードを変えるまでずっと同じ値。しかも NTLM は「ハッシュを持っている=本人」と扱う。だから1台の PC で盗まれたハッシュで、同じパスワードのほかの PC にも入れる。ローカル管理者のパスワードを全台同じにしているのが、いちばん危ない。
質問:会社としてどう減らす? どう守る?¶
答え: いきなり止めると業務が止まるので、「監査 → 原因を直す → 例外を絞って制限」の順に進める。
| 手順 | やること |
|---|---|
| ① すぐやる | LM・NTLMv1 を拒否(LmCompatibilityLevel=5)。SMB 署名・LDAP 署名を必須に。LLMNR・NBT-NS を止める。DC の Print Spooler を止める |
| ② 監査する | グループポリシーの「NTLM を制限する:NTLM 認証を監査する」を有効にする。DC のイベント 4776、各サーバーの 4624(認証パッケージ=NTLM)、Microsoft-Windows-NTLM/Operational のログで「誰が・どこへ」を調べる |
| ③ 原因を直す | IP 接続を名前に、SPN の登録、古い機器の更新。上の「切り替わる原因」の表を順につぶす |
| ④ 制限する | 「NTLM を制限する」で、例外のサーバーだけ許可して残りは拒否。管理者は Protected Users に入れて NTLM を使わせない |
# 自分のログオンが Kerberos か NTLM か(セキュリティログ 4624 の「認証パッケージ」)
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624} -MaxEvents 50 |
Where-Object { $_.Message -match 'NTLM' } | Select-Object TimeCreated, Message -First 5
# いま持っている Kerberos チケット(接続先のチケットがなければ NTLM が使われた可能性)
klist
- Microsoft は NTLM を置き換えるため、IAKerb(DC に直接届かなくても Kerberos を使う)や ローカル KDC(ローカルアカウントでも Kerberos)を進めている。NTLM が要らなくなる場面は今後増える。
具体例¶
| 場面 | 確認すること |
|---|---|
| IIS・Kestrel の Windows 認証で、裏の SQL Server に入れない(ダブルホップ) | NTLM になっていないか。SPN を登録して Kerberos+制約付き委任にする |
| 監査で「NTLMv1 が使われている」と言われた | イベント 4624 の「パッケージ名(NTLM のみ)」で v1 の相手を探し、設定を変えて v2 のみにする |
\\IPアドレス\共有 を開くとパスワードを聞かれる |
名前で開き直す。別ドメインのサーバーなら、そのドメインのアカウントで入る |
| 複合機・NAS が AD 連携で NTLM を使っている | 製品の更新と Kerberos・LDAPS 対応。だめなら例外として記録し、ネットワークを分ける |
| ペネトレーションテストで Responder に答えを取られた | LLMNR・NBT-NS を止める。SMB 署名を必須にする |
| ADCS の Web 登録がある | HTTPS+EPA を有効に、NTLM を無効に(リレーで証明書を取られる攻撃への対策) |
関連メモ¶
- Kerberosとは?(AD のチケット認証)
- LDAPとは?(LDAP 署名・チャネルバインディング)
- gMSA(SPN を登録するサービス用アカウント)
- Kestrelとは?(Negotiate 認証)
- プロキシとリバースプロキシ(攻撃者から見た中継)
確認したいこと¶
- ドメインで NTLMv1・LM はもう拒否しているか(LmCompatibilityLevel)
- SMB 署名・LDAP 署名・チャネルバインディングは必須になっているか
- LLMNR・NBT-NS は止めているか
- NTLM の監査を有効にして、どのサーバー・機器が NTLM を使っているか一覧にしたか
- ローカル管理者のパスワードは PC ごとに違うか(LAPS)