사용툴 분석

PsExec 이란?

필만이 2024. 7. 17. 10:56

PsExec 개념

PsExec는 원격 시스템에서 명령을 실행하기 위한 유틸리티로, 다양한 시스템 관리 작업을 자동화하고 원격에서 수행할 수 있도록 도와줍니다.

PsExec의 작동 원리

  1. 초기 연결 설정:

    • 사용자가 PsExec 명령을 실행하면, PsExec는 먼저 네트워크를 통해 원격 시스템에 연결을 시도합니다.
    • 이 과정에서 사용자 인증을 수행하여 원격 시스템에 접속할 수 있는 권한을 확인합니다.
  2. PsExec 서비스 설치:

    • PsExec는 원격 시스템에 접속한 후, 임시로 PsExec 서비스를 설치합니다.
    • 이 서비스는 PSEXESVC.exe라는 이름으로 원격 시스템의 C:\Windows 디렉토리에 복사됩니다.
    • PsExec 서비스는 PsExec 명령이 실행되는 동안에만 존재하며, 작업이 완료되면 자동으로 제거됩니다.
  3. 명령 실행:

    • PsExec 서비스가 설치되면, 원격 시스템에서 사용자가 지정한 명령을 실행합니다.
    • 이 명령은 사용자가 지정한 옵션(cmd /c, powershell, 특정 프로그램 실행 등)에 따라 다릅니다.
    • 명령 실행 중 표준 출력과 표준 오류 출력이 로컬 시스템으로 리디렉션되어, 사용자가 실행 결과를 확인할 수 있습니다.
  4. 결과 반환 및 서비스 제거:

    • 명령 실행이 완료되면, PsExec 서비스는 원격 시스템에서 제거됩니다.
    • 실행 결과는 로컬 시스템에 반환되어, 명령 프롬프트나 스크립트에서 확인할 수 있습니다.

PsExec의 주요 구성 요소

  1. PSEXESVC.exe:

    • PsExec가 원격 시스템에 임시로 설치하는 서비스 실행 파일입니다.
    • 이 파일은 원격 시스템에서 사용자가 지정한 명령을 실행하고, 작업이 완료되면 자동으로 제거됩니다.
  2. 네트워크 연결:

    • PsExec는 기본적으로 SMB(서버 메시지 블록) 프로토콜을 사용하여 원격 시스템과 통신합니다.
    • 네트워크 방화벽이나 보안 설정에 따라 연결이 차단될 수 있으므로, 포트 445가 열려 있어야 합니다.
  3. 사용자 인증:

    • PsExec는 원격 시스템에 접속할 때 사용자 인증을 요구합니다.
    • 명령어에 -u(사용자 이름)와 -p(비밀번호) 옵션을 사용하여 인증 정보를 제공할 수 있습니다.

주의 사항

  • 보안: PsExec를 사용할 때는 보안에 유의해야 합니다. 특히, 네트워크 상에서 비밀번호를 전달할 때는 암호화된 연결을 사용하는 것이 좋습니다.
  • 방화벽 설정: 원격 시스템과의 연결이 차단되지 않도록 방화벽 설정을 확인해야 합니다.
  • 관리자 권한: 대부분의 PsExec 명령은 관리자 권한이 필요합니다. 따라서 로컬 및 원격 시스템 모두에서 관리자 권한으로 실행해야 합니다.

PsExec의 사용 예 및 옵션

  1. 로컬에서 원격 시스템으로 명령 실행:
  2. PsExec \\remote_computer_name ipconfig
  3. 원격 시스템에서 명령 실행 및 결과 로컬에서 확인:
  4. PsExec \\remote_computer_name -u username -p password ipconfig
  5. 원격 시스템에서 특정 프로그램 실행:
  6. 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