IIS構成ファイルのバックドア

  

このテキストの内容は、IIS自体の特性を使用してバックドアを確立する方法です。もちろん、これは主にネットワーク管理者とネットワークセキュリティスタッフのための "Know Your Enemy"クラスの文書であり、この記事がバックドアの確認と解決に役立つことを願っており、この記事の使用を推奨または同意するものではありません。違法行為のスキル

はじめに、IIS構成ファイルMetaBase.binを簡単に紹介しましょう。このファイルは%SystemRoot%\\ system32 \\ inetsrv \\ MetaBase.binにあり、ほとんどすべてのIISの構成情報が含まれています非常に重要なシステムファイルです。簡単に言うと、「インターネットサービスマネージャ」に設定したものはすべて、最終的にMetaBase.binに保存されます。毎日のシステム管理における「インターネットサービスマネージャ」を介したMetaBase.binの操作に加えて、WindowsはMetaBase.binを操作するためのスクリプトadsutil.vbsも提供しています。

MetaBaseの構造はレジストリに似ていますが、同様のキー、値、アイテムの概念を持つツリー構造です。実際、IIS 3およびPWSでは、MetaBaseの内容はレジストリに格納されています。 MetaBaseには、LMとSchemaという2つの主キーがあります。その中でも、Schemaはシステムのデフォルト設定を保存しますが、通常は変更する必要はありません。間違った場合は非常に危険なので、 "intenet service manager"もadsutil.vbsもスキーマを変更するメカニズムを提供しません。 LMには、IISのHTTPサービス、FTPサービス、およびSMTPサービスの構成情報が含まれています。その中で、LM /W3SVC /は私たちが使用したいHTTPサービスの設定情報です。

次に示す値の一部です。

LM /W3SVC /InProcessIsapiApps、ISAPIはインプロセスで開始されます。これは、いくつかのISAPIへの一連のパスを含む配列です。この配列のISAPIは、inetinfo.exeによって直接起動され、inetinfo.exeのローカルシステム権限を継承しますが、svchost.exeから派生したdllhost.exeプロセスによっては起動されません。 IDはIWAM_NAMEですもちろん、これはIISの既定のセキュリティレベルで、これをlowに設定すると、すべてのISAPIはinetinfo.exeから直接派生します。また、パスを設定するときにパスを指定せず、拡張子のみを指定すると、そのパスが呼び出されたときに、パス内の同じ名前のISAPIがシステム権限で実行されます。

ScriptMaps、スクリプトマッピング。値がディレクトリに設定されると、ディレクトリから要求された特定の拡張子を持つファイルが、実行のために指定されたISAPIに渡されます。 ScriptMapsディレクトリ設定が存在する必要はないことを強調しておく必要がありますMetaBaseのHTTPインスタンスのルートキーの下にサブキーが作成される限り、同じ名前のキーに対するHTTPリクエストは有効と見なされます。そしてマッピングされたISAPIによって処理されます。これもIISの問題です。

CreateProcessAsUser。ディレクトリ内の指定された値が0の場合、このディレクトリの下のアプリケーションはinetinfo.exeのローカルシステム権限を継承します。

AccessWriteは、ディレクトリへの書き込みを許可するかどうか、つまりWEBDAVのPUTメソッドを決定します。

AccessExecuteは、ディレクトリがアプリケーションの実行を許可されているかどうかを判断します。

バックドアのアイデア:

特定の拡張子を持つスクリプトマップを作成し、ISAPIをポイントして、そのISAPIをInProcessIsapiAppsリストに追加します。次に、サーバーに拡張子タイプファイルを要求すると、ISAPIはローカルシステムのアクセス許可を使用してサーバー上で実行され、要求されたファイルは実際のものである必要はありません。


ヒント:

1. ScriptMapsを設定するためにディレクトリを作成する必要はないので、キーを書いてそのキーにScriptMapsを追加するだけで済みます。このようにして、ディレクトリは「インターネットサービスマネージャ」から見えず、そしてScriptMapは見えない。

2、 "インターネットサービスマネージャ"は内部には表示されませんが、経験豊富な管理者がadsutil.vbs enum /pを使用して時々見ているかもしれません。

#adsutil。 Vbs enumber / p / w3svc / 1 / root Microsoft(登録商標)Windows(登録商標)Script Host Version 5.6 Bcrient(C)Microsoft Corporation 1996−2001。無断複写・転載を禁じます。

[/w3svc /1 /root /_vti_bin]
[/w3svc /1 /root /evildir]

公開されていません。

設定したキーは実際の仮想ディレクトリではなく、設定ファイル内の単なる文字列なので、キー値を設定するには0x08のような文字を使用できます。 0x08は、Backspaceキーに対応する16進値ですコンソールに表示される効果は、左側の文字を削除することです実際には、 "/"は削除されます。

#adsutil.vbs enum /p /w3svc /1 / roth Microsoft(登録商標)Windows(登録商標)Script Host Version 5.6版権(C)Microsoft Corporation 1996−2001。無断複写・転載を禁じます。

[/w3svc /1 /root /_vti_bin]
[/w3svc /1 /root]

この出力に直面しても、普通の人は注意を払いません。

もちろん、_vti_script、_vti_binのような名前に設定することもできます。KeyTypeが存在しない限り、「インターネットサービスマネージャ」には表示されません。

システム自体に\\ WINNT \\ System32 \\ msw3prt.dllがあるため、InProcessIsapiAppsは.printerマッピングで、通常は使用されません。 D:\\ WINNT \\ System32 \\ msw3prt.dllの値を削除して、\\ WINNT \\ System32 \\ inetsrv \\ msw3prt.dllに置き換えることができます。

3、軟膏の飛翔はHTTPリクエストは痕跡を残すということですが、HTTPも良いです、すなわち、あなたは跳躍台をするためにプロキシサーバーを使うことができます。さらに、0x0D 0x0Aを挿入してログを偽造する方法も使用できます(詳細は、「Apache、IIS、およびその他のhttpサーバーでキャリッジリターンを送信することでログを送信できる」を参照してください)。

具象実装:

もちろん、adsutil.vbsを使って手動で追加することもできます。ただし、adsutil.vbsは設定、変更はできないため、adsutil.vbsを使用するときは元のファイルも追加する必要があります。そうしないと元のファイルが失われます。異なるエントリはスペースで区切ります。

まず次のコマンドを使用して、InProcessIsapiAppsの現在の一覧を取得します。
adsutil.vbs get /W3SVC /InProcessIsapiApps

取得後に独自のISAPIパスを追加します。
adsutil.vbs set /W3SVC /InProcessIsapiApps" C:\\ WINNT \\ System32 \\ idq.dll"" C:\\ WINNT \\ System32 \\ inetsrv \\ httpext.dll> .................

ScriptMapsはInProcessIsapiAppsで設定されています。

もちろん、これはもっと面倒で、0x08のようなキー値を書くことは不可能です。だから私は一度にVBSを書くだけです。バックドアをするISAPIに関しては、達成できる機能は完全に想像力によります。簡単な画面コピーの例を次に示します。

#nc 10.11.0.26 80
POST /%08/anything.tom

Microsoft Windows 2000 [バージョン5.00.2195]
(C)Copyright 1985-1998 Microsoft Corp.

C:\\ WINNT \\ system32> whoami
NT認証\\ SYSTEM

C:\\ WINNT \\ system32> exit
HTTP /1.1 200 OK
サーバー:Microsoft-IIS /5.0
更新日:2003年1月8日(水)06:49:37 GMT

特別なISAPIを作成して、以下のように登録します。 aspを解析します。通常、プログラムは受信した要求をシステムの元のasp.dllに転送して結果を返しますが、特別なPOST要求を受信すると独自のバックドアコードを起動するため、ログには表示されません。レビュー時に見つけるのも難しいです。

上記のスクリプトマッピングの使用方法に加えて、仮想ディレクトリにAccessWriteおよびAccessExecuteの権限を付与することもできます。バックドアを実行する必要がある場合は、WEBDAVを使用してISAPIをアップロードしてから実行し、使用後に削除します。 (削除することはできますか?それでもW3SVCを再起動する必要がありますか?テストしていません。)アップロードがDLLではなくEXEファイルである場合は、このディレクトリのCreateSystemAsUserを0に設定してローカルシステムのアクセス許可を取得できます。しかし、AccessWriteとAccessExecuteへの変更は「インターネットサービスマネージャ」で見ることができ、隠蔽は貧弱です。

Copyright © Windowsの知識 All Rights Reserved