معرفی اجمالی اسکن آسیب‌پذیری با ابزار Nuclei

معرفی اجمالی اسکن آسیب‌پذیری با ابزار  Nuclei

Nuclei یک ابزار اسکن آسیب‌پذیری قدرتمند و بسیار قابل تنظیم است که برای تست امنیتی در پروتکل‌های مختلف مانند HTTP، DNS و TCP استفاده می‌شود. این ابزار توسط ProjectDiscovery توسعه یافته و به متخصصان امنیت سایبری امکان می‌دهد تا با استفاده از قالب‌های مبتنی بر YAML، فرآیند شناسایی آسیب‌پذیری‌ها را خودکارسازی کنند. این ابزار متن‌باز، انعطاف‌پذیری بالایی در ایجاد گردش‌کارهای سفارشی و ادغام با سایر ابزارها دارد، که آن را برای تست امنیتی مداوم بسیار مناسب می‌سازد. Nuclei برای خودکارسازی فرآیند تست امنیتی برنامه‌های وب و شناسایی مسائل امنیتی احتمالی وب سایت‌ها مورد استفاده قرار می‌گیرد.

 

آنچه در ادامه می‌خوانید:

تولد ProjectDiscovery

چرا Bishop Fox از Nuclei استفاده می‌کند؟

چرا Nuclei اهمیت دارد؟

ویژگی‌های کلیدی Nuclei 

Nuclei چه چیزی به Intruder اضافه می‌کند؟

مزایای رقابتی  Nuclei

نصب و راه‌اندازی

نصب و اجرای Nuclei با Docker 

ایجاد و استفاده از قالب‌های سفارشی

قالب‌های سفارشی (Custom Templates)

راهنمای ساخت قالب سفارشی در Nuclei

پشتیبانی از پروتکل‌ها در Nuclei

آینده Nuclei

کلام آخر

سؤالات متداول 

 

تولد ProjectDiscovery

ProjectDiscovery در سال ۲۰۱۹ توسط Sandeep Singh ،Rishiraj Sharma ،Marco Rivoli و Nizamul Ran  بنیان‌گذاری شد. این افراد از طریق همکاری در ابزار Subfinder (ابزاری برای کشف زیردامنه‌های معتبر از منابع آنلاین)، علاقه مشترکشان را در توسعه ابزارهای امنیتی متن‌باز کشف کردند و این آغاز شکل‌گیری ProjectDiscovery بود. بیش از ۳۰۰ پژوهشگر و مهندس امنیت، از جمله افراد تیم Bishop Fox، در توسعه قالب‌های آسیب‌پذیری مشارکت داشته‌اند که به‌عنوان منبعی مبتنی بر جامعه کاربران در دسترس هستند.
 

چرا Bishop Fox از Nuclei استفاده می‌کند؟

تیم‌های امنیتی Bishop Fox از جمله تیم‌های Network Security ،Managed Services و Cosmos نظرات زیر را درباره مزایای استفاده از Nuclei مطرح کرده‌اند:

  • امنیت شبکه (Network Security): Nuclei شکاف مهمی را در تست نفوذ خارجی پر می‌کند. اسکن‌های اولیه با آن کمک می‌کنند تا سریع‌تر آسیب‌پذیری‌ها و نشانه‌های مشکوک شناسایی شوند.
  • خدمات مدیریت‌شده (Managed Services): قالب‌های Nuclei بسیاری از وظایف دستی را خودکار می‌کنند، در نتیجه دقت بالا رفته و خطاهای مثبت کاذب کاهش می‌یابد.
  • تیم Cosmos: استفاده از زبان استاندارد در قالب‌ها، امکان مدیریت یکپارچه سطح حمله را فراهم می‌کند و اشتراک قالب‌ها با جامعه باعث افزایش دانش و سرعت اصلاح آسیب‌پذیری‌ها می‌شود.

 

چرا Nuclei اهمیت دارد؟

در دنیای امروزی که حملات سایبری به سرعت در حال پیشرفت هستند، شناسایی زودهنگام آسیب‌پذیری‌ها امری حیاتی است. ابزارهایی مثل Nuclei با خودکارسازی فرآیند اسکن و ارائه قالب‌های قابل اشتراک، کمک می‌کنند تا تیم‌های امنیتی زمان بیشتری را صرف تحلیل و کاهش ریسک کنند، نه صرفاً کشف تهدیدات.
 

ویژگی‌های کلیدی Nuclei 

  • ادغام‌پذیر با سایر ابزارها: قابل استفاده درCI/CD، ابزارهای تست نفوذ، یا اسکریپت‌های سفارشی.
  • اسکن با استفاده از قالب‌ها  (Templates): Nuclei از قالب‌های خاصی برای تعریف تست‌های امنیتی استفاده می‌کند. این قالب‌ها شامل الگوها و شرایطی هستند که برای جستجوی آسیب‌پذیری‌های شناخته‌شده یا مشکلات پیکربندی در هدف وب استفاده می‌شوند.
  • پشتیبانی از قالب‌های YAML:  امکان تعریف تست‌های دلخواه بدون نیاز به کدنویسی پیچیده را فراهم می کند.
  • کتابخانه قالب گسترده: این ابزار دارای یک کتابخانه گسترده از قالب‌هاست که توسط متخصصان امنیتی تهیه شده و شامل طیف وسیعی از دسته‌های امنیتی مانند SQL Injection، آسیب‌پذیری‌های سرور وب، مشکلات CORS (اشتراک‌گذاری منابع بین مبدأها) و موارد دیگر را پوشش می‌دهد. کاربران همچنین می‌توانند قالب‌های سفارشی خود را در صورت نیاز ایجاد کنند.
  • پشتیبانی از چندین پروتکل: Nuclei از چندین پروتکل وب مانند HTTP ،HTTPS ،DNS ،TCP ،SSH و SSL SMTP پشتیبانی می‌کند، که امکان انجام اسکن‌های جامع در سطوح مختلف حمله را فراهم می‌سازد.
  • گزارش‌ها و نتایج: این ابزار گزارش‌های دقیقی از نتایج اسکن ارائه می‌دهد، از جمله اطلاعات مربوط به شدت آسیب‌پذیری‌های شناسایی‌شده. 
  • سرعت بالا و مقیاس‌پذیر: قابلیت اسکن هم‌زمان هزاران هدف با مصرف کم منابع
     

Nuclei چه چیزی به Intruder اضافه می‌کند؟

Intruder، موتور اسکن Nuclei را برای بررسی بهتر سطح حمله مشتریان، مانند پنل‌های ورود غیرمجاز روی اینترنت، اضافه کرده است. این ابزار مکمل اسکنرهای قدرتمندی مانند Tenable و OpenVAS است. در نسخه اولیه، بیش از ۳۰۰۰ بررسی اضافی ارائه شده است که عمق و وسعت پوشش Intruder را افزایش می‌دهد.
در طول ده سال گذشته، نرخ کشف آسیب‌پذیری‌ها با سرعت زیادی در حال افزایش بوده است. در سال ۲۰۱۰، تعداد ۴,۹۹۲ آسیب‌پذیری (CVE) منتشر شد، در حالی‌که این تعداد در سال ۲۰۲۰ به ۱۷,۲۵۳ مورد رسید؛ بیش از سه برابر. در نتیجه، امروزه سازمان‌ها در هر اندازه‌ای، ابزارهای اسکن آسیب‌پذیری را به مجموعه ابزارهای امنیتی خود اضافه کرده‌اند تا بتوانند شناسایی و مدیریت آسیب‌پذیری‌ها را در زیرساخت خود انجام دهند.

اما با توجه به افزایش تعداد ابزارهای اسکن آسیب‌پذیری در بازار، یک پرسش رایج برای بسیاری از سازمان‌ها این است:
کدام ابزار را باید انتخاب کرد؟ برای جواب به این سوال به تصویر زیر دقت کنید:

 

این تصویر تعداد کل آسیب‌پذیری‌های منتشرشده (CVE) بین سال‌های ۲۰۱۰ تا ۲۰۲۰ را نشان می‌دهد. دو ابزاری که بیش از سایرین با یکدیگر مقایسه می‌شوند، Nessus از شرکت Tenable و OpenVAS  از شرکت Greenbone هستند. شاید دلیل این مقایسه‌ها فراوانی استفاده از این دو ابزار باشد، یا شاید هم به دلیل پیشینه مشترکی که دارند.

 

مزایای رقابتی Nuclei

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

نصب و راه‌اندازی

برای شروع استفاده از Nuclei، ابتدا باید زبان برنامه‌نویسی Go را نصب کنید. سپس می‌توانید با استفاده از دستور زیر، Nuclei را نصب نمایید:


GO111MODULE=on go get -v github.com/projectdiscovery/nuclei/v2/cmd/nuclei

پس از نصب، برای به‌روزرسانی قالب‌های آسیب‌پذیری، از دستور زیر استفاده کنید:

Go install -v github.com/projectdiscovery/nuclei/v2/cmd/luclei@latest

با این کار اطمینان حاصل می‌کنید که جدیدترین قالب‌های اسکن را در اختیار دارید.
 

نصب و اجرای Nuclei با Docker 

برای نصب و اجرای ابزار Nuclei با استفاده از Docker، ابتدا مطمئن شوید که Docker روی سیستم شما نصب شده باشد. سپس می‌توانید با اجرای دستورات زیر، Nuclei را اجرا کنید. دریافت نسخه رسمی Nuclei از Docker Hub

Docker pull projectdiscovery/nuclei:latest

ساده‌ترین روش اجرای Nuclei، اسکن اهداف با استفاده از قالب‌های از پیش تعریف‌شده است. به‌عنوان مثال:


nuclei -l targets.txt -t cves

این دستور، URLهای موجود در فایل targets.txt را برای آسیب‌پذیری‌های شناخته‌شده (CVEs) اسکن می‌کند. برای تمرکز بر آسیب‌پذیری‌های بحرانی یا مهم، می‌توان نتایج را با استفاده از پارامتر severity فیلتر کرد:


nuclei -t cves/ -severity critical,high -l targets.txt

ایجاد و استفاده از قالب‌های سفارشی

یکی از قابلیت‌های کلیدی Nuclei، امکان استفاده از قالب‌های سفارشی مبتنی بر YAML است. این قالب‌ها تست‌های خاص برای آسیب‌پذیری‌ها را تعریف می‌کنند. ایجاد یک قالب بسیار ساده است:

زمانی که قالب شما آماده شد، می‌توانید هدف را با استفاده از دستور زیر اسکن کنید:


nuclei -u https://example.com -t /path/to/custom-template.yaml

 

قالب‌های سفارشی (Custom Templates)

اگرچه هزاران قالب از پیش ساخته شده توسط جامعه کاربران در دسترس است، اما هر کسی که بخواهد به یک کاربر حرفه‌ای Nuclei تبدیل شود، باید یاد بگیرد که چگونه قالب‌های سفارشی بنویسد. در این قسمت چند سناریو آورده شده است که به شما کمک می‌کند تا یک قالب سفارشی ایجاد کنید:
یک آسیب‌پذیری جدید (CVE) کشف شده است، شما مقاله یا گزارش آن را مطالعه کرده‌اید که در آن یک اثبات مفهوم ساده (PoC) ارائه شده است، اما هنوز هیچ‌کس قالب Nuclei برای آن ننوشته است.
شما خودتان یک آسیب‌پذیری روز صفر (0-day) پیدا کرده‌اید و می‌خواهید این امکان را به دیگران بدهید که سیستم‌های خود را برای وجود این آسیب‌پذیری اسکن کنند.

 

راهنمای ساخت قالب سفارشی در Nuclei

مرحله ۱: ساختار پایه قالب YAML

یک قالب Nuclei در قالب یک فایل YAML ساخته می‌شود. 

توضیح بخش‌ها:

  • Id: شناسه یکتای قالب.
  • Info: شامل اطلاعاتی مانند نام، نویسنده، شدت آسیب‌پذیری و توضیح.
  • Requests: در این بخش مشخص می‌کنیم چه نوع درخواستی به سرور ارسال شود.
  • Matchers: الگوهایی برای بررسی پاسخ سرور. در این مثال، اگر واژه vulnerable در پاسخ دیده شود، آسیب‌پذیری تشخیص داده می‌شود.

 

مرحله ۲: ذخیره قالب

فایل ایجاد شده در مرحله قبل را با پسوند .yaml ذخیره کنید. 

 

مرحله ۳: اجرای قالب روی هدف

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

Nuclei -u https://example.com -t /path/to/my-custom-check.yml

نکات تکمیلی:

  • می‌توانید از متدهای POST ،PUT ،HEAD استفاده کنید.
  • می‌توانید چندین matcher برای دقت بیشتر تعریف کنید.
  • می‌توانید از متغیرهایی مثل BaseURL  ،Hostname یا RootURL استفاده کنید.
  • قالب‌ها را می‌توان برای پروتکل‌های دیگر مثل DNS یا TCP نیز ساخت.

 

بهینه‌سازی عملکرد

Nuclei به شما این امکان را می‌دهد که نرخ درخواست‌ها و تعداد رشته‌های همزمان (threads) را برای تعادل بین سرعت و بار سرور کنترل کنید.

 

پشتیبانی از پروتکل‌ها در Nuclei

Nuclei  توانایی درک و کار با انواع مختلفی از پروتکل‌های شبکه و سرویس‌ها را دارد، از جمله:

  • HTTP
  • DNS
  • SSL
  • ارتباطات خام TCP (Raw TCP)


 

آینده Nuclei

بر اساس گفته‌های هم‌بنیان‌گذار و مدیر فنی، Sandeep Singh، هدف Nuclei ایجاد یک بستر واحد برای اسکن چندپروتکلی آسیب‌پذیری است تا دیگر نیازی به جابجایی میان ابزارهای مختلف نباشد.
با افزایش یکپارچه‌سازی وب‌اپلیکیشن‌ها، Nuclei فرصت بزرگی برای ارائه اسکن‌های دقیق و منطقی برای متخصصان امنیت خواهد داشت. مشارکت جامعه و شفافیت قالب‌ها باعث شده است این ابزار به یک مرجع قابل اعتماد متن‌باز تبدیل شود.


کلام آخر

ابزار Nuclei یک ابزار بسیار قدرتمند و چندمنظوره برای شناسایی آسیب‌پذیری‌ها و ارزیابی امنیتی در برنامه‌های وب و سیستم‌ها است.
توانایی آن در خودکارسازی فرآیند جستجو و بهره‌برداری از آسیب‌پذیری‌ها در طیف گسترده‌ای از فناوری‌ها و پروتکل‌ها، آن را به ابزاری ارزشمند برای متخصصان امنیت سایبری و پژوهشگران امنیتی تبدیل کرده است.
علاوه بر این، وجود جامعه‌ای فعال و توسعه مداوم قالب‌ها و اسکریپت‌ها، باعث شده است که Nuclei همچنان در خط مقدم مقابله با تهدیدات سایبری در حال تحول باقی بماند.


سؤالات متداول 

۱. Nuclei چیست و چه کاربردی دارد؟
Nuclei یک ابزار متن‌باز و سریع برای اسکن امنیتی است که با استفاده از قالب‌های قابل تنظیم، آسیب‌پذیری‌ها و پیکربندی‌های نادرست را در سیستم‌ها، وب‌سایت‌ها و سرویس‌های شبکه شناسایی می‌کند.

۲. چه کسانی Nuclei را توسعه داده‌اند؟
این ابزار در سال ۲۰۱۹ توسط Sandeep Singh، Rishiraj Sharma، Marco Rivoli  و Nizamul Ran  در قالب تیم ProjectDiscovery توسعه داده شد.

۳. Nuclei  از چه پروتکل‌هایی پشتیبانی می‌کند؟
Nuclei  از پروتکل‌هایHTTP، HTTPS، DNS، TCP، SSH، SSL  و SMTP پشتیبانی می‌کند.

۴. قالب‌های (Templates) در Nuclei چه هستند و چگونه کار می‌کنند؟
قالب‌ها فایل‌های YAML هستند که شرایط و الگوهای شناسایی آسیب‌پذیری‌ها را تعریف می‌کنند Nuclei با اجرای این قالب‌ها، به‌طور خودکار اهداف را اسکن می‌کند.

۵. چطور می‌توان قالب سفارشی برای Nuclei ایجاد کرد؟
با نوشتن یک فایل YAML شامل شناسه، توضیحات، نوع درخواست و الگوهای پاسخ، می‌توان قالب سفارشی ایجاد و آن را روی هدف اجرا کرد.

۶. آیا Nuclei برای استفاده رایگان است؟
بله، Nuclei  متن‌باز و کاملاً رایگان است.

۷. Nuclei چه تفاوتی با ابزارهایی مثل Nessus و OpenVAS دارد؟
برخلاف بسیاری از ابزارهای مشابه که پولی هستند یا محدودیت دارند، Nuclei  متن‌باز، قابل سفارشی‌سازی، چندپروتکلی و بسیار سریع است.

۸. چگونه می‌توان Nuclei را نصب و اجرا کرد؟
با نصب زبان Go و اجرای دستور go get، یا با استفاده از Docker می‌توان Nuclei را نصب کرد.

۹. آیا امکان استفاده از Nuclei با Docker وجود دارد؟
بله، نسخه رسمی Nuclei در Docker Hub موجود است و می‌توان آن را به‌سادگی اجرا کرد.

۱۰. مزیت اصلی استفاده از Nuclei در تست نفوذ چیست؟
خودکارسازی اسکن، سرعت بالا، کاهش خطاهای مثبت کاذب و امکان شخصی‌سازی کامل تست‌ها.

۱۱. چگونه Nuclei به کاهش سطح حمله کمک می‌کند؟
با شناسایی سرویس‌های افشاشده، پنل‌های ناامن و آسیب‌پذیری‌ها، به تیم‌های امنیتی کمک می‌کند نقاط ضعف را اصلاح یا حذف کنند.

۱۲. آیا Nuclei قابلیت ادغام با ابزارهای دیگر را دارد؟
بله، می‌تواند در CI/CD، اسکریپت‌ها و ابزارهای تست نفوذ دیگر ادغام شود.

۱۳. کتابخانه قالب‌های Nuclei شامل چه دسته‌بندی‌هایی است؟
شامل آسیب‌پذیری‌هایی مانند SQL Injection ،CORS، آسیب‌پذیری‌های سرور وب و بسیاری دیگر.

۱۴. چگونه می‌توان قالب‌های Nuclei را به‌روز نگه داشت؟
با اجرای دستور nuclei -update-templates می‌توان آخرین نسخه قالب‌ها را دریافت کرد.

 


 

تاریخ انتشار: 1404/05/14
تاریخ بروزرسانی: 1404/06/20
user avatar
نویسنده: زینب ابراهیم‌پور کارشناس بازاریابی دیجیتال
زینب ابراهیم‌پور در سال 1403 در مقطع دکتری رشته ارتباطات از دانشگاه شانگهای فارغ التحصیل شد. در طول تحصیل با شرکت‌های بین المللی در زمینه دیجیتال مارکتینگ همکاری داشته و از سال 1400 به طور ثابت تخصص حرفه‌ای خود را با شرکت‌های بزرگ ایرانی شروع کرده است. ایشان در سال 1404 به مجموعه سایبرنو پیوست.
برچسب‌های مرتبط
این مطلب را با دوستان خود به اشتراک بگذارید
نظرات کاربران

برای دریافت خبرنامه و اخبار

آدرس پست الکترونیکی خود را وارد کنید

تمامی حقوق مادی و معنوی این سایت متعلق به شرکت مهندسی دنیای فناوری امن ویرا (سایبرنو) می‌باشد.