2010-04-09 4 views
1

최근 Symantech에서 Norton EndPoint 보호라는 제품을 사용하여 작업했습니다. 서버 콘솔 응용 프로그램과 배포 응용 프로그램으로 구성되어 있으며 배포 방법을 내 제품 중 하나의 이후 버전에 통합하고자합니다.소프트웨어 설치를 시작하는 RPC 명령

배포 응용 프로그램을 사용하면 Win2K, WinXP 또는 Win7을 실행하는 컴퓨터 워크 스테이션을 선택할 수 있습니다. 워크 스테이션의 선택은 AD (Active Directory) 또는 NT 도메인 (WINs/DNS NetBIOS 조회)에서 제공됩니다. 목록에서 Symantech의 바이러스 & 스파이웨어 방지 제품군 인 엔드 포인트 소프트웨어를 배포 할 워크 스테이션을 클릭하여 선택할 수 있습니다.

그런 다음 패키지를받을 워크 스테이션을 선택한 후 소프트웨어는 각 워크 스테이션 (관리 공유 \ pcname \ c $ 이상인 것으로 가정)에 setup.exe 프로그램을 복사 한 다음 setup.exe를 실행하도록 워크 스테이션에 명령합니다. 소프트웨어를 설치하는 워크 스테이션.

나는 그들의 제품이 어떻게 작동 하는지를 정말 좋아하지만, 모든 단계를 성취하기 위해 그들이 무엇을하는지 확신하지 못합니다. 나는 네트웍을 스니핑하는 것과 같은 이것에 대한 어떤 깊은 조사도하지 않았다. 그리고 ... 누군가가 내가 말하는 것에 익숙한지를 알기 위해 여기를 체크하고 싶다. 달성 될 수있다.

내 생각에 관리자 공유를 사용하여 소프트웨어를 선택한 워크 스테이션에 복사 한 다음 RPC 호출을 실행하여 워크 스테이션에 설치를 명령합니다.

재미있는 점은 워크 스테이션이 로그온 한 사용자없이 재부팅이 필요한 끝까지 무엇이 진행되고 있는지를 알기 때문에이 작업을 수행한다는 것입니다. 어떤 시점에서 사용자는 팝업을 통해 지금 또는 나중에 다시 부팅 할 것인지 묻습니다. 내 직감은 setup.exe 프로그램이이 메시지를 표시한다는 것입니다.

요점 : 한 Windows 기반 컴퓨터가 다른 사용자에게 어떤 동작을 수행하거나 프로그램을 실행하도록 알 수있는 메커니즘을 찾고 있습니다.

내 프로그래밍 언어는 C/C++

어떤 생각/제안 감사합니다.

+0

은 DameWare 도구 – topherg

답변

3

내가 원격으로 소프트웨어를 배포하기를 원했기 때문에 나는 또한 이것을 조사하고 있었다. 내가 원격 관리 작업에서 꽤 신뢰할만한 것으로 판명 되었기 때문에 패킷 스 니프 pstools를 선택했습니다.

필자는이 도전에 대해 과도하게 생각하고 있었음을 인정해야합니다. 아마도 지금까지 패킷 스니핑을 해본 결과 내가 가진 것과 동일한 것을 발견했을 것입니다. 이 게시물을 남겨두면 다른 개발자를 도울 수 있기를 바랍니다.

이 PsTools에 임의의 코드의 실행을 수행하는 방법입니다 (이미 원격 시스템에 로컬 관리자를 가지고, 또는 자격 증명을 제공 중)

이 복사 서버 \ 관리 $를 \\ 할 실행 파일 시스템 서비스를. 파일이 복사되면 Service Control Manager API를 사용하여 복사 된 파일을 시스템 서비스로 만들고 시작합니다.

분명히이 시스템 서비스는 이제 RPC 명명 된 파이프에 바인딩하는 것을 포함하여 원하는대로 할 수 있습니다. 이 경우 시스템 서비스는 msi를 설치합니다. 성공적인 설치 확인을 얻으려면 레지스트리 키 또는 rpc 기능을 원격으로 폴링 할 수 있습니다. 어느 쪽이든, 당신이 완료되면 시스템 서비스를 제거하고 파일을 삭제해야합니다 (psexec은 이것을하지 않습니다. 나는 그들이 그것을 은밀하게 사용하기를 원하지 않으며,이 경우 서비스를 남겨두면 적어도 관리자는 누군가가 자신의 상자를 훼손했다는 사실을 깨달을 수있는 기회를 얻었습니다.)이 방법은 원격 시스템의 사전 구성을 필요로하지 않으며 관리자 cred와 방화벽에서 파일 공유 및 rpc가 열려 있음을 나타냅니다.

C#에서 WMI를 사용하여 데모를 보았지만 이러한 솔루션이 마음에 들지 않습니다. 파일 공유 및 RPC는 방화벽에서 가장 많이 열릴 수 있습니다. 그렇지 않은 경우 원격 서버의 파일 공유 및 원격 MMC 관리가 작동하지 않습니다. WMI는 차단 될 수 있으며 이러한 기능을 그대로 유지합니다.

필자는 원격 설치를 수행하는 소프트웨어를 많이 사용해 왔으며 그 중 많은 수가 pstools만큼 안정적이지 않습니다. 내 생각 엔이 개발자들은 방화벽 수준에서 열리지 않는 다른 방법을 사용하고 있기 때문입니다.

간단한 해결책은 종종 가장 어려운 부분입니다. 언제나 그렇듯이, 내 모자는 시스 인 터널 사람들과 떨어져 있습니다. 그들은 긍정적이고 오래된 학교 의미의 진정한 해커입니다!

0

이러한 종류의 기능은 LANDesk 및 Altiris 제품에서도 사용할 수 있습니다. 서버 측에서 명령/연결을 청취하는 클라이언트 측에서 데몬 화 된 리스너가 필요합니다. 연결이 이루어지면 여러 가지 일이 발생할 수 있습니다. 파일 전송, 설치 스크립트 실행 등은 일반적으로 해당 상자의 모든 사용자에게 투명하게 수행 할 수 있습니다.

필자는 소수의 Linux 시스템에서 Twisted Framework (http://twistedmatrix.com)를 사용했습니다. Windows가 아닌 Python과 Linux이지만 전제는 동일합니다. 리스닝 클라이언트는 서버의 지시 사항을 받아 들여 실행합니다. 아주 간단합니다.

이 기능은 Windows 기반 도메인의 VB/Powershell 스크립트를 사용하여 수행 할 수도 있습니다.

+0

을 사용한 후에 정확히 동일한 질문이 있었지만 클라이언트가 이전에이 수신기를 수신해야합니다. 시만텍 제품은 이전에 클라이언트를 설치할 필요가 없었습니다. 시만텍 배포에서는 분명히 지금 시점에서 RPC 또는 원격 서비스 설치와 같은 다른 접근 방식 인 Microsoft Windows 기능을 활용하여 setup.exe 프로그램의 실행을 호출하는 방법을 사용했습니다. 복사 됨. – Eric

관련 문제