Rsut (Rust Monitor)
سوئیت شناسایی وایفای بلادرنگ با راست و داشبورد Svelte 5 — بدون حتی یک دیتای جعلی
گالری
3 تصویر — کلیک برای بزرگنماییچیست
Rsut (معروف به Rust Monitor / AirMon-NG Pro) یک سوئیت حرفهای مانیتورینگ و پژوهش امنیتی وایفای است. یک بکاند راستی با سوکت خام در حالت monitor mode با کارت وایفای حرف میزند، فریمهای 802.11 را بلادرنگ پارس میکند و همهچیز را از طریق WebSocket به یک داشبورد Svelte 5 میفرستد.
README میگوید «مثل airodump-ng ولی ۱۰ برابر بهینهتر» — اما تفاوت مهم، قانون طراحی پشت آن است: فقط دیتای واقعی. اگر بکاند خاموش باشد رابط مینویسد Backend OFFLINE و صبر میکند؛ هیچ شبکه جعلیای هرگز رندر نمیشود. هرچه روی صفحه دیده میشود یک فریم واقعی پارسشده است.
فقط روی شبکههایی استفاده کنید که مالک آنها هستید یا مجوز تست دارید — در خود ریپازیتوری هم این سلب مسئولیت آموزشی آمده است.
ویژگیهای کلیدی
- کنترل Monitor mode با
ioctl(SIOCSIWMODE) و مدیریت NetworkManager؛ پرش کانال ۱–۱۳ (هر ۴۵۰ms) یا قفل روی یک کانال. - پارس خام 802.11 — هدر Radiotap، بیکن، probe request/response، فریمهای داده؛ استخراج سیگنال dBm بدون کپی.
- چند موتور شکار (فراتر از ترفند کلاسیک PMKID):
pmkid.rs— شکار غیرفعال PMKID از EAPOL Message 1 (بدون نیاز به دیآتک)؛ خروجی سازگار باhashcat -m 22000.handshake.rs— شکار کلاسیک هندشیک چهارمرحلهای برای WPA2-PSK، شمارش پیامهای EAPOL به تفکیکBSSID|STA.sae.rs— شکار فریمهای WPA3 SAE (Dragonfly) commit/confirm (فریمهای 0xB0 و گروههایی مثل 19/20).wps.rs— ابزار PIN/چکسام WPS (به سبک Reaver) با یادداشتهای Pixie Dust برای پژوهش.
- پروتکل WebSocket بلادرنگ — پوشش
update(هر ۲۲۰ms) با شبکهها، آمار و رویدادهای زنده PMKID. - جعبهابزار تست مجاز — هدفگیری کلاینت، تزریق پکت، پنلهای beacon/jam/evil-twin/spoof با کنترل شدت (ماژولهای
inject.rs,jam.rs,eviltwin.rs,spoof.rs). - داشبورد Svelte 5 — رونها (
$state,$derived)، استور WebSocket با محدودسازی RAF، جدول مجازیشده، اسپارکلاین و نمودار پکت با canvas، نوار سیگنال، دونات رمزنگاری، پنل زنده PMKID و خروجی CSV. - پایداری و امکانات بیشتر — تاریخچه SQLite (
rusqlite)، ضبط PCAP، فیلتر BPF، مختصات GPS و ابزار Caller ID spoof برای پژوهش VoIP (spoof.rs).
معماری (بر اساس سورس)
بکاند به ماژولهای متمرکز تقسیم شده نه یک یکپارچه:
| ماژول | کار |
|---|---|
monitor.rs |
monitor mode و کانال با ioctl |
sniffer.rs / bpf.rs |
حلقه سوکت خام، پارس radiotap و 802.11، BPF |
network.rs / models.rs |
لیست شبکهها، اسنپشات، مدلهای سریالایز |
pmkid.rs / handshake.rs / sae.rs / wps.rs |
موتورهای شکار |
server.rs |
سرور WebSocket و حلقه broadcast |
inject.rs / jam.rs / eviltwin.rs / spoof.rs |
ماژولهای ابزار تست مجاز |
pcap.rs / history.rs / gps.rs |
ضبط PCAP، تاریخچه SQLite، مختصات |
client.rs / targets.rs |
ردیابی STA و هدفگیری |
ui.rs / auth.rs |
راهنماهای رابط ترمینال و احراز هویت |
فرانت (frontend/, SvelteKit + Vite): داشبورد +page.svelte، صفحه اختصاصی برای هر ماژول (beacon, clients, eviltwin, handshake, jam, pcap, …) و کامپوننتهای مشترک SignalBar.svelte، Sparkline.svelte و استور WebSocket دیتای واقعی.
وابستگیها
- بکاند (Rust):
libc،tokio،tokio-tungstenite،futures-util،serde،serde_json،arc-swap،parking_lot،rusqlite(SQLite همراه)،hmac،sha1،rand - فرانت: Svelte 5، SvelteKit،
@sveltejs/adapter-auto، Vite
شروع کار
cargo build --release
# بکاند — لینوکس + کارتی با پشتیبانی monitor mode، با روت اجرا کنید
sudo ./target/release/rust_monitor on wlp0s20f3
sudo ./target/release/rust_monitor serve wlp0s20f3 # ws://127.0.0.1:8080 — فقط فریم واقعی
# فرانت
cd frontend && npm install && npm run dev # http://localhost:5173
چرا برجسته است
خواندن 802.11 خام به راحتی عجیبی با بایتها نیاز دارد: بیتفیلدهای Radiotap، ترتیب بایتهای frame control، هدرهای طولمتغیر QoS/ToDS/FromDS، پیمایش EAPOL LLC 0x888E و پارس RSN IE — همه دستساز در راست. روی آن هم یک فرانتاند بلادرنگ در سطح محصول نشسته که فقط دیتای واقعاً زنده نشان میدهد. Rsut مهندسی امنیتی است که بخش سختش — درستی روی کابل — درست انجام شده و رابط هیچوقت دروغ نمیگوید.