Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
evil-winrm — 해킹/침투 테스트를 위한 최고의 WinRM 셸 | Kitploit
도구/GitHubGitHub/hackplayers/evil-winrm
Payload GenerationExploitationPost-ExploitationPenetration TestingAuthenticationRemote Access Tool
GitHubhackplayers/evil-winrm

evil-winrm

해킹/침투 테스트를 위한 최고의 WinRM 셸

저장소 보기
5.4k6809527일 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Evil-WinRM ![Version-shield] ![Ruby2.3-shield] ![Gem-Version] ![License-shield] ![Docker-shield]

해킹/펜테스트를 위한 최고의 WinRM 셸

Banner

설명 및 목적

이 셸은 해킹/펜테스트를 위한 최고의 WinRM 셸입니다.

WinRM(Windows Remote Management)은 WS-Management 프로토콜의 Microsoft 구현입니다. 서로 다른 공급업체의 하드웨어와 운영 체제가 상호 운용될 수 있도록 하는 표준 SOAP 기반 프로토콜입니다. Microsoft는 시스템 관리자의 업무를 더 쉽게 만들기 위해 자사 운영 체제에 이를 포함했습니다.

이 프로그램은 이 기능이 활성화된(일반적으로 포트 5985) 모든 Microsoft Windows Server에서 사용할 수 있으며, 물론 이를 사용할 자격 증명과 권한이 있는 경우에만 가능합니다. 따라서 이는 사후 침투 해킹/펜테스트 단계에서 사용될 수 있다고 말할 수 있습니다. 이 프로그램의 목적은 해킹에 유용하고 사용하기 쉬운 기능을 제공하는 것입니다. 시스템 관리자가 합법적인 목적으로도 사용할 수 있지만, 대부분의 기능은 해킹/펜테스트에 초점을 맞추고 있습니다.

주로 WinRM Ruby 라이브러리를 기반으로 하며, 버전 2.0부터 작동 방식이 변경되었습니다. 이제 WinRM 프로토콜을 사용하는 대신 PSRP(Powershell Remoting Protocol)를 사용하여 런스페이스 풀을 초기화하고 파이프라인을 생성 및 처리합니다.

기능

  • Linux 및 Windows 클라이언트 시스템과 호환
  • 메모리 내 Powershell 스크립트 로드
  • 일부 AV를 우회하는 메모리 내 dll 파일 로드
  • 일부 AV를 우회하는 메모리 내 C#(C Sharp) 어셈블리 로드
  • 멋진 [donut] 기술로 생성된 x64 페이로드 로드
  • AV 서명을 피하기 위한 동적 AMSI 우회
  • Pass-the-hash 지원
  • ccache 및 kirbi 파일을 포함한 Kerberos 인증 지원
  • SSL 및 인증서 지원
  • 진행률 표시줄과 함께 파일 업로드 및 다운로드
  • 권한 없이 원격 머신 서비스 나열
  • 명령 기록
  • WinRM 명령 완성
  • 로컬 파일/디렉터리 완성
  • 원격 경로(파일/디렉터리) 완성(선택적으로 비활성화 가능)
  • 프롬프트 및 출력 메시지 색상화(선택적으로 비활성화 가능)
  • 선택적 로깅 기능
  • Docker 지원([Dockerhub]에서 사전 빌드된 이미지 제공)
  • Ctrl+C 시 우발적인 셸 종료를 방지하는 트랩 캡처
  • 합법적인 Windows 기본값을 사용하는 사용자 지정 user-agent
  • ETW(Event Tracing for Windows) 우회

도움말```

Usage: evil-winrm -i IP -u USER [-s SCRIPTS_PATH] [-e EXES_PATH] [-P PORT] [-a USERAGENT] [-p PASS] [-H HASH] [-U URL] [-S] [-c PUBLIC_KEY_PATH ] [-k PRIVATE_KEY_PATH ] [-r REALM] [-K TICKET_FILE] [--spn SPN_PREFIX] [-l] -S, --ssl Enable ssl -c, --pub-key PUBLIC_KEY_PATH Local path to public key certificate -k, --priv-key PRIVATE_KEY_PATH Local path to private key certificate -r, --realm DOMAIN Kerberos auth, it has to be set also in /etc/krb5.conf file using this format -> CONTOSO.COM = { kdc = fooserver.contoso.com } -K, --ccache TICKET_FILE Path to Kerberos ticket file (ccache or kirbi format, auto-detected) -s, --scripts PS_SCRIPTS_PATH Powershell scripts local path --spn SPN_PREFIX SPN prefix for Kerberos auth (default HTTP) -e, --executables EXES_PATH C# executables local path -i, --ip IP Remote host IP or hostname. FQDN for Kerberos auth (required) -U, --url URL Remote url endpoint (default /wsman) -u, --user USER Username (required if not using kerberos) -p, --password PASS Password -H, --hash HASH NTHash -P, --port PORT Remote host port (default 5985) -a, --user-agent Specify connection user-agent (default Microsoft WinRM Client) -V, --version Show version -n, --no-colors Disable colors -N, --no-rpath-completion Disable remote path completion -l, --log Log the WinRM session -h, --help Display this help message

## 요구 사항
Ruby 2.3 이상이 필요합니다. 일부 ruby gem도 필요합니다: `winrm >=2.3.7`, `winrm-fs >=1.3.2`, `stringio >=0.0.2`, `logger >= 1.4.3`, `fileutils >= 0.7.2`, `readline ~> 0.0.4`, `readline-ext ~> 0.2.0`.
설치 방법(4가지 가능)에 따라 이러한 항목을 수동으로 설치해야 할 수도 있습니다.

Kerberos 인증에만 사용되는 또 다른 중요한 요구 사항은 네트워크 인증에 사용되는 Kerberos 패키지를 설치하는 것입니다.
Debian 기반 Linux(Kali, Parrot 등)의 경우 `krb5-user`라고 합니다. BlackArch의 경우 `krb5`라고 하며, 다른 Linux 배포판에서는 다른 이름으로 불릴 수 있습니다.

원격 경로 자동 완성 기능은 네이티브 `readline-ext` 바인딩이 필요하며, 이는 Evil-WinRM 종속성으로 자동 설치됩니다. 일부 시스템에서는 이를 컴파일하기 위해 추가 개발 패키지가 필요합니다. 자세한 내용은 [아래 섹션](#Remote-path-completion)을 확인하세요.

## 설치 및 빠른 시작 (4가지 방법)

### 방법 1. ruby gem으로 직접 설치 (종속성은 시스템에 자동으로 설치됩니다)
 - 1단계. 설치합니다 (종속성이 자동으로 설치됩니다): ```gem install evil-winrm```
 - 2단계. 완료입니다. 바로 실행하세요!```
evil-winrm  -i 192.168.1.100 -u Administrator -p 'MySuperSecr3tPass123!' -s '/home/foo/ps1_scripts/' -e '/home/foo/exe_files/'

방법 2. Git clone 및 시스템에 수동으로 종속성 설치

  • 1단계. 종속성을 수동으로 설치: sudo gem install winrm winrm-fs stringio logger fileutils readline readline-ext
  • 2단계. 저장소를 clone: git clone https://github.com/Hackplayers/evil-winrm.git
  • 3단계. 준비 완료. 바로 실행하세요!``` cd evil-winrm && ruby evil-winrm.rb -i 192.168.1.100 -u Administrator -p 'MySuperSecr3tPass123!' -s '/home/foo/ps1_scripts/' -e '/home/foo/exe_files/'
### 방법 3. bundler 사용 (시스템에 의존성을 설치하지 않고 evil-winrm만 사용)
 - 1단계. bundler 설치: `gem install bundler`
 - 2단계. 저장소 복제: `git clone https://github.com/Hackplayers/evil-winrm.git`
 - 3단계. bundler로 의존성 설치: `cd evil-winrm && bundle install --path vendor/bundle`
 - 4단계. bundler로 실행:```
bundle exec evil-winrm.rb -i 192.168.1.100 -u Administrator -p 'MySuperSecr3tPass123!' -s '/home/foo/ps1_scripts/' -e '/home/foo/exe_files/'

방법 4. Docker 사용하기

  • 1단계. 이미 빌드된 이미지를 기반으로 Docker 컨테이너를 실행합니다:``` docker run --rm -ti --name evil-winrm -v /home/foo/ps1_scripts:/ps1_scripts -v /home/foo/exe_files:/exe_files -v /home/foo/data:/data oscarakaelvis/evil-winrm -i 192.168.1.100 -u Administrator -p 'MySuperSecr3tPass123!' -s '/ps1_scripts/' -e '/exe_files/'
## 문서

### 일반 텍스트 비밀번호
비밀번호를 일반 텍스트로 입력하고 싶지 않다면, 선택적으로 `-p` 인자를 생략할 수 있으며, 그러면 비밀번호가 화면에 표시되지 않도록 프롬프트가 나타납니다.

### IPv6
IPv6을 사용하려면 주소를 /etc/hosts에 추가해야 합니다. `-i` 인자 뒤에 IP 주소 대신 이미 설정된 호스트 이름을 입력하면 됩니다.

### 기본 명령어
 - **upload**: 로컬 파일은 탭 키를 사용하여 자동 완성할 수 있습니다.
   - 사용법: `upload local_filename` 또는 `upload local_filename destination_filename`
 - **download**:
   - 사용법: `download remote_filename` 또는 `download remote_filename destination_filename`

 __경로에 대한 참고 사항 (upload/download)__:
   상대 경로는 download/upload에 사용할 수 없습니다. 현재 디렉터리의 파일 이름이나 절대 경로를 사용하세요.
   Docker 환경에서 Evil-WinRM을 사용하는 경우, 모든 로컬 경로는 `/data`에 있어야 하며, 다운로드한 파일에 접근하거나 로컬 호스트 OS에서 파일을 업로드할 수 있도록 해당 경로를 볼륨으로 매핑했는지 확인하세요.

 - **services**: 계정에 각 서비스에 대한 권한이 있는지 여부를 표시하며 모든 서비스를 나열합니다. 이 기능을 사용하는 데 관리자 권한은 필요하지 않습니다.
 - **menu**: 아래에서 설명할 `Invoke-Binary`, `Dll-Loader` 및 `Donut-Loader` 함수를 로드합니다. ps1이 로드되면 해당 함수가 모두 표시됩니다.
 - **clear** 또는 **cls**: 터미널 화면을 지웁니다. 화면을 지우려면 `Ctrl+L` 키보드 단축키를 사용할 수도 있습니다.
 - **exit** 또는 **quit**: Evil-WinRM 세션을 종료합니다. `Ctrl+D` 키보드 단축키를 사용할 수도 있습니다.```
*Evil-WinRM* PS C:\> menu

   ,.   (   .      )               "            ,.   (   .      )       .
  ("  (  )  )'     ,'             (     '    ("     )  )'     ,'   .  ,)
.; )  ' (( (" )    ;(,      .     ;)  "  )"  .; )  ' (( (" )   );(,   )((
_".,_,.__).,) (.._( ._),     )  , (._..( '.._"._, . '._)_(..,_(_".) _( _')
\_   _____/__  _|__|  |    ((  (  /  \    /  \__| ____\______   \  /     \
 |    __)_\  \/ /  |  |    ;_)_') \   \/\/   /  |/    \|       _/ /  \ /  \
 |        \\   /|  |  |__ /_____/  \        /|  |   |  \    |   \/    Y    \
/_______  / \_/ |__|____/           \__/\  / |__|___|  /____|_  /\____|__  /
        \/                               \/          \/       \/         \/

          By: CyberVaca, OscarAkaElvis, Jarilaos, Arale61 @Hackplayers

[+] Dll-Loader
[+] Donut-Loader
[+] Invoke-Binary
[+] Bypass-4MSI
[+] services
[+] upload
[+] download
[+] clear
[+] cls
[+] menu
[+] exit

PowerShell 스크립트 로드

  • ps1 파일을 로드하려면 파일 이름을 입력하기만 하면 됩니다(Tab 키를 이용한 자동 완성 지원). 스크립트는 -s 인자에 설정된 경로에 있어야 합니다. menu를 다시 입력하면 로드된 함수들을 확인할 수 있습니다. 매우 큰 파일은 로드하는 데 오랜 시간이 걸릴 수 있습니다.``` Evil-WinRM PS C:> PowerView.ps1 Evil-WinRM PS C:> menu
도구 다운로드