确认系统版本:
root@fv-az392-322:/tmp# cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.2 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.2 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
UBUNTU_CODENAME=jammy
root@fv-az392-322:/tmp#
确认ruby版本:
root@fv-az392-322:/tmp# ruby -v
ruby 3.0.2p107 (2021-07-07 revision 0db68f0233) [x86_64-linux-gnu]
root@fv-az392-322:/tmp#
安装rvm:
sudo apt-add-repository -y ppa:rael-gc/rvm;\
sudo apt update -y;\
sudo apt -y install rvm;\
\
source /usr/share/rvm/scripts/rvm;
确认rvm版本:
root@fv-az313-897:/tmp# rvm -v
rvm 1.29.12 (manual) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
root@fv-az313-897:/tmp#
我们选择2.7的版本,直接安装:
# rvm install 2.7
# 报一堆错误
root@fv-az344-945:/tmp# rvm list known |grep 2.7
[ruby-]2.7[.2]
root@fv-az344-945:/tmp#
root@fv-az344-945:/tmp# rvm install ruby-2.7
Searching for binary rubies, this might take some time.
No binary rubies available for: ubuntu/22.04/x86_64/ruby-2.7.2.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for ubuntu.
Installing requirements for ubuntu.
Updating system..
Installing required packages: libncurses5-dev...
Requirements installation successful.
Installing Ruby from source to: /usr/share/rvm/rubies/ruby-2.7.2, this may take a while depending on your cpu(s)...
ruby-2.7.2 - #downloading ruby-2.7.2, this may take a while depending on your connection...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 14.0M 100 14.0M 0 0 16.3M 0 --:--:-- --:--:-- --:--:-- 16.2M
ruby-2.7.2 - #extracting ruby-2.7.2 to /usr/share/rvm/src/ruby-2.7.2.....
ruby-2.7.2 - #configuring........................................................................
ruby-2.7.2 - #post-configuration..
ruby-2.7.2 - #compiling..............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Error running '__rvm_make -j2',
please read /usr/share/rvm/log/1681571903_ruby-2.7.2/make.log
There has been an error while running make. Halting the installation.
root@fv-az344-945:/tmp#
需要先安装openssl:
ls -al /root/.rvm/usr;
#/usr/share/rvm/archives
rvm pkg install openssl;\
rvm reinstall 2.7 --with-openssl-dir=/usr/share/rvm/usr;
root@fv-az344-945:/tmp#
ls -al /root/.rvm/usr;
#/usr/share/rvm/archives
rvm pkg install openssl;\
rvm reinstall 2.7 --with-openssl-dir=/usr/share/rvm/usr
ls: cannot access '/root/.rvm/usr': No such file or directory
Beware, 'rvm pkg ...' is deprecated, read about the new autolibs feature: 'rvm help autolibs'.
Checking requirements for ubuntu.
Requirements installation successful.
Fetching openssl-1.0.1i.tar.gz to /usr/share/rvm/archives
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 4318k 100 4318k 0 0 8442k 0 --:--:-- --:--:-- --:--:-- 8434k
Extracting openssl to /usr/share/rvm/src/openssl-1.0.1i.....
Configuring openssl in /usr/share/rvm/src/openssl-1.0.1i...................................
Compiling openssl in /usr/share/rvm/src/openssl-1.0.1i....................................................................................................................................................
Installing openssl to /usr/share/rvm/usr.................................................................................................................................................................................
Please note that it's required to reinstall all rubies:
rvm reinstall all --force
Updating openssl certificates....
ruby-2.7.2 - #removing src/ruby-2.7.2..
Checking requirements for ubuntu.
Requirements installation successful.
Installing Ruby from source to: /usr/share/rvm/rubies/ruby-2.7.2, this may take a while depending on your cpu(s)...
ruby-2.7.2 - #downloading ruby-2.7.2, this may take a while depending on your connection...
ruby-2.7.2 - #extracting ruby-2.7.2 to /usr/share/rvm/src/ruby-2.7.2.....
ruby-2.7.2 - #configuring........................................................................
ruby-2.7.2 - #post-configuration..
ruby-2.7.2 - #compiling......................................................................................................................
ruby-2.7.2 - #installing..................
ruby-2.7.2 - #making binaries executable...
Installed rubygems 3.1.4 is newer than 3.0.9 provided with installed ruby, skipping installation, use --force to force installation.
ruby-2.7.2 - #gemset created /usr/share/rvm/gems/ruby-2.7.2@global
ruby-2.7.2 - #importing gemset /usr/share/rvm/gemsets/global.gems..........................................................
ruby-2.7.2 - #generating global wrappers........
ruby-2.7.2 - #gemset created /usr/share/rvm/gems/ruby-2.7.2
ruby-2.7.2 - #importing gemsetfile /usr/share/rvm/gemsets/default.gems evaluated to empty gem list
ruby-2.7.2 - #generating default wrappers........
ruby-2.7.2 - #adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
Install of ruby-2.7.2 - #complete
Ruby was built without documentation, to build it run: rvm docs generate-ri
Making gemset ruby-2.7.2 pristine..................................................................
Making gemset ruby-2.7.2@global pristine...................................................................
root@fv-az344-945:/tmp#
切换ruby版本:
root@fv-az344-945:/tmp# rvm use ruby-2.7 --default
Using /usr/share/rvm/gems/ruby-2.7.2
root@fv-az344-945:/tmp#
确认新的ruby版本:
root@fv-az344-945:/tmp# ruby -v
ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]
root@fv-az344-945:/tmp#
最后一步:
cd /tmp;
gem -v;which gem;
sudo gem install winrm winrm-fs colorize stringio;\
sudo gem install evil-winrm ;
evil-winrm -h;
root@fv-az344-945:/tmp# cd /tmp;
gem -v;which gem;
3.1.4
/usr/share/rvm/rubies/ruby-2.7.2/bin/gem
root@fv-az344-945:/tmp#
root@fv-az344-945:/tmp#
root@fv-az344-945:/tmp#
root@fv-az344-945:/tmp#
root@fv-az344-945:/tmp# sudo gem install winrm winrm-fs colorize stringio;\
sudo gem install evil-winrm ;
Fetching nori-2.6.0.gem
Fetching rubyntlm-0.6.3.gem
Fetching little-plugger-1.1.4.gem
Fetching logging-2.3.1.gem
Fetching httpclient-2.8.3.gem
Fetching builder-3.2.4.gem
Fetching rexml-3.2.5.gem
Fetching multi_json-1.15.0.gem
Fetching gyoku-1.4.0.gem
Fetching winrm-2.3.6.gem
Fetching ffi-1.15.5.gem
Fetching gssapi-1.3.1.gem
Fetching erubi-1.12.0.gem
Successfully installed rubyntlm-0.6.3
Successfully installed nori-2.6.0
Successfully installed multi_json-1.15.0
Successfully installed little-plugger-1.1.4
Successfully installed logging-2.3.1
Successfully installed httpclient-2.8.3
Successfully installed rexml-3.2.5
Successfully installed builder-3.2.4
Successfully installed gyoku-1.4.0
Building native extensions. This could take a while...
Successfully installed ffi-1.15.5
Successfully installed gssapi-1.3.1
Successfully installed erubi-1.12.0
Successfully installed winrm-2.3.6
Parsing documentation for rubyntlm-0.6.3
Installing ri documentation for rubyntlm-0.6.3
Parsing documentation for nori-2.6.0
Installing ri documentation for nori-2.6.0
Parsing documentation for multi_json-1.15.0
Installing ri documentation for multi_json-1.15.0
Parsing documentation for little-plugger-1.1.4
Installing ri documentation for little-plugger-1.1.4
Parsing documentation for logging-2.3.1
Installing ri documentation for logging-2.3.1
Parsing documentation for httpclient-2.8.3
Installing ri documentation for httpclient-2.8.3
Parsing documentation for rexml-3.2.5
Installing ri documentation for rexml-3.2.5
Parsing documentation for builder-3.2.4
Installing ri documentation for builder-3.2.4
Parsing documentation for gyoku-1.4.0
Installing ri documentation for gyoku-1.4.0
Parsing documentation for ffi-1.15.5
Installing ri documentation for ffi-1.15.5
Parsing documentation for gssapi-1.3.1
Installing ri documentation for gssapi-1.3.1
Parsing documentation for erubi-1.12.0
Installing ri documentation for erubi-1.12.0
Parsing documentation for winrm-2.3.6
Installing ri documentation for winrm-2.3.6
Done installing documentation for rubyntlm, nori, multi_json, little-plugger, logging, httpclient, rexml, builder, gyoku, ffi, gssapi, erubi, winrm after 8 seconds
Fetching rubyzip-2.3.2.gem
Fetching winrm-fs-1.3.5.gem
RubyZip 3.0 is coming!
**********************
The public API of some Rubyzip classes has been modernized to use named
parameters for optional arguments. Please check your usage of the
following classes:
* `Zip::File`
* `Zip::Entry`
* `Zip::InputStream`
* `Zip::OutputStream`
Please ensure that your Gemfiles and .gemspecs are suitably restrictive
to avoid an unexpected breakage when 3.0 is released (e.g. ~> 2.3.0).
See https://github.com/rubyzip/rubyzip for details. The Changelog also
lists other enhancements and bugfixes that have been implemented since
version 2.3.0.
Successfully installed rubyzip-2.3.2
Successfully installed winrm-fs-1.3.5
Parsing documentation for rubyzip-2.3.2
Installing ri documentation for rubyzip-2.3.2
Parsing documentation for winrm-fs-1.3.5
Installing ri documentation for winrm-fs-1.3.5
Done installing documentation for rubyzip, winrm-fs after 0 seconds
Fetching colorize-0.8.1.gem
Successfully installed colorize-0.8.1
Parsing documentation for colorize-0.8.1
Installing ri documentation for colorize-0.8.1
Done installing documentation for colorize after 0 seconds
Fetching stringio-3.0.6.gem
Building native extensions. This could take a while...
Successfully installed stringio-3.0.6
Parsing documentation for stringio-3.0.6
Installing ri documentation for stringio-3.0.6
Done installing documentation for stringio after 0 seconds
17 gems installed
Fetching evil-winrm-3.4.gem
Happy hacking! :)
Successfully installed evil-winrm-3.4
Parsing documentation for evil-winrm-3.4
Installing ri documentation for evil-winrm-3.4
Done installing documentation for evil-winrm after 0 seconds
1 gem installed
root@fv-az344-945:/tmp# evil-winrm -h;
Ignoring executable-hooks-1.6.1 because its extensions are not built. Try: gem pristine executable-hooks --version 1.6.1
Ignoring gem-wrappers-1.4.0 because its extensions are not built. Try: gem pristine gem-wrappers --version 1.4.0
Evil-WinRM shell v3.4
Usage: evil-winrm -i IP -u USER [-s SCRIPTS_PATH] [-e EXES_PATH] [-P PORT] [-p PASS] [-H HASH] [-U URL] [-S] [-c PUBLIC_KEY_PATH ] [-k PRIVATE_KEY_PATH ] [-r REALM] [--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 }
-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)
-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
root@fv-az344-945:/tmp#