PsExec 개념
PsExec는 원격 시스템에서 명령을 실행하기 위한 유틸리티로, 다양한 시스템 관리 작업을 자동화하고 원격에서 수행할 수 있도록 도와줍니다.
PsExec의 작동 원리
초기 연결 설정:
- 사용자가 PsExec 명령을 실행하면, PsExec는 먼저 네트워크를 통해 원격 시스템에 연결을 시도합니다.
- 이 과정에서 사용자 인증을 수행하여 원격 시스템에 접속할 수 있는 권한을 확인합니다.
PsExec 서비스 설치:
- PsExec는 원격 시스템에 접속한 후, 임시로 PsExec 서비스를 설치합니다.
- 이 서비스는
PSEXESVC.exe
라는 이름으로 원격 시스템의C:\Windows
디렉토리에 복사됩니다. - PsExec 서비스는 PsExec 명령이 실행되는 동안에만 존재하며, 작업이 완료되면 자동으로 제거됩니다.
명령 실행:
- PsExec 서비스가 설치되면, 원격 시스템에서 사용자가 지정한 명령을 실행합니다.
- 이 명령은 사용자가 지정한 옵션(
cmd /c
,powershell
, 특정 프로그램 실행 등)에 따라 다릅니다. - 명령 실행 중 표준 출력과 표준 오류 출력이 로컬 시스템으로 리디렉션되어, 사용자가 실행 결과를 확인할 수 있습니다.
결과 반환 및 서비스 제거:
- 명령 실행이 완료되면, PsExec 서비스는 원격 시스템에서 제거됩니다.
- 실행 결과는 로컬 시스템에 반환되어, 명령 프롬프트나 스크립트에서 확인할 수 있습니다.
PsExec의 주요 구성 요소
PSEXESVC.exe:
- PsExec가 원격 시스템에 임시로 설치하는 서비스 실행 파일입니다.
- 이 파일은 원격 시스템에서 사용자가 지정한 명령을 실행하고, 작업이 완료되면 자동으로 제거됩니다.
네트워크 연결:
- PsExec는 기본적으로 SMB(서버 메시지 블록) 프로토콜을 사용하여 원격 시스템과 통신합니다.
- 네트워크 방화벽이나 보안 설정에 따라 연결이 차단될 수 있으므로, 포트 445가 열려 있어야 합니다.
사용자 인증:
- PsExec는 원격 시스템에 접속할 때 사용자 인증을 요구합니다.
- 명령어에
-u
(사용자 이름)와-p
(비밀번호) 옵션을 사용하여 인증 정보를 제공할 수 있습니다.
주의 사항
- 보안: PsExec를 사용할 때는 보안에 유의해야 합니다. 특히, 네트워크 상에서 비밀번호를 전달할 때는 암호화된 연결을 사용하는 것이 좋습니다.
- 방화벽 설정: 원격 시스템과의 연결이 차단되지 않도록 방화벽 설정을 확인해야 합니다.
- 관리자 권한: 대부분의 PsExec 명령은 관리자 권한이 필요합니다. 따라서 로컬 및 원격 시스템 모두에서 관리자 권한으로 실행해야 합니다.
PsExec의 사용 예 및 옵션
- 로컬에서 원격 시스템으로 명령 실행:
PsExec \\remote_computer_name ipconfig
- 원격 시스템에서 명령 실행 및 결과 로컬에서 확인:
PsExec \\remote_computer_name -u username -p password ipconfig
- 원격 시스템에서 특정 프로그램 실행:
PsExec \\remote_computer_name -d notepad.exe
주요 옵션
-a n,...
: 특정 CPU에서 명령을 실행합니다.n
은 CPU 번호입니다.-c
: 파일을 원격 시스템으로 복사하고 명령을 실행합니다. 실행 후 파일을 삭제합니다.-d
: 명령을 비동기적으로 실행합니다(백그라운드에서 실행).-e
: 명령을 호출하는 사용자의 환경을 사용하여 프로그램을 실행합니다.-f
: 복사 중 파일을 덮어씁니다.-h
: 명령을 고정된 사용자 권한으로 실행합니다.-i [session]
: 지정된 세션의 사용자 인터페이스와 상호 작용할 수 있는 프로그램을 실행합니다.-l
: 제한된 사용자 계정으로 명령을 실행합니다.-n s
: 연결 시도 제한 시간을s
초로 설정합니다.-p password
: 원격 시스템에 로그인할 때 사용할 암호를 지정합니다.-s
: 시스템 계정으로 명령을 실행합니다.-u username
: 원격 시스템에 로그인할 때 사용할 사용자 이름을 지정합니다.-v
: 프로그램 버전을 확인합니다.-w directory
: 프로그램을 실행하기 전에 작업 디렉터리를 설정합니다.-x
: 프로세스를 Windows XP에서 XP 기능을 사용하여 실행합니다.-accepteula
: 최초 실행 시 EULA를 자동으로 수락합니다.
'사용툴 분석' 카테고리의 다른 글
VScode에 공짜 로컬 GPT 연결하기(continue) (0) | 2024.08.02 |
---|---|
개발 환경과 유용한 툴 설명 (0) | 2024.07.26 |
리눅스 폴더 구조 (0) | 2024.07.10 |
윈도우 원격 실행 winRM (1) | 2024.07.05 |
ssh 접속 방식 이해 (0) | 2024.07.04 |