پیش از آنکه ابزار Nikto را معرفی کنیم بهتر است با مهمترین بخش هر وبسایت آشنا شویم. وب سرور (Web Server) یک نرمافزار یا سختافزاری است که درخواستهای کاربران (معمولاً از طریق مرورگرهای وب) را دریافت میکند و پاسخ مناسب (مانند صفحات وب، تصاویر، فایلها و غیره) را به آنها ارسال میکند. به عبارت دیگر وقتی شما در مرورگر خود آدرس یک سایت را وارد میکنید، مرورگر یک درخواست به وب سرور آن سایت میفرستد. وب سرور این درخواست را دریافت میکند، اطلاعات لازم را پیدا میکند، مثلاً یک صفحه HTML یا یک عکس و آن را به مرورگر شما میفرستد تا نمایش داده شود. بنابراین وب سرور نمادی از خط مقدم سایت شماست که در معرض بیشترین حملات قرار دارد.
برای محافظت از خطرات و تهدیدات سایبری ابزارهای متفاوتی وجود دارد که Nikto یکی از قدرتمندترین و پرکاربردترین آنها برای نفوذ به شبکه است. نیکتو ابزاریست که برای بررسی نقاط آسیبپذیر وبسایت و سیستم عامل بسیار کاربرد دارد. همچنین از این ابزار برای تست نفوذ به شبکه نیز استفاده میشود.
همانطورکه بیان شد وب سرور تمامی درخواستهایی که از سمت کلاینت ارسال میشود را بررسی و ذخیره میکند تا پاسخ مناسب را ارسال کند. حتی زمانی که فایلی را دانلود میکنید، درخواست به وب سرور ارسال میشود که ممکن است روی سرور مجازی ایران یا هاست اشتراکی باشد.
نیکتو یک ابزار رایگان و منبع باز (Open Source) برای پویش وب سرور و اسکن آسیبپذیری وب (Web Vulnerability Scanner) در حوزه امنیت سایبری است که که قابلیت شناسایی بیش از ۶۷۰۰ آسیبپذیری را دارد. این ابزار به عنوان یک اسکنر وب سرور عمل میکند و خطاهای پیکربندی سرور را شناسایی میکند. Chris Sullo این ابزار را با استفاده از زبان برنامهنویسی Perl در سال ۲۰۰۱ توسعه داد.
ابزار پویش وب سرور نیکتو، متن باز است و بطور مداوم در حال بروزرسانی است. این ابزار که در بین هکرهای اخلاقی محبوبیت زیادی کسب کرده، امکان استفاده برای انواع متنوع از وب سرورها (Litespeed, IIS, Apache, Nginx, Lighttpd) را فراهم میکند. علاوه بر این قابلیت تعیین زمان اسکن و شخصیسازی قسمتهای مختلف برای شناسایی آسیبپذیریها را نیز دارد.
برخی ویژگیهای و قابلیتهای Nikto عبارتند از:
شناسایی آسیبپذیریهای رایج وب سرورها: Nikto میتواند بیش از ۶۷۰۰ آسیبپذیری شناخته شده وب سرورها و برنامههای تحت وب را شناسایی کند.
شناسایی فایلها و دایرکتوریهای ناامن یا مخفی: Nikto میتواند فایلها و پوشههایی که نباید در دسترس باشند را پیدا کند، مثل فایلهای پیکربندی، بکآپها یا فایلهای حساس.
شناسایی نسخههای قدیمی و آسیبپذیر نرمافزارها: نسخه نرمافزارهای نصب شده روی وب سرور را شناسایی کرده و چنانچه نسخه مورد استفاده قدیمی و ناامن باشد هشدار میدهد.
شناسایی تنظیمات نادرست وب سرور: مانند پیکربندی نادرست SSL ، HTTP Methods فعال شده (مثل PUT یا DELETE که میتوانند خطرناک باشند).
قابلیت اسکن سریع و جامع: Nikto اسکنهای نسبتاً سریع و گسترده انجام میدهد که میتواند در محیطهای تست نفوذ و ارزیابی امنیتی مفید باشد.
قابل استفاده در خط فرمان (CLI): Nikto کاملاً مبتنی بر خط فرمان است و قابلیت اجرای خودکار در اسکریپتها و محیطهای مختلف را دارد.
پشتیبانی از پلاگینها و بهروزرسانی دیتابیس آسیبپذیریها: دیتابیس Nikto به طور منظم بهروزرسانی میشود و قابلیت افزودن پلاگینها یا تنظیمات سفارشی را دارد.
قابلیت تولید گزارش: امکان خروجی گرفتن گزارشها در فرمتهای مختلف مانند HTML ،CSV ،XML و غیره وجود دارد که برای تحلیل و مستندسازی مناسب است.
پشتیبانی از پروکسی و حملات متعدد: Nikto میتواند از طریق پروکسی فایلها را اسکن کند و گزینههایی برای تنظیمات متعدد در مقابل حملات و درخواستها دارد.
از آنجایی که Nikto ابزاری برای اسکن وب سرور با انعطافپذیری بالاست، مورد توجه بسیاری از متخصصین امنیت سایبری قرار گرفته است. تعداد زیادی از هکرهای اخلاقی نیز از این ابزار برای بخشی از فرآیند پن تست یا تست نفوذ استفاده میکنند. Nikto از پورتهای مختلف پشتیبانی میکند و میتواند اسکریپتهای مختلفی که از طریق تزریق کد (SQL Injection) شبکه شما را تهدید میکند، شناسایی کند. Nikto نه تنها در بین متخصصین امنیت سایبری محبوبیت دارد بلکه به متخصصین SOC هم برای بررسی مشکلات سرورها کمک زیادی میکند.
برای نصب Nikto در سیستمهای مبتنی بر Debian/Ubuntu از دستور زیر استفاده کنید:
sudo apt update
sudo apt install nikto
همچنین میتوانید از طریق Github هم برای نصب این ابزار پرکاربرد از دستور زیر استفاده کنید:
git clone https://github.com/sullo/nikto.git
cd nikto
در صورتی که نیاز به اسکن ساده یک وبسایت داشته باشید، میتوانید از دستور زیر استفاده کنید:
perl nikto.pl -h http://example.com
برخی گزینههای رایج:
دستور | توضیح |
h- |
تعیین آدرس هدف |
p- |
مشخص کردن پورت (مثلاً ۸۰ یا ۴۴۳) |
Tuning- |
تعیین نوع تستها (مثلاً تستهای خاص) |
output- |
ذخیره گزارش در فایل |
Format- |
فرمت خروجی ( txt, html, xml ) |
مثال:
perl nikto.pl -h https://example.com -p 443 -ssl -output report.html -Format html
Nikto یک ابزار قدرتمند و رایگان برای شناسایی آسیبپذیریهای رایج در وبسرورها است. این ابزار با بررسی هزاران فایل و پیکربندیهای ناامن، به تحلیلگران امنیت و تستکنندگان نفوذ (Penetration testers) کمک میکند تا ضعفهای ابتدایی و رایج مانند دایرکتوریهای حساس، نسخههای آسیبپذیر نرمافزار، فایلهای پنهان و مشکلات تنظیماتی را شناسایی کنند.
با وجود اینکه Nikto یک ابزار قدیمی است، اما همچنان بهعنوان یکی از ابزارهای پایه در فاز اطلاعات جمعآوری و اسکن اولیه کاربرد دارد. با این حال، به دلیل اینکه بسیار شفاف عمل میکند، بهراحتی توسط سیستمهای امنیتی مانند فایروال یا IDS شناسایی میشود.
Nikto یک ابزار متنباز (Open Source) برای اسکن آسیبپذیریهای سرورهای وب است که توسط Perl نوشته شده و یکی از ابزارهای محبوب در حوزه تست نفوذ و ارزیابی امنیتی است. این ابزار قادر است انواع رایج آسیبپذیریها و تنظیمات نادرست را روی وبسرورها شناسایی کند.
Nikto میتواند موارد زیر را شناسایی کند:
خیر، Nikto بیشتر بهعنوان یک اسکنر پایهای برای ارزیابی اولیه امنیت وبسرورها استفاده میشود. این ابزار برخلاف اسکنرهای حرفهای مانند Nessus یا Burp Suite، تمرکز زیادی بر گزارشهای دقیق سطح پایین ندارد اما برای کشف سریع مشکلات رایج بسیار مفید است.
استفاده از Nikto تنها در محدوده مجاز و با رضایت مالک سیستم قانونی است. استفاده بدون مجوز از آن علیه سیستمهای دیگر، ممکن است مصداق حمله سایبری تلقی شده و پیگرد قانونی داشته باشد.
Nikto به زبان Perl نوشته شده و قابل اجرا بر روی سیستمعاملهای مختلف مانند:
بله، Nikto قادر است از طریق HTTPS نیز به اسکن وبسرورها بپردازد و وضعیت گواهیها و پورتهای امن را نیز بررسی کند.
بله، Nikto معمولاً در مراحل اولیه تست نفوذ برای شناسایی سریع آسیبپذیریهای سطح سرور وب استفاده میشود و مکمل خوبی برای ابزارهای پیشرفتهتر محسوب میگردد.
Nikto امکان خروجی گرفتن از نتایج اسکن را در قالبهای مختلفی نظیر متن ساده (TXT)، HTML، XML را فراهم میکند.
کد منبع و مستندات Nikto در صفحه رسمی گیتهاب آن قابل دسترسی است.