IIS - Internet Information Services
テスト実行可能ファイル拡張子:
asp
aspx
config
php
内部IPアドレスの漏洩
302を受け取った任意のIISサーバーでは、Hostヘッダーを削除し、HTTP/1.0を使用して、レスポンス内のLocationヘッダーが内部IPアドレスを指す可能性があります:
内部IPを開示する応答:
.configファイルの実行
.configファイルをアップロードし、それを使用してコードを実行できます。これを行う方法の1つは、HTMLコメント内のファイルの最後にコードを追加することです: ここから例をダウンロード
この脆弱性を悪用するための詳細情報と技術はこちらで確認できます。
IISディスカバリブルートフォース
私が作成したリストをダウンロードしてください:
これは、以下のリストの内容を統合して作成されました:
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
要約すると、アプリケーションのフォルダ内に「assemblyIdentity」ファイルと「namespaces」への参照を含むいくつかのweb.configファイルがあります。この情報を使用して、実行可能ファイルの場所を知り、それをダウンロードすることが可能です。 ダウンロードした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(機密パスワードを含む)など、ルートディレクトリに見つかるファイルは、アプリケーションの設定と動作に不可欠です。
名前空間と Web.Config
MVC アプリケーションは、各ファイルでの繰り返し宣言を避けるために、特定の名前空間用に追加の web.config ファイル を定義します。これは、別の web.config をダウンロードするリクエストで示されています。
DLLのダウンロード
カスタムネームスペースの言及は、/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**の存在を示す構成や名前空間を明らかにすることができます。
一般的なファイル
こちらから
HTTPAPI 2.0 404 エラー
次のようなエラーが表示された場合:
これは、サーバーがHostヘッダー内の正しいドメイン名を受信しなかったことを意味します。 ウェブページにアクセスするには、提供されたSSL証明書を確認し、そこにドメイン/サブドメイン名があるかもしれません。もしそこにない場合は、VHostsをブルートフォースして正しいものを見つける必要があります。
確認すべき古いIISの脆弱性
Microsoft IISチルダ文字「~」脆弱性/機能 – 短いファイル/フォルダー名の漏洩
この技術を使用して、発見された各フォルダー内のフォルダーとファイルを列挙することができます(基本認証が必要な場合でも)。 この技術の主な制限は、サーバーが脆弱な場合、各ファイル/フォルダーの名前の最初の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
基本認証のバイパス
基本認証(IIS 7.5)をバイパスしようとする場合:/admin:$i30:$INDEX_ALLOCATION/admin.php
または/admin::$INDEX_ALLOCATION/admin.php
この脆弱性と前のものを組み合わせて新しいフォルダーを見つけ、認証をバイパスすることができます。
ASP.NET Trace.AXD 有効なデバッグ
ASP.NETにはデバッグモードが含まれており、そのファイルはtrace.axd
と呼ばれます。
これは、一定期間にアプリケーションに対して行われたすべてのリクエストの非常に詳細なログを保持します。
この情報には、リモートクライアントのIP、セッションID、すべてのリクエストおよびレスポンスのクッキー、物理パス、ソースコード情報、さらにはユーザー名やパスワードが含まれる可能性があります。
https://www.rapid7.com/db/vulnerabilities/spider-asp-dot-net-trace-axd/
![](https://book.hacktricks.xyz/~gitbook/image?url=https%3A%2F%2Fuser-images.githubusercontent.com%2F31736688%2F112974448-2690b000-915b-11eb-896c-f41c27c44286.png&width=768&dpr=4&quality=100&sign=2de6df0b&sv=1)
ASPXAUTHクッキー
ASPXAUTHは次の情報を使用します:
validationKey
(文字列):署名検証に使用する16進エンコードされたキー。decryptionMethod
(文字列):(デフォルトは「AES」)。decryptionIV
(文字列):16進エンコードされた初期化ベクトル(デフォルトはゼロのベクトル)。decryptionKey
(文字列):復号化に使用する16進エンコードされたキー。
ただし、一部の人々はこれらのパラメータのデフォルト値を使用し、ユーザーのメールアドレスをクッキーとして使用します。したがって、ASPXAUTHクッキーを使用している同じプラットフォームのウェブを見つけ、攻撃対象のサーバーでなりすましたいユーザーのメールアドレスでユーザーを作成できれば、2つ目のサーバーのクッキーを最初のサーバーで使用してユーザーになりすますことができるかもしれません。 この攻撃はこのwriteupで成功しました。
キャッシュされたパスワードを使用したIIS認証バイパス (CVE-2022-30209)
こちらに完全なレポートがあります:コードのバグはユーザーによって提供されたパスワードを適切にチェックしなかったため、パスワードハッシュがキャッシュ内のキーにヒットする攻撃者は、そのユーザーとしてログインできるようになります。
Last updated