برای LDAP:
nmap -p 389 --script=ldap-rootdse 192.168.1.10
در محیط Active Directory، LDAP Enumeration میتونه اطلاعات مهمی درباره Domain Controller و Directory Service بده.
12. MySQL
اطلاعات MySQL:
nmap -p 3306 --script=mysql-info 192.168.1.10
بررسی Authentication:
nmap -p 3306 --script=mysql-empty-password 192.168.1.10
این نوع اسکریپتها برای بررسی Configuration اشتباه در محیط Lab مفیدن.
13. Redis
اطلاعات Redis:
nmap -p 6379 --script=redis-info 192.168.1.10
14. MongoDB
برای MongoDB:
nmap -p 27017 --script=mongodb-info 192.168.1.10
15. Vulnerability Scanning
یکی از جذابترین قابلیتهای NSE:
nmap --script=vuln 192.168.1.10
ولی بهتره قبلش Port و Version رو مشخص کنی:
nmap -sV --script=vuln 192.168.1.10
یا:
nmap -sV -p 80,443 --script=vuln 192.168.1.10
Category
vuln برای بررسی آسیبپذیریهای شناختهشده طراحی شده و معمولاً نتیجه را زمانی گزارش میکند که شرایط آسیبپذیری پیدا شود.16. Vulners
یکی از اسکریپتهای معروف:
nmap -sV --script=vulners 192.168.1.10
یا:
nmap -sV -p 22,80,443 --script=vulners 192.168.1.10
این Script بر اساس Service/Version و CPEهای شناساییشده، اطلاعات Vulnerability و CVSS مرتبط را از سرویس Vulners دریافت میکند.
یعنی مثلاً:
OpenSSH 8.x
↓
CPE
↓
Vulnerability Database
↓
CVE / CVSS
17. Discovery
برای Discovery میتونی Category رو مستقیم اجرا کنی:
nmap --script=discovery 192.168.1.10
البته برای یک اسکن واقعی بهتره Scriptهای مورد نیاز رو انتخاب کنی، چون
discovery میتونه تعداد زیادی Script را شامل بشه.18. Broadcast Discovery
در شبکه داخلی:
nmap --script=broadcast
مثلاً DHCP:
nmap --script=broadcast-dhcp-discover
این Script یک DHCP Request به Broadcast میفرسته و اطلاعات پاسخ DHCP Server رو گزارش میکنه.
برای بعضی محیطهای LAN:
nmap --script=broadcast-ping
میتونه Hostهای پاسخدهنده را در شبکه Local پیدا کنه.
19. Script Arguments
یکی از قسمتهای مهم NSE اینه که Scriptها میتونن Argument بگیرن.
ساختار:
--script-args name=value
مثلاً:
nmap --script dns-brute \
--script-args dns-brute.threads=10 \
example.com
چند Argument:
nmap --script dns-brute \
--script-args dns-brute.threads=10,dns-brute.srv=true \
example.com
Nmap برای Script Arguments از ساختار
name=value استفاده میکنه و میشه چند Argument رو با کاما جدا کرد.20. پیدا کردن Scriptها
برای دیدن Scriptهای نصبشده:
Linux:
ls /usr/share/nmap/scripts/
مثلاً:
ls /usr/share/nmap/scripts/ | grep http
یا:
ls /usr/share/nmap/scripts/ | grep smb
در ویندوز معمولاً Scriptها داخل دایرکتوری نصب Nmap قرار دارن.
21. NSE Script Database
Nmap یک فایل Database برای Scriptها داره:
/usr/share/nmap/scripts/script.db
برای جستجو:
grep http /usr/share/nmap/scripts/script.db
22. آپدیت Script Database
اگر Script جدیدی اضافه کردی:
sudo nmap --script-updatedb
این دستور Database مربوط به NSE رو دوباره میسازه.
23. دیدن مستندات یک Script
مثلاً:
nmap --script-help http-title
یا:
nmap --script-help dns-brute
برای چند Script:
nmap --script-help "http-*"
این یکی از بهترین راهها برای فهمیدن دقیقاً هر Script چه کاری انجام میده و چه Argumentهایی داره.
24. Wildcard
مثلاً تمام Scriptهایی که با
http- شروع میشن:nmap --script="http-*" 192.168.1.10
یا:
nmap --script="ssh-*" 192.168.1.10
یا:
nmap --script="smb-*" 192.168.1.10
25. ترکیب Scriptها
مثلاً یک Web Assessment نسبتاً خوب:
nmap -sV -p 80,443 \
--script="http-title,http-headers,http-methods,ssl-cert,ssl-enum-ciphers" \
192.168.1.10
برای SSH:
nmap -sV -p 22 \
--script="ssh-hostkey,ssh2-enum-algos,ssh-auth-methods" \
192.168.1.10
برای Windows/SMB:
nmap -sV -p 445 \
--script="smb-os-discovery,smb-protocols,smb-security-mode" \
192.168.1.10
26. ترکیب NSE با Scan کاملتر
یک دستور کاربردی برای Lab:
nmap -sS -sV -sC -O 192.168.1.10
یعنی:
-sS → TCP SYN Scan
-sV → Service/Version Detection
-sC → Default NSE Scripts
-O → OS Detection
اگر بخوای خروجی خیلی کاملتری بگیری:
nmap -A 192.168.1.10
-A مجموعهای از قابلیتهای تشخیص Version، OS، Traceroute و NSE را فعال میکند.@Netwo0rk