در ادامه سری آموزش های nmap، در این پست به روش پیدا کردن آسیب‌پذیری توسط nmap پرداخته می‌شود. در بخش اول، nmap نسخه‌های نرم‌افزارهای آسیب‌پذیر روی هاست را بررسی می‌کند و در بخش دوم، nmap به بررسی آسیب‌پذیری SQL injection در URL می‌پردازد.

جستجوی CVE در nmap:

باگدشت در این صفحه برای شما عزیزان آموزش nmap را قرار داده است ، امیدواریم لذت ببرید.
برای استفاده از خاصیت جستجو آسیب‌پذیری توسط nmap، پکیج nmap-vulners را با دستور زیر در بخش فایل‌های اسکریپت nmap دانلود می‌کنیم:

$cd /usr/share/nmap/scripts
$git clone https://github.com/vulnersCom/nmap-vulners

بعد از دانلود از کد دستوری زیر برای اجرای تابع استفاده شود:

nmap --script nmap-vulners -sV website.com

نتایج کد بالا مشابه زیر است:

Starting Nmap 7.80 ( https://nmap.org ) at 2020-10-05 04:06 EDT
Nmap scan report for website.com (192.168.0.1)
Host is up (0.033s latency).
rDNS record for 192.168.0.1: pro18.domainname.host
Not shown: 986 filtered ports
PORT      STATE  SERVICE         VERSION
۲۱/tcp    open   ftp             Pure-FTPd
۲۵/tcp    open   smtp            Exim smtpd 4.93.0.4
۵۳/tcp    open   domain          ISC BIND 9.11.4-P2 (RedHat Enterprise Linux 7)
| vulners:
|   cpe:/a:isc:bind:9.11.4-p2:
|       CVE-2019-6470   5.0     https://vulners.com/cve/CVE-2019-6470
|       CVE-2017-3139   5.0     https://vulners.com/cve/CVE-2017-3139
|_      CVE-2020-8619   4.0     https://vulners.com/cve/CVE-2020-8619
۸۰/tcp    open   http            nginx
۱۱۰/tcp   open   pop3            Dovecot DirectAdmin pop3d
۱۴۳/tcp   open   imap            Dovecot imapd
۴۴۳/tcp   open   ssl/http        nginx
|_http-trane-info: Problem with XML parsing of /evox/about
۴۶۵/tcp   open   ssl/smtp        Exim smtpd 4.93.0.4
۵۸۷/tcp   open   smtp            Exim smtpd 4.93.0.4
۹۹۳/tcp   open   imaps?
۹۹۵/tcp   open   pop3s?
۲۲۲۲/tcp  open   ssl/http        DirectAdmin httpd 1.61.4 (Registered to CSP)
|_http-server-header: DirectAdmin Daemon v1.61.4 Registered to CSP
۸۰۸۱/tcp  closed blackice-icecap
۳۵۵۰۰/tcp closed unknown
Service Info: OS: Linux; CPE: cpe:/o:redhat:enterprise_linux:7

از نتایج کد بالا شناسه آسیب‌پذیری مانند CVE-2019-6470 نشان داده شده است. عدد روبروی شناسه، درجه آسیب‌پذیری یا Base Score باگ پیدا شده را نشان می‌دهد و برابر ۵ است و این آسیب‌پذیری در نسخه اینترپرایز لینوکس RedHat وجود دارد.

آسیب‌پذیری SQL injection:

در این قسمت به بررسی جستجوی آسیب‌پذیری SQL-injection می‌پردازیم. این ابزار با بررسی URL queries به جستجوی تزریق SQL می‌پردازد. همچنین در فیلد‌های فروم‌ها، امکان تزریق SQL را بررسی می‌کند. بعد از بررسی امکان تزریق SQL دستورات دلخواه SQL توسط nmap بررسی می‌شود و تمام خطاها و آسیب‌پذیری‌های ممکن در سرور را پیدا می‌کند. این ابزار آسیب‌پذیری‌های رایج SQL را مورد بررسی قرار می‌دهد و برای خطاهای پیچیده SQL نیازمند ابزارهای دقیق‌تری است. دستورات اسکریپت SQL injection به شکل زیر است.

http-sql-injection.withinhost

تنها URLهای داخل هاست را بررسی می‌کند.

http-sql-injection.errorstrings  

این دستور آدرس‌های فایل‌هایی که دارای خطاهای رشته‌ای است را بررسی می‌کند.

http-sql-injection.url

شروع بررسی url با استفاده از spidering.

http-sql-injection.maxpagecount

حداکثر تعداد صفحات را برای بررسی تعیین می‌کند. مقدا منفی محدودیت تعداد را حذف می‌کند.(در حالت پیش‌فرض مقدار حداکثر عدد ۲۰ است.)

برای مثال دستور زیر برای بررسی آسیب‌پذیری سایت هدف به SQL injection بررسی می‌شود:

nmap -sV --script=http-sql-injection <target>

خروجی به شکل زیر است:

PORT   STATE SERVICE
۸۰/tcp open  http    syn-ack
| http-sql-injection:
|   Possible sqli for queries:
|     https://foo.pl/forms/page.php?param=13'%20OR%20sqlspider
|   Possible sqli for forms:
|     Form at path: /forms/f1.html, form's action: a1/check1.php. Fields that might be vulnerable:
|       f1text
|     Form at path: /forms/a1/../f2.html, form's action: a1/check2.php. Fields that might be vulnerable:
|_      f2text

شما همچنین می توانید به آموزش nmap – سری اول جهت کسب اطلاعات بیشتر مراجعه فرمایید.