
ハッキング/ペネトレーションテストのための究極のWinRMシェル
ハッキング/ペンテスト用の究極のWinRMシェル

このシェルは、ハッキング/ペンテスト用の究極のWinRMシェルです。
WinRM(Windows Remote Management)は、WS-Managementプロトコルのマイクロソフト実装です。異なるベンダーのハードウェアとオペレーティングシステムが相互運用できるようにする、SOAPベースの標準プロトコルです。マイクロソフトは、システム管理者の作業を容易にするために、自社のオペレーティングシステムにこれを組み込みました。
このプログラムは、この機能が有効になっている(通常はポート5985)任意のMicrosoft Windows Serverで使用できます。もちろん、使用するための資格情報と権限を持っている場合に限ります。したがって、これはポストエクスプロイテーションのハッキング/ペンテスト段階で使用できると言えます。このプログラムの目的は、ハッキングに便利で使いやすい機能を提供することです。システム管理者が正当な目的で使用することもできますが、その機能のほとんどはハッキング/ペンテスト関連に焦点を当てています。
これは主にWinRM Rubyライブラリに基づいており、バージョン2.0以降、その動作方法が変更されました。現在はWinRMプロトコルを使用する代わりに、PSRP(Powershell Remoting Protocol)を使用して、ランスペースプールの初期化やパイプラインの作成・処理を行っています。
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認証でのみ使用されるもう1つの重要な要件は、ネットワーク認証に使用される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/'
sudo gem install winrm winrm-fs stringio logger fileutils readline readline-extgit clone https://github.com/Hackplayers/evil-winrm.git### 方法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/'
## ドキュメント
### 平文パスワード
パスワードを平文で記述したくない場合は、任意で `-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
-s引数で指定したパスに置かれている必要があります。再度menuと入力すると、読み込まれた関数が表示されます。非常に大きなファイルは読み込みに時間がかかる場合があります。```
Evil-WinRM PS C:> PowerView.ps1
Evil-WinRM PS C:> menu