یک اسکنر خودکار منتشر شده است تا به متخصصان امنیت کمک کند محیطها را برای دستگاههایی که در معرض آسیبپذیری اجرای کد از راه دور (RCE) در سیستم چاپ یونیکس (CUPS) قرار دارند، اسکن کنند. این نقص با شناسه CVE-2024-47176 شناخته می شود.
این آسیب پذیری که امکان اجرای کد از راه دور را به مهاجمان میدهد، اواخر ماه گذشته توسط Simone Margaritelli که آن را کشف کرده بود، افشا شد.
اگرچه قابلیت اجرای کد از راه دور (RCE) این آسیبپذیری در استقرارهای واقعی به دلیل پیشنیازهای لازم برای بهرهبرداری محدود به نظر میرسد، شرکت Akamai بعداً نشان داد که CVE-2024-47176 همچنین امکان تقویت ۶۰۰ برابری در حملات انکار سرویس توزیعشده (DDoS) را فراهم میکند.
این اسکنر توسط محقق امنیت سایبری Marcus Hitchins معروف به MalwareTech ساخته شده است. او این اسکنر را ایجاد کرد تا به مدیران سیستم کمک کند شبکههای خود را اسکن کرده و به سرعت دستگاههایی را که خدمات آسیبپذیر CUPS-Browsed را اجرا میکنند، شناسایی کنند.
این آسیبپذیری ناشی از این است که cups-browsed پورت کنترل خود ( پورت UDP 631 ) را به INADDR_ANY متصل میکند، که آن را به روی تمام دنیا باز میگذارد. از آنجا که درخواستها احراز هویت نمیشوند، هر کسی که بتواند به پورت کنترل دسترسی پیدا کند، میتواند به cups-browsed دستور دهد تا عملیات کشف چاپگر را انجام دهد.
حتی اگر دسترسی به پورت از طریق اینترنت به دلیل فایروال یا NAT مسدود شده باشد، مهاجم ممکن است بتواند از طریق شبکه محلی به پورت دسترسی پیدا کند، که میتواند منجر به افزایش دسترسیها و حرکت به سمت سایر دستگاههای شبکه شود.
Marcus Hitchins بیان میکند که به دلیل وجود این آسیبپذیریها، اسکنری ساخته است تا به کاربران کمک کند شبکه محلی خود را برای یافتن سرویسهای آسیبپذیر cups-browsed بررسی کنند.
نحوه کارکرد اسکنر
اسکریپت cups_scanner.py یک سرور HTTP روی دستگاهی که اسکن را انجام میدهد ایجاد میکند تا درخواستهای ورودی HTTP از دستگاههای دیگر در شبکه را دریافت کند.
آسیبپذیری CVE-2024-47176 به دلیل اتصال نادرست پورت کنترل CUPS-browsed به آدرس عمومی INADDR_ANY ایجاد میشود که به مهاجمان اجازه میدهد تا به راحتی به این پورت دسترسی پیدا کنند و دستورات ارسال کنند.
اسکنر یک بسته UDP سفارشی به آدرس پخش شبکه در پورت ۶۳۱ ارسال میکند، که به هر آدرس IP در محدوده مشخص شده فرستاده میشود و به نمونههای CUPS میگوید که یک درخواست به عقب ارسال کنند.
اگر یک دستگاه که نمونه آسیبپذیر cups-browsed را اجرا میکند، بسته UDP را دریافت کند، این درخواست را تفسیر کرده و یک بازگشت HTTP به سرور ارسال میکند، بنابراین فقط آنهایی که پاسخ میدهند به عنوان آسیبپذیر علامتگذاری میشوند.
نتایج در دو لاگ نوشته میشوند: یکی ( cups.log ) شامل آدرسهای IP و نسخه CUPS دستگاههایی که پاسخ دادهاند و دیگری ( requests.log ) شامل درخواستهای خام HTTP دریافتی توسط سرور بازگشت که میتواند برای تحلیل عمیقتر استفاده شود.
مدیران سیستم با استفاده از این اسکنر میتوانند برنامهریزی کنند و اقدامات لازم را انجام دهند تا از بروز آسیبپذیری CVE-2024-47176 جلوگیری کنند و امنیت سیستمهای خود را افزایش دهند.