PsExec은 사용자가 원격 시스템에서 프로그램을 실행할 수 있게 해주는 명령줄 도구입니다. 원격 시스템에서 원격 명령, 스크립트 및 응용 프로그램을 실행하고 원격 시스템에서 GUI 기반 응용 프로그램을 실행하는 데 사용할 수 있습니다.
PsExec은 Microsoft Windows 서비스 제어 관리자(SCM)를 사용하여 원격 시스템에서 서비스 인스턴스를 시작합니다. 이를 통해 도구는 해당 계정의 권한으로 지정된 명령이나 응용 프로그램을 실행할 수 있습니다. 서비스 계정 원격 시스템에서.
연결을 설정하려면 원격 사용자에게 대상 시스템에 대한 액세스 권한이 있어야 하며 대상 시스템의 이름, 사용자 이름 및 비밀번호를 다음 형식으로 제공해야 합니다.
PsExec -s \\MACHINE-NAME -u USERNAME -p PASSWORD COMMAND (the process to be executed following establishing the connection).
PsExec은 주로 Windows 시스템에서 프로세스를 원격 관리하고 실행하는 데 사용되는 강력한 명령줄 도구입니다. 이를 통해 시스템 관리자와 보안 전문가는 네트워크 환경의 원격 컴퓨터에서 명령을 실행하거나 프로그램을 실행할 수 있습니다. PsExec의 몇 가지 일반적인 사용 사례는 다음과 같습니다.
원격 시스템 관리: PsExec을 사용하면 관리자는 물리적 액세스 없이도 여러 Windows 시스템을 원격으로 관리할 수 있습니다. 이를 통해 중앙 위치에서 명령을 실행하고, 스크립트를 실행하고, 소프트웨어를 설치하고, 시스템 구성을 수정하고, 원격 시스템에 대한 다양한 관리 작업을 수행할 수 있습니다.
소프트웨어 배포 및 업데이트: PsExec을 사용하면 관리자는 소프트웨어 패키지, 패치 또는 업데이트를 여러 컴퓨터에 동시에 원격으로 배포할 수 있습니다. 이 기능은 개별 시스템에 수동 설치하는 데 시간이 많이 걸리고 비현실적인 대규모 환경에서 특히 유용합니다.
문제 해결 및 진단: PsExec을 사용하면 시스템 문제를 원격으로 진단하고 해결할 수 있습니다. 관리자는 진단 도구를 실행하고, 이벤트 로그에 액세스하고, 시스템 정보를 검색하고, 원격 시스템에서 문제 해결 스크립트를 실행하여 물리적으로 존재하지 않고도 문제를 식별하고 해결할 수 있습니다.
보안 감사 및 패치 관리: 보안 전문가는 보안 감사, 취약성 평가 또는 침투 테스트 연습을 수행하기 위해 PsExec을 사용하는 경우가 많습니다. 이를 통해 원격으로 보안 검색 도구를 실행하고, 패치 수준을 확인하고, 네트워크 내 원격 시스템의 보안 상태를 평가할 수 있습니다.
사고 대응 및 법의학: 사고 대응 조사 중에 PsExec은 분석 및 증거 수집을 위해 손상된 시스템에 원격으로 액세스하는 데 도움을 줍니다. 이를 통해 보안 분석가는 손상된 시스템과 직접 상호 작용하지 않고도 명령을 실행하거나 포렌식 도구를 실행할 수 있어 추가 손상이나 데이터 손실 위험을 최소화할 수 있습니다.
레드팀과 측면 운동: 조직이 보안 방어를 테스트하기 위해 실제 공격을 시뮬레이션하는 레드팀 훈련에서 PsExec는 네트워크 내 측면 이동에 자주 사용됩니다. 공격자는 PsExec을 사용하여 손상된 시스템에서 명령을 실행하거나 악성 페이로드를 실행하고, 측면으로 이동하고 권한을 상승시켜 중요한 리소스에 대한 무단 액세스를 얻을 수 있습니다.
자동화 및 스크립팅: PsExec은 스크립트나 배치 파일에 통합되어 여러 시스템에서 반복적인 작업을 자동화할 수 있습니다. 원격으로 스크립트를 실행할 수 있는 수단을 제공하므로 관리자는 복잡한 작업을 조율하거나 정기적인 유지 관리 작업을 효율적으로 수행할 수 있습니다.
그러나 PsExec은 공격자가 원격 시스템에서 임의의 코드를 실행할 수 있게 해주기 때문에 공격자에게도 강력한 도구가 될 수 있다는 점을 기억하는 것이 중요합니다. 권한 에스컬레이션 그리고 네트워크의 측면 이동. 따라서 PsExec을 안전하게 사용하고 PsExec 사용을 신뢰할 수 있는 사용자 및 시스템으로 제한하는 것이 중요합니다.
PsExec 설치 및 설정은 다음 단계를 포함하는 간단한 프로세스입니다.
PsExec를 설치하려면 공식 Microsoft 웹사이트나 신뢰할 수 있는 소프트웨어 저장소를 방문하여 PsExec 실행 파일을 다운로드할 수 있습니다. 보안 위험이나 악성 코드를 방지하려면 신뢰할 수 있는 소스에서 다운로드했는지 확인하세요.
PsExec에는 공식적인 설치 프로세스가 필요하지 않습니다. PsExec 실행 파일을 다운로드한 후에는 이를 로컬 시스템의 원하는 디렉터리에 저장할 수 있습니다. 편리한 사용을 위해 시스템의 PATH 환경변수에 포함되어 쉽게 접근할 수 있는 위치에 두는 것을 권장합니다.
PsExec을 사용하여 원격 컴퓨터에 연결하려면 다음 단계를 따르십시오.
ㅏ. 로컬 시스템에서 명령 프롬프트나 터미널을 엽니다.
비. PsExec 실행 파일을 저장한 디렉터리로 이동합니다.
씨. 원격 컴퓨터와의 연결을 설정하려면 다음 명령을 사용하십시오.
psexec \\remote_computer_name_or_IP -u 사용자 이름 -p 비밀번호 명령
디. Enter 키를 눌러 명령을 실행합니다. PsExec은 원격 컴퓨터와의 연결을 설정하고, 제공된 자격 증명을 사용하여 인증하고, 지정된 명령을 원격으로 실행합니다.
이자형. 로컬 명령 프롬프트 또는 터미널 창에서 실행된 명령의 출력을 볼 수 있습니다.
PsExec을 사용한 성공적인 연결 및 명령 실행은 로컬 시스템과 원격 컴퓨터 간의 네트워크 연결뿐 아니라 원격 시스템의 올바른 인증 자격 증명 및 권한에 따라 달라집니다.
PsExec은 관리자에게 강력한 원격 실행 기능을 제공하는 몇 가지 일반적으로 사용되는 명령을 제공합니다. 다음은 가장 일반적인 PsExec 명령과 해당 기능 중 일부입니다.
PsExec \remote_computer 명령:
PsExec \remote_computer -s 명령:
PsExec \remote_computer -u 사용자 이름 -p 비밀번호 명령:
PsExec \remote_computer -c -f -s -d 명령:
PsExec \remote_computer -i session_id -d -s 명령:
PsExec \remote_computer -accepteula -s -c -f script.bat:
이러한 명령은 사용 가능한 PsExec 명령의 하위 집합을 나타내며 각 명령은 원격 관리 및 실행에서 특정 목적을 수행합니다.
PsExec 명령의 구문은 다음과 같습니다.
psexec \computer[,computer[,..] [옵션] 명령 [인수]
psexec @run_file [options] command [arguments]
PsExec 명령줄 옵션:
선택권 | 설명 |
---|---|
\컴퓨터 | 연결할 원격 컴퓨터입니다. 도메인의 모든 컴퓨터에 \*를 사용하세요. |
@run_file | 지정된 텍스트 파일에 나열된 컴퓨터에 대해 명령을 실행합니다. |
명령 | 원격 시스템에서 실행할 프로그램입니다. |
인수 | 원격 프로그램에 전달할 인수입니다. 절대 경로를 사용하십시오. |
-a | CPU 선호도를 설정합니다. 1부터 시작하는 쉼표로 CPU 번호를 구분합니다. |
-c | 실행하기 전에 로컬 프로그램을 원격 시스템에 복사하십시오. |
-f | 기존 원격 파일을 강제로 복사합니다. |
-v | 로컬 프로그램이 원격 프로그램보다 최신 버전인 경우에만 복사합니다. |
-d | 원격 프로그램이 완료될 때까지 기다리지 마십시오. |
-e | 사용자 프로필을 로드하지 마세요. |
-i | 원격 데스크톱과 상호 작용합니다. |
-l | 제한된 사용자 권한으로 실행합니다(사용자 그룹). |
-n | 연결 시간 초과(초)입니다. |
-p | 사용자의 비밀번호를 지정하세요. |
-r | 상호작용할 원격 서비스의 이름입니다. |
-s | SYSTEM 계정으로 실행하세요. |
-u | 로그인을 위한 사용자 이름을 지정합니다. |
-w | 원격 시스템에 작업 디렉터리를 설정합니다. |
-x | Winlogon 데스크탑에 UI를 표시합니다. |
-낮은 | 낮은 우선순위로 실행합니다. |
-수락하다 | EULA 대화 상자를 표시하지 않습니다. |
PsExec은 PowerShell이 아닙니다. 사용자가 원격 시스템에서 프로그램을 실행할 수 있게 해주는 명령줄 도구입니다.
반면 PowerShell은 Microsoft에서 개발한 작업 자동화 및 구성 관리 프레임워크로, .NET 프레임워크에 구축된 명령줄 셸 및 관련 스크립팅 언어를 포함합니다. PowerShell을 사용하여 다양한 작업을 자동화하고 로컬 또는 원격 시스템에서 복잡한 작업을 수행할 수 있습니다.
PsExec과 PowerShell은 모두 원격 시스템에서 명령을 실행하는 것과 같은 유사한 작업을 수행하는 데 사용할 수 있지만 서로 다른 도구이며 다른 기능을 가지고 있습니다. PsExec은 원격 시스템에서 단일 명령 또는 애플리케이션을 실행하도록 설계된 반면 PowerShell은 원격 시스템에서 명령 및 스크립트 실행을 포함하여 다양한 작업을 자동화하고 관리하는 데 사용할 수 있는 보다 강력한 프레임워크입니다.
따라서 시나리오에 따라 한 도구가 다른 도구보다 더 적합할 수 있습니다.
PsExec은 고유한 아키텍처와 통신 프로토콜을 활용하여 Windows 시스템에서 원격 실행을 지원하는 방식으로 작동합니다. PsExec 작동 방식의 주요 측면을 살펴보겠습니다.
PsExec은 클라이언트-서버 아키텍처를 따릅니다. 로컬 시스템에서 실행되는 클라이언트 측 구성 요소는 원격 시스템에서 실행되는 서버 측 구성 요소와 연결을 설정합니다. 이 연결을 통해 두 시스템 간에 명령과 데이터를 전송할 수 있습니다.
PsExec은 SMB(서버 메시지 블록) 프로토콜, 특히 SMB 파일 공유 및 명명된 파이프 메커니즘을 사용하여 원격 시스템과의 통신 채널을 설정합니다. 이를 통해 클라이언트와 서버 구성 요소 간의 안전하고 안정적인 통신이 가능해집니다.
PsExec은 인증 메커니즘을 사용하여 원격 시스템에 대한 보안 액세스를 보장합니다. 사용자 이름과 비밀번호를 사용하거나 NTLM(NT LAN Manager)을 통한 인증을 포함한 다양한 인증 방법을 지원합니다. Kerberos.
보안을 강화하려면 PsExec을 사용할 때 인증에 대한 모범 사례를 따르는 것이 중요합니다. 이러한 관행에는 강력하고 고유한 비밀번호 활용, 다중 요소 인증 가능한 경우 PsExec 사용자에게 필요한 권한만 부여하여 최소 권한 원칙을 준수합니다.
PsExec은 원격 시스템에서 파일 및 레지스트리 액세스를 용이하게 하여 관리자가 파일 복사, 스크립트 실행 또는 레지스트리 설정 수정과 같은 작업을 수행할 수 있도록 합니다. 원격으로 명령을 실행할 때 PsExec은 실행 전에 필요한 실행 파일이나 스크립트를 원격 시스템의 임시 디렉터리에 임시로 복사합니다.
파일 및 레지스트리 작업에 PsExec을 사용할 때 잠재적인 보안 고려 사항을 고려하는 것이 중요합니다. 예를 들어, 관리자는 중요한 파일을 전송할 때 주의를 기울여야 하며 중요한 시스템 파일 및 레지스트리 항목에 대한 무단 액세스 또는 수정을 방지하기 위해 적절한 액세스 제어가 마련되어 있는지 확인해야 합니다.
PsExec은 맬웨어 자체가 아니지만 맬웨어 및 공격자가 악의적인 작업을 수행하는 데 사용할 수 있습니다.
PsExec은 사용자가 원격 시스템에서 프로그램을 실행할 수 있게 해주는 합법적인 도구입니다. 문제 해결, 소프트웨어 업데이트 및 패치 배포, 여러 시스템에서 동시에 명령 및 스크립트 실행과 같은 다양한 합법적인 작업에 사용할 수 있습니다.
그러나 공격자는 PsExec을 사용하여 원격 시스템에 대한 무단 액세스 권한을 얻고 악의적인 작업을 수행할 수도 있습니다. 예를 들어 공격자는 PsExec을 사용하여 원격 시스템에서 악성 페이로드를 실행하거나 네트워크 내에서 측면 이동하고 중요한 정보에 액세스할 수 있습니다.
따라서 PsExec을 안전하게 사용하고 PsExec 사용을 신뢰할 수 있는 사용자 및 시스템으로 제한하는 것이 중요합니다.
소스 시스템에서 대상 시스템까지 PsExec이 가능하게 하는 원활한 원격 액세스는 사이버 공격의 측면 이동 단계에서 위협 행위자에 의해 집중적으로 남용됩니다. 이는 일반적으로 환자 제로 시스템의 초기 손상 이후에 발생합니다.
그 시점부터 공격자는 환경 내에서 자신의 존재를 확장하고 도메인 우위 또는 그들이 노리는 특정 데이터에 도달하려고 합니다. PsExec은 다음과 같은 이유로 이를 달성할 수 있는 원활하고 안정적인 방법을 제공합니다.
손상된 사용자 자격 증명을 PsExec과 결합함으로써 공격자는 인증 메커니즘을 우회하고 여러 시스템에 액세스할 수 있으며 잠재적으로 네트워크의 상당 부분을 손상시킬 수 있습니다. 이 접근 방식을 통해 그들은 측면으로 이동하고, 권한을 승격하고, 더 광범위한 영향을 미치면서 악의적인 목표를 수행할 수 있습니다.
PsExec은 다음과 같은 몇 가지 주요 요인으로 인해 측면 이동 공격을 위해 선택되는 "토지 생활" 도구로 간주되는 경우가 많습니다.
PsExec은 합법적인 사용 사례가 있지만 오용 가능성이 있고 대상 환경에 존재하므로 측면 이동 공격을 수행하려는 공격자에게 매력적인 도구라는 점을 기억하는 것이 중요합니다. 조직은 PsExec 또는 유사한 도구의 무단 사용을 탐지하고 방지하기 위해 네트워크 분할, 자격 증명 관리, 모니터링 시스템과 같은 강력한 보안 조치를 구현해야 합니다.
측면 이동을 위해 PsExec을 사용하면 다음과 같은 몇 가지 이점을 얻을 수 있습니다. 랜섬 배우:
엔드포인트 보호 도구는 다음과 같은 여러 가지 이유로 PsExec의 악의적인 사용을 탐지하고 방지하는 데 어려움을 겪을 수 있습니다.
기존 MFA 도구는 다음 작업에 한계가 있을 수 있습니다. 측면 움직임 방지 다음과 같은 이유로 PsExec을 사용합니다.
PsExec은 합법적이고 효율적인 원격 관리 기능으로 시스템 관리자와 보안 전문가들 사이에서 인기를 얻었습니다. 그러나 많은 도구와 마찬가지로 PsExec도 악의적인 목적으로 오용될 수 있습니다. 최근 몇 년 동안 위협 행위자들은 PsExec을 랜섬웨어 공격 전략에 통합하기 시작하여 PsExec을 잠재적으로 위험한 구성 요소로 만들었습니다.
지난 80년 동안 기술 장벽이 크게 낮아지고 PsExec을 통한 측면 이동이 랜섬웨어 공격의 XNUMX% 이상에 통합되어 PsExec을 통한 악의적 인증으로부터 보호하는 것이 모든 조직에 필수가 되었습니다.
랜섬웨어 공격에는 악의적인 행위자가 시스템에 무단으로 액세스하고, 중요한 데이터를 암호화하고, 릴리스에 대한 대가를 요구하는 행위가 포함됩니다. 이전에는 공격자가 초기 액세스 권한을 얻기 위해 사회 공학 기법이나 익스플로잇 킷을 사용하는 경우가 많았습니다. 그러나 이제 그들은 PsExec과 같은 합법적인 도구를 활용하여 손상된 네트워크 내에서 전파함으로써 전술을 확장했습니다.
랜섬웨어 공격에서 위협 행위자는 일단 네트워크 내의 단일 시스템에 액세스하면 측면으로 이동하여 가능한 한 많은 시스템을 감염시키는 것을 목표로 합니다. PsExec은 이러한 측면 이동을 위한 편리하고 효율적인 수단을 제공합니다. 공격자는 PsExec을 사용하여 다른 취약한 시스템에서 랜섬웨어 페이로드를 원격으로 실행하여 감염을 네트워크 전체에 빠르게 확산시킵니다.
PsExec을 공격 체인에 통합함으로써 사이버 범죄자는 몇 가지 이점을 얻습니다. 첫째, PsExec을 사용하면 명령을 실행하고 악성 페이로드를 자동으로 원격으로 실행할 수 있어 탐지 가능성이 줄어듭니다. 둘째, PsExec은 합법적인 도구이기 때문에 알려진 맬웨어 서명에 초점을 맞춘 기존 보안 조치를 우회하는 경우가 많습니다. 이를 통해 공격자는 일반 네트워크 트래픽과 혼합되어 활동을 탐지하기가 더 어려워집니다.
PsExec 기반 랜섬웨어 공격을 방어하려면 다계층 접근 방식이 필요합니다. 다음은 몇 가지 중요한 완화 방법입니다.
컨트롤에 액세스: 엄격한 액세스 제어를 구현하여 승인된 사용자만 중요한 시스템에 대한 관리 액세스 권한을 갖도록 합니다. PsExec 권한이 있는 계정 수를 제한하면 공격 표면.
엔드 포인트 보호: 행동 기반 탐지 메커니즘을 포함하는 강력한 엔드포인트 보호 솔루션을 배포하고 유지합니다. 이는 PsExec 사용과 관련된 의심스러운 활동을 식별하고 차단하는 데 도움이 될 수 있습니다.
네트워크 세분화: 네트워크 분할을 사용하여 공격자의 측면 이동 기회를 제한합니다. 중요한 시스템을 분리하고 네트워크 세그먼트 간의 액세스를 제한하면 잠재적인 랜섬웨어 감염의 영향을 억제하는 데 도움이 될 수 있습니다.
모니터링 및 이상 탐지: 비정상적이거나 승인되지 않은 PsExec 사용을 표시할 수 있는 포괄적인 네트워크 모니터링 및 이상 탐지 시스템을 구현합니다. 이러한 경고를 즉시 조사하고 대응하면 잠재적인 피해를 완화하는 데 도움이 될 수 있습니다.