آموزش RustScan ⚡ سریعترین اسکنر پورت
- کورش سنایی
- ۲۲ شهریور ۱۴۰۴
- زمان مطالعه: 7 دقیقه

آموزش RustScan را همینجا شروع میکنیم. RustScan یک اسکنر پورت مدرن و فوقالعاده سریع است که بهطور خاص برای کسانی طراحی شده که میخواهند در زمان کمتر، هدفهای بیشتری را پوشش دهند. این ابزار بهدلیل استفاده از زبان Rust و شبکهزنی در سطح پایین کرنل و طراحی ناهمگام، میتواند هزاران پورت را در کسری از ثانیه بررسی کند؛ اما سرعت تنها مزیت آن نیست، RustScan قابل توسعه است و با یک موتور اسکریپتی انعطافپذیر به شما اجازه میدهد پس از شناسایی پورتهای باز، ابزارها یا اسکریپتهای دلخواهتان را اجرا کنید.
آموزش پورت اسکن با RustScan
در ویدیو ی بالا آموزش RustScan رو به صورت عملی کار کردیم و با کمک Nmap یک Agressive اسکن انجام دادیم و توضیحات لازمه رو دادیم پس اگه حوصله خوندن این مقاله نداری ویدیو رو ببین 👆🏻
آشنایی کوتاه با RustScan
RustScan سرعت را با کمترین سربار ترکیب میکند. این ابزار برای کسانی ساخته شده که سر راست دنبال کشف درگاههای باز هستند و میخواهند سریع از مرحله شناسایی عبور کرده و به تحلیل سرویس یا تست آسیبپذیری بپردازند. RustScan شبکهزنی سطح پایین را با مدل ناهمگام ترکیب میکند تا به شکلی موثر و کمتاخیر سوکتها را باز و مدیریت کند. وقتی این اسکنر را راه بیندازید، معمولا فایل پیکربندی پیشفرض را در مسیر /root/.rustscan.toml
جستجو میکند؛ ایجاد و ویرایش این فایل میتواند رفتار پیشفرض را برای محیط تیمی یا محیط کاری شخصی شما بهینه کند.
نصب RustScan
نصب RustScan ساده و مستقیم است. روی توزیعات دبیان-بیس به شکل بسته یا باینری نصب میشود و برای سیستمهای دیگر مثل مک، آرک، داکر یا نیکس، دستورالعملهای مخصوص در مخزن گیتهاب منتشر شده است. اگر دنبال نصب سریع در داکر هستی، تصویر رسمی میتواند راهگشا باشد و مزیتش این است که محدودیتهای سیستم میزبان روی ulimit کمتر دردسرساز میشود.
مدیریت ulimit و هشدارهای مربوطه
هنگامی که RustScan را اجرا میکنید ممکن است پیامهایی درباره محدودیت فایل (ulimit) ببینید. این پیامها به این دلیل ظاهر میشوند که ابزار برای باز کردن همزمان تعداد زیادی سوکت به تعداد قابلتوجهی دستگیره فایل نیاز دارد. اگر مقدار ulimit -n
روی سیستم شما پایین باشد، سرعت اسکن کاهش مییابد و ممکن است اسکن ناپایدار شود. راهحلهای معمول شامل افزایش موقتی با دستور ulimit -n 5000
یا اجرای RustScan با آرگومان --ulimit 5000
است. برای راهحل دائم میتوانید تنظیمات را در فایلهای سیستمی مثل /etc/security/limits.conf
اصلاح کنید، اما همیشه باید پیام هشدار ابزار را جدی بگیرید چون افزایش بیش از حد منابع میتواند روی سرور یا شبکه میزبان تاثیر منفی بگذارد.
چرا RustScan سریع است؟

سرعت RustScan نتیجه سه عامل اصلی است: استفاده از شبکهزنی سطح پایین کرنل، پیادهسازی در زبان Rust با عملکرد بالا، و طراحی ناهمگام که هزینههای تعویض کانتکست چندنخی را حذف میکند. در بهترین شرایط، گلوگاه عملکرد خود برنامه نیست؛ بلکه سختافزار شما، کیفیت لینک شبکه و واکنش هدف هستند. اگر دستگاه یا مسیر شبکه ضعیف باشد، آنها سرعت را محدود میکنند، نه خود RustScan. تیم توسعه برای جلوگیری از افت سرعت به مرور زمان از تستهای دستی، CI و بنچمارکینگ استفاده میکند و تلاش میشود تا ویژگیها خارج از حلقهی اصلی اسکن نگه داشته شوند تا عملکرد هستهای لطمه نبیند. واسه همین تصمیم گرفتیم که آموزش RustScan واستون بسازیم .
موتور اسکریپتنویسی (RSE) و قابل توسعه بودن
یکی از بزرگترین مزیتهای RustScan موتور اسکریپتنویسی آن است. این موتور به شما اجازه میدهد پس از پایان اسکن، اسکریپتهایی اجرا کنید که پورتهای باز و آیپیهای مربوطه را به عنوان ورودی میپذیرند. RSE از پایتون، شل، پرل و هر باینری موجود در PATH پشتیبانی میکند. برای راهاندازی اسکریپتهای سفارشی نیاز به فایلی به نام rustscan_scripts.toml
در مسیر $HOME/.rustscan_scripts.toml
دارید که در آن میتوانید تگها، پورتهای هدف و متادیتاهای لازم را تعریف کنید تا تنها اسکریپتهای مرتبط اجرا شوند. قالب فراخوانی اسکریپتها از متغیرهای قالبپذیر استفاده میکند و این امکان را فراهم میآورد که هر ابزار نصبشده در سیستم، از جمله Nmap یا Gobuster، بهسرعت و بهصورت خودکار توسط RustScan فراخوانی شود.
نحوه نوشتن و اجرای اسکریپتهای سفارشی
اسکریپتها در RustScan از طریق متادیتا که به صورت کامنت در بالای فایل قرار میگیرد شناخته میشوند. metadata شامل تگها، پورتهای محرک و پارامتر اجرا است. خود کد اسکریپت پس از یک خط خالی آغاز میشود و اسکریپت ورودیها را از طریق آرگومان دریافت میکند. این طراحی ساده و قابل فهم باعث میشود بتوانید برای هر پورت یا سرویس خاص، ابزارهای تحلیل یا استخراج را به کار بگیرید و خروجی را برای تحلیلهای بعدی یا ذخیره شدن در دیتابیس ارسال کنید. اگر اسکریپت شما برای HTTP نوشته شده، میتوانید با تعیین تگ HTTP در فایل پیکربندی، تنها آن دسته از اسکریپتها را اجرا کنید که مرتبط هستند.
تطبیقی بودن و بهینهسازی برای محیطهای مختلف
RustScan به صورت تطبیقی عمل میکند؛ یعنی در حین اسکن رفتار ارسال بستهها و زمانبندی را بر اساس پاسخ هدف تنظیم میکند. این قابلیت شامل انتخاب پورتهای پرکاربر برای شما و تنظیمات خاص سیستمعامل میزبان است. به عنوان مثال روی مک مقدار پیشفرض ulimit پایینتر است و RustScan بهصورت خودکار تنظیماتی را اعمال میکند تا اسکن شکست نخورد. این نوع تطبیق باعث میشود ابزار از لپتاپ شخصی تا سرورهای قوی قابل استفاده باشد بدون اینکه برای هر محیط تنظیمات زیادی لازم شود.
فرمت پایه اجرای اسکن و مثالهای متداول
فرمت پایه اجرای اسکن که خروجی را به Nmap میفرستد به شکل rustscan -r ports -a <Target-ip> -- <nmap cmds>
است. شما میتوانید چندین آیپی را جداشده با کاما وارد کنید، رنجهای CIDR را اسکن کنید یا از یک فایل hosts که شامل فهرستی از آیپیها و میزبانهاست استفاده کنید. همچنین امکان اسکن پورتهای فردی، فهرستی یا بازهای وجود دارد و میتوان ترتیب آدرسدهی پورتها را به حالت تصادفی تغییر داد تا احتمال آشکارسازی توسط سیستمهای دفاعی کاهش یابد. ترکیب RustScan بهعنوان لایه اول و Nmap برای تحلیلهای عمیقتر یک زنجیره کاری حرفهای و کارآمد ایجاد میکند.
نکات ایمنی، اخلاق و حقوقی
امیدواریم از این آموزش RustScan لذت برده باشید و توجه داشته باشید که هر گونه اسکن باید با مجوز قانونی و اخلاقی انجام شود. اسکن بدون اجازه میتواند به زیرساخت هدف آسیب زده و منجر به پیگرد قانونی شود. همچنین سرعت بسیار بالا یا افزایش بیش از حد ulimit ممکن است به سرویسهای حساس آسیب بزند؛ بنابراین قبل از اسکن در محیطهای زنده، از مجوز سازمان مربوطه مطمئن شوید و در صورتی که هدف آسیبپذیر یا حساس است، تنظیمات سرعت را کاهش دهید تا خطر ایجاد اختلال کمینه شود.
بهترین کاربردها و جریان کاری پیشنهادی
RustScan بهعنوان یک ابزار کشف سریع برای یافتن درگاههای باز عالی است و پس از آن باید از ابزارهای تخصصیتر مثل Nmap برای تشخیص سرویس، ورژن و جستجوی آسیبپذیری استفاده کنید. با نوشتن اسکریپتهای سفارشی و تعریف مجموعهای از کاریهای خودکار میتوانید خروجی RustScan را به ابزارهای شناسایی آسیبپذیری یا استخراج محتوا ارسال کنید و یک زنجیره کاری خودکار و قابل تکرار بسازید که برای تیمهای تست نفوذ و تحقیقگران امنیتی بسیار مفید است.
نتیجه گیری آموش کار با RustScan
اگر میخواهید از مخزن اصلی RustScan دیدن کنید یا به جامعه توسعهدهندگان آن بپیوندید، مخزن GitHub پروژه در آدرس https://github.com/RustScan/RustScan قرار دارد و راهنمای نصب و مستندات تکمیلی در ویکی آن موجود است. اگر بخواهی، میتوانم همین متن را به یک نسخه آموزشی عملی تبدیل کنم و مثالهای خطدستوری اجرا شده، فایل پیکربندی پیشنهادی و نمونه اسکریپتهای پایتون برای RSE را اضافه کنم؛ اگر موافقی مستقیم میروم سراغ قسمت عملی و مثالها. همچنین اگر به یادگیری هک و امنیت علاقه دارید یک سر به دوره هک سایت ما بزنید .