ホームページ  >  記事  >  トピック  >  IIS の短いファイル名漏洩の脆弱性の修復の紹介

IIS の短いファイル名漏洩の脆弱性の修復の紹介

coldplay.xixi
coldplay.xixi転載
2021-04-16 17:13:186511ブラウズ

IIS の短いファイル名漏洩の脆弱性の修復の紹介

1. IIS とは

インターネット インフォメーション サービス (IIS、以前はインターネット インフォメーション サーバーと呼ばれていました) インターネット インフォメーション サービスは、 Microsoft 社が提供するスケーラブルな Web サーバーは、HTTP、HTTP/2、HTTPS、FTP、FTPS、SMTP、NNTP などをサポートしています。当初は Windows NT シリーズで使用され、後に Windows 2000、Windows XP Professional、Windows Server 2003 およびそれ以降のバージョンに組み込まれましたが、Windows XP Home バージョンには IIS はありません。現在、IIS は Windows システムでのみ使用でき、他のオペレーティング システムでは使用できません。

2017 年 2 月の Netcraft のデータによると、IIS は「数百万の最もアクセス数の多い Web サイト」の中で 10.19% の市場シェアを獲得し、世界で 3 番目に大きいネットワーク サーバーになりました。 , Apache の 41.41%、Nginx の 28.34% に次いでいます。現在、Windows の一般的なバージョンには IIS サービスがデフォルトでインストールされていますが、IIS のセキュリティは業界から批判されており、IIS に高リスクの脆弱性がひとたび発生すると、その脅威は非常に深刻になります。

推奨 (無料): iis

IIS の脆弱性に触れる前に、まずさまざまな Windows システムでのデフォルトの組み込み IIS バージョンを理解しましょう。 IIS の脆弱性の影響範囲をよりよく理解して区別するには:

図 1 各 Windows バージョンのデフォルト IIS バージョン IIS の短いファイル名漏洩の脆弱性の修復の紹介

2.

完全なリストIIS の脆弱性の数

Qianlimu Lab は、過去 15 年間に IIS 関連の脆弱性を収集しました。(MS15-034) HTTP.sys リモートを含む、合計 39 件の中リスクおよび高リスクの脆弱性があります。 2015 年と 2016 年に発生したコード実行の脆弱性 (MS16-016) WebDAV 権限昇格の脆弱性は、特に広範囲に広がっています。

IIS の短いファイル名漏洩の脆弱性の修復の紹介

図 2 過去 15 年間の IIS 脆弱性の完全なリスト

過去 10 年間の上記の IIS 脆弱性を読んだ後、次のように疑問に思うかもしれません。なぜ見なかったのですか? この記事の主人公である「IIS ショート ファイルの脆弱性」についてはどうですか? ! IIS 脆弱性ファミリーを理解する前に、まず IIS ショート ファイルを通じて Windows 上の IIS のいくつかの機能について学びます。

3.

IIS ショート ファイル

1. IIS ショート ファイルの脆弱性の原因

Microsoft IIS ショート ファイル/フォルダ名情報の漏洩は、2010 年 8 月 1 日に脆弱性調査チームの Soroush Dalili によって初めて発見され、2010 年 8 月 3 日にベンダー (Microsoft Corporation) に通知されました。 Microsoft は 2010 年 12 月 1 日と 2011 年 1 月 4 日に、次のバージョンで修正されると回答しました。 2012 年 6 月 29 日に、この脆弱性は一般に公開されました (中リスク)。

この脆弱性は実際には、HTTP リクエスト内の古い DOS 8.3 Name Convention (SFN) チルダ (~) チルダによって引き起こされます。これにより、リモート攻撃者が Web ルート (アクセス可能ではない) の下にあるファイル名やフォルダー名を公開することが可能になります。攻撃者は、通常は外部から直接アクセスできない重要なファイルを見つけて、アプリケーション インフラストラクチャに関する情報を入手する可能性があります。

Microsoft IIS チルダによって引き起こされる情報漏洩は、世界中のネットワーク上で最も一般的な中リスクの脆弱性です。この問題は少なくとも 1990 年から存在していましたが、検出するのが難しく、解決するのが難しく、完全に無視するのが簡単であることが判明しています。

2.

IIS ショート ファイルの脆弱性の範囲と被害

2.1 影響を受けるバージョン:

##IIS 1.0、Windows NT 3.51
IIS 3.0、Windows NT 4.0 Service Pack 2

IIS 4.0、Windows NT 4.0 Option Pack
IIS 5.0、Windows 2000
IIS 5.1、Windows XP Professional および Windows XP Media Center Edition
IIS 6.0、Windows Server 2003 および Windows XP Professional x64 Edition
IIS 7.0、Windows Server 2008 および Windows Vista
IIS 7.5、Windows 7 (リモートで有効な または web.config なし)

IIS 7.5、Windows 2008 (クラシック パイプライン モード)

注: .Net Framework 4

を使用する場合、IIS は影響を受けません (上記のデータ ソース:
https:// www.securityfocus.com/archive/1/523424)

上記の影響を受けるスコープは主に HTTP GET メソッド用であり、同時に ASP.NET アプリケーションのインストールが必要であることが確認されています。時間。この脆弱性の発見者は 2014 年に再度開示しました。IIS 7.5 (Windows 2008 R2) および IIS 8.0 (Windows 2012) のテスト中に、GET メソッドの代わりに OPTIONS が使用された場合、リクエストに短いファイル名が存在すると、IIS A異なるエラーメッセージが返されます。この機能を利用して、攻撃者は最新の IIS バージョンの短いファイル名に基づいてファイルまたはディレクトリのスキャンを実装できます。

現在、IIS は短いファイル名を推測するための 6 つの HTTP メソッド (DEBUG、OPTIONS、GET、POST、HEAD、TRACE) をサポートしています。IIS 8.0、IIS 8.5、および IIS の短いファイル名は Qianlimu Laboratory によって検証されています。 10.0 OPTIONS メソッドと TRACE メソッドを使用すると、ファイル名を正常に推測できます。したがって、上記の影響を受けるバージョンを次のバージョンに追加する必要があります:

IIS 8.0、Windows 8、Windows Server 2012

IIS 8.5、Windows 8.1、Windows Server 2012 R2

IIS 10.0、Windows 10、Windows Server 2016

IIS のすべてのバージョンに短いファイル名の漏洩の問題があることがわかりますが、Microsoft はこの問題を無視しているようです。脆弱性の発見者に対する Microsoft の回答から、IIS ショート ファイルの脆弱性はセキュリティ更新基準を満たしておらず、次の 論理バージョン でいつ解決されるかを決定する必要があることがわかります。

2.2 脆弱性の危険性:

2.2.1 「~」文字を使用して短いファイル/フォルダー名を推測して公開する (主な危険性)

Windows 8.3 形式での MS-DOS 互換の (短い) ファイル名の生成をサポートし、MS-DOS または 16 ビット Windows ベースのプログラムがこれらのファイルにアクセスできるようにします。 cmd の下に IIS Web サイトのルート ディレクトリ C:\inetpub\wwwroot を入力し、「dir /x」と入力して短いファイル名の効果を確認します。

IIS の短いファイル名漏洩の脆弱性の修復の紹介

図 3 IIS の短い名前ファイル名

上の図は、Windows 10 に組み込まれている IIS 10.0 の既定のサイト ルート ディレクトリです。iisstart.htm および iisstart.png は、Web サイトの既定のファイルです。ファイル名のプレフィックス文字の長さは異なります。 9 文字に達するため、短いファイル名はありません。 IIS10test.html は手動で追加された Web サイト ファイルで、ファイル名のプレフィックス文字長は 9 文字に達し、対応する短いファイル名は IIS10T~1.HTM です。この機能により、短いファイル名にアクセスすることで、対応するファイルに間接的にアクセスできます。

短いファイル名の長さは固定 (xxxxxx~xxxxx) であるため、攻撃者は短いファイル名を直接ブルート フォースして、対応するファイルにアクセスすることができます。

たとえば、データベース バックアップ ファイルbackup_20180101.sqlがあり、それに対応する短いファイル名はbackup~1.sqlです。したがって、攻撃者は完全なファイル名を解析することなく、backup~1.sql をブルートフォースクラッキングすることでファイルをダウンロードできます。

IIS の短いファイル名には次の特徴があります:

1. 最初の 6 文字のみが直接表示され、後続の文字は ~1 で指定されます。同様のファイル名を持つファイルが複数ある場合、数値 1 を増やすこともできます (名前の最初の 6 桁が同じであり、サフィックス名の最初の 3 桁が同じである必要があります);

2. サフィックス名は最大 3 桁までしか使用できず、冗長な部分は切り捨てられ、3 文字を超える長いファイルは短いファイル名を生成します;

3. すべての小文字は大文字に変換されます。

4. 長いファイル名には複数の「. 」が含まれており、ファイル名の最後の「.」を短いファイル名のサフィックスとして使用します;

5. 長いファイル名のプレフィックス/フォルダー名文字長は 0 ~ 9 および Aa ~ Zz の範囲に準拠し、9 文字以上である必要があります。短いファイル名が生成されます。スペースやその他の特殊文字が含まれている場合は、それに関係なく短いファイルが生成されます。

.net が有効になっている IIS では、GET メソッドを使用して短いファイル名を激しく列挙できます。その理由は、攻撃者がワイルドカード文字 "*" と "?" を使用して送信するためです。 IIS への要求。IIS が「~」要求を含むファイル パスを受信した場合、その応答は異なります。つまり、返される HTTP ステータス コードとエラー メッセージが異なります。この機能に基づいて、HTTP 応答に基づいて、使用可能なファイルと使用できないファイルを区別できます。次の図に示すように、IIS のバージョンによって返される情報は異なります。

IIS の短いファイル名漏洩の脆弱性の修復の紹介

図 4 IIS 5.0 ~ IIS 7.X の短いファイルの HTTP 応答情報の推測

この図は、この脆弱性の発見者である Soroush Dalili が調査報告書で示した、合法および違法な IIS ショート ファイルの推測応答情報を示したものです。

構築された既存のショート ファイル名にアクセスすると、次のエラーが返されます。 404;

存在しない構築された短いファイル名にアクセスすると、400;

IIS の短いファイル名漏洩の脆弱性の修復の紹介

図 5 IIS ステータス コード推測プロセスの使用

上記の方法は、下位バージョンの IIS ASP.NET 環境で GET メソッドを使用して、短いファイル名が推測されるまで繰り返し推測します。

ただし、Qianlimu Laboratory は、IIS の上位バージョン (IIS 8.0/IIS 8.5/IIS 10.0 など) では、asp.net がインストールされていない場合でも、オプションを使用して実際の環境で検証しました。および TRACE メソッド を正しく推測できます。これら 2 つのメソッドによって返される HTTP ステータス コードの種類は、上記のスクリーンショットとは若干異なりますが、これらは別の使用方法です。

2.2.2 .Net Framework のサービス拒否攻撃 (サイドハザード)

Soroush Dalili の調査によると、攻撃者がフォルダー名リクエストで違法な .Net ファイルを送信すると、.NeFrameworkすべてのルート ディレクトリを再帰的に検索し、Web サイトのリソースを消費し、DOS の問題を引き起こします。 Microsoft は、この危険性は回復可能な DOS であり、後続の SP バージョンで変更されると考えているため、ここでは説明しません。

3. IIS ショート ファイルの脆弱性の再発と悪用

##3.1 IIS ショート ファイルの脆弱性の再発

3.1.1 脆弱性環境の構築

Win 10 ベースのデフォルト IIS 10.0 をインストールします (APS.NET はインストールされていません)

IIS ショート ファイル脆弱性スキャン Java プログラム (Java 環境は変数)

3.1.2 脆弱性環境デバッグの準備

IIS が正常にインストールされると、デフォルトで C ドライブ ディレクトリに intpub ディレクトリが生成されます。 Web サイトは C:\inetpub\ wwwroot にあります。このとき、ルート ディレクトリに短いファイル名があるかどうかを確認してください:

IIS の短いファイル名漏洩の脆弱性の修復の紹介

上の図からわかるように、デフォルトの IIS 10.0 Web サイトのルート ディレクトリには短いファイル名がなく、デフォルトの htm ファイルと png ファイルのみがあり、名前の長さが要件を満たしていません。短いファイルを生成するための要件。以下では、IIS ショート ファイル スキャナーを使用して、ショート ファイル情報漏洩の脆弱性の有無を検出します。

IIS の短いファイル名漏洩の脆弱性の修復の紹介

3.1.3 脆弱性環境の再現

Web サイトを手動で作成します。長いファイルの名前は「IIS10test.html」、対応する短いファイル名「IIS10T~1.HTM」が自動的に生成されます。

IIS の短いファイル名漏洩の脆弱性の修復の紹介

IIS の短いファイル スキャナを使用して再度スキャンし、スキャンにより、短いファイルの脆弱性があることがわかり、HTTP OPTIONS メソッドによって短いファイル名が正常に推測されました: IIS10T.HTM

IIS の短いファイル名漏洩の脆弱性の修復の紹介

#脆弱性を変更しますスキャナーを使用している場合は、OPTIONS メソッドに注目して、正常に推測できる他の HTTP メソッドがあるかどうかを試してください。

IIS の短いファイル名漏洩の脆弱性の修復の紹介

検証の結果、OPTIONS メソッドに加えて、HTTP TRACE メソッドでも短いファイル名を正常に推測できることがわかりました。

3.1.4 IIS の脆弱性 OPTIONS および TRACE メソッドの推測分析

OPTIONS メソッドの推測分析

上記の OPTIONS メソッドは、短いファイル名の推測を 196 回要求したため、推測が成功すると 404 が返されます。推測が失敗した場合は 200 が返されます。失敗した組み合わせは多数あるため、以下では主に、404 推測が成功したリクエストが OPTIONS を通じて短いファイル名 IIS10T.HTM をどのように取得できるかを分析します。方法。以下に示すように:

IIS の短いファイル名漏洩の脆弱性の修復の紹介

TRACE メソッドの推測分析

TRACE メソッドによる推測のプロセスは、基本的に上記と同じです。ただし、この HTTP メソッドは、推測が失敗したときに返されるステータス コードが 200 ではなく、501 (実行されない) である点を除きます。

IIS の短いファイル名漏洩の脆弱性の修復の紹介3.2 IIS ショート ファイルの脆弱性エクスプロイト

1. Go Deeper ファイルの完全名を展開して推測する

IIS のショート ファイルの脆弱性によって推測された短いファイル名は、IIS でアクセスできるようになる前にフル ネームを推測し続ける必要があります。つまり、IIS はサポートしていません。セキュリティ上の理由により、短いファイル名でアクセスできません。以下は、Soroush Dalili によって与えられたファイルの完全名を推測するためのいくつかの方法です。

1) 対象の Web サイトまたは同じ種類の Web サイトをクロールすることにより、クロールアウトして辞書ライブラリを構築し、残りの文字を推測するために取得した短いファイル名;

2) fuzzdb (アプリケーション ファジング データベース) を使用して推測;

3) OWASP の dirbuster (パスと Web ページのブルート フォース クラッキング) と組み合わせるツール)。

Github には、Python を使用して上記の方法を実装し、IIS ショート ファイルの脆弱性をうまく利用して Web サイト バックエンドのユーザー名とパスワードを取得した研究者がいます。

注: 調査レポートのアドレス: https://webbreacher.com/2014/10/23/tilde-enumeration/ (推奨)

Python プログラムのダウンロード: https://github.com /WebBreacher/tilde_enum (推奨)

2. 短いファイル機能をサポートするソフトウェアと組み合わせる (Apache、WordPress)

Acunetix の調査によると、Windows で Apache を実行しているときに、長いファイルがが作成されたら、長いファイルを推測する必要はなく、短いファイルを直接ダウンロードできます。たとえば、backup_20180101.sql という長いファイルには BACKUP~1.SQL という短いファイルがあり、攻撃者は BACKUP~1.SQL を送信するだけでファイルに直接アクセスしてダウンロードできます。

さらに、一部の学者は、WordPress バックアップ プラグインをインストールした後、短いファイル名を使用して WordPress ブログのバックアップ ファイルに正常にアクセスしたと述べています。

3. 基本認証と Windows 認証のバイパス

Soroush Dalilide の調査では、特定の IIS サーバー構成では基本認証と Windows 認証がバイパスできることにも言及しています。認証ディレクトリを推測してください。たとえば、認証が有効になっているディレクトリ内のファイルにアクセスする必要がある場合 (たとえば、このディレクトリが「AuthNeeded」である場合)、次の方法でアクセスできます:

/AuthNeeded::$Index_Allocation/* ~1*/.aspx または

/AuthNeeded:$I30:$Index_Allocation/*~1*/.aspx

4. IIS ショート ファイルの脆弱性制限

この脆弱性にはいくつかの制限があります:

1) この脆弱性は最初の 6 文字のみを決定できます。その後の文字が長すぎる場合、または特殊文字が含まれている場合は、推測することが困難です。

2) ファイル名自体が短すぎて (短いファイル名がない)、推測できない場合;

3) ファイル名の最初の 6 桁にスペースが含まれている場合、ファイル名の短いファイル名は、 8.3 形式は追加されるため、実際のファイル名とは一致しません;

IIS の短いファイル名漏洩の脆弱性の修復の紹介

4) フォルダー 名の最初の 6 文字が「.」で区切られている場合、スキャナーはそれがフォルダーではなくファイルであると認識し、最終的に誤ったアラームが表示されます。

IIS の短いファイル名漏洩の脆弱性の修復の紹介

IIS の短いファイル名漏洩の脆弱性の修復の紹介

#5) 中国語のファイルや中国語のフォルダーを含め、中国語のファイル名はサポートされていません。 1 つの中国語文字は 2 つの英語文字に相当するため、4 文字を超える中国語文字は短いファイル名を生成しますが、IIS は中国語の推測をサポートしていません。

5.

IIS ショート ファイル脆弱性ソリューション

5.1 一般的な脆弱性修復ソリューション

1) CMD が NTFS 8.3 ファイル形式を閉じるサポート

例: (1 はオフを意味し、0 はオンを意味します)

Windows Server 2008 R2:

ショート ファイル名機能がオンになっているかどうかをクエリします:

fsutil 8##dot3name queryこの機能をオフにします:

fsutil 8dot3name set 1

Windows Server 2003:

この機能をオフにする:

fsutil の動作set disable8dot3 1

システムごとにシャットダウン コマンドは若干異なりますが、この機能はデフォルトで有効になっており、ほとんどのユーザーは有効にする必要はありません。

2) レジストリを変更してショート ファイル名機能を無効にします

ショートカット キー Win R でコマンド ウィンドウを開き、regedit と入力してレジストリ ウィンドウを開きます

パスを見つけます:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem、NtfsDisable8dot3NameCreation の値を 1 に設定します。1 は短いファイル名形式を作成しないことを意味します

変更が完了したら、次のことを行う必要があります。システムを再起動して有効にしてください

注: この方法では、NTFS8.3 形式のファイル名の作成のみを禁止できます。既存のファイルの短いファイル名は削除できないため、消える前に再度コピーする必要があります。

次の 2 つのメソッドは GET メソッドを軽減する場合にのみ適しており、他のメソッドは推測される可能性があります。

3) Web サービス拡張機能 - ASP.NET

4) netFramework をバージョン 4.0 以降にアップグレードします

以上がIIS の短いファイル名漏洩の脆弱性の修復の紹介の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcsdn.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。