IIS - Internet Information Services
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
テスト実行可能ファイル拡張子:
asp
aspx
config
php
302を受け取った任意のIISサーバーでは、Hostヘッダーを削除し、HTTP/1.0を使用して、レスポンス内のLocationヘッダーが内部IPアドレスを指す可能性があります:
内部IPを開示する応答:
.configファイルをアップロードし、それを使用してコードを実行できます。これを行う方法の1つは、HTMLコメント内のファイルの最後にコードを追加することです: ここから例をダウンロード
この脆弱性を悪用するための詳細情報と技術はこちらで確認できます。
私が作成したリストをダウンロードしてください:
これは、以下のリストの内容を統合して作成されました:
https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/IIS.fuzz.txt http://itdrafts.blogspot.com/2013/02/aspnetclient-folder-enumeration-and.html https://github.com/digination/dirbuster-ng/blob/master/wordlists/vulns/iis.txt https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/SVNDigger/cat/Language/aspx.txt https://raw.githubusercontent.com/danielmiessler/SecLists/master/Discovery/Web-Content/SVNDigger/cat/Language/asp.txt https://raw.githubusercontent.com/xmendez/wfuzz/master/wordlist/vulns/iis.txt
拡張子を追加せずに使用してください。必要なファイルにはすでにそれが含まれています。
完全な詳細は次のリンクで確認できます: https://blog.mindedsecurity.com/2018/10/from-path-traversal-to-source-code-in.html
要約すると、アプリケーションのフォルダ内に複数のweb.configファイルがあり、"assemblyIdentity"ファイルと"namespaces"への参照があります。この情報を使用して、実行可能ファイルの場所を知り、それをダウンロードすることが可能です。 ダウンロードしたDllからは、新しいnamespacesを見つけることもでき、アクセスしてweb.configファイルを取得し、新しいnamespacesとassemblyIdentityを見つけることができます。 また、connectionstrings.configおよびglobal.asaxファイルには興味深い情報が含まれている可能性があります。\
.Net MVCアプリケーションでは、web.configファイルは、"assemblyIdentity" XMLタグを通じてアプリケーションが依存する各バイナリファイルを指定する重要な役割を果たします。
web.configファイルにアクセスする例は以下に示されています:
このリクエストは、次のようなさまざまな設定や依存関係を明らかにします。
EntityFramework バージョン
ウェブページ、クライアント検証、および JavaScript のための AppSettings
認証とランタイムのための System.web 設定
System.webServer モジュール設定
Microsoft.Owin、Newtonsoft.Json、および System.Web.Mvc などの多数のライブラリのための Runtime アセンブリバインディング
これらの設定は、/bin/WebGrease.dll のような特定のファイルがアプリケーションの /bin フォルダー内に存在することを示しています。
/global.asax や /connectionstrings.config(機密パスワードを含む)など、ルートディレクトリに見つかるファイルは、アプリケーションの設定と動作に不可欠です。
MVC アプリケーションは、各ファイルでの繰り返し宣言を避けるために、特定の名前空間用に追加の web.config ファイル を定義します。これは、別の web.config をダウンロードするリクエストで示されています。
カスタムネームスペースの言及は、/binディレクトリに存在する「WebApplication1」という名前のDLLを示唆しています。これに続いて、WebApplication1.dllをダウンロードするリクエストが表示されます:
これは、/bin ディレクトリに System.Web.Mvc.dll や System.Web.Optimization.dll のような他の重要な DLL の存在を示唆しています。
DLL が WebApplication1.Areas.Minded という名前空間をインポートするシナリオでは、攻撃者は /area-name/Views/ のような予測可能なパスに他の web.config ファイルが存在することを推測するかもしれません。これらのファイルには、特定の構成や /bin フォルダ内の他の DLL への参照が含まれています。例えば、/Minded/Views/web.config へのリクエストは、別の DLL WebApplication1.AdditionalFeatures.dll の存在を示す構成や名前空間を明らかにすることがあります。
こちらから
次のようなエラーが表示された場合:
サーバーがHostヘッダー内の正しいドメイン名を受信しなかったことを意味します。 ウェブページにアクセスするには、提供されたSSL証明書を確認し、そこにドメイン/サブドメイン名があるかもしれません。もしそこにない場合は、VHostsをブルートフォースして正しいものを見つける必要があります。
この技術を使用して、発見された各フォルダー内のフォルダーとファイルを列挙することができます(基本認証が必要な場合でも)。 この技術の主な制限は、サーバーが脆弱な場合、各ファイル/フォルダーの名前の最初の6文字とファイルの拡張子の最初の3文字しか見つけられないことです。
https://github.com/irsdl/IIS-ShortName-Scannerを使用してこの脆弱性をテストできます:java -jar iis_shortname_scanner.jar 2 20 http://10.13.38.11/dev/dca66d38fd916317687e1390a420c3fc/db/
元の研究:https://soroush.secproject.com/downloadable/microsoft_iis_tilde_character_vulnerability_feature.pdf
metasploitも使用できます:use scanner/http/iis_shortname_scanner
発見されたファイルの最終名を見つけるための良いアイデアは、スクリプトhttps://github.com/Invicti-Security/brainstorm/blob/main/fuzzer_shortname.pyのようにLLMsにオプションを尋ねることです。
バイパス基本認証(IIS 7.5)を試みる:/admin:$i30:$INDEX_ALLOCATION/admin.php
または/admin::$INDEX_ALLOCATION/admin.php
この脆弱性と前のものを組み合わせて新しいフォルダーを見つけ、認証をバイパスすることができます。
ASP.NETにはデバッグモードが含まれており、そのファイルはtrace.axd
と呼ばれます。
これは、一定期間にアプリケーションに対して行われたすべてのリクエストの非常に詳細なログを保持します。
この情報には、リモートクライアントのIP、セッションID、すべてのリクエストおよびレスポンスのクッキー、物理パス、ソースコード情報、さらにはユーザー名やパスワードが含まれる可能性があります。
https://www.rapid7.com/db/vulnerabilities/spider-asp-dot-net-trace-axd/
ASPXAUTHは次の情報を使用します:
validationKey
(文字列):署名検証に使用する16進エンコードされたキー。
decryptionMethod
(文字列):(デフォルトは「AES」)。
decryptionIV
(文字列):16進エンコードされた初期化ベクター(デフォルトはゼロのベクター)。
decryptionKey
(文字列):復号化に使用する16進エンコードされたキー。
ただし、一部の人々はこれらのパラメータのデフォルト値を使用し、ユーザーのメールをクッキーとして使用します。したがって、ASPXAUTHクッキーを使用している同じプラットフォームを使用しているウェブを見つけ、攻撃対象のサーバーでなりすましたいユーザーのメールでユーザーを作成できれば、2番目のサーバーのクッキーを最初のサーバーで使用してユーザーになりすますことができるかもしれません。 この攻撃はこの書き込みで成功しました。
完全なレポートはこちら:コードのバグがユーザーによって提供されたパスワードを適切にチェックしなかったため、パスワードハッシュがキャッシュ内のキーにヒットする攻撃者は、そのユーザーとしてログインできるようになります。
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)