ലിനക്സിൽ Nmap സ്ക്രിപ്റ്റ് എഞ്ചിൻ (NSE) സ്ക്രിപ്റ്റുകൾ എങ്ങനെ ഉപയോഗിക്കാം


ഓപ്പൺ പോർട്ടുകളും ആ ഹോസ്റ്റുകളിൽ പ്രവർത്തിക്കുന്ന സേവനങ്ങളും സ്കാൻ ചെയ്യുക, കൂടാതെ മറ്റു പലതും.

Nmap-ന്റെ രസകരമായ സവിശേഷതകളിൽ ഒന്ന് Nmap സ്ക്രിപ്റ്റ് എഞ്ചിൻ (NSE) ആണ്, അത് അതിന് കൂടുതൽ വഴക്കവും കാര്യക്ഷമതയും നൽകുന്നു. ലുവാ പ്രോഗ്രാമിംഗ് ഭാഷയിൽ നിങ്ങളുടെ സ്വന്തം സ്ക്രിപ്റ്റുകൾ എഴുതാൻ ഇത് നിങ്ങളെ പ്രാപ്തരാക്കുന്നു, കൂടാതെ ഈ സ്ക്രിപ്റ്റുകൾ അവിടെയുള്ള മറ്റ് Nmap ഉപയോക്താക്കളുമായി പങ്കിടാനും കഴിയും.

നാല് തരം NSE സ്ക്രിപ്റ്റുകൾ ഉണ്ട്, അതായത്:

  • Prerule സ്ക്രിപ്റ്റുകൾ - Nmap-ന്റെ ഏതെങ്കിലും സ്കാൻ പ്രവർത്തനങ്ങൾക്ക് മുമ്പ് പ്രവർത്തിക്കുന്ന സ്ക്രിപ്റ്റുകളാണ്, Nmap ഇതുവരെ ഒരു ടാർഗെറ്റിനെക്കുറിച്ച് വിവരങ്ങളൊന്നും ശേഖരിക്കാത്തപ്പോൾ അവ എക്സിക്യൂട്ട് ചെയ്യപ്പെടും.
  • ഹോസ്uറ്റ് സ്uക്രിപ്uറ്റുകൾ - ഹോസ്uറ്റ് കണ്ടെത്തൽ, പോർട്ട് സ്uകാനിംഗ്, പതിപ്പ് കണ്ടെത്തൽ, ടാർഗെറ്റ് ഹോസ്റ്റിനെതിരായ OS കണ്ടെത്തൽ എന്നിവ പോലുള്ള സാധാരണ പ്രവർത്തനങ്ങൾ Nmap ചെയ്uതതിന് ശേഷം എക്uസിക്യൂട്ട് ചെയ്യുന്ന സ്uക്രിപ്റ്റുകളാണ്.
  • സേവന സ്ക്രിപ്റ്റുകൾ - ഒരു ടാർഗെറ്റ് ഹോസ്റ്റിൽ കേൾക്കുന്ന നിർദ്ദിഷ്ട സേവനങ്ങൾക്ക് എതിരായി പ്രവർത്തിക്കുന്ന സ്ക്രിപ്റ്റുകൾ.
  • Postrule സ്ക്രിപ്റ്റുകൾ - Nmap അതിന്റെ എല്ലാ ടാർഗെറ്റ് ഹോസ്റ്റുകളും സ്കാൻ ചെയ്തതിന് ശേഷം റൺ ചെയ്യുന്ന സ്ക്രിപ്റ്റുകളാണ്.

തുടർന്ന് ഈ സ്uക്രിപ്റ്റുകളെ വിവിധ വിഭാഗങ്ങൾക്ക് കീഴിൽ തരംതിരിച്ചിരിക്കുന്നു, ആധികാരികത (ഓത്ത്), ഹോസ്റ്റുകളെ കണ്ടെത്തൽ (പ്രക്ഷേപണം), പ്രാമാണീകരണ ക്രെഡൻഷ്യലുകൾ ഊഹിക്കാൻ ബ്രൂട്ട് ഫോഴ്uസ് ആക്രമണങ്ങൾ (ബ്രൂട്ട്), ഒരു നെറ്റ്uവർക്കിനെക്കുറിച്ച് കൂടുതൽ കണ്ടെത്തൽ (കണ്ടെത്തൽ), സേവന നിഷേധത്തിന് കാരണമാകുന്നു (ഡോസ് ), ചില അപകടസാധ്യതകൾ (ചൂഷണം) ചൂഷണം ചെയ്യുക തുടങ്ങിയവ. നിരവധി സ്ക്രിപ്റ്റുകൾ ഡിഫോൾട്ട് വിഭാഗത്തിൽ പെടുന്നു.

ശ്രദ്ധിക്കുക: ഞങ്ങൾ കൂടുതൽ മുന്നോട്ട് പോകുന്നതിന് മുമ്പ്, ഈ പ്രധാന പോയിന്റുകൾ നിങ്ങൾ ശ്രദ്ധിക്കേണ്ടതാണ്:

  • മൂന്നാം കക്ഷികളിൽ നിന്നുള്ള സ്uക്രിപ്റ്റുകൾ വിമർശനാത്മകമായി നോക്കാതെ അല്ലെങ്കിൽ രചയിതാക്കളെ നിങ്ങൾ വിശ്വസിക്കുന്നുവെങ്കിൽ മാത്രം എക്uസിക്യൂട്ട് ചെയ്യരുത്. കാരണം, ഈ സ്uക്രിപ്റ്റുകൾ ഒരു സാൻഡ്uബോക്uസിൽ പ്രവർത്തിക്കാത്തതിനാൽ അപ്രതീക്ഷിതമായോ ക്ഷുദ്രകരമായോ നിങ്ങളുടെ സിസ്റ്റത്തെ നശിപ്പിക്കുകയോ നിങ്ങളുടെ സ്വകാര്യതയെ ആക്രമിക്കുകയോ ചെയ്uതേക്കാം.
  • രണ്ടാമതായി, ഈ സ്ക്രിപ്റ്റുകളിൽ പലതും ഒരു പ്രീറൂൾ അല്ലെങ്കിൽ പോസ്റ്റ്റൂൾ സ്ക്രിപ്റ്റ് ആയി പ്രവർത്തിക്കാം. ഇത് പരിഗണിച്ച്, സ്ഥിരതയ്ക്കായി ഒരു പ്രിറൂൾ ഉപയോഗിക്കാൻ ശുപാർശ ചെയ്യുന്നു.
  • ലഭ്യമായ ഡിഫോൾട്ട് സ്ക്രിപ്റ്റുകളും വിഭാഗങ്ങളും കണ്ടുപിടിക്കാൻ Nmap scripts/script.db ഡാറ്റാബേസ് ഉപയോഗിക്കുന്നു.

ലഭ്യമായ എല്ലാ NSE സ്ക്രിപ്റ്റുകളുടെയും സ്ഥാനം കാണുന്നതിന്, ടെർമിനലിൽ ലൊക്കേറ്റ് യൂട്ടിലിറ്റി പ്രവർത്തിപ്പിക്കുക, ഇതുപോലെ:

$ 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 ഫ്ലാഗ് ഉപയോഗിച്ചാണ് NSE സ്ക്രിപ്റ്റുകൾ ലോഡുചെയ്യുന്നത്, വിഭാഗങ്ങൾ, സ്ക്രിപ്റ്റ് ഫയൽ നാമങ്ങൾ, അല്ലെങ്കിൽ നിങ്ങളുടെ സ്ക്രിപ്റ്റുകൾ സ്ഥിതി ചെയ്യുന്ന ഡയറക്ടറികളുടെ പേര് എന്നിവ നൽകി നിങ്ങളുടെ സ്വന്തം സ്ക്രിപ്റ്റുകൾ പ്രവർത്തിപ്പിക്കാനും ഇത് നിങ്ങളെ അനുവദിക്കുന്നു.

സ്ക്രിപ്റ്റുകൾ പ്രവർത്തനക്ഷമമാക്കുന്നതിനുള്ള വാക്യഘടന ഇപ്രകാരമാണ്:

$ nmap -sC target     #load default scripts
OR
$ nmap --script filename|category|directory|expression,...   target    

--script-help ഓപ്uഷൻ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഒരു സ്uക്രിപ്റ്റിന്റെ വിവരണം കാണാൻ കഴിയും. കൂടാതെ, നിങ്ങൾക്ക് --script-args, --script-args-file എന്നീ ഓപ്uഷനുകൾ വഴി ചില സ്uക്രിപ്റ്റുകളിലേക്ക് ആർഗ്യുമെന്റുകൾ കൈമാറാൻ കഴിയും, പിന്നീടുള്ളത് ഫയലിന്റെ പേര് നൽകുന്നതിന് പകരം ഉപയോഗിക്കും. ഒരു കമാൻഡ്-ലൈൻ ആർഗ്.

മിക്ക ഡിഫോൾട്ട് സ്ക്രിപ്റ്റുകളും ഉപയോഗിച്ച് ഒരു സ്കാൻ നടത്താൻ, -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-ഹെഡറുകൾ.

$ 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.

Nmap സ്കാനുകൾ നടത്താൻ NSE സ്ക്രിപ്റ്റുകൾ ലോഡുചെയ്യുന്നു

ചുവടെ വിശദീകരിച്ചിരിക്കുന്ന വ്യത്യസ്uത രീതികളിൽ സ്uകാൻ ചെയ്യാൻ നിങ്ങൾക്ക് സ്uക്രിപ്റ്റുകൾ തിരഞ്ഞെടുക്കാനോ ലോഡ് ചെയ്യാനോ കഴിയും.

ഒരു സ്ക്രിപ്റ്റ് എന്താണ് ചെയ്യുന്നതെന്ന് നിങ്ങൾക്കറിയാം, അത് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഒരു സ്കാൻ നടത്താം. നിങ്ങൾക്ക് ഒരു സ്ക്രിപ്റ്റ് ഉപയോഗിക്കാം അല്ലെങ്കിൽ കോമയാൽ വേർതിരിച്ച സ്ക്രിപ്റ്റ് നാമങ്ങളുടെ ലിസ്റ്റ് നൽകാം. ടാർഗെറ്റ് ഹോസ്റ്റിൽ വെബ്സെർവറിൽ ക്രമീകരിച്ചിരിക്കുന്ന 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

നിങ്ങൾക്ക് ബൂളിയൻ എക്uസ്uപ്രഷനുകൾ ഉപയോഗിച്ച് സ്uക്രിപ്uറ്റുകൾ തിരഞ്ഞെടുക്കാനും കഴിയും, അത് ഓപ്പറേറ്റർമാരല്ല, കൂടാതെ അല്ലെങ്കിൽ, അല്ല. ഒരു ബൂളിയൻ എക്uസ്uപ്രഷനിലെ പേരുകൾ ഒരു വിഭാഗമോ, 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

പ്രധാനമായും, വിഭാഗങ്ങൾ, സ്uക്രിപ്റ്റ് നാമങ്ങൾ, നിങ്ങളുടെ ഇഷ്uടാനുസൃത സ്uക്രിപ്റ്റുകൾ അടങ്ങുന്ന ഒരു ഡയറക്uടറി അല്ലെങ്കിൽ സ്uക്രിപ്റ്റുകൾ ലോഡുചെയ്യുന്നതിന് ഒരു ബൂളിയൻ എക്uസ്uപ്രഷൻ എന്നിവ സംയോജിപ്പിക്കാൻ കഴിയും, ഇതുപോലുള്ള:

$ nmap --script broadcast,vuln,ssh-auth-methods,/path/to/custom/scripts 192.168.56.10

-script-args ഓപ്ഷൻ ഉപയോഗിച്ച് സ്ക്രിപ്റ്റുകളിലേക്ക് ആർഗ്യുമെന്റുകൾ എങ്ങനെ കൈമാറാമെന്ന് കാണിക്കുന്ന ഒരു ഉദാഹരണം ചുവടെയുണ്ട്:

$ 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 ബെഞ്ച്uമാർക്കിന്റെ ഭാഗങ്ങൾക്കെതിരായ MySQL ഡാറ്റാബേസ് സെർവർ സുരക്ഷാ കോൺഫിഗറേഷന്റെ ഓഡിറ്റ് മുകളിലെ കമാൻഡ് പ്രവർത്തിപ്പിക്കുന്നു. മറ്റ് MySQL ഓഡിറ്റുകൾക്കായി നിങ്ങൾക്ക് സ്വന്തമായി ഉപയോഗപ്രദമായ ഇഷ്uടാനുസൃത ഓഡിറ്റ് ഫയലുകൾ സൃഷ്ടിക്കാനും കഴിയും.

തൽക്കാലം അതാണ്. നിങ്ങൾക്ക് Nmap മാൻ പേജിൽ കൂടുതൽ വിവരങ്ങൾ കണ്ടെത്താം അല്ലെങ്കിൽ NSE ഉപയോഗം പരിശോധിക്കുക.

നിങ്ങളുടെ സ്വന്തം NSE സ്ക്രിപ്റ്റുകൾ എഴുതാൻ ആരംഭിക്കുന്നതിന്, ഈ ഗൈഡ് പരിശോധിക്കുക: https://nmap.org/book/nse-tutorial.html

ഓരോ സിസ്റ്റത്തിനും നെറ്റ്uവർക്ക് അഡ്uമിനിസ്uട്രേറ്റർക്കും അവന്റെ/അവളുടെ സുരക്ഷാ ആയുധപ്പുരയിൽ ആവശ്യമായ ശരിക്കും ശക്തവും ഉപയോഗപ്രദവുമായ ഉപകരണമാണ് Nmap - NSE അതിന് കൂടുതൽ കാര്യക്ഷമത നൽകുന്നു.

ഈ ലേഖനത്തിൽ, ഞങ്ങൾ നിങ്ങളെ Nmap സ്uക്രിപ്റ്റ് എഞ്ചിൻ പരിചയപ്പെടുത്തി, കൂടാതെ വിവിധ വിഭാഗങ്ങൾക്ക് കീഴിൽ ലഭ്യമായ വിവിധ സ്uക്രിപ്റ്റുകൾ എങ്ങനെ കണ്ടെത്താമെന്നും ഉപയോഗിക്കാമെന്നും നോക്കുകയും ചെയ്തു. നിങ്ങൾക്ക് എന്തെങ്കിലും ചോദ്യങ്ങളുണ്ടെങ്കിൽ, ചുവടെയുള്ള അഭിപ്രായ ഫോം വഴി ഞങ്ങൾക്ക് തിരികെ എഴുതാൻ മടിക്കരുത്.