خب مثل اینکه یه آسیب پذیری نسبتا مهم توی اوبونتو نسخه دسکتاپ پیدا شده که به کاربر عادی اجازه میده که یه اکانت با دسترسی روت درست کنه . مسلما هیچ سیستمی امنیت صدرصدی نداره میخواد لینوکس باشه مک یا ویندوز حتی اگه سیستم عاملی آدم فضاییا بفرستن زمین بازم حتما مکشلاتی خواهد داشت . اما اوپن سورس بودن لینوکس و اکثر توزیع های لینوکسی باعث میشه چنین مشکلاتی سریع پیدا بشن و حتما از بین چند صد یا هزار نفری که تو اوبونتو مشارکت دارن یکی ایده حل این مشکل یا باگ به ذهنش میرسه.
اما این آسیب پذیری جدیدی که پیدا شده انجام دادنش خیلی آسونه و حتی لازم نیس خیلی مسلط به کامند لاین باشی . و خب هیچ کس انتظار نداشت چنین آسیب پذیری تو همچین جای تابلویی باشه .
سوء استفاده از این آسیب پذیری
خب برای انجام دادن این آسیب پذیری حتی نیازی به دسترسی روت ندارید . پس با یه یوزر استاندارد لاگین کنید .
اولین کار ساختن یه سیمبلیک لینک تو دایرکتوری هوم هست :
ln -s /dev/zero .pam_environment
( اگه دستور کار نکرد به این معنی که فایل به اسم .pam_enviroment
تو هوم موجود هست پس موقتا اسمشو عوض کنید )
قدم بعدی باز کردن “Region & Language ” از توی سیستم ستینگ و تغییر دادن زبان سیستم هست ( به هر زبانی ) . بعد از انتخاب کردن زبان جدید دیالوگ باکس فریز میشه . بیخیالش بشید و سریع برگردید به ترمینال در این حال برنامه ای به اسم accounts-daemon
صددرصد سی پی یو رو مصرف می کنه . با ابزار هایی مثل top می تونید این برنامه رو مانیتور کنید .
خب حالا خیلی سریع لینکی که درست کرده بودید رو پاک کنید
rm .pam_environment
قدم بعدی فرستادن سیگنال SIGSTOP به پروسس account-daemon
هست تا این پروسس متوقف بشه . برای پیدا کردن PID این پروسس می تونید از top استفاده کنید یا به این صورت عمل کنید
pidof accounts-daemon
sample output :
597
و فرستادن سیگنال SIGSTOP با دستور kill به این صورت :
kill -SIGSTOP 597
خب این قسمت قسمت حساس ماجراس . ما قراره که از یوزرمون لاگ اوت کنیم ، ولی اول باید یه تایمر ست کنیم تا پروسس accounts-daemon
رو ریست کنه بعد از اینکه لاگ اوت کردیم دوباره شروع به کار کنه . اگه این مرحله رو رد کنیم کل قضیه فیل میشه .
nohup bash -c "sleep 30s; kill -SIGSEGV 597; kill -SIGCONT 597"
برنامه nohup
یه راه ساده س که یه اسکریپت بعد از اینکه ما لاگ اوت کردیم هم در حال اجرا باقی بمونه . این دستور یه اسکریپت bash اجرا می کنه که سه تا کار انجام میده :
- ۳۰ ثانیه صبر می کنه ( باید زمان کافی برای لاگ اوت کردن داشته باشیم )
- به
accounts-daemon
سیگنال SIGEGV می فرسته که باعث میشه کرش کنه - و سیگنال SIGCONT رو به
account-daemon
می فرسته تا سیگنال SIGSTOP که قبل تر فرستادیم رو دی اکتیو کنه . سیگنال SIGEGV تا وقتی که SIGCONT دریافت نشه عمل نمی کنه .
خب حله . اگه همچی اوکی باشه . یه سری پنجره براتون باز میشه که اجازه میده یه یوزر جدید باز کنید که این یوزر ادمین هست و دسترسی روت داره !!! ویدیو زیر حتما ببینید از یوتیوب گیت هاب آپلود کردم رو کانال آپارات خودمون
خب مسله اینه که این آسیب پذیری فقط رو ورژن دسکتاپ اوبونتو هست و در اصل دوتا باگ باعث این آسیب پذیری هست . اولی باگی که توی accoutsservcie هست که سرویس مدیریت یوزر اکانت هاس . دومین باگ توی GNOME Display Manger (gdm3 )هست که در کنار وظایف دیگه ش لاگین اسکرینو هندل میکنه .
پی نوشت : خب این آسیب پذیری نسبتا جدیه ولی به طور خاص فقط کاربرای اوبونتو و اونم فقط میزکار گنوم رو درگیر میکنه . البته فعلا چون این آسیب پذیری دیروز گزارش شده. احتمالش هست میزکار های دیگه هم درگیرش بشن . ولی به نظرم جای نگرانی نیس و امیدوارم به زودی این باگ ها رفع بشن . ( دلیل نگران نبودن من اینکه من از میزکار xfce استفاده می کنم D: )
نظر شما در مورد این آسب پذیری چیه ؟ کامنت کنید