スケジュールされたタスクのパスワード、またはサービスのログオン資格情報を保存すると、安全ですか?
どうやらWindowsはこの暗号化されたパスワードを何らかの方法で保存しているように見えますが、Windowsはそれを解読する必要があるので、コンピューターにオフラインでアクセスできる人なら誰でもできます。
本当ですか?これらのパスワードを回復するためのツールはありますか?
タスクスケジューラ2.0(Vista以降)では、パスワードは Windows資格情報マネージャー を使用して保存されます。
Windows Vistaのタスクスケジューラは、セキュリティ分離モデルの一部を形成する新しい資格情報マネージャーをサポートしています。このモデルでは、特定のセキュリティコンテキストで実行されるタスクの各セットが個別のセッションで開始されます。パスワードは、Credentials Manager(CredMan)サービスに保存されるようになりました。 CredManで暗号化インターフェイスを使用して、マルウェアが保存されたパスワードを盗むのを防ぐことができます。
技術的には、Credential Manager( "Credential Locker"in new Windows Versions)isローカルにパスワードを保存するディスク :
ユーザーは、アプリケーションを使用するか、Credential Managerコントロールパネルアプレットを使用して、Windowsにパスワードを保存することを選択できます。これらの資格情報は、ハードディスクドライブに格納され、データ保護アプリケーションプログラミングインターフェイス(DPAPI)を使用して保護されます。 そのユーザーとして実行されているすべてのプログラムは、このストアの資格情報にアクセスできます。
(強調を追加)
Credential Managerは、以前のバージョンのタスクスケジューラで使用されていた非推奨のProtected Storage(PStore)サービスよりも暗号化方式とセキュリティアーキテクチャを改善していますが、growseが書き込んだ内容は引き続き有効です。保存されたファイルは、このタスクでまだツールが公開されているかどうかに関係なく、取得できます。
はい、スケジュールされたタスク用に保存されている資格情報を抽出するツールがあります。これらのツールには、資格情報抽出のための他のツールと同様に、昇格された特権が必要です。
例えば:
そう! psexecがPATHにあり、netpass.exeがC:\にある場合、これを実行できます。
psexec -i -s -d C:\netpass.exe
これによりnetpassが開き、runasアカウントでスケジュールされたタスクの資格情報が表示されます。 Windows Server 2008 R2およびWindow Server 2012 R2で、標準ドメインアカウントを使用してこれをテストしました。新しいオペレーティングシステム、または特定の種類のアカウントには制限がある場合があります。
乾杯!
私の理解では、パスワードは [〜#〜] dpapi [〜#〜] に格納されています。つまり、ローカルに保存されますが、プレーンテキストでは保存されず、それらを呼び出したり復号化したりするには正しい暗号化キーが必要です。暗号化キーは、この要素を操作する際の遠いメモリから、情報を保存している現在ログインしているユーザーの資格情報から取得されるため、理論的には、そのユーザーだけがデータを引き出して復号化できます。
タスクスケジューラの場合、タスクスケジューラが実行されているアカウントによってデータが保存されるので、このアカウントを偽装できるすべてのユーザー(デフォルトではSYSTEM
になる可能性があります)がデータを取得できます。
「安全ですか」は完全に主観的な質問です。ディスク上のデータを暗号化し、キーをディスクから十分に離さない限り、理論的にはデータを取得できます。