139,445 - Pentesting SMB
Port 139
नेटवर्क बेसिक इनपुट आउटपुट सिस्टम** (NetBIOS)** एक सॉफ़्टवेयर प्रोटोकॉल है जिसे स्थानीय क्षेत्र नेटवर्क (LAN) के भीतर अनुप्रयोगों, PCs और डेस्कटॉप को नेटवर्क हार्डवेयर के साथ बातचीत करने और नेटवर्क के पार डेटा के संचरण को सुविधाजनक बनाने के लिए डिज़ाइन किया गया है। NetBIOS नेटवर्क पर काम कर रहे सॉफ़्टवेयर अनुप्रयोगों की पहचान और स्थान उनके NetBIOS नामों के माध्यम से प्राप्त किया जाता है, जो 16 वर्णों तक लंबे हो सकते हैं और अक्सर कंप्यूटर नाम से भिन्न होते हैं। दो अनुप्रयोगों के बीच एक NetBIOS सत्र तब शुरू होता है जब एक अनुप्रयोग (जो क्लाइंट के रूप में कार्य करता है) दूसरे अनुप्रयोग (जो सर्वर के रूप में कार्य करता है) को "कॉल" करने के लिए TCP पोर्ट 139 का उपयोग करते हुए एक आदेश जारी करता है।
Port 445
तकनीकी रूप से, पोर्ट 139 को 'NBT over IP' के रूप में संदर्भित किया जाता है, जबकि पोर्ट 445 को 'SMB over IP' के रूप में पहचाना जाता है। संक्षेप में SMB का अर्थ है 'Server Message Blocks', जिसे आधुनिक रूप से Common Internet File System (CIFS) के रूप में भी जाना जाता है। एक एप्लिकेशन-लेयर नेटवर्क प्रोटोकॉल के रूप में, SMB/CIFS मुख्य रूप से फ़ाइलों, प्रिंटरों, सीरियल पोर्ट्स तक साझा पहुंच सक्षम करने और नेटवर्क पर नोड्स के बीच विभिन्न प्रकार की संचार सुविधाओं के लिए उपयोग किया जाता है।
उदाहरण के लिए, Windows के संदर्भ में, यह उजागर किया गया है कि SMB सीधे TCP/IP पर कार्य कर सकता है, TCP/IP पर NetBIOS की आवश्यकता को समाप्त करते हुए, पोर्ट 445 के उपयोग के माध्यम से। इसके विपरीत, विभिन्न सिस्टमों पर, पोर्ट 139 का उपयोग देखा जाता है, जो यह संकेत करता है कि SMB TCP/IP पर NetBIOS के साथ मिलकर कार्यान्वित किया जा रहा है।
SMB
सर्वर संदेश ब्लॉक (SMB) प्रोटोकॉल, जो क्लाइंट-सर्वर मॉडल में कार्य करता है, फाइलों, निर्देशिकाओं, और प्रिंटर और राउटर जैसे अन्य नेटवर्क संसाधनों तक पहुँच को नियंत्रित करने के लिए डिज़ाइन किया गया है। मुख्य रूप से Windows ऑपरेटिंग सिस्टम श्रृंखला के भीतर उपयोग किया जाता है, SMB पिछड़े संगतता सुनिश्चित करता है, जिससे माइक्रोसॉफ्ट के ऑपरेटिंग सिस्टम के नए संस्करणों वाले उपकरण पुराने संस्करणों के साथ सहजता से बातचीत कर सकें। इसके अतिरिक्त, Samba प्रोजेक्ट एक मुफ्त सॉफ़्टवेयर समाधान प्रदान करता है, जो SMB के कार्यान्वयन को Linux और Unix सिस्टम पर सक्षम बनाता है, इस प्रकार SMB के माध्यम से क्रॉस-प्लेटफ़ॉर्म संचार को सुविधाजनक बनाता है।
शेयर, जो स्थानीय फ़ाइल प्रणाली के मनमाने हिस्सों का प्रतिनिधित्व करते हैं, एक SMB सर्वर द्वारा प्रदान किए जा सकते हैं, जिससे क्लाइंट के लिए एक हद तक स्वतंत्र रूप से सर्वर की वास्तविक संरचना के साथ दृश्यता मिलती है। एक्सेस कंट्रोल लिस्ट (ACLs), जो पहुँच अधिकार को परिभाषित करती हैं, उपयोगकर्ता अनुमतियों पर सूक्ष्म-नियंत्रण की अनुमति देती हैं, जिसमें execute
, read
, और full access
जैसे गुण शामिल हैं। ये अनुमतियाँ शेयर के आधार पर व्यक्तिगत उपयोगकर्ताओं या समूहों को सौंपे जा सकते हैं, और ये सर्वर पर सेट स्थानीय अनुमतियों से भिन्न होती हैं।
IPC$ Share
IPC$ शेयर तक पहुँच एक गुमनाम शून्य सत्र के माध्यम से प्राप्त की जा सकती है, जिससे नामित पाइप के माध्यम से उजागर सेवाओं के साथ बातचीत की जा सके। इस उद्देश्य के लिए उपयोगिता enum4linux
उपयोगी है। सही तरीके से उपयोग करने पर, यह निम्नलिखित जानकारी प्राप्त करने में सक्षम बनाता है:
ऑपरेटिंग सिस्टम की जानकारी
माता-पिता डोमेन का विवरण
स्थानीय उपयोगकर्ताओं और समूहों का संकलन
उपलब्ध SMB शेयरों की जानकारी
प्रभावी सिस्टम सुरक्षा नीति
यह कार्यक्षमता नेटवर्क प्रशासकों और सुरक्षा पेशेवरों के लिए SMB (सर्वर संदेश ब्लॉक) सेवाओं की सुरक्षा स्थिति का आकलन करने के लिए महत्वपूर्ण है। enum4linux
लक्षित प्रणाली के SMB वातावरण का एक व्यापक दृश्य प्रदान करता है, जो संभावित कमजोरियों की पहचान करने और यह सुनिश्चित करने के लिए आवश्यक है कि SMB सेवाएँ सही तरीके से सुरक्षित हैं।
उपरोक्त कमांड एक उदाहरण है कि enum4linux
का उपयोग target_ip
द्वारा निर्दिष्ट लक्ष्य के खिलाफ पूर्ण एन्यूमरेशन करने के लिए कैसे किया जा सकता है।
NTLM क्या है
यदि आप नहीं जानते कि NTLM क्या है या आप जानना चाहते हैं कि यह कैसे काम करता है और इसका दुरुपयोग कैसे किया जा सकता है, तो आप NTLM के बारे में इस पृष्ठ को बहुत दिलचस्प पाएंगे जहाँ इस प्रोटोकॉल के काम करने का तरीका और आप इसका लाभ कैसे उठा सकते हैं, समझाया गया है:
NTLMसर्वर एन्यूमरेशन
स्कैन करते हुए नेटवर्क में होस्ट की खोज करें:
SMB सर्वर संस्करण
SMB संस्करण के संभावित शोषणों की तलाश करने के लिए यह जानना महत्वपूर्ण है कि कौन सा संस्करण उपयोग में है। यदि यह जानकारी अन्य उपयोग किए गए उपकरणों में नहीं दिखाई देती है, तो आप:
MSF सहायक मॉड्यूल _auxiliary/scanner/smb/smb_version का उपयोग करें
या यह स्क्रिप्ट:
शोध शोषण
संभावित क्रेडेंशियल्स
उपयोगकर्ता नाम(s) | सामान्य पासवर्ड |
(खाली) | (खाली) |
अतिथि | (खाली) |
व्यवस्थापक, admin | (खाली), पासवर्ड, व्यवस्थापक, admin |
arcserve | arcserve, बैकअप |
tivoli, tmersrvd | tivoli, tmersrvd, admin |
backupexec, बैकअप | backupexec, बैकअप, arcada |
परीक्षण, प्रयोगशाला, डेमो | पासवर्ड, परीक्षण, प्रयोगशाला, डेमो |
ब्रूट फोर्स
SMB वातावरण जानकारी
जानकारी प्राप्त करें
उपयोगकर्ताओं, समूहों और लॉग इन उपयोगकर्ताओं की गणना करें
यह जानकारी पहले से ही enum4linux और enum4linux-ng से एकत्र की जानी चाहिए।
स्थानीय उपयोगकर्ताओं की गणना करें
Oneliner
Metasploit - स्थानीय उपयोगकर्ताओं की गणना करें
LSARPC और SAMR rpcclient की गणना करना
rpcclient enumerationलिनक्स से GUI कनेक्शन
टर्मिनल में:
xdg-open smb://cascade.htb/
फ़ाइल ब्राउज़र विंडो (nautilus, thunar, आदि)
smb://friendzone.htb/general/
साझा फ़ोल्डर्स की गणना
साझा फ़ोल्डर्स की सूची
यह हमेशा अनुशंसित है कि आप देखें कि क्या आप किसी चीज़ तक पहुँच सकते हैं, यदि आपके पास क्रेडेंशियल्स नहीं हैं तो null क्रेडेंशियल्स/अतिथि उपयोगकर्ता का उपयोग करने का प्रयास करें।
एक साझा फ़ोल्डर से कनेक्ट/सूची बनाएं
मैन्युअल रूप से विंडोज़ शेयरों की गणना करें और उनसे कनेक्ट करें
यह संभव है कि आपको होस्ट मशीन के किसी भी शेयर को प्रदर्शित करने से प्रतिबंधित किया गया हो और जब आप उन्हें सूचीबद्ध करने की कोशिश करते हैं, तो ऐसा प्रतीत होता है कि कनेक्ट करने के लिए कोई शेयर नहीं हैं। इसलिए, किसी शेयर से मैन्युअल रूप से कनेक्ट करने की कोशिश करना सार्थक हो सकता है। शेयरों की मैन्युअल गणना करने के लिए, आप NT_STATUS_ACCESS_DENIED और NT_STATUS_BAD_NETWORK_NAME जैसी प्रतिक्रियाओं की तलाश कर सकते हैं, जब आप एक मान्य सत्र (जैसे, नल सत्र या मान्य क्रेडेंशियल) का उपयोग कर रहे हों। ये यह संकेत कर सकते हैं कि शेयर मौजूद है और आपके पास इसका एक्सेस नहीं है या शेयर बिल्कुल मौजूद नहीं है।
विंडोज़ लक्ष्यों के लिए सामान्य शेयर नाम हैं
C$
D$
ADMIN$
IPC$
PRINT$
FAX$
SYSVOL
NETLOGON
(नेटवर्क सुरक्षा आकलन 3रा संस्करण से सामान्य शेयर नाम)
आप निम्नलिखित कमांड का उपयोग करके उनसे कनेक्ट करने की कोशिश कर सकते हैं
या स्क्रिप्ट (एक शून्य सत्र का उपयोग करते हुए)
उदाहरण
Windows से शेयरों की गणना करें / बिना थर्ड-पार्टी टूल के
PowerShell
CMD कंसोल
MMC स्नैप-इन (ग्राफिकल)
explorer.exe (ग्राफिकल), उपलब्ध गैर-छिपे हुए शेयर देखने के लिए \\<ip>\
दर्ज करें।
साझा फ़ोल्डर माउंट करें
फाइलें डाउनलोड करें
पेशेवर अनुभाग पढ़ें कि कैसे क्रेडेंशियल्स/पास-थ-हैश के साथ कनेक्ट करें।
Commands:
mask: निर्दिष्ट करता है कि फ़ाइलों को फ़िल्टर करने के लिए कौन सा मास्क उपयोग किया जाता है (जैसे "" सभी फ़ाइलों के लिए)
recurse: पुनरावृत्ति को चालू करता है (डिफ़ॉल्ट: बंद)
prompt: फ़ाइल नामों के लिए संकेत को बंद करता है (डिफ़ॉल्ट: चालू)
mget: होस्ट से क्लाइंट मशीन पर मास्क से मेल खाने वाली सभी फ़ाइलों की प्रतिलिपि बनाता है
(Information from the manpage of smbclient)
Domain Shared Folders Search
Snaffler****
CrackMapExec स्पाइडर।
-M spider_plus [--share <share_name>]
--pattern txt
विशेष रूप से शेयरों में Registry.xml
नामक फ़ाइलें दिलचस्प होती हैं क्योंकि वे autologon के साथ कॉन्फ़िगर किए गए उपयोगकर्ताओं के लिए पासवर्ड रख सकती हैं। या web.config
फ़ाइलें क्योंकि वे क्रेडेंशियल्स रखती हैं।
SYSVOL शेयर सभी प्रमाणित उपयोगकर्ताओं द्वारा पढ़ी जा सकती है। वहाँ आप कई विभिन्न बैच, VBScript, और PowerShell स्क्रिप्ट पा सकते हैं। आपको इसके अंदर की स्क्रिप्ट की जांच करनी चाहिए क्योंकि आप पासवर्ड जैसी संवेदनशील जानकारी पाकर सकते हैं।
रजिस्ट्री पढ़ें
आप कुछ खोजे गए क्रेडेंशियल्स का उपयोग करके रजिस्ट्री पढ़ने में सक्षम हो सकते हैं। Impacket reg.py
आपको प्रयास करने की अनुमति देता है:
Post Exploitation
The default config of a Samba server is usually located in /etc/samba/smb.conf
and might have some dangerous configs:
Setting | Description |
| क्या वर्तमान शेयर में उपलब्ध शेयरों की सूची बनाने की अनुमति है? |
| क्या फ़ाइलों के निर्माण और संशोधन पर रोक लगाई जाए? |
| क्या उपयोगकर्ताओं को फ़ाइलें बनाने और संशोधित करने की अनुमति है? |
| क्या बिना पासवर्ड का उपयोग किए सेवा से कनेक्ट करने की अनुमति है? |
| क्या विशिष्ट SID को असाइन किए गए विशेषाधिकारों का सम्मान किया जाए? |
| नए बनाए गए फ़ाइलों को कौन से अनुमतियाँ असाइन की जानी चाहिए? |
| नए बनाए गए निर्देशिकाओं को कौन से अनुमतियाँ असाइन की जानी चाहिए? |
| उपयोगकर्ता के लॉगिन पर कौन सा स्क्रिप्ट निष्पादित किया जाना चाहिए? |
| स्क्रिप्ट बंद होने पर कौन सा स्क्रिप्ट निष्पादित किया जाना चाहिए? |
| जादुई स्क्रिप्ट का आउटपुट कहाँ संग्रहीत किया जाना चाहिए? |
The command smbstatus
gives information about the server and about who is connected.
Authenticate using Kerberos
You can authenticate to kerberos using the tools smbclient and rpcclient:
कमांड निष्पादित करें
crackmapexec
crackmapexec किसी भी mmcexec, smbexec, atexec, wmiexec का दुरुपयोग करके कमांड निष्पादित कर सकता है, जिसमें wmiexec डिफ़ॉल्ट विधि है। आप पैरामीटर --exec-method
के साथ अपनी पसंद की विकल्प को इंगित कर सकते हैं:
दोनों विकल्प एक नई सेवा बनाएंगे (SMB के माध्यम से \pipe\svcctl का उपयोग करके) पीड़ित मशीन में और इसका उपयोग कुछ निष्पादित करने के लिए करेंगे (psexec एक निष्पादन योग्य फ़ाइल को ADMIN$ शेयर में अपलोड करेगा और smbexec cmd.exe/powershell.exe की ओर इशारा करेगा और तर्कों में पेलोड डालेगा --फाइल-लेस तकनीक--). अधिक जानकारी के लिए psexec और smbexec. kali में यह /usr/share/doc/python3-impacket/examples/ पर स्थित है।
Using parameter-k
आप kerberos के खिलाफ प्रमाणीकरण कर सकते हैं बजाय NTLM के
wmiexec/dcomexec
बिना डिस्क को छुए या नई सेवा चलाए, port 135 के माध्यम से DCOM का उपयोग करके चुपचाप एक कमांड शेल निष्पादित करें। kali में यह /usr/share/doc/python3-impacket/examples/ पर स्थित है
पैरामीटर-k
का उपयोग करके आप केरबेरोस के खिलाफ NTLM के बजाय प्रमाणीकरण कर सकते हैं।
कमांड को टास्क शेड्यूलर के माध्यम से निष्पादित करें (SMB के माध्यम से \pipe\atsvc का उपयोग करके)। kali में यह /usr/share/doc/python3-impacket/examples/ पर स्थित है।
Impacket संदर्भ
https://www.hackingarticles.in/beginners-guide-to-impacket-tool-kit-part-1/
यूजर्स क्रेडेंशियल्स का ब्रूटफोर्स
यह अनुशंसित नहीं है, यदि आप अधिकतम अनुमत प्रयासों से अधिक जाते हैं तो आप एक खाता ब्लॉक कर सकते हैं
SMB relay attack
यह हमला Responder टूलकिट का उपयोग करके SMB प्रमाणीकरण सत्रों को आंतरिक नेटवर्क पर कैप्चर करता है, और उन्हें लक्ष्य मशीन पर रिले करता है। यदि प्रमाणीकरण सत्र सफल होता है, तो यह स्वचालित रूप से आपको एक सिस्टम शेल में ले जाएगा। इस हमले के बारे में अधिक जानकारी यहाँ।
SMB-Trap
Windows पुस्तकालय URLMon.dll स्वचालित रूप से उस होस्ट पर प्रमाणीकरण करने की कोशिश करता है जब एक पृष्ठ SMB के माध्यम से कुछ सामग्री तक पहुँचने की कोशिश करता है, उदाहरण के लिए: img src="\\10.10.10.10\path\image.jpg"
यह कार्यों के साथ होता है:
URLDownloadToFile
URLDownloadToCache
URLOpenStream
URLOpenBlockingStream
जो कुछ ब्राउज़रों और उपकरणों (जैसे Skype) द्वारा उपयोग किए जाते हैं।
SMBTrap using MitMf
NTLM Theft
SMB ट्रैपिंग के समान, लक्षित प्रणाली पर दुर्भावनापूर्ण फ़ाइलें लगाने (SMB के माध्यम से, उदाहरण के लिए) एक SMB प्रमाणीकरण प्रयास को उत्तेजित कर सकती हैं, जिससे NetNTLMv2 हैश को Responder जैसे उपकरण के साथ इंटरसेप्ट किया जा सकता है। हैश को फिर ऑफ़लाइन क्रैक किया जा सकता है या SMB relay attack में उपयोग किया जा सकता है।
HackTricks Automatic Commands
Last updated