1

私は最近、ノートン エンドポイント プロテクションというシマンテックの製品を扱っていました。これは、サーバー コンソール アプリケーションと展開アプリケーションで構成されており、私の製品の 1 つの将来のバージョンにそれらの展開方法を組み込みたいと考えています。

展開アプリケーションを使用すると、Win2K、WinXP、または Win7 を実行しているコンピューター ワークステーションを選択できます。ワークステーションの選択は、AD (Active Directory) または NT ドメイン (WINs/DNS NetBIOS ルックアップ) から提供されます。リストから、シマンテックのウイルスおよびスパイウェア保護スイートであるエンドポイント ソフトウェアを展開するワークステーションをクリックして選択できます。

次に、パッケージを受信するワークステーションを選択した後、ソフトウェアは setup.exe プログラムを各ワークステーションにコピーし (おそらく管理共有 \pcname\c$ を介して)、ワークステーションに setup.exe を実行するように命令します。ソフトウェア。

彼らの製品がどのように機能するかは本当に気に入っていますが、すべてのステップを達成するために彼らが何をしているのかはわかりません. ネットワークのスニッフィングなど、これについて詳細な調査は行っていません...ここで、私が話していることに精通している人がいるかどうか、それがどのように達成されたか、またはどのようにアイデアを持っているかを確認したかったのです。達成することができました。

私の考えでは、彼らは管理共有を使用してソフトウェアを選択したワークステーションにコピーし、RPC 呼び出しを発行してワークステーションにインストールを実行するように命令しています。

興味深いのは、再起動が必要な最後の最後まで、ログインしているユーザーが何が起こっているのかを知ることなく、ワークステーションがこれを行うことです。その時点で、ユーザーは今すぐ再起動するか、後で再起動するかなどを尋ねるポップアップを受け取ります... 私の推測では、setup.exe プログラムがこのメッセージをポップしていると思います。

要点: 私は、ある Windows ベースのマシンが別のマシンに何らかのアクションを実行したり、何らかのプログラムを実行したりするメカニズムを見つけようとしています。

私のプログラミング言語は C/C++ です

任意の考え/提案をいただければ幸いです。

4

2 に答える 2

3

私もソフトウェアをリモートで展開したいので、これについても調べていました。このようなリモート管理タスクで非常に信頼性が高いことが証明されているため、sniff pstools をパケット化することにしました。

私は間違いなくこの挑戦​​を考えすぎていたことを認めなければなりません. あなたはおそらく今までにパケットの盗聴を行い、私が持っているのと同じことを発見したでしょう. この投稿を残すことで、他の開発者を支援できることを願っています。

これは、pstools が任意のコードを実行する方法です。

システム サービスの実行可能ファイルを \\server\admin$ にコピーします (リモート マシンにローカル管理者が既に存在するか、資格情報を提供する必要があります)。ファイルがコピーされると、Service Control Manager API を使用して、コピーされたファイルをシステム サービスにして開始します。

明らかに、このシステム サービスは、RPC 名前付きパイプへのバインドなど、必要なことを何でも実行できるようになりました。この場合、システム サービスは msi をインストールします。インストールが成功したことを確認するには、レジストリ キーをリモート ポーリングするか、rpc 関数を使用します。いずれにせよ、完了したらシステム サービスを削除し、ファイルを削除する必要があります (psexec はこれを行いません。彼らはそれが密かに使用されることを望んでいないと思います。その場合、サービスを残しておくと、少なくともこの方法では、リモート マシンの事前設定は必要ありません。単に管理者の資格があり、ファイル共有と rpc がファイアウォールで開かれている必要があります。

WMI を使用した C# のデモを見たことがありますが、それらのソリューションは好きではありません。ファイル共有と RPC は、ファイアウォールで開かれている可能性が最も高いです。そうでない場合、リモート サーバーのファイル共有とリモート MMC 管理は機能しません。WMI をブロックしても、これらは機能したままにすることができます。

リモート インストールを行う多くのソフトウェアを使用してきましたが、それらの多くは pstools ほど信頼性が高くありません。私の推測では、これらの開発者が、ファイアウォール レベルで開かれる可能性が低い他の方法を使用しているためです。

単純な解決策は、多くの場合、最もとらえどころのないものです。いつものように、SysInternals の人々には脱帽です。彼らは、言葉のポジティブで古い学校の意味での真のハッカーです!

于 2010-04-26T19:28:17.220 に答える
0

この種の機能は、LANDesk および Altiris 製品でも利用できます。サーバーからの指示/接続をリッスンするクライアント側にデーモン化されたリスナーが必要です。接続が確立されると、多くのことが発生する可能性があります。ファイルを転送したり、インストール スクリプトを開始したりできます。通常は、そのボックスのすべてのユーザーに対して透過的に行われます。

私は Twisted Framework ( http://twistedmatrix.com ) を使用して、少数の Linux マシンでこれを行いました。これは Windows ではなく Python と Linux ですが、前提は同じです。リッスンしているクライアントがサーバーからの命令を受け取り、実行します。とてもシンプルです。

この機能は、Windows ベースのドメインで VB/Powershell スクリプトを使用して実現することもできます。

于 2010-04-09T16:54:14.897 に答える