
नेटिव Nim WinRM शेल जिसमें NTLM, Kerberos, फ़ाइल ट्रांसफ़र, इन-मेमोरी हेल्पर्स, और AD/OPSEC रिपोर्टिंग शामिल है।

nimrm उन सिस्टमों पर वैध प्रशासन, सुरक्षा परीक्षण और शोध के लिए है जिनके स्वामी आप हैं या जिन तक पहुँचने की स्पष्ट अनुमति आपके पास है। लेखक इस उपकरण के दुरुपयोग या इससे होने वाली क्षति के लिए ज़िम्मेदार नहीं है।
nimrm व्यावहारिक प्रमाणीकरण, कमांड निष्पादन, स्थानांतरण और रिपोर्टिंग सहायकों के साथ एक कॉम्पैक्ट और तेज़ WinRM शेल प्रदान करता है। इसे बिना किसी Nim पैकेज निर्भरता के नेटिव Nim बाइनरी के रूप में बनाया गया है।
| क्षेत्र | समर्थन |
|---|---|
| प्रमाणीकरण | NTLM पासवर्ड, NTLM हैश, KRB5CCNAME के माध्यम से Kerberos |
| WinRM ट्रांसपोर्ट | HTTP, HTTPS/TLS, कस्टम पोर्ट |
| शेल | इंटरैक्टिव PowerShell, CMD प्रीफिक्स, वन-शॉट कमांड मोड, कमांड और स्थानीय पथ ऑटोकम्प्लीट |
| स्थानांतरण | फ़ाइल अपलोड/डाउनलोड, रिकर्सिव डायरेक्टरी स्थानांतरण, रिमोट सत्र-से-सत्र फ़ाइल और डायरेक्टरी रिले |
| इन-मेमोरी | PowerShell स्क्रिप्ट आयात, प्रबंधित .NET असेंबली निष्पादन |
| रिपोर्टिंग | AD/डोमेन संदर्भ, लॉगिंग और ऑडिटिंग स्थिति |
| विश्वसनीयता | Kerberos मैसेज रैपिंग, ट्रांसपोर्ट रीसेट/रीट्री हैंडलिंग |
| घटक | आवश्यकता |
|---|---|
| निर्माण | Nim >= 1.6.0 |
| Kerberos | Linux पर libgssapi_krb5.so.2 या macOS पर libgssapi_krb5.dylib |
| TLS निर्माण | OpenSSL और -d:ssl |
| लक्ष्य | चयनित पोर्ट पर WinRM उपलब्ध |
Nimble:
nimble install nimrm
नवीनतम रिलीज़ डाउनलोड करें:
curl -L -o nimrm https://github.com/blue0x1/nimrm/releases/latest/download/nimrm
chmod +x nimrm
Windows रिलीज़ बाइनरी:
Invoke-WebRequest -Uri https://github.com/blue0x1/nimrm/releases/latest/download/nimrm.exe -OutFile nimrm.exe
Debian पैकेज:
curl -L -o nimrm_1.2.0_amd64.deb https://github.com/blue0x1/nimrm/releases/latest/download/nimrm_1.2.0_amd64.deb
sudo dpkg -i nimrm_1.2.0_amd64.deb
BlackArch:
sudo pacman -S nimrm
BlackArch PKGBUILD नवीनतम अपस्ट्रीम git कमिट को ट्रैक करता है, इसलिए नई रिलीज़ अगले सिस्टम अपडेट पर BlackArch उपयोगकर्ताओं तक पहुँचती हैं। यदि nimrm पहले से स्थापित है, तो इसे अपग्रेड करें:
sudo pacman -Syu nimrm
स्रोत से निर्माण:
git clone https://github.com/blue0x1/nimrm.git
cd nimrm
make linux
make linux
make ssl
make windows
मैनुअल निर्माण:
nim c -d:release --opt:speed -o:nimrm nimrm.nim
nimrm नेटिव Nim बाइनरी, स्थायी WinRM रनस्पेस, चंक्ड ट्रांसफर लॉजिक और कॉम्पैक्ट प्रोग्रेस रेंडरिंग का उपयोग करके तेज़ बने रहने के लिए डिज़ाइन किया गया है।
| संचालन | कार्यान्वयन |
|---|---|
| अपलोड | बड़े एनवेलप्स पर एडेप्टिव रीट्री के साथ चंक्ड Base64 लेखन |
| डाउनलोड | प्रोग्रेस ट्रैकिंग और छोटी फ़ाइलों के लिए फास्ट पाथ के साथ स्ट्रीम्ड Base64 चंक्स |
| रिमोट सत्र रिले | फ़ाइल को स्थानीय डिस्क पर लिखे बिना कंट्रोलर मेमोरी के माध्यम से एक WinRM सत्र से पढ़ता है और दूसरे में लिखता है |
| डायरेक्टरी स्थानांतरण | समान चंक्ड ट्रांसफर पथ का उपयोग करके रिकर्सिव फ़ाइल गणना |
| कमांड निष्पादन | प्रति कमांड पुनः कनेक्ट करने के बजाय सक्रिय WinRM शेल/रनस्पेस का पुन: उपयोग करता है |
NTLM पासवर्ड:
./nimrm -T 192.168.1.10 -A 'CORP\administrator' -P 'Password123'
NTLM पास-द-हैश:
./nimrm -T 192.168.1.10 -A 'CORP\user' -N aad3b435b51404eeaad3b435b51404ee:0123456789abcdef0123456789abcdef
Kerberos:
KRB5CCNAME=FILE:/tmp/user.ccache ./nimrm -k -T dc01.corp.local -Z CORP.LOCAL
HTTP पर NTLM मैसेज एन्क्रिप्शन बलपूर्वक लागू करें:
./nimrm -T 192.168.1.10 -A 'CORP\user' -P 'Password123' --seal
कस्टम पोर्ट:
./nimrm -T 192.168.1.10 -A 'CORP\user' -P 'Password123' -p 5985
वन-शॉट कमांड:
./nimrm -T 192.168.1.10 -A 'CORP\user' -P 'Password123' -c 'whoami'
TLS प्रमाणपत्र सत्यापन छोड़ें (सेल्फ-साइन्ड प्रमाणपत्र):
./nimrm -T 192.168.1.10 -A 'CORP\user' -P 'Password123' --tls --insecure
| विकल्प | विवरण |
|---|---|
-T, --target | लक्ष्य IP या होस्टनाम |
-A, --account | उपयोगकर्ता नाम: user, user@domain, या DOMAIN\user |
-P, --secret | NTLM पासवर्ड |
-p, --port | WinRM पोर्ट |
-N, --nt-proof | NT हैश या LM:NT हैश |
-Z, --krb-zone | Kerberos रियल्म ओवरराइड |
-K, --kerb-spn | Kerberos SPN ओवरराइड |
-k, --kerb | Kerberos प्रमाणीकरण का उपयोग करें |
-c, --command | एक कमांड निष्पादित करें और बाहर निकलें |
--tls | HTTPS/TLS का उपयोग करें |
--insecure | TLS प्रमाणपत्र सत्यापन छोड़ें |
-h, --help | सहायता दिखाएँ |
| कमांड | विवरण |
|---|---|
/help | सहायता दिखाएँ |
exit, quit | शेल बंद करें |
!<cmd> | cmd.exe के माध्यम से चलाएँ |
upload <local> [remote] | एक फ़ाइल अपलोड करें |
download <remote> [local] | एक फ़ाइल डाउनलोड करें |
rupload <remote> <session> [dest] | सक्रिय सत्र से दूसरे सत्र में मेमोरी के माध्यम से एक रिमोट फ़ाइल कॉपी करें |
rdownload <session> <remote> [dest] | दूसरे सत्र से सक्रिय सत्र में मेमोरी के माध्यम से एक रिमोट फ़ाइल कॉपी करें |
rupload-dir <remote> <session> [dest] | सक्रिय सत्र से दूसरे सत्र में मेमोरी के माध्यम से एक रिमोट डायरेक्टरी कॉपी करें |
rdownload-dir <session> <remote> [dest] | दूसरे सत्र से सक्रिय सत्र में मेमोरी के माध्यम से एक रिमोट डायरेक्टरी कॉपी करें |
upload-dir <local> [remote] | एक डायरेक्टरी अपलोड करें |
download-dir <remote> [local] | एक डायरेक्टरी डाउनलोड करें |
invoke-script <ps1> [args] | स्थानीय PowerShell को मेमोरी से आयात करें |
execute-assembly <exe> [args] | प्रबंधित .NET को मेमोरी से चलाएँ |
ad-info | AD/डोमेन संदर्भ दिखाएँ |
opsec-check | लॉगिंग और ऑडिटिंग स्थिति दिखाएँ |
sessions | सभी सक्रिय सत्रों की सूची दिखाएँ |
session <opts> | एक नया सत्र बनाएँ |
use <name|id> | किसी सत्र पर स्विच करें |
kill <name|id> | एक सत्र बंद करें और हटाएँ |
nimrm कई समवर्ती WinRM सत्रों का समर्थन करता है। आप शेल से बाहर निकले बिना विभिन्न होस्ट और उपयोगकर्ताओं के बीच पिवट कर सकते हैं।
किसी मौजूदा सत्र के अंदर से एक नया सत्र बनाएँ:
PS C:\Users\Administrator> session -T 10.0.0.5 -A 'CORP\user2' -P 'Pass123'
PS C:\Users\Administrator> session -T dc02.corp.local -A [email protected] -N aad3b435:0123456789abcdef -n dc02
PS C:\Users\Administrator> session -T dc03.corp.local -k -Z CORP.LOCAL -n dc03
सक्रिय सत्रों की सूची दिखाएँ:
PS C:\Users\Administrator> sessions
ID Name Target User Auth
-- ---- ------ ---- ----
* 1 session-1 dc01.corp.local:5985 administrator Kerberos
2 session-2 10.0.0.5:5985 user2 NTLM
3 dc02 dc02.corp.local:5985 user NTLM
सत्रों के बीच स्विच करें:
[session-2] PS C:\Users\user2> use 1
[*] Switched to session: session-1 (dc01.corp.local:5985)
[session-1] PS C:\Users\Administrator> use dc02
[*] Switched to session: dc02 (dc02.corp.local:5985)
एक सत्र बंद करें:
[dc02] PS C:\Users\user> kill 2
[*] Killed session: session-2
सक्रिय सत्रों के बीच फ़ाइलें कॉपी करें:
[session-1] PS C:\Users\user1> rupload C:\Users\user1\tool.exe session-2 C:\Users\user2\Desktop\tool.exe
[*] Download mode: WinRS binary stream
✔ rupload-read [━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━] 100% 442.0 KB/442.0 KB done in 0.7s
[*] Upload mode: WinRS stream
✔ rupload-write [━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━] 100% 442.0 KB/442.0 KB done in 0.4s
[+] Remote uploaded 452608 bytes from session-1:C:\Users\user1\tool.exe to session-2:C:\Users\user2\Desktop\tool.exe
[session-1] PS C:\Users\user1> rdownload session-2 C:\Users\user2\Desktop\out.txt C:\Users\user1\out.txt
[+] Remote downloaded 1024 bytes from session-2:C:\Users\user2\Desktop\out.txt to session-1:C:\Users\user1\out.txt
rupload और rupload-dir सक्रिय सत्र को स्रोत और नामित सत्र को गंतव्य के रूप में उपयोग करते हैं। rdownload और rdownload-dir नामित सत्र को स्रोत और सक्रिय सत्र को गंतव्य के रूप में उपयोग करते हैं। ये कमांड nimrm मेमोरी के माध्यम से बाइट्स रिले करते हैं, इसलिए कंट्रोलर होस्ट डिस्क पर अस्थायी प्रति नहीं लिखता है।
सत्र विकल्प:
| विकल्प | विवरण |
|---|---|
-T | लक्ष्य होस्ट |
-A | उपयोगकर्ता नाम |
-P | पासवर्ड |
-N | NT हैश |
-k | Kerberos प्रमाणीकरण |
-Z | Kerberos रियल्म |
-K | SPN ओवरराइड |
-p | पोर्ट |
--tls | HTTPS का उपयोग करें |
-n | कस्टम सत्र नाम |
PowerShell और CMD:
PS> hostname
PS> Get-Process
PS> !ipconfig /all
स्थानांतरण:
PS> upload ./tool.exe C:\Temp\tool.exe
PS> download C:\Temp\out.txt ./out.txt
PS> rupload C:\Temp\tool.exe session-2 C:\Temp\tool.exe
PS> rdownload session-2 C:\Temp\out.txt C:\Temp\out.txt
PS> rupload-dir C:\Temp\logs session-2 C:\Temp\logs
PS> rdownload-dir session-2 C:\Temp\loot C:\Temp\loot
PS> upload-dir ./payloads C:\Temp\payloads
PS> download-dir C:\Temp\logs ./logs
रिमोट सत्र रिले दिशा:
# Active session -> another session
PS> rupload C:\Temp\payload.exe session-2 C:\Users\Public\payload.exe
# Another session -> active session
PS> rdownload session-2 C:\Users\Public\loot.zip C:\Temp\loot.zip
ऑटोकम्प्लीट:
PS> upl<Tab>
PS> upload ./pay<Tab>
इंटरैक्टिव प्रॉम्प्ट upload, upload-dir, invoke-script और execute-assembly जैसे स्थानीय-स्रोत कमांड के लिए कमांड नाम और स्थानीय फ़ाइलसिस्टम पथ पूर्ण करता है।
इन-मेमोरी सहायक:
PS> invoke-script ./AdminTools.ps1
PS> execute-assembly ./tool.exe arg1 arg2
रिपोर्टिंग:
PS> ad-info
PS> opsec-check
execute-assembly केवल प्रबंधित .NET असेंबली का समर्थन करता है।invoke-script वर्तमान रिमोट रनस्पेस में आयात करता है।rupload, rdownload, rupload-dir और rdownload-dir कंट्रोलर होस्ट पर अस्थायी फ़ाइलें नहीं लिखते हैं, लेकिन बाइट्स फिर भी कंट्रोलर मेमोरी से गुजरते हैं और दो WinRM ट्रांसफर लेग का उपयोग करते हैं।ad-info और opsec-check केवल-पठनीय रिपोर्टिंग कमांड हैं।MIT. LICENSE देखें।