लिनक्स में Nmap स्क्रिप्ट इंजन (NSE) लिपियों का उपयोग कैसे करें
नैम्प एक लोकप्रिय, शक्तिशाली और क्रॉस-प्लेटफॉर्म कमांड-लाइन नेटवर्क सुरक्षा स्कैनर और अन्वेषण उपकरण है। यह उन प्रणालियों का अवलोकन प्राप्त करने में भी आपकी मदद कर सकता है जो आपके नेटवर्क से जुड़े हैं; आप इसका उपयोग जीवित मेजबानों के सभी आईपी पते, उन बंदरगाहों पर चल रहे खुले बंदरगाहों और सेवाओं को स्कैन करने के लिए कर सकते हैं, और बहुत कुछ।
Nmap की एक दिलचस्प विशेषता Nmap Script Engine ( NSE ) है, जो इसमें और भी अधिक लचीलापन और दक्षता लाती है। यह आपको अपनी स्वयं की स्क्रिप्ट लुआ प्रोग्रामिंग भाषा में लिखने में सक्षम बनाता है, और संभवत: इन स्क्रिप्ट्स को वहां मौजूद अन्य Nmap उपयोगकर्ताओं के साथ साझा करता है।
एनएसई स्क्रिप्ट के चार प्रकार हैं, अर्थात्:
- Prerule scripts – are scripts that run before any of Nmap’s scan operations, they are executed when Nmap hasn’t gathered any information about a target yet.
- Host scripts – are scripts executed after Nmap has performed normal operations such as host discovery, port scanning, version detection, and OS detection against a target host.
- Service scripts – are scripts run against specific services listening on a target host.
- Postrule scripts – are scripts run after Nmap has scanned all of its target hosts.
फिर इन लिपियों को प्रमाणीकरण ( सामान्य ), मेजबानों की खोज ( प्रसारण ) सहित विभिन्न श्रेणियों के तहत वर्गीकृत किया जाता है, प्रमाणीकरण क्रेडेंशियल का अनुमान लगाने के लिए बल के हमलों पर हमला करता है ( जानवर ), किसी नेटवर्क के बारे में अधिक खोज ( खोज ), जिससे सेवा का खंडन होता है ( डॉस ), कुछ भेद्यता का दोहन ( शोषण ) , आदि कई स्क्रिप्ट डिफ़ॉल्ट श्रेणी से संबंधित हैं।
लाल
- Do not execute scripts from third parties without critically looking through them or only if you trust the authors. This is because these scripts are not run in a sandbox and thus could unexpectedly or maliciously damage your system or invade your privacy.
- Secondly, many of these scripts may possibly run as either a prerule or postrule script. Considering this, it is recommend to use a prerule for purposes of consistency.
- Nmap uses the scripts/script.db database to figure out the available default scripts and categories.
सभी उपलब्ध एनएसई लिपियों के स्थान को देखने के लिए, टर्मिनल पर उपयोगिता का पता लगाएं, जैसे:
$ locate *.nse /usr/share/nmap/scripts/acarsd-info.nse /usr/share/nmap/scripts/address-info.nse /usr/share/nmap/scripts/afp-brute.nse /usr/share/nmap/scripts/afp-ls.nse /usr/share/nmap/scripts/afp-path-vuln.nse /usr/share/nmap/scripts/afp-serverinfo.nse /usr/share/nmap/scripts/afp-showmount.nse /usr/share/nmap/scripts/ajp-auth.nse /usr/share/nmap/scripts/ajp-brute.nse /usr/share/nmap/scripts/ajp-headers.nse /usr/share/nmap/scripts/ajp-methods.nse /usr/share/nmap/scripts/ajp-request.nse /usr/share/nmap/scripts/allseeingeye-info.nse /usr/share/nmap/scripts/amqp-info.nse /usr/share/nmap/scripts/asn-query.nse ...
एनएसई लिपियों को - script
ध्वज का उपयोग करके लोड किया जाता है, जो आपको श्रेणियां, स्क्रिप्ट फ़ाइल नाम, या निर्देशिकाओं के नाम जहां आपकी स्क्रिप्ट स्थित हैं, प्रदान करके अपनी स्क्रिप्ट चलाने की अनुमति देता है।
स्क्रिप्ट को सक्षम करने का सिंटैक्स इस प्रकार है:
$ namp -sC target #load default scripts OR $ nmap --script filename|category|directory|expression,... target
आप एक स्क्रिप्ट का विवरण - script-help
विकल्प के साथ देख सकते हैं। इसके अतिरिक्त, आप कुछ स्क्रिप्ट्स के लिए - script-args
और - script-args-file
विकल्पों के माध्यम से तर्क पास कर सकते हैं, बाद में इसका उपयोग फ़ाइल नाम देने के बजाय किया जाता है एक कमांड लाइन।
अधिकांश डिफ़ॉल्ट स्क्रिप्ट के साथ स्कैन करने के लिए, -sC
ध्वज का उपयोग करें या वैकल्पिक रूप से दिखाए गए - script = default
का उपयोग करें।
$ nmap -sC scanme.nmap.org OR $ nmap --script=default scanme.nmap.org OR $ nmap --script default scanme.nmap.org
Starting Nmap 7.01 ( https://nmap.org ) at 2017-11-15 10:36 IST Nmap scan report for scanme.nmap.org (45.33.32.156) Host is up (0.0027s latency). Not shown: 999 filtered ports PORT STATE SERVICE 80/tcp open http |_http-title: Go ahead and ScanMe! Nmap done: 1 IP address (1 host up) scanned in 11.74 seconds
उपयुक्त उद्देश्य के लिए एक स्क्रिप्ट का उपयोग करने के लिए, आप सबसे पहले एक संक्षिप्त विवरण प्राप्त कर सकते हैं कि यह वास्तव में क्या करता है, उदाहरण के लिए http-headers ।
$ nmap --script-help http-headers scanme.nmap.org
Starting Nmap 7.01 ( https://nmap.org ) at 2017-11-15 10:37 IST http-headers Categories: discovery safe https://nmap.org/nsedoc/scripts/http-headers.html Performs a HEAD request for the root folder ("/") of a web server and displays the HTTP headers returned.
NSE स्केन करने के लिए एनएसई लिपियों को लोड करना
आप नीचे बताए गए विभिन्न तरीकों में स्कैन करने के लिए स्क्रिप्ट का चयन या लोड कर सकते हैं।
एक बार जब आप जानते हैं कि कोई स्क्रिप्ट क्या करती है, तो आप इसका उपयोग करके एक स्कैन कर सकते हैं। आप एक स्क्रिप्ट का उपयोग कर सकते हैं या स्क्रिप्ट नामों की अल्पविराम से अलग की गई सूची दर्ज कर सकते हैं। नीचे दी गई कमांड आपको वेब होस्ट पर लक्षित होस्ट पर कॉन्फ़िगर किए गए HTTP हेडर को देखने में सक्षम करेगी।
$ nmap --script http-headers scanme.nmap.org
Starting Nmap 7.01 ( https://nmap.org ) at 2017-11-15 10:39 IST Nmap scan report for scanme.nmap.org (45.33.32.156) Host is up (0.27s latency). Not shown: 996 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http | http-headers: | Date: Wed, 15 Nov 2017 05:10:04 GMT | Server: Apache/2.4.7 (Ubuntu) | Accept-Ranges: bytes | Vary: Accept-Encoding | Connection: close | Content-Type: text/html | |_ (Request type: HEAD) 179/tcp filtered bgp 31337/tcp open Elite Nmap done: 1 IP address (1 host up) scanned in 20.96 seconds
आप स्क्रिप्ट को एक श्रेणी से या अल्पविराम से अलग की गई श्रेणियों से भी लोड कर सकते हैं। इस उदाहरण में, हम होस्ट 192.168.56.1 पर स्कैन करने के लिए डिफ़ॉल्ट और प्रसारण श्रेणी में सभी लिपियों का उपयोग कर रहे हैं।
$ nmap --script default,broadcast 192.168.56.1
यह उपयोगी है जब आप किसी दिए गए नाम पैटर्न के साथ स्क्रिप्ट का चयन करना चाहते हैं। उदाहरण के लिए ssh से शुरू होने वाले नामों के साथ सभी लिपियों को लोड करने के लिए, टर्मिनल पर नीचे की कमांड चलाएँ:
$ nmap --script "ssh-*" 192.168.56.1
आप बूलियन अभिव्यक्तियों का उपयोग करके स्क्रिप्ट भी चुन सकते हैं, जिसे आप और , या , और नहीं ऑपरेटरों का उपयोग करके बना सकते हैं। और बूलियन अभिव्यक्ति में नाम एक श्रेणी, script.db , या सभी से एक फ़ाइल नाम हो सकता है।
निम्न आदेश डिफ़ॉल्ट या प्रसारण श्रेणियों से स्क्रिप्ट लोड करेगा।
$ nmap --script "default or broadcast" 192.168.56.10
जो इसके बराबर है:
$ nmap --script default,broadcast 192.168.56.10
वल्न श्रेणी में छोड़ने वाले सभी स्क्रिप्ट को लोड करने के लिए, टर्मिनल पर यह कमांड चलाएँ।
$ nmap --script "not vuln" 192.168.56.10
अगला कमांड थोड़ा जटिल लगता है, लेकिन यह समझना आसान है, यह डिफ़ॉल्ट या प्रसारण श्रेणियों में स्क्रिप्ट का चयन करता है, जो उन नामों को छोड़ता है जो ssh- से शुरू होते हैं:
$ nmap --script "(default or broadcast) and not ssh-*" 192.168.56.10
महत्वपूर्ण रूप से, श्रेणियों, स्क्रिप्ट नामों, एक निर्देशिका को जोड़ना संभव है, जिसमें आपकी कस्टम स्क्रिप्ट या बोलियों को लोड करने के लिए बूलियन अभिव्यक्ति वाली निर्देशिका होती है, जैसे:
$ nmap --script broadcast,vuln,ssh-auth-methods,/path/to/custom/scripts 192.168.56.10
नीचे एक उदाहरण दिखाया गया है कि -स्क्रिप्ट-आर्ग्स विकल्प के साथ स्क्रिप्ट में तर्क कैसे पारित करें:
$ nmap --script mysql-audit --script-args "mysql-audit.username='root', \ mysql-audit.password='password_here', mysql-audit.filename='nselib/data/mysql-cis.audit'"
पोर्ट संख्या को पास करने के लिए, -p nmap विकल्प का उपयोग करें:
$ nmap -p 3306 --script mysql-audit --script-args "mysql-audit.username='root', \ mysql-audit.password='password_here' , mysql-audit.filename='nselib/data/mysql-cis.audit'"
यह उपरोक्त आदेश CIS MySQL v1.0.2 बेंचमार्क के कुछ हिस्सों के खिलाफ MySQL डेटाबेस सर्वर सुरक्षा कॉन्फ़िगरेशन का ऑडिट चलाता है। आप अन्य MySQL ऑडिट के लिए अपनी उपयोगी कस्टम ऑडिट फ़ाइलें भी बना सकते हैं।
अभी के लिए बस इतना ही। आप nmap मैन पेज में अधिक जानकारी पा सकते हैं या एनएसई उपयोग की जांच कर सकते हैं।
अपनी खुद की NSE स्क्रिप्ट लिखने के साथ शुरुआत करने के लिए, इस गाइड की जाँच करें: https://nmap.org/book/nse-tutorial.html
Nmap एक बहुत शक्तिशाली और उपयोगी उपकरण है जिसे हर सिस्टम या नेटवर्क व्यवस्थापक को अपने सुरक्षा शस्त्रागार में आवश्यक है - NSE बस इसमें और अधिक दक्षता जोड़ता है।
इस लेख में, हमने आपको Nmap Script Engine से परिचित कराया, और विभिन्न श्रेणियों के तहत विभिन्न उपलब्ध लिपियों को खोजने और उनका उपयोग करने का तरीका देखा। यदि आपके कोई प्रश्न हैं, तो नीचे दिए गए टिप्पणी फ़ॉर्म के माध्यम से हमें वापस लिखने में संकोच न करें।